Skip to main content
Use a webhook when an external system should add contacts to a Continuous Calling campaign. Requests to an active campaign add calls to its queue; the campaign’s calling schedule determines when they can run. Draft-only field capture is described below. Phonely does not deduplicate accepted webhook requests. If the sending system retries a request, it can queue another call. Prevent duplicate requests before sending them when one contact should produce only one call.

Configure the webhook

During campaign setup:
  1. Create a Continuous Calling campaign and choose Webhook in Call initiation.
  2. In Source setup, copy the webhook URL and API key. Send a JSON POST with the key in the X-Authorization header.
  3. To capture fields from a request, open Live test, select Start listening, and send a representative test request. This draft-only test captures field names without queuing a call. You can also declare fields by hand on the Manual tab.
  4. In Calling hours, configure any per-person timezone or calling-window field. If using Internal routing, choose the dial-out-number field in Number routing.
  5. In Variables, map the remaining source data to the variables used by the outbound flow.
For a campaign that has finished setup, edit webhook fields manually in Settings > Call initiation and select Save changes. Live test is unavailable after setup; requests to an active campaign are contacts to call. Include phone_number for the number to call. The following example also includes optional scheduling and dial-out fields. Declare the fields you send and enable the corresponding controls in Calling hours or Number routing; adding an optional field to the request alone does not turn that behavior on.
A calling_window narrows the campaign’s calling hours for that contact only. See calling windows. Keep the API key private. Do not place it in client-side code, screenshots, or documentation examples.

Keep the schema aligned

Update the declared fields whenever you add, rename, or remove a top-level field. During draft setup, capture another request with Live test or edit the list on Manual. After setup, use Settings > Call initiation and save the changes. Then review the routing, scheduling, and flow-variable mappings that use those fields.

Verify the trigger

Use a phone number you control and send a representative request. Confirm that:
  1. the call appears in the campaign queue;
  2. the phone number, timezone, and optional dial-out number or calling window resolve correctly; and
  3. the selected flow receives the expected mapped values.
Testing the webhook can queue and place a real outbound call when the campaign is running.
Last modified on October 19, 2026