>
Build Sheet 06
Fintech AI

Customer Operations Build Sheet

Every channel, agent platform and grounding component a support stack needs. What each one is for, the first working call, the gotcha nobody documents, real cost per unit, and three recommended builds at three budgets.

Verified September 2026Free · No signupOfficial sources only
BeginnerStart here. No prior knowledge assumed.

How to read this build sheet

The Customer Operations module explains why an AI agent that speaks for a regulated firm is a different problem from one that answers questions about a t-shirt. This page is the parts list: channels, agent platforms, grounding components, what each costs per unit, and the three builds.

Watch out

Prices carry a Verified September 2026 stamp and sit in marked blocks. Two of the numbers on this page change within weeks of writing — one of them on 1 October 2026 — so the dates matter more here than anywhere else in this section.

Four jobs, bought separately, and the fourth is the one that decides whether the first three were a good idea.

JobWhat it doesCan you skip it?
DeflectAnswer the question without a human. Balance, statement, how-do-I.No, at any volume. This is what everyone buys.
AssistDraft, summarise and retrieve for a human agent who stays accountable.Underrated. Often the better first project, because the human is the control.
ActDo something: raise a dispute, block a card, change an address.Yes, and you should, for longer than feels comfortable. Actions are where liability concentrates.
EscalateHand to a human with full context, and recognise a complaint as a complaint.No. Getting this wrong turns a support problem into a regulatory one.

Almost every failed deployment we can find evidence for over-invested in the first and under-invested in the fourth.

The principle, and the two numbers

One tribunal decision governs the whole design. Air Canada argued that its chatbot was a separate legal entity responsible for its own statements. The tribunal rejected that, and the question it asked instead is the one to build against: were reasonable steps taken to ensure the information was accurate?

That is a process question, and process questions have documentable answers. It is also why a system prompt is not a control. "Never promise a refund" written in a prompt is a suggestion to a probabilistic system. The same rule written as a validation check that blocks the message is a control you can evidence. Regulators distinguish between the two, and so should your architecture.

Two numbers then decide what you can actually build.

NumberReality
Hallucination rateMeasured at 3–27% even in controlled chatbot settings. The tolerable rate in financial services is below 0.1%, because a fabricated fee, rate or account status is a regulatory incident rather than a bad customer experience.
ContainmentContact volume runs roughly 40% easy, 40% medium, 20% hard. Pilots reach 40–50% in 4–8 weeks, 55–65% by 8–16 weeks, and steady state at 6–9 months. Pushing past 70–75% without human review increases complaints as false resolutions compound.
Note

The gap between those two rows is the entire engineering problem. You cannot close a 3–27% hallucination rate to below 0.1% with a better prompt or a better model. You close it by making the system unable to state a number it did not retrieve — grounding, citation and a refusal path, enforced in code after generation. That is infrastructure, not prompt engineering, and it is the single most important sentence on this page.

The unit is the trap

Every vendor in this category prices on a different unit, and the units are not comparable. This is the same trap as the screening market in Build Sheet 04, but sharper, because here the unit definition is written by the party sending the invoice.

UnitWho prices this wayWhat it hides
Per resolutionIntercom Fin, Fini, ZendeskThe vendor's definition of "resolved". This is your entire bill.
Per conversationSalesforce AgentforceYou pay for failures too. At a 60% resolution rate, $2.00 per conversation is an effective $3.33 per resolution.
Platform fee + usageDecagon, Ada, SierraA floor you pay before a single ticket, plus implementation.
Per minuteVoice vendorsDead air. The vendor is paid for the time its own system spends thinking.
Per messageWhatsApp / MetaChattiness. A wordy agent costs more than a concise one, literally.

Normalise everything to cost per resolved contact before you compare a single quote. Divide per-conversation rates by your realistic resolution rate. Divide per-minute rates by your connect rate. Add the helpdesk seats that AI-only vendors assume you already have.

Watch out

Get the resolution definition in writing, as four specific questions. Does a conversation that escalated to a human still bill? Does a customer returning with the same question bill twice? Is resolution confirmed by the customer or inferred from the chat ending? What happens during an outage spike? At least one major vendor counts an assumed resolution when a customer simply leaves without replying — which is also, exactly, what a customer does when the answer was useless.

Notice what that means. The vendor's billing metric and your quality metric are the same measurement, and the vendor's version is biased toward billing you. The module makes the same point from the quality side: teams count "no escalation" but never count "customer came back about the same thing". Measure recontact yourself, on your own data, and never accept the vendor's resolution number as a quality signal. Published resolution rates illustrate why: one vendor cites roughly 71% across its customer base while independent reports place the figure nearer 42–50%.

IntermediateBuild it. Pipelines, tools and working code.

Raw materials — channels and agent platforms

MaterialWhat it doesVerify at
WhatsApp Business Platform indirectThe dominant Indian support channel. Reached through a Business Solution Provider, never directly.developers.facebook.com/docs/whatsapp
BSPs — Gupshup, AiSensy, Interakt, MyOperator, TwilioThe layer between you and Meta. Template management, inbox, automation, billing.vendor sites
Exotel / Knowlarity / Plivo / TwilioIndian telephony and SIP. The dial tone under any voice agent.exotel.com
Yellow.ai / MyOperator / RinggIndian voice agents with real multilingual coverage — Hindi, Hinglish and 9–20+ Indian languages with mid-call switching.yellow.ai
Intercom FinPublished per-outcome pricing, runs over an existing helpdesk without seats. The reference point for the category.fin.ai/pricing
Zendesk AI agentsNative if you are already on Zendesk. Per automated resolution, with an overage model worth reading carefully.zendesk.com
Decagon / Sierra / AdaEnterprise agents, quote-only, no public pricing. All three need a separate helpdesk underneath for human workflows.vendor sales
Freshdesk / Zoho DeskHelpdesks with strong India presence and pricing, and data residency options that matter under DPDP.freshworks.com
Note

The helpdesk dependency is the cost that pure-play AI vendors do not surface. Ada, Sierra and Decagon are agents, not helpdesks — human agent workflow still needs a platform underneath at roughly $55–$175+ per agent per month. Add that line to every quote before you compare.

Raw materials — grounding and evaluation

The grounding layer is where the hallucination number gets closed, and almost all of it is open source or something you already run.

MaterialWhat it doesVerify at
pgvector ossVector search inside the Postgres you already operate. Correct answer for most teams; one fewer system to secure under DPDP.github.com/pgvector/pgvector
Qdrant / Weaviate ossDedicated vector stores. Worth it at scale or when you need hybrid filtering the database cannot do.qdrant.tech
BM25 (Elasticsearch / OpenSearch) ossKeyword retrieval. Hybrid keyword-plus-vector beats either alone, and it is the part teams skip.opensearch.org
Ragas / DeepEval / promptfoo ossEvaluation harnesses: faithfulness, answer relevance, regression suites you can run in CI.docs.ragas.io
Langfuse / Phoenix ossTracing every generation with its retrieved context. This is your audit record.langfuse.com
Presidio ossPII detection and redaction before text leaves your boundary for a model.github.com/microsoft/presidio
ISO 42001AI management system certification. Increasingly expected by financial regulators as governance distinct from SOC 2 or ISO 27001.iso.org

How to use each one — grounding and the gate

Grounding is the product

Retrieval-augmented generation is described everywhere as a way to give a model your documents. For a regulated firm it is better understood as a way to make certain answers impossible. The retrieval is half of it; the gate on the way out is the half that matters.

Python — the refusal gate: a control, not a prompt
import re
from decimal import Decimal

# Numbers, money, dates and account states may ONLY appear in an answer if they
# came from a retrieved source or a system call. This runs AFTER generation and
# BEFORE the message is sent. It is a control because it blocks; a prompt is not
# a control because it advises.

NUMERIC = re.compile(r'(?:₹|Rs\.?\s?|INR\s?)?\d[\d,]*(?:\.\d+)?%?')
SAFE_PHRASES = {"24 hours", "7 working days", "one", "two", "three"}  # policy text

def gate(answer: str, grounded_values: set[str], sources: list[dict]) -> dict:
    # 1. every number in the answer must be traceable to retrieved content
    found = {m.group(0).strip() for m in NUMERIC.finditer(answer)}
    ungrounded = {v for v in found
                  if v not in grounded_values and v.lower() not in SAFE_PHRASES}
    if ungrounded:
        return {"send": False, "reason": "ungrounded_numeric",
                "detail": sorted(ungrounded), "action": "escalate"}

    # 2. commitments the business has not authorised the agent to make
    FORBIDDEN = [r"\bwe (?:will|shall) refund\b", r"\bguarantee[ds]?\b",
                 r"\bapproved\b", r"\bwaive[dr]?\b", r"\bno charge\b"]
    for pat in FORBIDDEN:
        if re.search(pat, answer, re.I):
            return {"send": False, "reason": "unauthorised_commitment",
                    "detail": pat, "action": "escalate"}

    # 3. no sources retrieved => the model is answering from parameters alone
    if not sources:
        return {"send": False, "reason": "no_grounding", "action": "escalate"}

    # 4. retrieval confidence floor. Below it, refuse rather than guess.
    if max(s["score"] for s in sources) < 0.62:
        return {"send": False, "reason": "weak_retrieval", "action": "escalate"}

    return {"send": True, "sources": [s["id"] for s in sources]}

# WHAT TO CHECK
# [ ] the gate runs on the OUTPUT, after generation. A rule enforced only in the
#     prompt cannot be evidenced to a regulator and cannot be unit tested
# [ ] refusal is a FIRST-CLASS PATH, not an error. "I need to get a colleague to
#     confirm that" is a good answer. A confident wrong number is not
# [ ] every block is logged with the reason code. The distribution of reason
#     codes over time is your early warning that scope has crept
# [ ] grounded_values is built from the RETRIEVED TEXT and API responses, not
#     from the model's own output. Otherwise it grounds itself
# [ ] the confidence floor is a versioned, approved, dated setting. Changing it
#     is a control change -- same discipline as an AML threshold
# [ ] test with adversarial inputs: "so you're saying my fee is waived, right?"
#     Confirmation-seeking is how customers extract commitments
# [ ] intents that NEVER reach a generative model are routed before this runs --
#     card block, fraud report, bereavement, complaint, hardship

The gotcha nobody documents: the numbers the model gets wrong are almost never the ones in your knowledge base. They are the ones it interpolates — a plausible processing time, a plausible fee, a plausible interest rate that sits comfortably between two real ones. A faithfulness score computed over your document set will not catch it, because the statement is not contradicted by any document; it is simply unsupported by all of them. That is why the gate checks for presence in retrieved content rather than absence of contradiction.

The intents that must never reach a generative model

Route these deterministically, before any model sees them. They are not hard to classify and the downside of getting one wrong is not a bad review:

  • Card block, account freeze, fraud report. Time-critical, and a wrong answer is a financial loss the customer will attribute to you.
  • Bereavement and account closure on death. There is no acceptable generated response here.
  • Hardship and collections. Regulated speech. See below.
  • Anything that is a complaint. The hard part is recognition — customers do not say "I wish to lodge a complaint", they say "this is the third time". Classify for complaint signals separately from intent, and err toward logging one.
  • Vulnerability signals. Distress, confusion, mentions of illness or coercion.

How to use each one — channels and their economics

WhatsApp: the number that changes on 1 October 2026

WhatsApp is the default support channel for Indian consumer fintech, and its cost model has just been rewritten twice. Meta moved from conversation-based to per-message pricing during 2025, which made every older pricing guide wrong. The second change lands in weeks.

Python — WhatsApp cost accounting, and why chattiness is now a line item
from datetime import datetime, timedelta

# Meta India list rates, effective 1 July 2026, per DELIVERED message,
# before your BSP's platform fee and before 18% GST.
RATE_INR = {"marketing": 0.8631, "utility": 0.1150, "authentication": 0.1150}
GST = 1.18

# From 1 October 2026 Meta charges for SERVICE messages -- replies inside the
# 24-hour customer service window -- at the utility/authentication rate. They
# have been free since November 2024. For a support-heavy business this turns
# the single biggest message category from free into a per-message cost.
SERVICE_FREE_UNTIL = datetime(2026, 10, 1)

def cost_of_conversation(messages, sent_at=None) -> dict:
    sent_at = sent_at or datetime.now()
    total, lines = 0.0, []
    for m in messages:
        cat = m["category"]
        if cat == "service":
            rate = 0.0 if sent_at < SERVICE_FREE_UNTIL else RATE_INR["utility"]
        else:
            rate = RATE_INR[cat]
        total += rate
        lines.append((cat, round(rate, 4)))
    meta_cost = total * GST
    return {"messages": len(messages), "lines": lines,
            "meta_inr_incl_gst": round(meta_cost, 2),
            "note": "BSP platform fee is additional and is the only thing that "
                    "differs between BSPs -- Meta's rate is identical for all"}

# WHAT TO CHECK
# [ ] you are comparing like with like. Quoted WhatsApp prices differ because
#     some include GST, some include BSP markup and some are Meta list. Ask
#     which of the three any number is, every time
# [ ] marketing is ~7.5x utility. A support message mis-templated as marketing
#     costs 7.5x and is also the wrong category for compliance
# [ ] from 1 Oct 2026, model your AI agent's REPLY COUNT, not just conversation
#     count. An agent that sends five short messages costs five times one that
#     sends one clear message
# [ ] Click-to-WhatsApp entry opens a 72-hour free window; ordinary inbound opens
#     24 hours. Route accordingly
# [ ] the rate is set by the RECIPIENT's country, not yours. An Indian business
#     messaging a UK number pays the UK rate, which is many times higher
# [ ] template rejection and quality-rating downgrades are real operational
#     costs. A downgraded number gets throttled, which is an outage you cannot
#     fix with engineering
Watch out

The 24-hour customer service window has been free since November 2024. From 1 October 2026 Meta charges per service message at the utility rate. For a business whose WhatsApp volume is mostly customers asking questions, the category that was free becomes the category you pay for. Model it before it lands, because it creates a design incentive that did not exist before: a verbose AI agent is now measurably more expensive than a concise one, and most agents are tuned for warmth rather than brevity.

On BSP selection there is one fact that settles most of the evaluation: Meta's per-message rate is identical whichever BSP you use. The only things that differ are the platform fee, the markup on Meta's rate, and the setup charge — which runs from zero to around ₹25,000. Compare those three and the inbox quality. Do not let a BSP present Meta's rate as though it were their pricing.

Voice, and the dead-air problem

Indian support and collections are voice-heavy, and voice is where the per-unit trap bites hardest. Headline rates run ₹2–₹12 a minute with ₹3–₹6 the common mid-market band. Effective cost in production is commonly reported at two to four times the headline once you add the platform fee, telephony markup over TRAI rates, and connect-rate losses. A ₹3/min quote is often ₹6–₹9/min in practice.

The gotcha nobody documents: per-minute pricing pays the vendor for its own latency. If the agent takes twenty seconds to process a response, or asks an unnecessary confirmation question, you are billed for that. Ask every voice vendor for their average silence-to-speech ratio across a sample of 1,000 real calls. It is a fair question, it is measurable, and the reaction to being asked tells you most of what you need to know.

Two more things to pin down before signing. A per-minute rate should bundle all four layers — speech-to-text, the model, text-to-speech and telephony — and some vendors quote one and bill the rest. And if pricing is per attempt rather than per connected call, Indian outbound connect rates of 30–65% mean you are paying for a lot of ringing.

How to use each one — collections

Collections is the part of customer operations where the AI question stops being about quality and starts being about legality. Collections speech is regulated speech.

The RBI responsible business conduct directions on recovery took effect on 1 July 2026 and they are specific enough to implement directly.

Python — collections contact guard, RBI conduct rules as code
from datetime import datetime, time, timedelta
from zoneinfo import ZoneInfo

IST = ZoneInfo("Asia/Kolkata")

# RBI responsible business conduct directions on recovery, effective 1 July 2026.
# These are hard gates. A system prompt telling an agent "do not call at night"
# is not a control; this function is.

WINDOW_START, WINDOW_END = time(8, 0), time(19, 0)

def may_contact(account, channel: str, now=None) -> dict:
    now = now or datetime.now(IST)
    t = now.timetz().replace(tzinfo=None)

    # The window applies to DIGITAL channels too. An automated SMS, WhatsApp
    # message or push notification at 22:00 is a reportable violation, not a
    # grey area -- and automated schedulers are exactly how firms breach it.
    if not (WINDOW_START <= t <= WINDOW_END):
        return {"allow": False, "reason": "outside_0800_1900_IST", "channel": channel}

    # Recovery must be SUSPENDED on an account with an open grievance.
    if account.grievance_open:
        return {"allow": False, "reason": "grievance_pending_recovery_suspended"}

    # Field visits require prior consent. No consent, no visit.
    if channel == "field_visit" and not account.visit_consent_on_file:
        return {"allow": False, "reason": "no_prior_consent_for_visit"}

    # Persistent contact is prohibited. Cap and count, per channel, per window.
    if account.contacts_today(channel) >= account.channel_cap(channel):
        return {"allow": False, "reason": "frequency_cap"}

    # Hardship disclosed ANYWHERE -- including to the support team -- pauses
    # collections contact. This is the integration that is usually missing.
    if account.hardship_flag:
        return {"allow": False, "reason": "hardship_flagged", "action": "human_review"}

    return {"allow": True, "must_record": channel in ("voice", "field_visit"),
            "retain_until": (now + timedelta(days=183)).date().isoformat()}

# WHAT TO CHECK
# [ ] the window is evaluated in IST from the ACCOUNT's perspective, and at SEND
#     time, not at queue time. A batch queued at 18:55 that dispatches at 19:20
#     has breached
# [ ] digital channels are inside the gate. Most implementations gate calls and
#     leave the SMS scheduler outside it
# [ ] recovery calls and visits are RECORDED and retained 6 months, or until
#     related litigation concludes -- whichever is longer
# [ ] agents are IIBF-certified and identify themselves; the identification is
#     in the recording
# [ ] NO remote disabling of a financed device. This is prohibited outright
# [ ] grievance: acknowledged in 24h, resolved in 30 days, recovery suspended on
#     that account while it is pending
# [ ] the hardship flag is shared between SUPPORT and COLLECTIONS. Different
#     vendors and different databases is the usual cause of a technically
#     compliant message that is indefensible in substance
# [ ] outsourcing does not outsource the obligation -- your agency's breach is
#     yours. Audit their logs, do not accept their assurance

The gotcha nobody documents: the contact window is usually implemented on the dialler and not on the scheduler. Voice calls get gated correctly because the dialler is the obvious place to put the rule. The automated SMS reminder, the WhatsApp utility template and the push notification go out through completely different systems, built by a different team, with no window logic at all. The directions cover digital contact. A reminder at 22:00 is a violation regardless of which service sent it.

Watch out

Vicarious liability is the clause that changes procurement. Outsourcing collections does not outsource the obligation. If your recovery agency breaches the window, or fails to record a call, or intimidates a customer, that is your regulatory exposure and your Internal Ombudsman's problem. Contract for log access and audit it yourself. An agency's assurance that it is compliant is not evidence that it is.

Cost per unit

Customer operations — cost per unit

Verified September 2026
AI agent — per resolutiondirect
Intercom Fin $0.99 per outcome (50-outcome monthly minimum; $49/mo entry including 50; runs over an existing helpdesk, no seats required). Zendesk $2.00 per automated resolution. Fini $0.89 / $0.69 / $0.49 by tier. $0.50–$1.00 per resolved conversation with no platform fee is competitive for mid-market.
AI agent — per conversationdirect
Salesforce Agentforce ≈ $2.00. Divide by your resolution rate before comparing — at 60% that is an effective $3.33 per resolution.
AI agent — enterprisedirect
Quote-only. Sierra: year one commonly estimated at $200k–$350k+, annual contracts from ~$150k, implementation $50k–$200k, 3–7 month deployments. Decagon: publishes nothing; platform fee around $50k/yr, third-party contract data from ~$105k to a ~$432k median. Ada from ~$30k/yr.
Helpdesk underneathdirect
$55–$175+ per agent per month. AI-only vendors need one and rarely mention it. Add it to every quote before comparing.
WhatsApp — Meta rate (India)direct
Per delivered message, list, effective 1 July 2026: marketing ₹0.8631, utility ₹0.1150, authentication ₹0.1150. +18% GST (marketing is ₹1.0185 with GST). Marketing is ~7.5× utility. Marketing rates rose ~10% during 2026; utility and authentication held.
WhatsApp — service messagesdirect
Free until 1 October 2026, then charged at the utility rate. This is the line that changes support economics. Inbound opens a 24-hour window; Click-to-WhatsApp opens 72 hours.
WhatsApp — BSP feedirect
Platform fee plus any markup, on top of Meta. Setup ₹0–₹25,000. Meta's rate is the same through every BSP — the markup is the only variable.
Voice AI (India)direct
Headline ₹2–₹12/min, mid-market ₹3–₹6. Effective 2–4× headline in production. Per connected call ₹4–₹15; per successful outcome ₹8–₹25. Enterprise scale improves it — roughly ₹9.94/min at 25,000 min/month falling to ~₹6/min at 25 lakh. Implementation can reach seven figures. +18% GST.
Human benchmark (India)direct
Fully loaded telecaller: ₹30,000–45,000/mo BPO, ₹45,000–70,000 in-house mid-tier, ₹70,000–1,20,000 in-house senior BFSI. Roughly 80–120 dials a day, 25–40 meaningful connects, 22 working days. Compute your own cost per connect before believing any deflection business case.
Grounding stackoss
Infrastructure only. pgvector, BM25, Ragas, Langfuse, Presidio cost nothing. Model inference is the variable, and it is small next to per-resolution vendor pricing at moderate volume.
Watch out

Watch the overage terms, not the rate. From 1 January 2026 one major vendor bills overage automatically each month for customers on non-standard contracts, with overage on by default, no cap and no grace period. It can be switched off — which pauses the AI agent at the limit instead, turning a billing setting into an availability decision. Another charges an AI-resolved ticket as both a ticket and a resolution. Read the metering clause with the same attention you give the rate.

One more note on vendor stability rather than price: the AI support market is consolidating. A roughly $3.6 billion acquisition of a major agent vendor was agreed in June 2026 and had not closed at the time of writing, with pricing unchanged so far. That is not a reason to avoid anyone, but it is a reason to ask what happens to your contract and your data on a change of control.

AdvancedShip it. Failure modes, thresholds and evidence.

Best combinations

CombinationWorks because
Deterministic intent routing → grounded generation → output gateThe dangerous intents never reach a model, and what the model does produce cannot state an unretrieved number.
Assist before deflectA human stays accountable while you learn your own failure modes on real traffic. Cheaper to be wrong.
Hybrid retrieval: BM25 + vectorKeyword catches product names, policy codes and error codes that embeddings blur. Skipping it is the most common retrieval mistake.
Tracing + evaluation suite in CIEvery generation stored with its retrieved context is simultaneously your debugging tool and your "reasonable steps" evidence.
One hardship flag shared by support and collectionsCloses the integration gap that produces compliant messages which are indefensible in substance.
Recontact rate measured alongside containmentThe only honest deflection metric, and the one the vendor's billing definition is biased against.

Combinations that conflict

  • A system prompt as your compliance control. Not evidenceable, not testable, not a control. Put the rule in code that blocks.
  • Generative answers on card block, fraud, bereavement, hardship or complaints. Route these deterministically. There is no upside.
  • Chasing containment past 70–75% without human review. Complaint volume rises as false resolutions compound, and complaints are a regulated process with their own clocks.
  • Accepting the vendor's resolution rate as a quality metric. It is a billing metric that happens to share a name.
  • Gating the dialler but not the SMS scheduler. The recovery contact window covers digital channels.
  • A verbose agent on WhatsApp after 1 October 2026. Chattiness is now billed per message.
  • Collections and support on separate vendors with no shared flag. This is the failure that reaches the ombudsman.

Three recommended builds

Strong and expensive

Build: enterprise AI agent (Sierra or Decagon class) with white-glove configuration, a full helpdesk underneath, an Indian voice platform with real multilingual coverage, a separate collections platform, and ISO 42001 certification.

Use when: contact volume is in the millions, you have a supervisory relationship to defend, and vendor accountability has value independent of cost.

Cost shape: six figures in USD annually before usage, plus implementation in the $50k–$200k band, plus 3–7 months before it answers a live customer.

Trade: you cannot change a refusal threshold on a Friday afternoon. Every adjustment goes through someone else's release process, and the liability stays with you regardless — contracts in this category have been moving exposure toward the deploying firm, not the vendor.

Strong and reasonable — the default

Build: published-price AI agent (Fin class) over the helpdesk you already run → deterministic routing that keeps the dangerous intents away from it → hybrid retrieval on pgvector against a knowledge base you own → your own output gate → tracing with Langfuse and an evaluation suite in CI → WhatsApp through a BSP chosen on markup → voice only where voice is genuinely the channel.

Use when: you have engineers, support volume is material, and you need to be able to explain any individual answer.

Cost shape: roughly a dollar per resolution plus per-message channel costs plus near-zero for the grounding stack.

Trade: you own the gate, the evaluation suite and the knowledge base quality. That is the right trade, because those three are what a regulator asks about and none of them is something a vendor can own on your behalf.

Note

Why the gate stays in-house even when the agent is bought. The vendor's guardrails protect the vendor's reputation; yours must protect your licence. They are not the same specification, and the second one has to be inspectable by your compliance team and testable in your CI. Buying the agent and building the gate is the sensible division.

Strong and lean

Build: assist only — retrieval and drafting for human agents, no autonomous customer-facing answers → a well-maintained knowledge base → WhatsApp through a low-markup BSP with utility templates only → one shared hardship flag → a written escalation and complaint policy.

Use when: early, or regulated enough that an autonomous answer is not worth the first incident.

Cost shape: channel costs plus modest inference. No per-resolution fee at all.

Trade: no deflection, so support cost scales with volume. Accept it. An assist deployment that makes ten agents meaningfully faster is a real result, it carries almost none of the regulatory exposure, and it produces the labelled data that makes a later deflection project work.

Watch out

Whichever grade you pick: capture CSAT at the point of resolution, not 24 hours later, and track “wrong answer given” as a share of escalations. If that figure passes roughly 3%, stop expanding scope and fix retrieval. Expanding coverage while accuracy degrades is the signature of over-automation, and it is visible in complaint volume months before it is visible in a dashboard.

What next

The escalation path above you, and worth knowing before you need it: complaints acknowledged in 24 hours and resolved in 30 days, an Internal Ombudsman at larger institutions, and then RB-IOS 2026, effective 1 July 2026, with awards up to ₹30 lakh for consequential loss and ₹3 lakh for time, expense and harassment. Criminal intimidation under BNS Section 351 runs in parallel for collections conduct.

What reaches the RBI CMS portal about you is a supervisory signal. The useful internal metric is not complaint volume — it is the share of complaints that a customer had to escalate because your first response missed that it was a complaint at all.

What this feeds

Watch out

Everything on this page is illustrative. Customer communications from a regulated firm carry conduct obligations, and collections speech is regulated speech with criminal exposure attached. Nothing here is legal advice. Have your escalation policy, your refusal thresholds and your collections contact logic reviewed by qualified counsel and your compliance officer before a real customer sees them.

Sources

Every figure, rule and date on this page, and where to check it. Entries are typed so you can see which numbers are primary-sourced and which are industry reporting — they are not equivalent, and treating them as if they were is how a confident wrong number gets repeated.

  1. officialWhatsApp Business Platform pricing — the India per-message rates effective 1 July 2026 and the 1 October 2026 change to service-message charging. developers.facebook.com
  2. officialRBI directions on recovery agents and responsible conduct — the 08:00–19:00 contact window covering digital channels, recording and retention, and the prohibition on remote disabling. www.rbi.org.in
  3. officialRBI Ombudsman Scheme (RB-IOS) 2026 — the escalation path, acknowledgement and resolution timelines, and award limits. cms.rbi.org.in
  4. vendorIntercom Fin pricing — the $0.99 per-outcome rate, the 50-outcome minimum and the no-seats model. fin.ai
  5. vendorZendesk AI agent pricing — the $2.00 per automated resolution rate and the January 2026 overage terms. www.zendesk.com
  6. industryEnterprise agent contract data — Sierra, Decagon and Ada ranges, implementation costs and deployment timelines. Third-party compiled — none of these vendors publishes a rate card.
  7. industryIndian voice AI pricing — the ₹2–12/min range, the 2–4× effective multiplier, connect rates and the telecaller benchmark. Industry reporting; verify against your own pilot.

Checked September 2026. Pricing and draft regulation move; the date is part of the claim.

Ask an AI about this page

Opens your assistant with this page as the source, and a question rather than a summary. It will ask what you are building before it answers.

Nothing is sent from here. The link carries only this page’s title and address.