Now inviting stores. Join the waitlist to hear the agent call you.

Join the waitlist

Search the docs

Find a docs page

API reference

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 keyorder_verification
Call typeTransactional. See Call types and consent
LanguagesStarts in Hindi, or in the language input; English too, and it follows the shopper if they switch
Longest call4 minutes
Tries per shopper2, 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

RowCall sends confirm_order to your action URL, your server answers, and the agent tells the shopper.

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

InputLabelTypeRequiredSample
customer_nameNametextYesAsha
phonePhonephoneYes+919812345678
order_idOrdertextYes4821
itemsItemstextYesa pair of running shoes
order_totalTotalmoneyYes2499
addressDelivery addresstextYes12 MG Road, Pune
languageLanguagetextNoen-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

KeyQuestionAnswer
good_timeDo you have a minute to confirm it?Yes or no. A "no" ends the call politely
placed_orderYou ordered {items} for {order_total}, to pay on delivery. Did you place this order?Yes or no. A "no" cancels the order
address_correctWe'll deliver it to {address}. Is that right?Yes or no
new_addressWhat's the right address, with the area and city?Text, only when the address is wrong. Read back before anything changes

Outcomes

OutcomeLabelWhen
confirmedConfirmedThey placed it and the address is right; confirm_order succeeded
address_changedAddress changedThey gave a new address; the address was updated and the order confirmed
cancelledCancelledThey didn't place it; cancel_order succeeded
needs_teamNeeds the teamAn 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

ActionKindWhat it does
get_orderReadLooks up the order when the shopper asks about it (what they paid, where it goes)
confirm_orderWriteMarks the order as confirmed by the shopper, so it can be dispatched
update_delivery_addressWriteChanges the delivery address, after the read-back
cancel_orderWriteCancels 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/runs per order, with "flowKey": "order_verification", the shopper's phone, the inputs and transactionAt. Install it once first with POST /v1/flows/library/order_verification/install. Hear the result on the run.completed event.
  • 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, cancelled and needs_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

  1. Copy it from the library

    Go to Flows → Library, open Order verification and choose Use this flow. It opens as your own draft.

  2. 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.

  3. 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_order set to Refused under Actions answer to hear the team fallback.

  4. Publish

    Once a simulation of the draft reaches an outcome, choose Publish.
  5. Connect the actions

    Point confirm_order, update_delivery_address and cancel_order at your store in Developers → Actions, or connect Glood. See Actions.

  6. Start it on every COD order

    Send one run per new cash-on-delivery order, and hold dispatch until the outcome is confirmed or address_changed.

Next stepLive checkout help

Call within a minute of a failed payment.