deal.moved
What this event means
deal.moved is emitted when an existing deal changes stage in a pipeline.
Webhook type
deal.moved
Internal source mapping
| Internal event | Trigger path |
|---|
deal.stage_changed | Deal stage update is persisted and stage transition is detected. |
Payload example
{
"type": "deal.moved",
"object": "event",
"data": {
"actor_name": "Alex Morgan",
"deal_id": "dl_1a2b3c",
"pipeline_id": "pl_b4c5d6",
"pipeline": "Q4 Pipeline",
"estimated_value": 18500,
"currency": "USD",
"deal_creation_date": "2026-04-20T09:21:11.122Z",
"estimated_close_date": "2026-06-01T00:00:00.000Z",
"is_private": false,
"deal_name": "Acme Analytics - Expansion plan",
"owner_name": "Alex Morgan",
"from": "Opportunity",
"to": "Proposal",
"company": {
"name": "Acme Analytics",
"domain": "acmeanalytics.com"
},
"point_of_contact": {
"first_name": "Jordan",
"last_name": "Patel",
"email": "jordan.patel@acmeanalytics.com",
"title": "Head of Growth"
}
}
}
Delivery and idempotency handling
- Use
data.deal_id as the primary idempotency key for this event.
- Because retries are possible, ensure stage transitions are applied only once per
type + data.deal_id.
- If your workflow needs stage metadata, use
data.from and data.to values when present.
Last modified on April 26, 2026