Webhooks are how the WPResidence real estate CRM talks to the rest of the world. Every time a contact is created, a deal is won, or a form is submitted, your CRM can POST a JSON payload to a URL of your choice, powering Zapier workflows, Make scenarios, custom dashboards, or a second CRM you happen to run in parallel.
This article walks through configuring a webhook, picking events, testing, and understanding retries.
Subscribable Events
| Event | When it fires |
|---|---|
| contact.created | A new contact is inserted. |
| contact.updated | An existing contact is modified. |
| contact.deleted | A contact is removed. |
| lead.created, lead.updated, lead.deleted | Lead lifecycle. |
| enquiry.created | A new enquiry arrives. |
| deal.created | A new deal is opened. |
| deal.stage_changed | A deal’s pipeline stage changes. |
| deal.won / deal.lost | A deal closes. |
| task.completed | A task is marked done. |
Configuring a Webhook
Go to CRM Settings → Webhooks.
- Paste the destination URL.
- Select the events to subscribe to (comma-separated).
- Optionally set a signing secret for HMAC verification.
- Save.
Payload Format
Every dispatched webhook is a JSON POST body:
{ "event": "contact.created", "timestamp": "2026-04-17T12:34:56Z", "data": { ...entity fields... }, "site_url": "https://yoursite.com" }
Signing
If you set a signing secret, the CRM adds an X-CRM-Signature HTTP header. Its value is the HMAC-SHA256 of the JSON body with your secret as the key. On the receiving end, compute the same HMAC and compare. If they match, the webhook is authentic and untampered.
Testing
Click Test Webhook on the Webhooks settings tab. The CRM sends a sample test event to your URL with fake contact data and shows you the HTTP response code and the first 200 characters of the body. If your endpoint returns 2xx, the test passes. Anything else shows the error.
Retries
If the first attempt returns an error or a 4xx/5xx status, the CRM schedules a retry five minutes later. Up to 3 attempts total. After that, the event is dropped silently. There is no retry queue UI.
Use Cases
- Zapier: point the webhook at a Zapier catch-hook URL and trigger any of thousands of downstream apps.
- Make (Integromat): same pattern.
- Slack notifications: pipe deal.won through a Zap to post to a Slack channel.
- Custom dashboards: stream events into your own analytics pipeline.
- Secondary CRM: mirror contacts into another system.
Security
- Always use HTTPS URLs.
- Always set a signing secret and verify on the receiving end.
- Do not expose your webhook endpoint as an open internet endpoint unless you verify the signature.
HubSpot Alternative
For HubSpot specifically, you do not need webhooks. The CRM has a dedicated HubSpot integration with richer semantics. See the HubSpot CRM integration guide.
Limits
- Only one webhook URL is supported via the simple settings UI.
- Bulk operations fire one webhook per affected row, so plan for volume on large bulk actions.
