Add contact to dynamic campaign
Push a single contact into a dynamic bulk-call campaign in real time. Dynamic campaigns are created from the dashboard (Bulk Call > Create New Campaign > Dynamic Campaign) and stay alive waiting for contacts, so this webhook is how you feed them from a CRM, form, or automation platform. The contact is queued immediately, and the campaign starts calling it as soon as it is within operating hours.
campaign_idrequiredReseller keys only: act as one of your clients by its user id. Omit it to act on your own account. [How acting for a client works](/docs/reseller/your-clients/acting-as-clients).
Contact phone number in international format (e.g., +15551234567).
Key-value pairs passed to the agent as context for this call, so the agent can reference them during the conversation (e.g. the contact's name or reason for the call). Match these keys to the variables used in your agent's welcome message or prompt.
curl -X POST 'https://omnidim.io/api/v1/calls/bulk_call/{campaign_id}/add_contact' \ -H 'Authorization: Bearer YOUR_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "user_id": 1234, "to_number": "+15551234567", "custom_variables": { "name": "Demo User", "interest": "Home Insurance" }, "metadata": { "crm_lead_id": "lead_9876", "source": "website_form" } }'
{ "status": "success", "message": "Contact added successfully", "campaign_id": 123, "line_id": 4567, "campaign_status": "in_progress", "to_number": "+15551234567" }
BearerAuthAuthorizationBearer <token>Bearer token authentication. Obtain your API key from the OmniDimension dashboard.
campaign_id*integerID of the dynamic campaign to add the contact to.
application/jsonuser_id?ClientUserIdReseller keys only: act as one of your clients by its user id. Omit it to act on your own account. How acting for a client works.
to_number*stringContact phone number in international format (e.g., +15551234567).
custom_variables?Key-value pairs passed to the agent as context for this call, so the agent can reference them during the conversation (e.g. the contact's name or reason for the call). Match these keys to the variables used in your agent's welcome message or prompt.
metadata?Key-value pairs stored on the contact for your own tracking (e.g. CRM or lead IDs). Not shared with the agent.
Response body
application/jsonContact accepted and queued. campaign_status reflects the
campaign state after the contact was added (in_progress when
calling resumes, or waiting / auto_paused when the contact
is queued for the next operating window).
application/jsonstatus?stringmessage?stringcampaign_id?integerline_id?integerID of the new contact record in this campaign.
campaign_status?stringto_number?stringpost_call_actions_ignored?Present only when a contact carried __post_call_actions.
Bulk campaigns do not honor it: the key is removed from
those contacts and one item with code unsupported_route
is returned.
Was this page helpful?
Create bulk call
Create a new bulk-call campaign. Only name, phone_number_id and a contact_list are needed to dial a list now; every other field adds one behavior on top (drafts, rotation, filtering, scheduling, retries, dynamic feeding).
Bulk call details
Get detailed information about a bulk-call campaign.
