Match one documented trigger to one downstream action
Build webhook automation by matching one documented trigger to one downstream action. Subscribe to a deal event for outbound workflows, or send an HMAC-SHA256-signed POST for inbound intake. The receiving tool—not the webhook—chooses the Slack channel, spreadsheet, owner, and message. Test the observed payload before mapping fields that the reference does not show for that event.
Deal Flow supplies the documented deal-event and signed-intake surfaces. Your n8n workflow, spreadsheet connector, form automation, or notification service consumes that contract and performs the routing.
Contract checked August 31, 2026 against the Deal Flow webhook reference and the Mautic and n8n guide.
Four webhook automation recipes
Each recipe separates the event or request that starts the flow, the fields the consumer reads, and the routing decision that stays outside the webhook.
1. Send a stage-change alert to Slack through n8n
- Receive the event. In Mautic’s native webhook settings, subscribe the destination to
dealflow.deal.stage_changedand use an n8n Webhook trigger as the destination. - Check the event value. In n8n, continue this branch when
eventequalsdealflow.deal.stage_changed. - Build a useful message. Format the deal title, new stage, pipeline, timestamp, and the person identified by
changed_by.name. Keepdeal.idfor correlation. - Route and send. Let n8n apply your channel rule and pass the formatted message to Slack. The consumer owns that destination logic.
Event name and fields come from the outbound event catalog and stage-change payload example, checked August 31, 2026. The n8n guide documents the generic Webhook-trigger path to Slack.
2. Add each newly created deal to a spreadsheet
- Subscribe to creation. Configure the outbound destination for
dealflow.deal.created. - Capture a test delivery. Create a representative deal and inspect the delivery log before mapping columns. The reference publishes a stage-change body, not a separate created-event schema.
- Map confirmed paths. Where the test delivery contains the documented example paths above, map them to timestamp, deal ID, title, amount, status, and pipeline columns.
- Write the row. Let the spreadsheet consumer select the destination sheet and its append or update rule. Retain
deal.idas the stable correlation value for later automation.
The webhook reference, checked August 31, 2026, documents the created event name, the stage-change example paths, and Mautic delivery logging. It does not publish a separate body for this event.
3. Create a deal from an external form tool
{
"title": "Website consultation",
"amount": 25000,
"close_date": "2026-10-15",
"contact": {
"email": "buyer@example.com",
"first_name": "Avery",
"last_name": "Chen",
"company": "Example Company"
},
"custom_fields": {
"source_system": "external-form",
"form_id": "consultation"
}
}
- Prepare a source. Use its source-specific endpoint and secret, with the intended default pipeline for newly created deals.
- Map the form. Build a JSON body from the documented deal, contact, and custom-field names. The sender decides which form answers fill those fields.
- Sign the exact bytes. Compute HMAC-SHA256 over the raw body with the source secret, then send
X-DealFlow-Signature: sha256=<hex>. - POST the request. Send it to
/deal-flow/settings/inbound-webhooks/{sourceId}/receive. Contact matching uses the documented email path; an invalid or missing signature receives HTTP 403.
Endpoint shape, signing procedure, inbound fields, default-pipeline behavior, and contact matching come from the inbound webhook reference, checked August 31, 2026.
4. Route a deal update to its owner’s notification channel
- Subscribe to updates. Configure the outbound destination for
dealflow.deal.updated. - Validate a test body. Inspect a logged update delivery before mapping fields because the reference does not publish an update-specific schema or change diff.
- Resolve the owner externally. Use
deal.idto query a consumer-maintained routing table. In the published example,changed_bynames the actor; it is not defined as the owner. - Send the notification. The consumer chooses email, chat, or another channel and formats the message from fields confirmed in the test delivery.
The webhook reference, checked August 31, 2026, documents the updated event and the fields shown in its stage-change example. Owner routing is deliberately kept in the consumer because that example publishes no owner field.
Keep delivery behavior inside the documented boundary
Mautic’s outbound webhook system handles retries, queuing, and delivery logging, and the logs live under Mautic → Settings → Webhooks. The reference does not publish retry counts, schedules, backoff rules, ordering behavior, or inbound queue behavior. Build monitoring around the delivery log without assuming those details.
Test each event separately. The reference publishes one stage-change payload example, not an event-specific schema for created or updated events. Capture the event you plan to consume, confirm its actual fields, and then activate the mapping.
For direction selection and setup context, read the Mautic webhook integration guide. For exact endpoint, signing, event, and example-payload details, keep the webhook reference beside your workflow.
Delivery behavior checked August 31, 2026 against the linked webhook reference.
Put documented deal events to work
Connect pipeline activity to the routing tools your team already uses.
See Deal Flow Pricing Try free for 7 daysFrequently asked questions
Which event sends a deal stage change to Slack?
Subscribe to dealflow.deal.stage_changed and send it to an n8n Webhook trigger. n8n checks the event value, builds the message from the documented stage-change fields, and chooses the Slack channel.
What event name should an inbound form webhook use?
None. Inbound form intake is a signed POST to a source-specific endpoint, not an outbound event subscription. The form automation maps the documented fields, signs the exact raw body, and selects the destination source.
How should an owner notification be routed?
Use deal.id as the key for a consumer-maintained owner lookup, then let that consumer choose the notification destination. The published payload example identifies changed_by as the actor and does not define it as the deal owner.
What retry and queue behavior is documented?
The webhook reference states that Mautic's outbound webhook system handles retries, queuing, and delivery logging. It does not publish retry counts, schedules, backoff rules, or ordering behavior.