COD Order Confirmation
Call every COD order to confirm intent, catch fakes, and flip it to prepaid before you ship.
Last updated 2026-07-12
Screenshots



About COD Order Confirmation
COD Order Confirmation
Voice-confirm every new COD order in minutes — catch fakes, beat COD-fee objections, and flip COD → prepaid before you ship.
Built on the Telenow App Platform as a pure declarative app: the data model, the agent tools, the store webhooks, the confirmation workflow, the vernacular agent, and the objection knowledge base all run on-platform. No external server.
The problem (and the number)
In Indian e-commerce, 60–65% of orders are Cash-on-Delivery, and COD orders return-to-origin (RTO) at 28–40% versus under 2% for prepaid. Every RTO burns forward + reverse shipping, packing, and locked-up inventory — often ₹100–₹250 of pure loss on an order that never earned a rupee. The single biggest lever is a fast confirmation call: reach the buyer within minutes, verify they actually placed the order and still want it, kill the doubts that cause refusals, and nudge them to prepay.
COD Order Confirmation does exactly that, automatically, in the buyer's own language.
How it works
Shopify / WooCommerce ──(order created webhook)──► order object (status: new)
│ │
│ fires object.order.created
▼ ▼
dedupe on order # confirm_new_order workflow
├─ delay ~5 min
└─ outbound-call {{settings.confirm_agent_id}}
→ dials {{trigger.data.phone}}
→ passes order_no, amount, items, language
│
▼
COD Confirmation Agent (Sarvam, vernacular)
find_order → confirm intent → answer objections (KB)
→ mark_confirmed | mark_cancelled | mark_suspect | mark_prepaid
A second workflow (send_prepaid_link) optionally WhatsApps the prepaid discount link via {{settings.wa_channel}}.
Everything the agent does on the call updates the same order rows you see on the dashboard — and the dashboard's Call now button dials through the same agent and tools.
Agent tools (used mid-call — all declarative)
| Tool | Does | Handler |
|---|---|---|
find_order | Look up the caller's latest order by phone | object.query order |
log_order | Record a new order placed during the call | object.create order |
mark_confirmed | Buyer confirms — keep COD | object.update order (match phone → status confirmed) |
mark_prepaid | Buyer accepts the discount and pays online — RTO win | object.update order (match phone → status prepaid) |
mark_cancelled | Buyer no longer wants it | object.update order (match phone → status cancelled) |
mark_suspect | Looks fake — deny/mismatch/bulk | object.update order (match phone → status suspect) |
record_reason | Store an objection / note on the order | object.update order (match phone) |
The bundled COD Confirmation Agent is a multi-context flow: a deterministic find_order tool node (looks the caller up in this app's data) → a conversation node that confirms, objects-handles, and sets status. STT/TTS default to Sarvam (anushka) for Tier-2/3 vernacular buyers.
Dashboard pages
- COD Order Confirmation (dashboard) — KPI tiles (orders today, confirmed COD, prepaid flips, cancelled/suspect, est. RTO prevented ₹), an order-status mix bar, recent orders, and a daily rollup. Also powers the platform
dashboard_widgetslot in a compact form. - Orders — filter by status, search, and Call now to trigger a confirmation call for any order (passes the order's context variables to the agent).
- Setup — a configuration checklist, a one-click Create confirmation agent button, and the post-install wiring steps.
Knowledge base
objection-scripts ships four real scripts the agent answers from: why prepaid is better, COD fee explanation, signs of a fake/risky order, and the prepaid discount offer.
Install & post-install wiring
- Install COD Order Confirmation into your org.
- Open Setup → Create confirmation agent (builds the bundled Sarvam agent, auto-wired to the tools + KB).
- Copy the new agent's ID into the app's Confirmation agent ID setting (
confirm_agent_id) soconfirm_new_ordercan dial. - (Optional) Set WhatsApp channel ID (
wa_channel) to auto-send the prepaid link, and Prepaid discount % (prepaid_discount_pct, default 5). - Point your store's order created webhook at the inbound hook —
shopify_order(verified withx-shopify-hmac-sha256) orwoo_order(verified withx-wc-webhook-signature). New COD orders now flow in and auto-dial.
Settings
| Key | Type | Notes |
|---|---|---|
confirm_agent_id | text (required) | The agent the workflow + "Call now" dial. |
wa_channel | text | WhatsApp channel for the prepaid link. |
prepaid_discount_pct | number | Discount offered to flip to prepaid (default 5). |
store_api_key | secret | Optional store admin key (encrypted; server-side only). |
Bulk dialing your backlog
The real-time path (webhook → workflow → call) covers new orders. To sweep an existing backlog, use the app-key campaign API:
POST /api/app-campaigns
{ "agentId": "<confirm agent id>",
"targetQuery": { "status": "new" }, // over the `order` object
"result": { ... write-back ... } }
Monetization
COD Order Confirmation is billed on outcomes, not seats:
- Per confirmed order — a small fee for each order the agent verifies (
confirmed), since each avoided a likely RTO. - Per COD → prepaid flip — a higher fee for each
prepaidconversion, which removes the RTO risk entirely and pulls cash forward. Tie the flip fee toprepaid_discount_pctso it always nets positive for the merchant.
Suspect catches (fakes stopped before shipping) and cancellations are surfaced as savings on the dashboard to make the ROI obvious.
Ready-made agents it ships
A vernacular (Sarvam) agent that calls new COD orders within minutes, confirms real purchase intent, handles COD-fee objections from the knowledge base, and offers a prepaid discount to flip the order to prepaid.
What your agents can do with it
Look up the caller's most recent order by their phone number, to confirm the item and amount before speaking.
Record a new COD order (used if the customer places one during the call).
Mark the caller's order as CONFIRMED once they confirm they placed it and still want it delivered COD.
Mark the caller's order as CANCELLED when they no longer want it. Optionally capture why.
Flag the caller's order as SUSPECT when it looks fake — unreachable/wrong person, denies ordering, mismatched details, or bulk identical orders.
Mark the caller's order as PREPAID after they accept the prepaid discount and agree to pay online. This is an RTO win.
Save a free-text note against the caller's order (an objection heard, a callback request, a delivery instruction).
Data it manages
Permissions it requests
Apps run inside your workspace under least-privilege scopes you can see up front. This app asks for:
objects:orderobjects:metricagents:readcalls:initiatecalls:readai:llmwhatsapp:sendcampaigns:readuser:profileWhat's new in v1.1.0
Changelog
1.1.0 — 2026-07-12
- Renamed to COD Order Confirmation (business-friendly) with a marketplace icon.
- Added real UI screenshots (dashboard + key pages).
- Verified end-to-end loop closure: trigger → workflow → call → agent tools → write-back → dashboard.
1.0.0
- Initial release.
- Data model:
orderobject (order #, phone, customer, amount, items, status, language, reason, created_at) withunconfirmed/prepaid_flipped/suspectsaved views, plus ametricobject for the daily dashboard rollup. - Agent tools (declarative):
find_order,log_order,mark_confirmed,mark_cancelled,mark_suspect,mark_prepaid,record_reason. - Bundled agent: COD Confirmation Agent — a Sarvam vernacular multi-context flow (deterministic
find_orderlookup → confirm/objection-handle/flip) auto-wired to the tools and the objection knowledge base. - Knowledge base:
objection-scripts— why prepaid is better, COD fee explanation, fake-order signs, and the prepaid discount offer. - Automation:
shopify_order+woo_orderinbound webhooks (HMAC-verified, dedupe on order #);confirm_new_orderworkflow (delay ~5 min → outbound confirmation call);send_prepaid_linkworkflow (WhatsApp the prepaid discount link). - Dashboard UI: KPI tiles with estimated RTO prevented, order-status mix, recent orders, and a daily rollup; also renders into the
dashboard_widgetslot in compact form. - Orders page: status filters, search, and per-order Call now (passes order context variables to the agent).
- Setup page: configuration checklist + one-click Create confirmation agent and post-install wiring steps.
- Self-seed: a fresh install auto-loads six realistic demo orders and a metric row (removable) so the dashboard is populated on first open.
Publisher
Marketplace publisher · app reviewed by Telenow before listing.
Your data, your keys
Secrets, carrier credentials and API keys stored AES-GCM encrypted; TLS in transit; HMAC-signed webhooks.
Strict per-organization data isolation with role-based access for every member.
Every mutating action is logged and filterable, with CSV export for your records.
In-app DLT / regulatory flows, TCPA calling windows, and org-wide Do-Not-Call enforcement.
More ecommerce apps
Call high-value abandoned carts within minutes, answer the real objection, and complete the order on the phone.
Install COD Order Confirmation
Sign up free and get ₹300.00 in credit — no card required. Connect your number, pick a template, and go live in minutes.
