Batch calls let you launch a bulk outbound calling campaign. You choose an agent, a phone number, and a list of recipients — Sniko submits the campaign to ElevenLabs, which dials each contact and runs the AI conversation automatically.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/TheCodeStudioxyz/sniko-conversational-ai/llms.txt
Use this file to discover all available pages before exploring further.
How batch calls work
- You create a campaign with a name, an agent, a phone number, and a recipient list.
- Sniko schedules the campaign in ElevenLabs with a
scheduled_time_unixtimestamp. - ElevenLabs dials each recipient and conducts the conversation using the assigned agent.
- Progress is tracked via
total_calls_scheduled,total_calls_dispatched,total_calls_completed, andtotal_calls_failedcounters.
You must accept the ElevenLabs batch calling Terms & Conditions before submitting your first campaign. Submitting without acceptance returns a
batch_calling_agreement_required error.Creating a campaign
Fill in campaign details
| Field | Required | Description |
|---|---|---|
| Name | Yes | A descriptive name for the campaign |
| Agent | Yes | The AI agent that will conduct each call |
| Phone number | Yes | A number assigned to that agent |
| Scheduled time | No | Date and time to start (defaults to immediate) |
| Timezone | No | Your local timezone for scheduling |
CSV format
Each row represents one recipient. The minimum required column isphone_number.
+12025550100). Rows with an invalid format will fail during dialing.
Validated recipient fields
| Field | Type | Required |
|---|---|---|
phone_number | string (E.164) | Yes |
conversation_initiation_client_data | object | No |
Scheduling
If you provide a scheduled time, Sniko converts it from your local timezone to UTC before sending to ElevenLabs. If no time is provided, the campaign starts immediately (scheduled_time_unix defaults to the current Unix timestamp).
Monitoring progress
Open a campaign from the list to see its detail page. The detail page shows:| Metric | Description |
|---|---|
| Status | pending, in_progress, completed, or failed |
| Scheduled | Date and time the campaign is set to run |
| Total scheduled | Number of contacts in the campaign |
| Dispatched | Calls that have been initiated so far |
| Completed | Calls that finished successfully |
| Failed | Calls that could not connect |
| Progress | Percentage of dispatched vs. scheduled |
Filtering campaigns
From the campaigns list, you can filter by:- Name — partial text search across campaign name and agent name
- Status — show only campaigns in a specific state
Cancelling a campaign
A campaign that has not yet completed can be cancelled from its detail page.Retrying a failed campaign
If a campaign ends with failures, you can retry it:Quota limits
Submitting a new campaign requires thequota.check:batch_calls middleware to pass. If your plan’s batch call quota is exhausted, the POST /batch-calls request returns a 403 error.
Campaign isolation
Each campaign name is prefixed with your customer UUID internally (e.g.[uuid] Campaign Name). The UI strips this prefix on display. When loading the detail page, Sniko verifies the prefix matches your account before rendering — unauthorized access returns a “not found” error.