E-commerce · D2C brands
AI calls that recover abandoned carts
From ₹1 a minute at volume (₹1,00,000/month commitment), or ₹5 pay as you go, no commitment
₹1 is the T1 voice rate. On T1, Mirai phone calling (₹0.30/min) and call insights (₹0.20/min) are optional; T5 includes both. All prices exclude GST.
From ₹1 a minute on the volume plan (₹5 a minute pay as you go), an agent calls a shopper who left items in the cart, asks what held them back, and answers from the store facts you give it: sizes, delivery time, cash on delivery, returns. After the call you get the reason in the shopper's own words and whether they want a checkout link, ready for your system to send on WhatsApp or SMS. You can try the agent in the sandbox today and feed carts in from your store's backend once it sounds right.
No sign-up to look around.
On T1, per connected call
₹1.84for a 110-second call at ₹1/min
T1 has a ₹1,00,000 monthly commitment. Pay as you go on T5, the same call is ₹9.17.
- Calls
- Outbound calls
- Languages
- Hindi, English, Hinglish
- Industries
- E-commerce, D2C brands
- Call length
- 110 seconds, an assumption
Sample conversation
How a call goes
A written example of the script, not a recording. Your agent says what your prompt tells it to, in your customer's language.
- Agent
नमस्ते Pooja जी, मैं Acme Fashion की AI assistant बोल रही हूँ। आपने कल रात हमारी website पर दो kurtis cart में डाली थीं, उसी के बारे में call किया।
Hello Pooja, I'm Acme Fashion's AI assistant. Last night you put two kurtis in your cart on our website, and I'm calling about that.
- Caller
आपको मेरा number कहाँ से मिला?
Where did you get my number?
- Agent
Checkout पर आपने यही number डाला था। अगर आप नहीं चाहतीं तो मैं आगे call नहीं करूँगी।
You entered this number at checkout. If you'd rather not be called, I won't call again.
- Caller
नहीं ठीक है। Actually size का doubt था, मैं usually L पहनती हूँ पर ये fitted लग रही थी।
No, it's fine. Actually I wasn't sure about the size. I usually wear L but these looked fitted.
- Agent
ये regular fit हैं, तो L ठीक रहेगा। और size सही न हो तो सात दिन में exchange हो जाता है।
They're regular fit, so L should be fine. And if the size is wrong, you can exchange it within seven days.
- Caller
अच्छा। COD available है?
Okay. Is cash on delivery available?
- Agent
हाँ, आपके pin code पर cash on delivery available है। क्या मैं checkout का link आपको WhatsApp पर भिजवा दूँ?
Yes, cash on delivery is available at your pin code. Shall I have the checkout link sent to you on WhatsApp?
- Caller
हाँ, भेज दो।
Yes, send it.
- Agent
ठीक है, link थोड़ी देर में आ जाएगा। धन्यवाद Pooja जी।
Okay, the link will reach you shortly. Thank you, Pooja.
What you send
One row per person you call
Upload a CSV to a campaign, or send the same fields as call variables from your own system. The phone number comes first; the other columns are what the agent reads out or decides on.
| Column | Example | What goes in it |
|---|---|---|
phoneRequired | +91… | The number to call, with the country code (+91…). A ten-digit Indian mobile gets +91 added. In Excel, format this column as Text first so the number is not changed. |
customer_nameOptional | Pooja | — |
cart_itemsOptional | two cotton kurtis | — |
cart_valueOptional | 1798 | A plain number. Leave it out of the prompt if you'd rather the agent didn't mention money first. |
fit_noteOptional | regular fit, true to size | One line per product family is enough. The agent only says what you give it. |
cod_availableOptional | yes | — |
exchange_policyOptional | exchange within 7 days of delivery | — |
cart_idOptional | cart_8f2c41 | Extra info: never read to the shopper, returned in every webhook so you can rebuild the checkout link. |
What comes back
The result of every call
Each call ends with one webhook event that carries the transcript and the result, and the campaign report has a row for every contact. These are the result fields an agent for this job fills in.
| Field | Example | What it means |
|---|---|---|
analysis.data.drop_off_reason | size_doubt | A field you define, for example size_doubt, price, delivery_time, payment_issue, just_browsing or other. |
analysis.data.reason_in_their_words | size का doubt था, मैं usually L पहनती हूँ | Also yours to define. The transcript keeps Hindi and Hinglish as spoken, so this stays in the shopper's words. |
analysis.data.wants_link | true | Whether the shopper agreed to receive a checkout link. |
analysis.template.name | cart_checkout_link_hi | The follow-up message the agent picked from your approved templates. Your system adds the link and sends it. |
analysis.template.missing | [] | Template slots the conversation didn't fill. Check it before you send anything. |
metadata.cart_id | cart_8f2c41 | Your extra info, echoed back unchanged on every event for the call. |
Cost
What a 110-second call costs
Worked out from our price list. 110 seconds is our assumption for a typical connected call of this kind, not a measurement from your calls. Put your own volumes into the AI calling cost calculator.
| Tier | Rate | Per connected call | Per 1,000 connected calls | Monthly minimum |
|---|---|---|---|---|
| T1 | ₹1 / min | ₹1.84 | ₹1,840 | ₹1,00,000 a month |
| T3 | ₹3 / min | ₹5.50 | ₹5,500 | ₹50,000 a month |
| T5 | ₹5 / min | ₹9.17 | ₹9,170 | None |
- T5 and T3 include Mirai phone calling and call insights. On T1 they are optional: phone calling at ₹0.30/min and insights at ₹0.20/min. With both on, this call comes to about ₹2.75 on T1. Mirai phone calling is metered on the carrier's billing block, so treat that figure as an estimate.
- T1's ₹1,00,000 monthly minimum pays for 54,347 calls of this length; T3's ₹50,000 monthly minimum pays for 9,090 calls of this length. Monthly commitments are credited to your wallet. Unused credit never expires. Paid usage counts towards the minimum, and only a shortfall is settled at month end.
- Calls that ring out, are busy or fail to connect are not billed. A voicemail is billed like a connected call.
In detail
AI calls that recover abandoned carts: in detail
Why call a shopper who left a cart?
Most carts are abandoned for a handful of reasons, and several of them are questions: will this size fit, when will it arrive, is cash on delivery available here, what if I don’t like it. A reminder email can repeat the cart. It can’t answer the question that stopped the purchase, and a short call can.
A call also costs more attention than an email, from you and from the shopper, so pick the carts worth it. A first-time buyer with a high cart value who entered a phone number at checkout is a good candidate. A repeat visitor who abandons carts weekly probably isn’t. You decide which carts reach the agent; it doesn’t choose for you.
Timing matters too. A shopper remembers the cart a few hours later and has forgotten it by next week. An always-on campaign lets your backend add each cart as it’s abandoned, and the agent calls inside the hours you set. A cart left at 1 a.m. waits for the morning window.
How do you set it up?
- Write the agent in Agent Studio with a FACTS section: fit notes, delivery times, COD rules, the exchange policy. Tell it to say only what’s in FACTS, and to answer anything else with “मैं team से confirm करवा दूँगी” before moving on. A cart call goes wrong when the agent fills a gap with a guess, so leave it no gaps to fill.
- Put the per-cart details in variables (
{{cart_items}},{{fit_note}}) so one agent serves every cart, and keep the cart id as extra info so it comes back in the webhook untouched. - Turn on analysis with a
drop_off_reasonfield and a free-text reason field. Add your approved WhatsApp or SMS templates asanalysis.templates. If they live in your messaging tool, the analysis can fetch the current list after each call instead of you typing them into the agent. - Add a pre-call tool that checks whether the cart has since become an order, with
skip_callon the answer. Nobody wants a call about a cart they already paid for. - Test it in the browser. Play a suspicious shopper, a shopper who asks about a product you didn’t describe, and one who says “बाद में देखूँगी”.
- Create an always-on campaign through the API with your calling window, one retry at most and a budget, then add carts from your backend with
POST /v2/campaigns/{id}/contacts. Each call sendscall.processedto your webhook with the analysis, the chosen template and your cart id.
Choose where the calls come from with some care. The Mirai shared line is shared with other customers and shows as Mirai, so a shopper who calls back reaches neither you nor the agent. Your own number, with an inbound agent assigned to it, catches those callbacks.
What should your team still handle?
Payment failures where money left the shopper’s account are a support case, and the agent should only take the details and promise a call from your team. Complaints about an earlier order go to support as well, and so do bulk or wholesale enquiries. Look through reason_in_their_words every week for a while. When the same objection keeps coming up, the fix is usually on the product page and needs nobody on the phone.
What should you check before calling shoppers?
An abandoned-cart call is closer to marketing than to service, so read the consent rules with that in mind. TRAI’s Third Amendment to the TCCCPR, notified on 18 September 2026, lets a sender contact someone on the basis of an inquiry for seven days after it, provided the inquiry was made in writing or through digital means and is kept in a verifiable form. Whether a saved cart counts as that kind of inquiry, or whether you need explicit consent collected at checkout, is a question for your own review with your telecom provider. A consent line at checkout, stored with a timestamp, makes the answer simpler.
The amendment also asks senders to declare software-placed calls, including those using artificial voice, to their telecom provider in advance with the numbers they’ll use, and it treats undeclared ones as unsolicited. Our own phone-number docs add a practical point: promotional calls from regular mobile numbers tend to get flagged more often than calls from the 140 series meant for promotion, and we don’t sell 140 numbers yet. For calling hours, check TRAI’s current rules and your consent records before you set the campaign window.
When a shopper asks you to stop, add the number to your do-not-call list that minute, from the webhook handler or from the campaign’s contact menu. Every campaign checks that list at dial time.
What does a cart call cost?
On T1 a connected minute costs ₹1 with a ₹1,00,000 monthly commitment, plus ₹0.30 for Mirai phone calling and ₹0.20 for call insights if you switch them on. On T5 it’s ₹5 a minute, pay as you go, with both included. Prices exclude GST. Only connected calls are billed, so a shopper who doesn’t pick up costs nothing. The cost block assumes about 110 seconds of connected time, which is an estimate for a call that answers one or two questions; a “no thanks” ends much sooner. Work out the economics per recovered order: the margin on a cart you win back against the cost of all the answered calls it took to win one. The cost calculator helps with that arithmetic, and Pricing lists the plans.
By Mirai Minds · Published
Questions
Can the agent send the payment link during the call?
No. After the call, the analysis picks the right message from your template list and fills in what the conversation established, such as the shopper's name. Your own system, or a post-call tool you set up, adds the link and sends it on WhatsApp or SMS.
What if the shopper already bought by the time we call?
Add a pre-call tool that asks your store whether the cart turned into an order, and a skip_call rule on its answer. When the rule matches, nothing is dialled and nothing is charged.
Will shoppers find the call intrusive?
Some will, which is why the agent should say who it is and why it's calling in the first line, offer to stop calling, and keep the call short. Anyone who asks not to be called again goes on your do-not-call list, which every campaign checks at dial time.
Can shoppers call us back on the number they saw?
Only if the call came from your own number. Calls from the Mirai shared line show a Mirai number that other businesses also use, so a shopper ringing it back won't reach your store. Call from a number you rent through Mirai or connect from Plivo, and assign an inbound agent to it.
How can a cart call cost ₹1 a minute?
₹1 a minute is the T1 voice rate, for teams that commit ₹1,00,000 a month, and the commitment is credited to your wallet. We can price it there because we run our own speech recognition, language model and voice on our own GPUs in India; owning the stack is how we keep a minute cheap at volume. On T1, Mirai phone calling adds ₹0.30 a minute (nothing from us if you bring your own Plivo number) and call insights add ₹0.20 a minute if you turn them on. Wallet credit never expires, though the commitment is a minimum monthly spend. If you only call your highest-value carts, start on T5 at ₹5 a minute, pay as you go, with phone calling and insights included. T3 is ₹3 a minute with a ₹50,000 commitment. Prices exclude GST.
Sources
- Call analysis: extracted fields and follow-up message templates
- Campaigns API: always-on campaigns and contact metadata
- Tools: pre-call lookups and skip_call
- Phone numbers and pools: shared line, own numbers, 140 series note
- Do-not-call list
- TRAI, TCCCPR (Third Amendment) Regulations, 18 September 2026
- TRAI press release on the Third Amendment, 18 September 2026
Put your own script in an agent.
Open the sandbox, paste your prompt and listen to it. Nobody asks for an email until you test a call.