Order verification
Call a shopper right after a cash-on-delivery order, confirm they placed it and that the address is right, and confirm or cancel it before it ships.
Order verification calls the shopper soon after they place a cash-on-delivery order. It checks they placed it, checks the delivery address (and takes a new one if it's wrong), then confirms or cancels the order in your store.
| Library key | order_verification |
| Call type | Transactional. See Call types and consent |
| Languages | Starts in Hindi, or in the language input; English too, and it follows the shopper if they switch |
| Longest call | 4 minutes |
| Tries per shopper | 2, an hour apart |
When to use it
Start it the moment a cash-on-delivery order is placed, before the order is packed. An order the shopper didn't mean, or one going to an old address, is cheapest to stop before it leaves your warehouse: after that, a cancellation still costs you the trip out and back.
Because the shopper has just ordered, the call is expected. Send transactionAt (the time of the order) with the run and the call can go out within 30 minutes of the purchase without a separate consent record.
What the shopper hears
Agent: Hi Asha, this is Halden's automated assistant, calling about your order 4821. This call is recorded. Do you have a minute to confirm it?
Shopper: Yes.
Agent: You ordered a pair of running shoes for ₹2,499, to pay on delivery. Did you place this order?
Shopper: Yes, I did.
Agent: We'll deliver it to 12 MG Road, Pune. Is that right?
Shopper: No, I moved last week. It's 8 Lake Road, Baner, Pune.
Agent: So the new address is 8 Lake Road, Baner, Pune. Is that right?
Shopper: Yes.
Agent: One moment, I'll update that. … Done. Your order is confirmed for the new address. Thank you, goodbye.
In Hindi the same call opens with "नमस्ते Asha, मैं Halden की ऑटोमेटेड असिस्टेंट बोल रही हूँ, आपके ऑर्डर 4821 के बारे में।"
The first line, saying the call is automated and recorded, always comes first and can't be removed. See The disclosure line.
Inputs it needs
| Input | Label | Type | Required | Sample |
|---|---|---|---|---|
customer_name | Name | text | Yes | Asha |
phone | Phone | phone | Yes | +919812345678 |
order_id | Order | text | Yes | 4821 |
items | Items | text | Yes | a pair of running shoes |
order_total | Total | money | Yes | 2499 |
address | Delivery address | text | Yes | 12 MG Road, Pune |
language | Language | text | No | en-IN to start in English |
phone is the number the run calls, and customer_name falls back to the contact's name, so you rarely send either in inputs. See Inputs.
Questions it asks
| Key | Question | Answer |
|---|---|---|
good_time | Do you have a minute to confirm it? | Yes or no. A "no" ends the call politely |
placed_order | You ordered {items} for {order_total}, to pay on delivery. Did you place this order? | Yes or no. A "no" cancels the order |
address_correct | We'll deliver it to {address}. Is that right? | Yes or no |
new_address | What's the right address, with the area and city? | Text, only when the address is wrong. Read back before anything changes |
Outcomes
| Outcome | Label | When |
|---|---|---|
confirmed | Confirmed | They placed it and the address is right; confirm_order succeeded |
address_changed | Address changed | They gave a new address; the address was updated and the order confirmed |
cancelled | Cancelled | They didn't place it; cancel_order succeeded |
needs_team | Needs the team | An action was refused or didn't answer in time; the agent says your team will call back |
A call can also end without one of these: not now, opted out, no response or failed. See Answers and outcomes.
Actions it may take
| Action | Kind | What it does |
|---|---|---|
get_order | Read | Looks up the order when the shopper asks about it (what they paid, where it goes) |
confirm_order | Write | Marks the order as confirmed by the shopper, so it can be dispatched |
update_delivery_address | Write | Changes the delivery address, after the read-back |
cancel_order | Write | Cancels an order the shopper didn't place |
Until you connect them, actions answer with their sample reply and your team acts on the outcome instead. See Actions.
How to start it
- From the dashboard: open the flow and choose Call a shopper, or select contacts in Contacts and choose Call N contacts. See Start a call.
- From your store, by API: one
POST /v1/runsper order, with"flowKey": "order_verification", the shopper'sphone, the inputs andtransactionAt. Install it once first withPOST /v1/flows/library/order_verification/install. Hear the result on therun.completedevent. - From Glood: connecting Glood installs this flow and starts it for each cash-on-delivery order. See Glood.
What to measure
Open Results, pick the flow and the days:
- Summary → How the calls ended: how many orders end
confirmed,address_changed,cancelledandneeds_team. - Answered against Shoppers: how many shoppers you reached.
- Undelivered returns: compare returned-to-origin orders for verified and unverified orders over the same weeks, in your own store's data.
Set it up, step by step
Copy it from the library
Go to Flows → Library, open Order verification and choose Use this flow. It opens as your own draft.
Read the steps
On the Diagram tab, check each line says what your store would say. Change any wording in its step; the Translations tab shows each line beside its Hindi.
Simulate it
Choose Simulate, then Type as the shopper or Talk as the shopper. Play Asha: confirm, then change the address. Run it again with
cancel_orderset to Refused under Actions answer to hear the team fallback.Publish
Once a simulation of the draft reaches an outcome, choose Publish.Connect the actions
Point
confirm_order,update_delivery_addressandcancel_orderat your store in Developers → Actions, or connect Glood. See Actions.Start it on every COD order
Send one run per new cash-on-delivery order, and hold dispatch until the outcome is
confirmedoraddress_changed.
Call within a minute of a failed payment.