The package defines 21 event names across three wiring states

The current package defines 21 deal-event identifiers. Fourteen are registered in Mautic's webhook builder and subscribed by the outbound webhook subscriber. Four additional identifiers are subscriber-only, and three are defined but not wired by that subscriber. Use the literals exactly as shown below; the stage-change identifier is deal.stage_changed.

How this event reference was verified

The inventory was read from the event constants in the shipped package, then checked against the outbound webhook subscriber and its webhook-builder registration. The payload builder was checked separately to confirm that the resolved identifier is serialized under the event field.

Technical details verified 2026-09-14 against the shipped Deal Flow package, SHA-256 prefix 50c7c589d059.

All 21 Deal Flow event names

The builder column shows whether an administrator can select the event in Mautic's webhook builder. The wiring column reports what the verified outbound webhook subscriber does with that constant.

Constant Literal event name In builder Outbound wiring
DEAL_CREATEDdeal.createdYesSubscriber and builder
DEAL_UPDATEDdeal.updatedYesSubscriber and builder
DEAL_STAGE_CHANGEDdeal.stage_changedYesSubscriber and builder
DEAL_CLOSED_WONdeal.closed_wonYesSubscriber and builder
DEAL_CLOSED_LOSTdeal.closed_lostYesSubscriber and builder
DEAL_CONTACT_ATTACHEDdeal.contact_attachedNoSubscriber only
DEAL_COMPANY_CHANGEDdeal.company_changedNoSubscriber only
DEAL_OWNER_ASSIGNEDdeal.owner_assignedNoSubscriber only
DEAL_OWNER_REASSIGNEDdeal.owner_reassignedNoSubscriber only
DEAL_NOTE_ADDEDdeal.note_addedYesSubscriber and builder
DEAL_NOTE_UPDATEDdeal.note_updatedNoNot wired in this subscriber
DEAL_NOTE_DELETEDdeal.note_deletedNoNot wired in this subscriber
DEAL_TASK_ADDEDdeal.task_addedYesSubscriber and builder
DEAL_TASK_COMPLETEDdeal.task_completedYesSubscriber and builder
DEAL_TASK_UNCOMPLETEDdeal.task_uncompletedNoNot wired in this subscriber
DEAL_TASK_UPDATEDdeal.task_updatedYesSubscriber and builder
DEAL_TASK_DELETEDdeal.task_deletedYesSubscriber and builder
DEAL_ATTACHMENT_ADDEDdeal.attachment_addedYesSubscriber and builder
DEAL_CONTACT_DETACHEDdeal.contact_detachedYesSubscriber and builder
DEAL_FIELD_UPDATEDdeal.field_updatedYesSubscriber and builder
DEAL_ATTACHMENT_DELETEDdeal.attachment_deletedYesSubscriber and builder

Read builder availability and subscriber wiring separately

An event registered in the webhook builder is available as a selection when a Mautic administrator configures a webhook. Four constants are subscribed without being registered as builder choices: deal.contact_attached, deal.company_changed, deal.owner_assigned, and deal.owner_reassigned.

Three constants are defined but are not wired in the verified subscriber: deal.note_updated, deal.note_deleted, and deal.task_uncompleted. Their presence in the constants inventory does not make them builder choices or subscriber-queued events.

Implementation rule: match the literal event name in a received payload. Constant names are PHP identifiers; the dot-separated literals are the values carried through webhook wiring.

The event field carries the exact identifier

The verified payload builder serializes the resolved event name under the root event key. Route or filter on that value when processing a received webhook. A stage-change payload has this shape:

JSON — stage-change payload example
{ "event": "deal.stage_changed", "occurred_at": "2026-09-14T15:30:00+00:00", "origin": "ui", "actor": { "type": "user", "id": 42 }, "deal": { "id": 123, "title": "Example renewal", "status": "open", "stage": "Proposal" }, "company": { "id": 18, "name": "Example Company" }, "contacts": [ { "id": 77, "label": "Economic buyer" } ], "previousStage": "Discovery", "currentStage": "Proposal" }

The common payload also carries occurred_at, origin, actor, deal, company, and contacts. Event-specific fields are added at the root; stage changes add previousStage and currentStage. Actor, company, stage, contact label, and contact email values can be null, so receivers should handle them accordingly.

Use the webhook documentation for broader inbound and outbound setup guidance.

Frequently asked questions

How many Deal Flow event names are defined?

The package defines 21 Deal Flow event names. Fourteen are registered in the Mautic webhook builder, four more are subscribed by the outbound webhook subscriber without builder registration, and three are not wired by that subscriber.

Which Deal Flow events appear in the webhook builder?

The 14 builder events are deal.created, deal.updated, deal.stage_changed, deal.closed_won, deal.closed_lost, deal.note_added, deal.task_added, deal.task_completed, deal.task_updated, deal.task_deleted, deal.attachment_added, deal.contact_detached, deal.field_updated, and deal.attachment_deleted.

What is the correct stage-change event name?

The shipped stage-change identifier is deal.stage_changed. Use that exact literal in the event field and when matching received webhook payloads.

Does every defined event produce an outbound webhook?

No. Four subscriber-only events can still be queued by the subscriber even though they are not builder choices. Three defined events—deal.note_updated, deal.note_deleted, and deal.task_uncompleted—are not wired in the verified subscriber.

Put deal events to work inside Mautic

Deal Flow adds deal records, pipeline stages, and webhook event wiring to the Mautic instance you already run.

See Deal Flow Pricing