
WhatsApp + Email Trade Follow-Up: Caps, Suppression, and Human Confirm
A WhatsApp + email dual-channel follow-up Agent serves buyers already in the lead store: draft or send on one next-touch clock, read a shared suppression list, and route high-risk sends to human confirm. It is not cold outreach (domain reputation and blast caps: /blog/foreign-trade-outreach-agent-compliance) and not CRM uniqueness itself (/blog/foreign-trade-agent-crm-follow-up). Inquiry stages: /blog/foreign-trade-inquiry-agent-playbook. WeCom/Feishu is identity-bearing domestic IM—do not copy those rules onto WhatsApp (/blog/private-domain-wecom-feishu-agent). GeonAI delivers per-channel guardrails; /agents are capability references only (not a public trial of 363+ presets). Email [email protected].
One-sentence definition
Dual-channel follow-up = one CRM task clock + one cross-channel suppression list + per-channel caps + a human-confirm table. Two independent drips is double-tapping the buyer.
Not outreach, not inquiry, not WeCom
| Motion | Channel | Covered here |
|---|---|---|
| Cold email / domain warmup | Mailbox (ESP) | No—see outreach compliance |
| First inquiry reply, slots, quote handoff | Email / site inbox | No—see inquiry stages |
| Nudge an existing lead | WhatsApp + email | Yes: caps, suppression, human confirm |
| WeCom / Feishu presales | Domestic IM | No—see the WeCom/Feishu post |
What actually breaks
- Turning outreach sequences into WhatsApp templates for scraped numbers
- Separate WhatsApp and email clocks → two hits the same day
- Buyer replies STOP on WhatsApp; email drip continues
- Free-text price, MOQ, or lead time outside a confirmed session
- Follow-up and outreach Agents sharing a direct-send key
Hard rules (paste into the SOW)
- WhatsApp only to numbers in the lead store and allowed for follow-up; scraped numbers are not a cold pool
- If your provider uses a buyer-initiated session window, outside it use approved templates—and those templates still obey caps and human confirm
- Email follow-up still needs an opt-out path; the follow-up sequence is not the cold outreach pool
- Both channels share next_touch_at; a send on one starts cool-down on the other
- Suppression is cross-channel: STOP / unsubscribe / complaint / hard bounce / invalid number; default sync, exceptions only in the runbook
- Writes default to draft; direct-send allowlist covers approved short nudges only—no prices or lead times
Contract do / do not / human-confirm tables: /blog/custom-agent-scope-boundary-in-contract. Follow-up copy must not invent quote fields: /blog/foreign-trade-quotation-agent-guardrails.
Sample dual-channel cap table
| Target | Cap | Notes |
|---|---|---|
| Same WhatsApp number / 7 days | ≤ 3 proactive nudges (exclude buyer replies) | STOP / block → stop that channel |
| Same mailbox / 14-day follow-up | ≤ 2 emails | Unsubscribe → stop email; do not auto-switch to WhatsApp |
| Both channels combined / 7 days | ≤ 4 proactive touches | Clock lives only on the CRM task |
| Buyer already replied today | Pause proactive nudges | Answer questions; quotes still need human confirm |
| Invalid number / email hard bounce | Never reuse that channel | No “try the other channel” unless the runbook allows and a human confirms |
Minimum suppression fields
| Field | When to set | Follow-up Agent must |
|---|---|---|
| do_not_whatsapp | STOP, block, complaint, invalid number | Send no proactive templates to that number |
| do_not_email | Unsubscribe, complaint, hard bounce | Stop follow-up and cold sequences (cold: outreach post) |
| suppress_all_channels | Explicit “do not contact” or legal order | Stop both channels |
| opt_in_whatsapp | Verifiable source (number on the inquiry, card, etc.) | No flag → first WhatsApp is human-confirm |
| next_touch_at | Recalculate after any send or buyer reply | No sequence that bypasses the task clock |
Sends that need human confirm
| Scene | Default | Handoff must include |
|---|---|---|
| First proactive WhatsApp to that number | Human confirm | Opt-in source, talk-track version, lead ID |
| Price / MOQ / lead time / sample fee | Human confirm | Price-list doc ID; model must not fill numbers |
| After STOP, switch to the other channel | Human confirm or forbid | Suppression fields, owner note |
| Bulk WhatsApp templates | Owner confirm | List size, remaining cap, sample for review |
| Approved short nudge (no numeric promises) | Direct send after stable | Still counts toward the combined cap |
Decision rules
- Email follow-up drafts first: lead is in CRM, not unsubscribed, isolated from the cold pool
- Customize before WhatsApp Business API: opt-in field, template list, combined clock, human-confirm table
- Do not open cold WhatsApp: no verifiable number source means it is not follow-up
- Do not share a direct-send key with the outreach Agent: follow-up may nudge; cold blast must not borrow this channel for volume
Anti-patterns (stop the project)
- Scraped WhatsApp numbers with “outreach-style” templates
- Two drips that cannot see each other
- STOP on one channel only
- Pasting WeCom talk tracks into WhatsApp
- Treating 363+ presets as WhatsApp seats
Pilot acceptance
- Combined cap breaches = 0
- First WhatsApp with no opt-in flag and no human-confirm log = 0
- Unconfirmed price or lead time on either channel = 0
- Proactive send after STOP/unsubscribe (unless a written exception) = 0
Do-no-harm metrics: /blog/custom-agent-30-day-pilot-metrics. Trade Agent overview: /blog/what-is-foreign-trade-ai-agent.
How to brief GeonAI
List where WhatsApp numbers come from, whether a Business API and templates already exist, whether email follow-up is split from cold outreach, who owns suppression fields, and which lines may send directly. Email [email protected], /pricing, or Live chat. First-call pack: /blog/how-to-brief-ai-agent-vendor. We accept on the dual-channel clock—we do not promise unlimited nudges with zero complaints.
Frequently asked questions
Can we cold-WhatsApp the way we cold-email?
Do not treat scraped numbers as a cold pool. This post covers numbers already allowed for follow-up in the lead store. Cold email blasts belong in the outreach compliance post.
If the buyer replies STOP on WhatsApp, do we keep emailing?
Default: set do_not_whatsapp and consider suppress_all_channels. Continuing email needs a written exception and human confirm—not a model “trying the other channel.”
How is this different from the outreach compliance post?
That post covers cold-touch domain reputation, daily send caps, and list hygiene. This one covers WhatsApp + email sharing one clock and one suppression list after an inquiry exists.
How is this different from the CRM follow-up post?
That post covers unique keys, stages, and write ACL. This one covers how the two outbound channels are capped and stopped. Without a CRM clock, dual-channel caps cannot land.
Can WhatsApp follow-up reuse the WeCom talk-track library?
No. WeCom/Feishu carry enterprise identity and group rules. WhatsApp is a number channel; opt-in, templates, and STOP semantics differ.
Do the 363+ presets include WhatsApp caps?
No. Presets do not include your opt-in fields, template allowlist, combined clock, or suppression list.