Una campaña llama a una lista de contactos con un agente, dentro de un horario de llamadas y un límite de concurrencia (max_concurrency, hasta 100 llamadas a la vez, y nunca más que el límite de llamadas simultáneas de tu espacio de trabajo), y vuelve a intentarlo con las personas a las que no consiguió localizar.
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" }
]
}'
Los contactos también pueden ser texto CSV con el número de teléfono en la primera columna. consent_confirmed: true es obligatorio: con él confirmas que todas las personas de la lista aceptaron ser llamadas, también por una voz de IA, y EvaSay guarda esa confirmación con la campaña (consent_confirmed_at). La campaña se crea como borrador; inícialo con POST /api/v1/voice/campaigns/{id}/start, y usa pause o cancel del mismo modo. El agente debe estar publicado antes de que empiece una campaña.