CM · Client Communication
Communications Hub & Drip Campaign
The full scope behind "Comms, drip campaign": all outbound/inbound client communication across channels, plus automated nurture sequences — every message logged to the Deal Thread alongside status and owner.
Part A · Communications Hub
Unified thread per deal
All channels in one timeline against deal_id; every message logged to CommsMessage + ActivityLog.
Two-way inbound capture
Replies captured via webhooks → auto follow-up task → lead moves to CONNECTED.
Templates + merge fields
{{company}}, {{quote_no}}, {{tracking_link}}… pulled from the deal & enrichment_data. Multi-language for export buyers.
Delivery & read receipts
Status per message: queued → sent → delivered → read → replied (or bounced/failed).
Scheduling & time-zones
Send from a shared or rep identity; respect the recipient's time-zone window.
Consent & opt-out
Unsubscribe / STOP handling, consent capture, suppression list (GDPR / DND aware).
Part B · Drip Campaign Engine
Automated multi-step sequences that keep leads and deals warm without manual chasing.
→ Step 1 email (wait 2 days) → Step 2 email reminder (wait 3 days)
→ condition: replied? → EXIT | opened, no reply → Step 3
→ sequence exhausted, no engagement → create Task / escalate
Triggers & segments
Auto-enroll on status/event; segment by source, region, product, value.
Steps & branching
Ordered steps, per-step channel/template/delay, conditional paths & goal/exit.
Throttling & quiet hours
Rate limits + do-not-disturb windows per region; suppression respected.
Personalization & A/B
Merge fields + enrichment; optional A/B content per step.
Approval
Campaigns & templates need manager approval before going live.
Task hand-off
Exhausted with no engagement → follow-up Task, never silently dropped.
Data model additions
| Entity | Key fields |
|---|---|
| CommsMessage | deal_id · channel · direction · from · to · subject · body · template_id · status · provider_ref · sent_at · read_at |
| MessageTemplate | name · channel · subject · body · locale · merge_fields · approved_by · active |
| Campaign | name · trigger · segment · status (Draft/Active/Paused) · approved_by |
| CampaignStep | campaign_id · order · channel · template_id · delay · condition |
| CampaignEnrollment | campaign_id · deal_id · current_step · status · enrolled_at · next_send_at |
| Consent / Suppression | contact · channel · opted_in · unsubscribed_at · reason |
Providers (provided by the Client Company)
| Channel | Provider options |
|---|---|
| Amazon SES · SendGrid · Mailgun · SMTP |