1
Create a contact
2
Record consent with evidence
evidence_ref or evidence_text. Set scope_type to campaign and add a scope_id to limit consent to one campaign.3
Create a campaign
A campaign needs an agent, the numbers it may call from, a purpose, and calling windows in the contact’s local time.Days run from 0 for Sunday to 6 for Saturday. Minutes count from midnight, so 600 is 10:00 and 1020 is 17:00. Your windows can only narrow the legal calling hours, not widen them.
4
Enrol contacts
Add existing contacts with
POST /v1/campaigns/{id}/contacts.To bring in many at once, upload a CSV with an e164 column to POST /v1/contacts/imports. Other columns become contact attributes. The upload needs an attestation of how consent was obtained, and a consent_kind and consent_source. Pass a campaign_id to enrol everyone imported. Check progress with GET /v1/contacts/imports/{id}.5
Start the campaign
POST /v1/campaigns/{id}/pause; active calls continue. Resume with .../resume.6
Watch results
GET /v1/campaigns/{id}/stats returns counters: calls placed, answered, humans, machines and opt-outs. GET /v1/compliance/decisions shows why any contact was or was not dialed.When someone asks to stop
Record it right away withPOST /v1/compliance/revocations. The number joins your internal Do-Not-Call list and is not called again. The agent can also record an opt-out during a call with the opt_out tool.
Do-Not-Call lists
You bring your own Do-Not-Call registrations for outbound campaigns. Larynth also applies its own opt-out list to every account.Retries
The campaignretry_policy sets the delay before retrying after no answer, busy, a failure or a left voicemail. A delay that is not set means no retry. max_attempts caps total tries per contact.