What is a webhook?
Webhooks come up whenever two apps need to work together, and the word puts a lot of owners off. The idea behind it is simple. Here is what a webhook is, what it is useful for in a small business, and what to check before you rely on one.
In one sentence
A webhook is a short message one app sends automatically to a web address you choose the moment something happens, such as a new customer message arriving, so another app can react straight away instead of checking again and again.
In more detail
Think of a webhook as a doorbell. Without one, you would have to walk to the front door every few minutes to see whether anyone was there. With one, you get on with your day and the bell tells you the moment someone arrives. In software, the walking to the door is called polling, and the doorbell is the webhook.
A webhook has three parts. There is the event, which is the thing that happened, such as "a message was received" or "an account was signed out". There is the address, a web link that belongs to the app you want to tell. And there is the message itself, a small bundle of details about the event, such as which account it was, which chat and when.
The app that sends the webhook does not wait to be asked. As soon as the event happens, it sends the details to the address. The app at that address then does whatever it was set up to do: add a row to a spreadsheet, post a note in your team chat, create a task or start a reply.
You do not have to write code to use one. Many everyday tools, such as automation services, spreadsheets with add-ons and team chat apps, give you a ready-made address to paste in. Setting up a webhook is often just copying that address into the app that sends the events and ticking the events you care about.
A webhook only tells. It does not do anything on its own. If nothing is listening at the address, or the address is wrong, the message simply goes nowhere useful. That is why good webhook services keep a record of what they sent and let you send something again if it was missed. The example below shows a few everyday uses. Names and details are examples.
An example
| What happens | What the webhook does |
|---|---|
| A customer sends your shop a WhatsApp message at 11pm | The webhook sends the details to your team chat app, which posts "New WhatsApp message from Sam" in your orders channel. |
| Your Instagram account is signed out by Instagram | The webhook sends an "account disconnected" event with the reason, and your automation service texts you so you can reconnect it before the morning. |
| A message your AI agent wrote is waiting for approval | The webhook tells your task app, which adds "Approve reply to Priya" to your list. |
| A person on your team takes over a chat | The webhook records it in a spreadsheet, so you can see later how many chats needed a person each week. |
Webhook or checking for updates: the difference
| Question | Checking for updates (polling) | Webhook |
|---|---|---|
| Who starts the conversation | Your app asks "anything new?" on a timer | The other app tells you the moment something happens |
| How quickly you hear about it | Only at the next check, which could be minutes later | Within seconds, in most cases |
| Wasted effort | Most checks find nothing new | A message only goes out when there is something to say |
| What you need | Something that runs on a schedule | A web address that can receive messages |
| Best for | Simple reports once a day | Anything where a few minutes matters, such as a new customer message |
Neither is wrong. A daily summary of how many messages came in is fine with a once-a-day check. Telling a person that a customer is waiting, or that an account needs reconnecting, is a job for a webhook.
What a webhook message looks like
You rarely need to read one, but it helps to know what is inside. Most webhook messages are a short block of text in a format called JSON. Here is a simplified example of what a "new message" event might carry. Names and details are examples.
{
"event": "message.received",
"account": "Bloom Florist WhatsApp",
"chat": "Sam Taylor",
"text": "Hi, can I order a bouquet for Friday?",
"received_at": "2026-11-09T23:04:00Z"
}The receiving app reads the event name first, then picks out the details it needs. An automation service might take the chat name and the text and put them into a message for your team. A spreadsheet might add the time and the account to a new row.
Keeping a webhook safe
Because a webhook address is just a web link, anyone who learns it could try to send fake events to it. Sensible webhook services protect against that in a few simple ways, and these are worth looking for.
- A signing secret. The sending app signs each message with a secret only you and it know, so the receiving app can check the message is genuine.
- Secure addresses only. The address should start with https, so the message is encrypted on its way.
- Small messages. A webhook should carry what the receiving app needs and little more, so less personal detail travels around.
- A delivery log. You should be able to see what was sent, when, and whether the other end accepted it.
- A way to send again. If your receiving app was down for an hour, you should be able to resend what it missed.
Treat the address and the secret like a password. Keep them in the tool that needs them and avoid pasting them into shared documents or chats.
Common uses in a small business
- Telling your team chat when a new customer message arrives outside working hours.
- Adding every new enquiry to a spreadsheet or a simple customer list.
- Texting or emailing the owner when an account is signed out and needs reconnecting.
- Creating a task when a message is waiting for approval.
- Keeping a record of which chats were handed to a person and when.
- Starting a follow-up in another tool, such as a booking system, when a certain kind of message comes in.
Common mistakes
- Subscribing to every event. Start with the one or two you will act on, or your team chat will fill with noise.
- Never testing it. Send a test event as soon as you set it up and check it arrives where you expect.
- Forgetting it exists. If you change the tool at the other end, update or delete the old webhook so events do not go to a dead address.
- Ignoring the signature. If your receiving tool can check the signing secret, switch that on.
- Treating a repeat as a new event. A webhook may be sent twice if the first attempt was not confirmed, so the receiving side should ignore an event it has already seen.
Why it matters for your business
- You hear about new customer messages in seconds, in the tools your team already watches.
- You find out quickly when an account needs reconnecting, so customers are not left waiting.
- You can connect your messages to spreadsheets, task lists and other tools without writing code.
- You avoid the delay and wasted effort of checking for updates on a timer.
- You keep a record of what happened, which helps when you look back at a busy week.
How Spaces handles it
Spaces can send webhooks for what happens on your connected WhatsApp, Instagram, LinkedIn, Messenger, X and email accounts. The events include a new message received, a message read or delivered, a reaction, a new comment, a message sent through Spaces, a post published, a message waiting for approval, a chat handed to a person or back to the agent, and an account being disconnected or reconnected. By default a new webhook gets new messages and account status changes, and you can choose others or limit it to one account.
Every webhook from Spaces is signed with a secret that is shown once when you create it, so your receiving tool can check it is genuine. You can send a test event to make sure your address works, see the past week of deliveries with the answer your server gave, and send a delivery again. The delivery log never holds the text of a message, and a resent message event leaves the text out, so your agent reads the message itself when it needs to.
An account disconnected event carries the reason, such as a sign-in needed or a security check, which makes it a good way to be told quickly when something needs you. Routines in Spaces can also call a secure webhook address as one of their actions. Webhooks are included on some plans, and the pricing page shows which.
In short
A webhook is an automatic "this just happened" message from one app to another. It saves you from checking for updates and lets the right person or tool react in seconds.
Start with one event you will act on, such as an account being signed out, test it, and add more once that one is useful. The webhook guide in the Spaces docs has the technical detail if you or a developer want it.
FAQ
Is a webhook the same as an API?
Not quite. An API is a way for one app to ask another for something or tell it to do something. A webhook is the other direction: the app tells you when something has happened, without being asked. Many services offer both.
Do I need a developer to use a webhook?
Often not. Many automation services and team chat apps give you a ready-made address to paste in. You would only need a developer if you want something custom built to receive the events.
What happens if my receiving app is down?
The webhook will not be accepted at that moment. Good services record the failed delivery and let you send it again. In Spaces you can see the past week of deliveries and resend one.
Are webhooks secure?
They can be. Use an https address, keep the address and secret private, and have your receiving tool check the signature on each message. That stops others sending fake events to it.
Can a webhook send my customer messages to the wrong place?
A webhook sends events only to the address you set. Check that address carefully, choose only the events you need and delete webhooks you no longer use.
Why did I get the same event twice?
If the first delivery was not confirmed, the event may be sent again. Each event carries an id, so the receiving side can spot a repeat and ignore it rather than treating it as a new message.
Which Spaces events are most useful to start with?
New messages received and account status changes, which are the defaults. Together they tell you when a customer is waiting and when an account needs reconnecting.
Do webhooks cost extra?
In Spaces, webhooks are part of some plans. The pricing page shows which plans include them.