Custom webhooks let you connect Invoca to any system with an API, including systems not featured on the Certified integrations list.In most cases, follow the integration installation guide for your specific Certified integration partner instead — but if you need something more customized, or want to connect to a system without a guided setup, use this guide. Custom webhooks can be harder for Invoca’s team to troubleshoot if something goes wrong.
Step 1: Access your webhooks
Log in to Invoca. In the sidebar, click Integrations, then Manage Integrations, then the Custom Webhooks tile. Click New webhook to create one, or click an existing webhook’s name to edit it. To clone a webhook, use the menu button in the Actions column and select Clone.NoteIf you see an error like
<FIELD> has unknown substitution parameters, a parameter in the webhook has been deprecated. Remove it and save again.Step 2: Choose the webhook type
- Pre-transfer webhooks send data as soon as a caller places a call, before they’re connected — useful for time-sensitive data like giving your call center caller information before the call starts. These are part of the Invoca PreSense package.
- Post-call webhooks send data immediately after the call ends — useful for in-call conversion information and Signal insights.
- Real-time routing webhooks (available in some packages) send data before the call connects, like pre-transfer webhooks, but are used to intelligently route calls within your call centers based on call data.
Step 3: Name your webhook and set its address and HTTP verb
- Enter a name that makes clear what data you’re sending and to which system.
- Choose an HTTP verb: GET (request data), POST (create new records), PUT (create or override matching records), PATCH (edit matching records), or DELETE (delete matching records).
- Paste the destination API’s URL, found in that system’s API documentation.
- If you need to pass a dynamic value in the URL, click Add Param < > — though sending data in the Body tab instead is usually easier to troubleshoot.
Step 4: Choose the data to send or request
Consult the destination system’s API documentation for its parameter or field names. In the Headers tab, you can add metadata headers — most setups won’t need this. Each header has a Name and a Value; click + Add New for more rows, and use the< > button to populate a Value dynamically from the call that triggered the webhook. POST, PUT, and PATCH webhooks default to a Content-Type: application/x-www-form-urlencoded header.
In the Body tab, choose a format: Form Values, JSON, XML, or Plain Text. With Form Values, each row’s Name is typically the destination API’s parameter name, and the Value is an Invoca substitution parameter. The “Omit post parameters with empty values” checkbox helps avoid accidentally overwriting data during post-call events, particularly for webhooks fired by All Transactions or Signals.
Step 5: Set firing conditions
By default, a webhook fires for every call. In the Firing Conditions tab, you can narrow this down:- Profile — only fire for calls in a specific Profile
- All calls — fire for every call
- All transactions — fire whenever call data changes, including Signal or post-call adjustments
- Paid calls — for performance marketing customers, fire only for calls resulting in a payout
- Signal — fire only when a specific Signal occurs