Une campagne appelle une liste de contacts avec un agent, dans des horaires d’appel et une limite de simultanéité (max_concurrency, jusqu’à 100 appels à la fois, et jamais plus que la limite d’appels simultanés de votre espace de travail), et relance les personnes qu’elle n’a pas pu joindre.
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" }
]
}'
Les contacts peuvent aussi être du texte CSV avec le numéro de téléphone dans la première colonne. consent_confirmed: true est obligatoire : vous confirmez ainsi que toutes les personnes de la liste ont accepté d’être appelées, y compris par une voix d’IA, et EvaSay conserve cette confirmation avec la campagne (consent_confirmed_at). La campagne est créée en brouillon ; lancez-la avec POST /api/v1/voice/campaigns/{id}/start, et utilisez pause ou cancel de la même façon. L’agent doit être publié avant le lancement d’une campagne.