Een campagne belt een lijst contacten met één agent, binnen belttijden en een gelijktijdigheidslimiet (max_concurrency, tot 100 gesprekken tegelijk, en nooit meer dan de limiet voor gelijktijdige gesprekken van je werkruimte), en probeert het opnieuw bij mensen die niet bereikt zijn.
curl https://evasay.com/api/v1/voice/campaigns \
-X POST \
-H "Authorization: Bearer sk-your-key" \
-H "Content-Type: application/json" \
-d '{
"name": "Appointment reminders",
"agent_id": "AGENT_ID",
"phone_number_id": "PHONE_NUMBER_ID",
"timezone": "America/New_York",
"window_start": "09:00",
"window_end": "18:00",
"max_concurrency": 2,
"max_attempts": 2,
"retry_delay_min": 60,
"consent_confirmed": true,
"contacts": [
{ "phone": "+14155550100", "name": "Alex", "appointment": "Tuesday 3 pm" }
]
}'
Contacten kunnen ook CSV-tekst zijn met het telefoonnummer in de eerste kolom. consent_confirmed: true is verplicht: hiermee bevestig je dat iedereen op de lijst ermee akkoord is gegaan gebeld te worden, ook door een AI-stem, en EvaSay bewaart die bevestiging bij de campagne (consent_confirmed_at). De campagne wordt als concept gemaakt; start haar met POST /api/v1/voice/campaigns/{id}/start, en gebruik pause of cancel op dezelfde manier. De agent moet gepubliceerd zijn voordat een campagne start.