All webhooks
Deals
Deal updated
deal.updatedFires when a deal changes — its title, amount, status, funnel stage, or responsible user. The payload carries the deal state after the update.
HTTP request
AISAR sends a signed POST request to your webhook_url:
http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...
{
"event": "deal.updated",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-03-26T12:00:00.000000Z",
"company_id": 1,
"data": {
"deal": {
"id": 30,
"title": "New Deal",
"status": "won",
"amount": "7500.00",
"currency": "USD",
"contact_id": 10,
"funnel_id": 1,
"funnel_stage_id": 5,
"responsible_user_id": 5,
"created_at": "2026-03-26T10:00:00.000000Z"
}
}
}The X-AISAR-Signature header carries an HMAC-SHA256 signature of the request body — use it to verify the request came from AISAR.
Example payload
json
{
"event": "deal.updated",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-03-26T12:00:00.000000Z",
"company_id": 1,
"data": {
"deal": {
"id": 30,
"title": "New Deal",
"status": "won",
"amount": "7500.00",
"currency": "USD",
"contact_id": 10,
"funnel_id": 1,
"funnel_stage_id": 5,
"responsible_user_id": 5,
"created_at": "2026-03-26T10:00:00.000000Z"
}
}
}Payload fields
| Field | Type | Description |
|---|---|---|
deal.id | integer | Deal ID |
deal.title | string | Deal title |
deal.status | string | Deal status: `open`, `won`, or `lost` |
deal.amount | string|null | Deal amount as a decimal string |
deal.currency | string|null | Currency code (e.g. `USD`) |
deal.contact_id | integer|null | Associated contact ID |
deal.funnel_id | integer|null | Funnel ID |
deal.funnel_stage_id | integer|null | Current funnel stage ID |
deal.responsible_user_id | integer|null | Assigned (responsible) user ID |
deal.created_at | string | ISO 8601 creation timestamp |