Opportunities events
Outbound webhook events for opportunities: when each one fires and the exact JSON payload Centerfy POSTs to your URL.
5 events. Subscribe to them in Settings → API & Webhooks → Webhooks or with the outbound webhook subscription endpoints. Delivery, authentication headers and the common envelope are described in the webhooks overview.
| Event | When it fires |
|---|---|
opportunity.created | A new opportunity is added to a pipeline — from the app, the API or a workflow. |
opportunity.updated | Any of an opportunity’s fields change, including its stage or status (which also send their own events). |
opportunity.stage_changed | An opportunity moves to another stage (or pipeline). Includes the previous stage. |
opportunity.status_changed | An opportunity’s status changes between open, won, lost and abandoned. |
opportunity.deleted | An opportunity is deleted. The payload carries its last known state. |
opportunity.created
Opportunity created. A new opportunity is added to a pipeline — from the app, the API or a workflow.
{
"event": "opportunity.created",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"opportunity": {
"id": "<uuid>",
"name": "Acme — annual plan",
"contact_id": "<uuid>",
"company_id": null,
"pipeline_id": "<uuid>",
"stage_id": "<uuid>",
"stage_name": "Proposal sent",
"monetary_value": 1200,
"source": "website",
"status": "open",
"assigned_to": null,
"created_at": "2026-06-19T10:00:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}opportunity.updated
Opportunity updated. Any of an opportunity’s fields change, including its stage or status (which also send their own events).
{
"event": "opportunity.updated",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"opportunity": {
"id": "<uuid>",
"name": "Acme — annual plan",
"contact_id": "<uuid>",
"company_id": null,
"pipeline_id": "<uuid>",
"stage_id": "<uuid>",
"stage_name": "Proposal sent",
"monetary_value": 1200,
"source": "website",
"status": "open",
"assigned_to": null,
"created_at": "2026-06-19T10:00:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}opportunity.stage_changed
Opportunity stage changed. An opportunity moves to another stage (or pipeline). Includes the previous stage.
{
"event": "opportunity.stage_changed",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"previous_pipeline_id": "<uuid>",
"previous_stage_id": "<uuid>",
"previous_stage_name": "Qualified",
"opportunity": {
"id": "<uuid>",
"name": "Acme — annual plan",
"contact_id": "<uuid>",
"company_id": null,
"pipeline_id": "<uuid>",
"stage_id": "<uuid>",
"stage_name": "Proposal sent",
"monetary_value": 1200,
"source": "website",
"status": "open",
"assigned_to": null,
"created_at": "2026-06-19T10:00:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}opportunity.status_changed
Opportunity status changed. An opportunity’s status changes between open, won, lost and abandoned.
{
"event": "opportunity.status_changed",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"previous_status": "open",
"opportunity": {
"id": "<uuid>",
"name": "Acme — annual plan",
"contact_id": "<uuid>",
"company_id": null,
"pipeline_id": "<uuid>",
"stage_id": "<uuid>",
"stage_name": "Proposal sent",
"monetary_value": 1200,
"source": "website",
"status": "won",
"assigned_to": null,
"created_at": "2026-06-19T10:00:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}opportunity.deleted
Opportunity deleted. An opportunity is deleted. The payload carries its last known state.
{
"event": "opportunity.deleted",
"occurred_at": "2026-06-20T14:30:00.000Z",
"sub_account_id": "<sub account uuid>",
"organization_id": "<organization uuid>",
"opportunity": {
"id": "<uuid>",
"name": "Acme — annual plan",
"contact_id": "<uuid>",
"company_id": null,
"pipeline_id": "<uuid>",
"stage_id": "<uuid>",
"stage_name": "Proposal sent",
"monetary_value": 1200,
"source": "website",
"status": "open",
"assigned_to": null,
"created_at": "2026-06-19T10:00:00.000Z",
"updated_at": "2026-06-20T14:30:00.000Z"
}
}