Webhooks: events to external systems
Webhooks automatically send messages to an external URL when specific events occur in Tesoro: new lead comes in, deal moves to Won status, property becomes Sold. Used for integrations with Zapier, Make, your own systems.
When to use this?
Section titled “When to use this?”- New lead via Zapier to Slack channel
- Deal Won event to your accounting system
- Have an external analytics tool receive real-time data
What is a webhook?
Section titled “What is a webhook?”For each selected event, Tesoro sends an HTTP POST request to your URL with a JSON payload. Your system receives, processes, and responds (200 OK).
Creating a webhook
Section titled “Creating a webhook”- Settings → Webhooks → Add webhook.
- Fill in:
- Name: recognizable name
- URL: endpoint that receives the payload (HTTPS recommended)
- Events: select which events trigger
- Secret (optional), for request validation
- Save → webhook active.
Available events
Section titled “Available events”| Category | Events |
|---|---|
| Lead | created, updated, status_changed, converted, deleted |
| Contact | created, updated, deleted, portal_user_created |
| Deal | created, status_changed, won, lost, deleted |
| Property | created, status_changed, sold, rented, deleted |
| Meeting | created, status_changed, completed |
| Activity | task_created, task_completed, note_created |
Select at least 1, multiple possible.
Payload format
Section titled “Payload format”JSON body contains:
event: type (e.g.,lead.created)timestamp: whendata: full record with all fieldsprevious_data(on changes), previous statuscompany_id: for multi-tenant integrations
Authentication + security
Section titled “Authentication + security”Secret validation (recommended): Tesoro signs each webhook with HMAC. Your endpoint calculates the same HMAC and validates.
Without secret: any POST can come from any source. Not recommended for production systems.
Retry behavior
Section titled “Retry behavior”Webhook fails (no 200 response within X seconds, or network timeout)? Tesoro retries:
- 1 minute later
- 5 minutes later
- 30 minutes later
- 2 hours later
- Then marked as Failed, no further attempts
Failed webhooks visible in dashboard. Manual retry possible.
Webhook logs
Section titled “Webhook logs”Per webhook you see the latest attempts:
- Timestamp
- Event type
- Response status
- Number of retries
- Body (in/out)
Helps with debugging.
Common mistakes
Section titled “Common mistakes”No events received
Section titled “No events received”Check:
- URL accessible from internet?
- HTTPS certificate valid?
- Endpoint sends 200 response within 5 sec?
- Events actually selected in webhook config?
Duplicate events
Section titled “Duplicate events”Webhook retry behavior, due to timing issues, you may occasionally receive a retry of an already successful delivery. Make your endpoint idempotent: receive the same event ID twice → process only once.