API-only end-to-end
You can run a full outbound campaign without the dashboard using/api/v1/batch-call. Authenticate with x-api-key or a dashboard Bearer token.
| Step | Endpoint | What it does |
|---|---|---|
| 1 | POST /api/v1/batch-call/create | Create campaign: attach agent (or workflow), caller phone (caller_phone_id from GET /api/v1/phone), variable_names, batch_size. |
| 2 | POST /api/v1/batch-call/upload-json/{batch_id} | Store target numbers + variables (or use CSV upload / upsert — see Platform REST APIs). |
| 3 | POST /api/v1/batch-call/start/{batch_id} | Launch campaign — starts dialing in waves of batch_size. |
| 4 | GET /api/v1/batch-call/{batch_id}/status | Batch status + counts (not_started, calling, completed, …). |
| 4 | GET /api/v1/batch-call/{batch_id}/data | Per-number status, errors, and variables. |
user_id is optional — the server uses the API key owner or signed-in user.
Add targets (JSON):
{{name}} and {{company_name}} in the agent system prompt so each call is personalized.
Full route list, curl examples, and OpenAPI schemas: Platform REST APIs — Outbound and the Batch calling section in the Voice Agent API reference.
Dashboard workflow
1. Create a new batch
-
Log in to Kupe AI
Go to https://app.kupe.in and sign in. -
Open Outbound
Click Outbound in the sidebar. -
Create a batch
Click Create Batch. -
Fill in the form
- Batch Name — A clear name for the campaign (e.g. “Nov Support Followups”)
- Description — Short summary (e.g. “Follow-up calls for November demo requests”)
- Phone Number — The outbound number calls will use (must be connected to your account)
- Agent / Workflow — Choose the Agent or Workflow that will handle each call
- Variable Names — Comma-separated names for variables used in the agent prompt (e.g.
name,company_name,appointment_time) - Batch Size — Maximum concurrent calls per wave while the campaign runs
2. Prepare your CSV
Your CSV must include:- A column for to_phonenumber
- Optional columns for any variables you defined (names must match the variable names above)
- Phone numbers in E.164 format (e.g.
+1234567890)
- Use a header row.
- Remove extra spaces and hidden characters.
- Validate phone numbers before upload to reduce errors.
3. Upload CSV to the batch
- From the Batch Calling list, open the batch you created to go to Batch Details.
- Click Upload and select your CSV.
- (Optional) Click Template to download a sample CSV for the correct format.
- Map CSV columns to the fields shown (e.g.
to_phonenumberand variable columns). - After selecting the file, review the preview; the UI may warn about invalid numbers.
- Uploaded contacts appear in the Call Recipients table with Phone Number, Status, and Variables.
4. Launch the campaign
When the upload has been processed and the contact count looks correct:- Click Launch Campaign.
POST /api/v1/batch-call/start/{batch_id} when using the API.
Tips and validations
- Use E.164 phone format (
+<countrycode><number>). - If rows are rejected, download the error report or fix the CSV and re-upload only failed rows.
- Test with a small batch size (e.g. 10) first to verify agent behavior.
- Poll
GET .../{batch_id}/statusafter launch to track campaign progress.