Call Flows, Webhooks, and Custom Tags
Call Flows, webhooks, and Custom Tags work together to control call handling and exchange data with your systems:
- Call Flows define reusable routing and execution logic.
- Incoming Webhooks add data before a call is routed or update an existing call.
- Outgoing Webhooks send selected call events to another system.
- Custom Tags carry the fields used by routing, reporting, and integrations.
This page is an overview. Use the linked guides for payload formats, configuration details, and testing.
Build and assign a call flow
Section titled “Build and assign a call flow”- Open Call Flows and create a flow with the visual builder.
- Save the flow.
- Edit the campaign and open Routing Configuration.
- Set Execution Mode to Call Flow, select the saved flow, and save the campaign.
Creating or editing a flow does not assign it to a campaign. See Build a call flow for the detailed workflow.
Receive data with incoming webhooks
Section titled “Receive data with incoming webhooks”Open Webhooks → Incoming to create a configuration. Copy the generated URL from the saved configuration and keep its authentication key private. For pre-call data, the URL uses this format:
https://webhooks.moja.cloud/call-data?moja_auth_key=YOUR_AUTH_KEYSend caller_id and the custom fields you want to associate with the caller. Attach the incoming webhook to the receiving campaign and create matching Custom Tags for those fields.
Webhook receipt does not by itself confirm that a call was enriched. If arrival timing is uncertain, place Wait For Pre Call Webhooks before routing or other steps that depend on the data.
Other incoming webhook types update existing calls and use different endpoints and payloads. Follow the Inbound Webhooks Guide for authentication, matching, payloads, and testing.
Send data with outgoing webhooks
Section titled “Send data with outgoing webhooks”Open Webhooks → Outgoing. Create a configuration, select an event type, and define the destination, HTTP method, and request template.
Available event choices include:
- Incoming call, connected, hangup, and failure
- Completed and converted
- Connected-duration milestones at 5, 15, 30, 45, and 60 seconds
Each configuration selects one event type. Create additional configurations when you need different events or receivers.
After saving, attach the configuration to the campaign or the relevant target or RTB formula. Creating a configuration alone does not send notifications. See the Outbound Webhooks Guide for request templates and delivery testing.
Carry context with Custom Tags
Section titled “Carry context with Custom Tags”Open Custom Tags to define the custom fields used by your workflow.
Supported sources include Incoming Webhooks, DNI landing-page data, Inbound RTB parameters, and Call Flow tagging nodes. Configured Voice Agent collection and Data Enrichment mappings can also supply tag values.
Use consistent lowercase names and references, such as lead_source and [lead_source]. Tag matching is case-insensitive; existing uppercase or mixed-case references continue to resolve.
Verify that expected values reach the call record before relying on them in downstream steps. To select a Custom Tag as a Reporting column, first add it to the account’s Custom Tags list.
Verify the complete workflow
Section titled “Verify the complete workflow”Check the campaign’s Execution Mode and selected flow, webhook attachments, caller matching, and resulting call tags.
Review webhook traffic under Webhooks → Incoming Requests and Webhooks → Outgoing Requests, then inspect the test call in Reporting.
For the distinction between integrations, availability checks, and routing, see Understanding Webhooks, Agent Availability, and Call Flow.

