Calari Solutions - Intelligent Automation & AI for Business
Georgia, USA
When a customer books an appointment and your CRM, team chat and invoicing tool all update within seconds, a webhook is usually doing the work. So, what is a webhook? A webhook is an automatic message one application sends to another the moment something happens. It is the difference between your apps constantly asking "anything new?" and being told instantly when there is.
Imagine waiting for a parcel. You could check your doorstep every ten minutes, which is like an application repeatedly polling an API. Or the courier could ring your doorbell when it arrives, which is a webhook. The doorbell is faster and wastes far less effort.
You register a URL. You give the sending application a web address, called the webhook endpoint, belonging to the receiving system.
An event happens. For example, a form is submitted, a payment succeeds or an appointment is booked.
The sender sends a request. It makes an HTTP POST request to your URL with a payload, usually in JSON format, describing the event.
The receiver acts. Your automation reads the payload and creates a contact, sends a message or updates a record.
The receiver responds. It returns a success code, such as 200, so the sender knows it was received.
{
"event": "appointment.booked",
"contact": {
"name": "Grace Wanjiru",
"email": "grace@example.com",
"phone": "+254700000000"
},
"appointment": {
"start": "2026-11-03T10:00:00Z",
"service": "Consultation"
}
}The structure varies by application, but the idea is the same: a labelled bundle of data about what just happened.
API | Webhook | |
|---|---|---|
Who starts it | Your system asks for data | The other system pushes data to you |
Timing | When you request it | The moment an event occurs |
Analogy | Calling to ask for an update | Getting a notification |
Typical use | Looking up or changing records | Reacting instantly to events |
In practice they work together. A webhook tells you a new order arrived; an API call then fetches extra details or updates another system.
A Stripe payment webhook marks an invoice as paid in your CRM and sends a receipt.
A website form webhook creates a GoHighLevel contact and starts a speed-to-lead workflow.
A GoHighLevel workflow webhook sends booked appointments to a Google Sheet or project management tool.
A calendar webhook notifies a team channel when a VIP client books.
An e-commerce webhook triggers a shipping label and a delivery update text.
Mid-article CTA: Have two apps that should be talking but are not? Book a free audit call and we will map the connection.
A webhook URL is a public door into your systems, so protect it:
Use HTTPS only so data is encrypted in transit.
Verify signatures where the sender provides them, such as a secret-signed header.
Use a secret token in a header if signatures are not available.
Validate the payload and ignore unexpected fields.
Do not expose sensitive data in the URL itself.
Respond quickly. Acknowledge receipt, then process heavier work in the background to avoid timeouts.
Handle retries. Many senders retry failed deliveries, so design the receiver to be idempotent, meaning a duplicate event does not create a duplicate record.
Log every event so you can investigate problems.
Alert on failures so a broken integration is fixed the same day.
Do I need a developer to use webhooks? Not always. Tools like n8n, Make, Zapier and GoHighLevel workflows can send and receive webhooks with no code. Complex or secure setups benefit from a developer.
What happens if my system is down when a webhook is sent? Some senders retry for a period; others do not. Monitoring and logging help you catch and replay missed events.
Are webhooks free? Webhooks themselves are free, but the platforms that send or receive them may have plan limits.
What is a webhook URL? It is the web address where the receiving system listens for incoming event data.
Calari Solutions designs secure, monitored webhook integrations between your CRM, payment tools, calendars and internal systems. Schedule a free audit call to find the manual handoffs webhooks could remove.