Skip to main content
Before you POST: Lead setup with your campaignId — copy call.lead / email.lead / whatsapp.lead. Optional Validate lead (nothing is created).

Direct lead push

ERP-style events

  1. Map eventType → campaign via Settings or POST /api/v1/event-routes
  2. POST /api/v1/events with eventType + phone (+ consent)
Full walkthrough (list templates → fill params → send): Send WhatsApp and email.

Direct WhatsApp + email (no dial)

Templates are resolved automatically: request ids → campaign Follow-up pick → Omni default verified profile + attached template. You do not need to turn campaign Follow-up on if Omni already has the profile and template.
Optional overrides: whatsappTemplateId, whatsappProfileId, emailTemplateId, emailProfileId from GET /api/v1/omni/templates. Pass merge fields with the lead:
Omit the clocks to send as soon as Calling_system1 picks up the queue. Poll GET /api/v1/contacts/{id} for whatsappQueueStatus / emailStatus and the pending template ids.

Register then follow-up

  1. POST /leads with "channel": "none"
  2. POST /api/v1/contacts/{id}/followups

Status + conversation back to CRM

  1. Save contactId from POST /leads
  2. Poll GET /api/v1/contacts/{id} (see lastCall) or listen for call.status webhooks
  3. GET /api/v1/contacts/{id}/calls — dial list (hasAnalysis, optional summary)
  4. GET /api/v1/contacts/{id}/calls/{callId} — transcript/turns + normalized analysis (no internal blobs)
Analysis can lag call completion — poll until hasAnalysis: true. Optional: register HTTPS webhooks in API Access → Notifications (X-Ondial-Signature).