Webhooks
Receive real-time event notifications via webhook subscriptions.
Overview
SalesOS webhooks deliver real-time HTTP POST notifications to your server when events occur in your CRM. Instead of polling the API, register a webhook URL and receive events as they happen.
Creating a Webhook
Via API
Via Dashboard
Navigate to Settings > Webhooks and click Add Webhook.
Event Types
CRM Events
| Event | Description |
|---|---|
lead.created | A new lead was created |
lead.updated | A lead was updated |
lead.deleted | A lead was deleted |
lead.converted | A lead was converted to contact/opportunity |
contact.created | A new contact was created |
contact.updated | A contact was updated |
account.created | A new account was created |
account.updated | An account was updated |
opportunity.created | A new opportunity was created |
opportunity.updated | An opportunity was updated |
opportunity.won | An opportunity was marked as won |
opportunity.lost | An opportunity was marked as lost |
Sales Events
| Event | Description |
|---|---|
quote.created | A new quote was created |
quote.approved | A quote was approved |
quote.sent | A quote was sent to the customer |
order.created | A new order was created |
order.completed | An order was completed |
meeting.scheduled | A meeting was scheduled |
meeting.completed | A meeting was completed |
task.completed | A task was completed |
Payload Format
All webhook payloads follow this structure:
Signature Verification
All webhook deliveries include an HMAC-SHA256 signature in the X-Webhook-Signature header. Verify this signature to ensure the payload is authentic.
Delivery & Retries
- Webhooks are delivered within seconds of the event
- Your endpoint must respond with a
2xxstatus code within 30 seconds - Failed deliveries are retried up to 5 times with exponential backoff:
- Retry 1: 1 minute
- Retry 2: 5 minutes
- Retry 3: 30 minutes
- Retry 4: 2 hours
- Retry 5: 24 hours
Managing Webhooks
Best Practices
- Always verify webhook signatures before processing
- Respond with
200quickly; process events asynchronously - Store the event
idand deduplicate to handle retries - Use a queue (Redis, SQS) to process webhooks reliably
- Monitor webhook delivery logs in the SalesOS dashboard