Convin — internal training

The Meta integration
End to end

How a client's WhatsApp account is connected to Convin Sense, what it costs, every step that can silently break it, and two accounts that got banned learning these lessons.

Session03
SpeakerSudesh
TopicMeta / WhatsApp integration
FormatLive platform walkthrough
Duration~90 min

Contents

One integration, nine ways to break it.

  • 1Why Meta gets its own sessionThe one channel with an external gatekeeper03
  • 2The Meta object modelPortfolio, WABA, numbers, and which one to create05
  • 3The walkthroughConnect, name, describe, and attach a number07
  • 4The 24-hour rolling windowThe limit that banned a client's portfolio12
  • 5PaymentThe step that fails most often, and why15
  • 6Health and bansTwo ladders, and the Snabbit escalation18
  • 7TemplatesCertificate, anatomy, and the approval reality20
  • 8Operating itWhat the dashboard exposes day to day24
  • 9PM lens and prepTakeaways, runbook, questions, reference26
Session 4 continues with Meta error debugging.02
1.0 · Why Meta gets its own session

Every other channel Convin controls.
WhatsApp has a gatekeeper.

AI call

Convin buys the number, Convin dials. No third party can switch it off.

SMS

Carrier rules apply, but delivery is not gated on approval.

Email

Deliverability matters; nobody bans the account.

WhatsApp

Meta owns the account, approves every template, sets the daily limit and can ban the lot.


Which is why the highest-performing channel in Sense is also the one with the most operational surface area. Everything in this session exists because a third party can refuse.

The consequence for a PM

Meta risk is not an infrastructure concern that engineering absorbs quietly. A banned portfolio stops the client's own marketing and support messages too, which turns a Convin incident into a client-wide outage.

Sessions 1 and 2 treated WhatsApp as a channel. This one treats it as a dependency.03
1.1 · Who does what

Three actors, one integration.

The integration cannot be completed by Convin alone, and cannot be completed by the client alone. Both have to be on the same call.

Client's Meta admin
Signs in to Facebook
Grants full portfolio admin
Adds the payment card
Convin
Opens Integrations, names it
Procures + vets the number
Receives the OTP
Meta
Creates the WABA
Verifies the number
Approves templates
The blocker to know

Partial access to the business portfolio is not enough. Without full admin the flow runs all the way to the final step and then fails, so confirm the client is bringing the right person before the call is booked.

Booked correctly, the whole integration takes about ten minutes.04
2.0 · The Meta object model

Portfolio, account, number.

Three levels of containment. Getting the vocabulary right matters because the ban blast radius differs at each level.

Business portfolio

The client's top-level Meta entity, verified against their GST and company documents. Convin cannot create one.

WABA — WhatsApp Business Account

What Convin integrates with. A portfolio holds many.

Number 1one region
Number 2another region
Number 3
Number 4

A template is rejected

That message stops. Nothing else is affected.

A WABA is blocked

That sender stops. The client's other WABAs keep working.

The portfolio is banned

Every WABA the client owns stops, including marketing and support.

Blast radius widens at every level. Section 6 covers how accounts fall down it.05
2.1 · New account or existing

Convin almost always creates a new WABA.

Using an existing WABA

Faster. The number and the payment method are already attached, so it is a straight connection with nothing to set up.

Creating a new WABA

Slower. A new phone number must be procured and verified, and a payment method attached. This is nevertheless the default.


Why the slower option wins

Reuse the client's existing number and two different senders share one WhatsApp thread. The customer sees Physicswallah's own marketing campaign, then immediately: “I am Tara from Physicswallah, would you like to know more about our NEET course?” Same thread, two voices, no explanation.

A separate WABA keeps Convin's outreach in its own thread, with its own display name, its own health score and its own limit. It also means a problem on Convin's sender does not degrade the client's marketing sender.

Isolation is the real argument. Customer clarity is the one the client hears first.06
3.0 · The walkthrough

Connecting the account.

Settingsin Convin Sense
Integrationsadd integration, name it
WhatsApp Business APIchoose the type
Connect with Facebookthe client signs in
Select portfoliofull admin required
What Convin is actually doing

Nothing is pushed to an endpoint and no metadata is exchanged by hand. It is a connection handshake; the whole flow is built on Convin's side and embedded in the product.

Two practical traps

The Facebook step often will not run on a Convin laptop, so drive it from the client's machine. And partial portfolio access fails only at the very end, after everything else is filled in.


Login, for reference

Convin Sense is reached at activate.convin.ai, signing in through Microsoft SSO, then entering the organisation ID.

Verify: Session 2 described SSO as Google or Microsoft. Session 3 states Google cannot be used. Confirm before quoting either.

The click path matters less than knowing which step needs the client in the room.07
3.1 · Naming

Two names, two audiences.

Display name — the customer sees this
Physicswallah

Appears in the recipient's WhatsApp. It is checked against the verified business name on the portfolio, so it has to be the plain company name. “Physicswallah's Max Class JEE Campaign” will be rejected.

Account name — only staff see this
convin-pw-jee-2026

Appears in the Meta business manager. Make it unique and specific. Clients routinely end up with ten accounts all called “Convin”, and then nobody can tell which one is wired to which campaign.


If you do lose track of which account is which
Open the integrationin Convin Sense
Copy the WABA IDauto-populated there
Paste into Meta searchit does resolve
Right accountcross-check the number
Unique account names are a two-second decision that saves an hour later.08
3.2 · The account details

Some of this reaches the customer.

FieldCustomer-visibleNotes
Business categoryYes — shown in WhatsAppEducation, automotive, clothing. It is the first line the recipient reads, and for bought lead lists it may be the only clue who is calling.
Email addressNoA shared company address, matched to the use case: sales@ for a sales campaign, support@ for a service one.
CountryNoSet to the region the numbers will serve.
WebsiteNoThe client's own domain.
Time zoneIndirectlyGoverns when outbound activity is allowed to run.
Category is the only one of these a customer consciously registers. Choose it deliberately.09
3.3 · The phone number

A local-looking number gets answered.

Numbers are procured from Exotel, which lists inventory by region. The prefix is not cosmetic: it changes whether the call is picked up at all.

How the recipient reads the prefix
731 · Madhya Pradeshanswered Reads as a local person calling. The recipient gives it the benefit of the doubt.
831 / 801 · Karnatakaanswered Same effect in that circle.
501 · non-geographicignored Reads unmistakably as a marketing line. Pickup collapses.

Cost

About ₹499 per number per month, recurring. During a pilot Convin absorbs it.

Matching

Use the same number for the call and the WhatsApp sender. One identity is more credible than two.

Ownership

Procurement can be done by the PM directly, or requested from the platform team.

Bar lengths express the argument made in the session; they are not measured pickup rates.10
3.4 · Vetting and wiring the number

A fresh number is blank, and possibly dirty.

ShortlistExotel, filtered by region
Truecaller checkone number at a time, by hand
Purchase≈ ₹499 / month
Forwardto a Convin phone
Receive OTPby voice call
What “clean” means

Dial the candidate into Truecaller and look at what it says. Anything already labelled spam, fraud, or another company's name is unusable. There is no API for this, so it is manual, and a Truecaller premium seat is roughly ₹20,000 for 254 whitelisted numbers.

Why forwarding is needed

An Exotel number is virtual, not a SIM. Call it and nothing happens. But Meta sends a verification OTP to it, so the number is forwarded to a Convin employee's phone through an Exotel flow, and they read the code back during the call.


Choose the voice-call OTP rather than SMS. The session's experience is that the call arrives reliably and the text often does not.

Truecaller vetting is the most tedious step in the whole process and the easiest to skip.11
4.0 · The 24-hour rolling window

The limit counts people, not messages.

It caps how many unique customers you may open a conversation with in a rolling day. Replies do not count, and inbound conversations do not count.

A campaign of 1,000 leads against a 900 limit
900 templates sent
100 fail
the window fillscampaign limit reached

A customer replies

They leave the window immediately, freeing a slot. Free-form messages to them are unlimited.

A customer messages first

No slot is consumed at all. Inbound conversations sit outside the limit.

Nobody replies

The slot stays occupied for the full 24 hours, then the customer counts against the limit again.

Testing tip from the session

If bot messages are not arriving, text the number yourself. An inbound message opens a free-form thread that bypasses the limit entirely, which isolates whether the problem is the limit or something else.

Cooldown on WhatsApp escalates too: roughly 4–5 hours at first, then 24–36 hours.12
4.1 · How the limit moves

Meta raises it for accounts that behave.

250 / daya brand-new account
500 / dayearly activity
1,000 / daysustained sending
2,000 / dayreachable in about five days
Unlimitedmature accounts

There is no published schedule. Meta raises the tier when it judges the account is sending consistently and not attracting complaints.


Where to read it

WhatsApp Manager → Account tools → Messaging limits. Convin can see this for any integrated client, since the integration carries the account details across.

Why it must be checked before a campaign

Some clients are effectively unlimited and need no thought. A newly created account may sit at 250, which a routine 1,000-lead pilot will blow through on day one.

This is a pre-flight check, not a monitoring task. Read the limit before the leads are uploaded.

Limits are per WABA, so a new account for a large client still starts small.13
4.2 · What happens when it is missed

Loadshare: a portfolio banned on day one.

One of the first Sense clients. The rolling window was not yet understood as a hard constraint.

SetupA business portfolio is created from scratch.
LimitIt starts at roughly 500 conversations a day.
Launch1,000 leads are uploaded and sending begins.
BanThe limit is crossed and the whole portfolio is banned.

~500
Daily limit on the new portfolio
1,000
Leads uploaded that day
10–15
Days with no messages at all
All
Of the client's WhatsApp senders, down

The lesson taken: check the messaging limit before uploading, and size the first campaign to the account rather than to the client.

A brand-new portfolio is at its most fragile exactly when it is being demonstrated.14
5.0 · Payment

Two bills, two payers.

The client's card sits on their own WABA and pays Meta directly for every template sent. Convin bills separately for the messages its own model generates.

Message typePaid toRateNotes
Utility templateClient → Meta₹0.12Transactional. Reaches essentially everyone.
Marketing templateClient → Meta₹0.95Promotional. Roughly half the list receives it.
Free-form messageClient → Convin₹0.50Sent inside the 24-hour window. Priced to cover the LLM call.
Verify these three figures before quoting them

Session 2 gave marketing as ~₹0.90 and Session 3 as ₹0.95, and the speaker then corrected himself mid-sentence toward ₹0.15 for a template. The free-form ₹0.50 is new in Session 3. Treat all three as approximate until confirmed.

A 1,000-lead pilot on utility templates costs the client roughly ₹250 in Meta fees.15
5.1 · Why payment is the most fragile step

Most message failures are a card problem.

Meta auto-debitsno fixed billing date
Indian card 2FAan OTP is required
Nobody is watchingthe OTP goes unanswered
Balance accruessilently, for days
Meta stops sendingthe WABA goes quiet

Use a credit card

Debit cards fail more often. Money frequently does not get debited at all.

No billing cycle

There is no monthly invoice date to plan around. Debits happen when Meta decides.

No sensible threshold

Sending has been blocked over an outstanding ₹3, and also over ₹5,000. The trigger is unpredictable.


Where the exposure concentrates: marketing templates. At roughly ₹0.95 each, and up to three sends per lead before a reply, a 1,000-lead campaign accrues a real balance within days. Utility-only pilots rarely reach the threshold, which is why the problem tends to appear only at full deployment.

When a client says “messages stopped”, check the card before checking anything else.16
5.2 · Working around it

Whose card, and three details that bite.

Enterprise clients

Infosec review, no single person authorised to attach a card, and often a corporate credit line instead. Expect this to take time and involve their finance team.

Mid-market and startups

Frequently the founder's own card, added on the call. Convin has also put its own CEO's card on client accounts to unblock a pilot, since the pilot spend is only a few hundred rupees.


Default, not backup

A card can be attached as default or backup. A single card added as backup will never be charged. Always set default.

The GST field

Marked optional in the Meta form. It is not. Leave it blank and messages will not send.

Credit-line BSPs

Karix and AiSensy among others front the payment and bill the client, which removes the auto-debit failure entirely.

Adding the card triggers an OTP to whoever owns it, so make sure that person is reachable at the moment the integration call reaches this step.

Payment is the last step of the integration and the one most likely to be left half-finished.17
6.0 · Health and bans

Two ladders, both only go down.

Template category — degrades with recipient complaints
Utilitycheapest, highest delivery
Marketingdowngraded, costs more, reaches less
Paused or rejectedthe template stops working
Account health — degrades with reports and blocks
Greenhealthy sender
Yellowwarning; act now
Redthe WABA is blocked
Portfolio bannedevery account the client owns

A block is recoverable

A blocked WABA can be appealed. Meta's review is largely automated, and a first appeal is often granted.

A repeat offence is not

Appeal, then resume the same behaviour, and Meta bans the whole portfolio. There is no second review.

Health is visible in Convin under Manage. Watch it before Meta acts on it.18
6.1 · The escalation, in full

Snabbit: from blocked to banned in eight days.

  • 01
    A mismatched audienceSnabbit buys lead lists from a marketing agency and uses Sense to recruit home-service workers. Much of the purchased list turned out to be educated professionals.
  • 02
    A message that reads as an insultBeing asked whether you would like to become a maid lands badly with that audience. The scripted rebuttal, that education is no barrier, made it worse rather than better.
  • 03
    Mass reportingRecipients reported the sender in volume. Account health fell and the WABA was blocked.
  • 04
    Appeal grantedA review was raised stating no spam had been sent. Meta's automated review reopened the account.
  • 05
    The same campaign resumedWithin roughly seven to eight days the entire business portfolio was banned. Every WABA the client owned went with it, including their marketing and service senders, and a new portfolio had to be built from scratch.
Targeting is a deliverability control, not only a conversion one.19
7.0 · Templates

First, a step that silently blocks everything.

Check statusthe number shows pending, not connected
Copy certificatea long hex string, in Meta
Register in Convinpaste it, PIN 123456
Connectedmessages can now flow

How you notice

The phone number sits at pending or in progress rather than connected. Nothing errors loudly; messages simply never leave.

The PIN

Always 123456. It is a constant, not something generated per account, and it does not need to be requested from anyone.

This is not a step the client needs to be present for. It can be completed afterwards by anyone on the Convin side with access to the integration.

Small step, total blast radius. Check it first when a fresh integration is silent.20
7.1 · Template anatomy

What you actually fill in.

Body text, as authored

Hi {{1}}, I am reaching out regarding your recent purchase of {{2}}. Can we speak now to know more about it?

NameA working label. Internal only.
CategoryUtility, marketing, or authentication.
VariablesDouble braces. Each needs an example value.
DescriptionPlain English: what belongs in this slot.
Data mappingBind straight to a CRM field.

Two ways a variable gets its value
Mapped — deterministic

Point the variable at a CRM field using the exact format CRM_metadata.age. No model involved, so no room for it to guess wrong.

Described — inferred

Leave the mapping empty and the LLM fills the slot from the conversation, guided only by the description you wrote.

Map what you can. Describe carefully what you cannot.21
7.2 · How a template gets filled at runtime

The description exists for the model, not for you.

NBA generatedwhat to do next
Channel chosenWhatsApp, this time
Response generatedfrom the agent prompt
Template or free-form?validated
Overlay and sendvalues into slots

When the answer is “template”, the generated response is not sent as written. It is handed to the template, and the model has to decide which fragment of its own output belongs in which numbered slot.

Without a description

The model sees a response and a template and is left to infer the pairing. The session reports substantial inaccuracy here.

With a description

“The vehicle the customer purchased” tells the model exactly what to look for. Accuracy improves because the ambiguity is removed at authoring time, not at inference time.

A three-word description is the cheapest reliability improvement available anywhere in the product.

This is prompt engineering surfaced as a form field for non-technical operators.22
7.3 · Getting approved

Almost everything lands in marketing.

Where a use-case template actually ends up
Marketing~99% Costs roughly seven times more and reaches about half as many people.
Utility~1% Described as roughly one case in a thousand for a genuine sales use case.

Approval time

Thirty seconds to twenty minutes is normal. A full day happens. It is not queue depth, it is the account's disciplinary history.

Read-only in Convin

Templates cannot be edited from the Convin dashboard. Change them in Meta and they re-enter review.

Category can drop

An approved utility template can be downgraded to marketing later if recipients complain, then paused.

Why pilots still use utility

Pilots are small enough that a handful of utility templates can be crafted to qualify legitimately. At full deployment the use cases are broader, categories are mixed, and marketing rates apply. That is the moment cost jumps and the payment problems in section 5 surface.

Budget for marketing rates at deployment even if the pilot ran on utility.23
8.0 · Operating it

What you can see without opening Meta.

Not everyone has access to the client's Meta business page, so the essentials are mirrored into Convin under Manage.

Quality rating

The account health signal. The thing to watch daily.

Messaging limit

The current rolling-window tier.

Verification status

Whether the display name cleared review.

Health status

Green, yellow or red for the sender.

Delivery analytics

Messages sent and delivered, summarised over the last 24 hours.

Template status

Per template: approved, pending, downgraded, paused.


This view is an account-level summary. Per-campaign performance lives in campaign analytics, which is where you go to explain a specific campaign's numbers rather than the account's health.

Meta page access can be requested, but the mirrored view answers most day-to-day questions.24
8.1 · Beyond the first message

Media, and the errors coming next session.

Media attachments

The first message is always plain text. After that, documents and images can be sent.

Configured under AI messages → media files: upload the file, then write a trigger condition in plain language. Deciding whether the condition is met is itself an LLM call, so the attachment fires only when the conversation warrants it.

Error analytics

WhatsApp activity shows templated and non-templated messages attempted, delivered and failed, with a reason against each failure.

Roughly seven to eight distinct Meta errors recur in practice: payment, marketing limits, template state and others. Reading them is the subject of the next session.


Convin does not currently send images or documents as a matter of course, but it does analyse inbound ones. The outbound capability exists for cases like sending a service document mid-conversation.

Homework set in the session

Access to the app organisation has been granted to everyone. Work through the platform, then post questions in the Convin Sense training channel rather than saving them for the next call.

Next session: reading Meta errors, on a real client where delivery failed.25
9.0 · PM lens

Five things this session tells you.

  • 01
    The best channel is the one you do not ownWhatsApp outperforms, and Meta can switch it off. Every process in this session is the cost of renting that reach.
  • 02
    The dangerous failures are silentA lapsed card, an unregistered certificate, a filled rolling window. None of them throw an error at the operator; messages simply stop.
  • 03
    Targeting is a deliverability controlSnabbit was not banned by a setting. It was banned by pitching the wrong offer to the wrong list, which is product and content work.
  • 04
    Recovery is asymmetricA first block is usually appealable. A repeat offence takes the whole portfolio. That should change how hard you push after any warning.
  • 05
    Manual steps mark the roadmapTruecaller vetting by hand, OTP forwarding to a personal phone, a card added on a call. Each is a real operational cost and an obvious thing to design away.
PM framing. Analysis layered on the session, not claims made in it.26
9.1 · Failure-mode runbook

Messages stopped. What do you check?

SymptomLikely causeWhat to do
Nothing sends after a fresh integrationCertificate not registeredNumber shows pending, not connected. Register with PIN 123456.
Sending stops after a few days liveCard auto-debit failedCheck the WABA payment settings. Clear the balance, set the card as default.
Part of a campaign fails on day oneRolling window exhaustedRead the messaging limit. Size the batch to the account, not the client.
Messages send but few arriveMarketing category, or a degraded templateCheck template category and quality rating. Utility where the context allows.
Delivery falls over timeAccount health droppingWatch quality rating in Manage. Pause before Meta forces the issue.
Nothing sends, no obvious causeGST field left blankIt is marked optional in Meta and is not. Fill it in.
Calls not answered at allNumber is spam-flagged or non-localRe-check in Truecaller. Prefer a regional prefix matching the lead base.
Ordered roughly by how often each one is the answer.27
9.2 · Interview prep

Questions an interviewer will actually ask.

Risk“What is the biggest operational risk in Sense?”Meta. A banned portfolio takes down the client's own marketing and support senders, not just Convin's outreach.05 · 18
Incident“Tell me about something that went wrong.”Loadshare: a new portfolio at a 500 limit, 1,000 leads uploaded, banned for 10–15 days. The control that came out of it is a pre-flight limit check.14
Judgement“Snabbit got banned. Whose fault, and what would you change?”Not a settings failure. Wrong offer, wrong list, and a rebuttal that made it worse. Fix targeting and message framing.19
Economics“Why does the client pay Meta separately?”Template delivery is Meta's charge. Convin bills only for free-form messages, which cover the LLM call.15
Diagnosis“A client says WhatsApp stopped. First three checks?”Card auto-debit, certificate registration, rolling-window limit. In that order.27
Depth“What would you automate first?”Truecaller vetting. It is manual, per number, and there is no API, so it is a product-ops problem rather than a script.11
This session rewards specifics: names, numbers, and what changed afterwards.28
9.3 · Reference card

The numbers, in one place.

Utility template₹0.12client → Meta
Marketing template₹0.95verify; S2 said ~₹0.90
Free-form message₹0.50paid to Convin
Number rental₹499 / moper number, Exotel
Truecaller premium₹20,000254 whitelisted numbers
Starting limit250 / daya brand-new WABA
Reachable limit2,000 / dayin about five days
Certificate PIN123456constant, never generated
Integration call~10 minwith the right admin
Utility approval~1 in 1,000for a real sales use case

Vocabulary

Portfolio the client's top-level Meta entity.  ·  WABA a WhatsApp Business Account inside it; what Convin integrates with.  ·  Rolling window unique customers you may initiate with per day.  ·  BSP a provider such as Karix or AiSensy that fronts payment on a credit line.

All figures from Session 3. Approximations preserved as given.29
9.4 · Before you quote any of this

Three things the recordings disagree on.

Each of these is stated differently across the two sessions, or corrected mid-sentence by the speaker. Confirm them internally rather than picking one.

Sign-in method

Session 2: SSO via Google or Microsoft.

Session 3: “We cannot log in through Google.” Microsoft only.

Ask which is current. It is the first thing you would do on the job.

Marketing template rate

Session 2: approximately ₹0.90 per message.

Session 3: ₹0.95, then “cross check this number, what we charge is 0.15 for a template.”

Three figures, one message type. Get the real card rate before using it in an argument.

Free-form message rate

Session 2: not mentioned.

Session 3: ₹0.50 per message, billed by Convin rather than Meta, to cover the LLM call.

New information. Worth confirming it applies to every free-form send.

Saying “I would check that” is a better answer than confidently quoting the wrong figure.30