Splitters
Send Contact to Splitter
Send a contact into a splitter, which routes them to one of its underlying campaigns.
POST
Send a contact to a splitter and let it pick which campaign to enroll them in. This uses the same
Same fields, same behavior. Custom variables can be sent as flat top-level fields — Zapier transform middleware will nest them into
POST /contacts endpoint as Create Contact — the only difference is that you send splitterId instead of campaignId.
All splitter management (create, update, stats, distribution strategies) is handled by admins in the dashboard. This endpoint is the only one integrators need.
Request Body
Phone number in E.164 format (e.g.,
+15551234567).The ID of the splitter to route this contact through.
Send either
splitterId or campaignId, not both. If both are provided, campaignId takes priority and the splitter is ignored.Full name of the contact.
Flat key-value pairs of custom data to store on the contact. All values must be strings — send numbers as
"50000", not 50000.These variables are passed to the assigned campaign and available for template substitution in SMS, WhatsApp templates, and voice agent prompts as {{company}}, {{leadSource}}, etc.Authentication
Either method works:- JWT token:
Authorization: Bearer <jwt-token> - API key:
X-API-Key: <api-key>— rate limited to 30 writes per minute.
What happens after the contact is created
- The splitter picks a campaign based on its distribution strategy (percentage, time-weighted, or adaptive).
- The contact is created in the chosen campaign with all provided
customVariables. - The distribution decision is logged (visible in the splitter’s Distribution Logs in the dashboard).
- The campaign’s schedule kicks in — calls, SMS, and WhatsApp are scheduled based on that campaign’s configuration.
customVariablesare available for template substitution in all outbound messages.
Existing contacts
If a contact with the same phone number already exists for this admin:- If active: the contact is updated with the new name and
customVariables, then reassigned to the splitter’s chosen campaign. Existing scheduled calls, SMS, and WhatsApp are cancelled and rescheduled. - If soft-deleted: the contact is reactivated with the new data and assigned to the splitter’s chosen campaign.
campaignId contact creation.
Response
Always
true on a successful request.The created or updated contact object.
Errors
| Status | Error | When |
|---|---|---|
400 | Splitter distribution failed: Splitter has no active campaigns | All campaigns in the splitter are deactivated. |
400 | Splitter distribution failed: No valid campaigns found in splitter | All campaigns in the splitter were deleted. |
400 | Invalid phone number | Phone number format is invalid or not in allowed country codes. |
404 | Splitter not found or inactive | Splitter doesn’t exist, was deleted, or is paused. |
429 | Rate limit exceeded | More than 30 requests/minute with API key auth. |
Zapier
The Zapier endpoint also supports splitters:customVariables automatically.