Skip to main content

Sync Data using Webhook

Get everything Menace Voice learned during the call back into your system the moment it ends.
2 min read

The last page covered sending data into a call with API Trigger and initial_context. Now the opposite side: how Menace Voice sends what it learned back out to your system once the call ends.

That extracted data lives in gathered_context. So the full picture is: initial_context is what your backend sends into the call, gathered_context is what Menace Voice extracts from it. A Webhook node is how you get gathered_context back out.

Step 1: Add the node#

Click Add node, scroll down, and you'll find the Webhook node. Add it and open it up.

Step 2: Set the endpoint#

First thing you'll see is the endpoint URL. Paste your backend's webhook URL here. Still testing? Use a free URL from webhook.site, copy your unique URL there and paste it into Menace Voice.

Set the method to POST. If your backend needs auth, add a bearer token or API key right here too.

Step 3: Build the payload template#

This is the important part, it decides exactly what JSON Menace Voice sends. Include both kinds of context: initial_context fields like debtor name, client name, and debt amount, and gathered_context fields like amount to pay, payment method, and sentiment. You can also include the final business outcome with {{gathered_context.call_disposition}}, such as qualified or callback_requested. If workflow-level extraction is disabled or no custom outcome is recorded, this value falls back to the reason the call ended. See Call Dispositions to configure the outcomes.

For every variable you can reference here, see the Webhook Payloads developer reference.

Warning

Variable names in your payload have to match your context fields exactly. If a variable cannot be resolved, its field remains in the payload with an empty string value.

Step 4: Save and publish#

Save the webhook node, then publish the agent.

Step 5: Test it#

Run a test call. When it ends, go back to your webhook receiver. You'll see one request with both initial_context, the data you sent into the call, and gathered_context, what Menace Voice extracted from the conversation, sitting in the same JSON payload.

That's the complete loop: your backend sends initial_context into Menace Voice, Menace Voice runs the call and extracts gathered_context, and the webhook node sends the final structured data back to your backend. For production, swap the webhook.site URL for your real backend URL.

Next Steps#