Outbound webhooks send event data from Community to a URL you control, as it happens. When a Member texts in, receives a message, joins, updates their details or leaves, Community sends an HTTP POST with the details to your endpoint, so your own systems can act on it.
Who this applies to: Leaders whose plan includes Community Webhooks, on a seat that has webhook permission. You need a developer or a backend that can receive and process HTTPS requests. If you want to connect a tool without writing code, see the Zapier Integration Overview instead.
What is an outbound webhook
A webhook is an automatic message from one system to another. Instead of your system checking Community over and over to ask whether anything has changed, Community tells your system the moment something happens. It's called outbound because the data goes out of Community to you.
Think of it as a notification, but for software instead of people. You give Community a web address that belongs to your system, called an endpoint URL, and choose which kinds of events you care about, such as a Member texting in. Each time one of those events happens in your account, Community sends the details to that address. Your system then does whatever you've built it to do next, like replying to the Member or updating their record in your CRM.
Each webhook has:
- A name, so you can tell your webhooks apart.
- An endpoint URL, which must use HTTPS and accept POST requests with a JSON body.
- One or more event types, which decide what gets sent.
- A signature secret, unique to that webhook, which your system uses to confirm a request really came from Community.
You can create more than one webhook and enable or disable each one from the webhooks list.
Event types
| Event type | Sent when |
|---|---|
message.inbound |
A Member sends a message to your account |
message.outbound |
Your account sends a message to a Member. Some system messages are not sent (see Common questions) |
member.created |
A Member joins |
member.updated |
A Member's standard details change, or they unsubscribe |
member.deleted |
A Member deletes themselves |
Message events include the message text, any media, and the Member who sent or received it. Outbound message events also say what kind of message it was, for example a Campaign, a DM or a Keyword Response. The full payload format is in the developer documentation under Webhooks Introduction and Setup.
Outbound webhooks and API tokens
Outbound webhooks and API tokens are two halves of the same integration. A webhook pushes data out of Community when something happens. An API token lets your system call into Community to read data or take an action, like sending a reply. Most custom integrations use both.
Why should I use outbound webhooks?
Webhooks let your systems react to Members in real time without polling Community for changes. The data arrives when the event happens, so a reply, a database update or a hand-off to another tool can happen within seconds.
Because the events come from your Members' own activity (messages they send, and joining or leaving your community), they are a reliable trigger for anything you want to do in response. Common uses include:
- Running your own bot. Receive every inbound message, decide how to respond in your own system, and reply through the API. See How to Bring Your Own Bot for Community.
- Keeping another system in sync. Send new Members, profile changes and unsubscribes to a CRM or database as they happen.
- Keeping a record of conversations. Store inbound and outbound messages alongside your other customer data.
How do I use it?
Setting up a webhook is covered step by step in the developer documentation, Webhooks Introduction and Setup. It walks through creating a webhook, verifying requests with the signature secret, how your endpoint should respond, and turning webhooks off and on.
Webhooks are set up under Settings > Integrations > Webhooks. If you don't see that option, see I can't see Webhooks in Settings below.
How do I use it well?
Respond first, then do the work. Return a 2xx as soon as you've received and verified the request, then process it separately. Anything slow, like calling another service, risks missing the 15-second deadline and triggering retries.
Expect duplicates. Delivery is at least once, so the same event can arrive twice. Store each webhook or object ID for at least an hour and skip any you've already processed.
Never send a message twice. If your system replies to Members, it's better to skip a reply than to send a duplicate. Check the ID before you send, not after.
Always verify the signature. Your endpoint URL is reachable from the internet. The signature is how you know a request came from Community and not someone else.
Subscribe only to what you use. Each event type you select is traffic your endpoint has to handle. Select only the events your integration acts on.
Common questions
Why isn't my endpoint receiving webhooks?
| Cause | How to tell | Fix |
|---|---|---|
| The webhook is disabled | It shows as disabled in the webhooks list, or you received an email about repeated failures | Fix the endpoint, then turn the webhook back on. See Turning a webhook off or on |
| The event type isn't selected | The events you expect aren't in the webhook's event types | Edit the webhook and select them. See Creating a webhook |
| Your endpoint isn't responding in time | Your server logs show requests taking longer than 15 seconds, or returning non-2xx codes | Return a 2xx straight away and process afterwards. See Responding to webhooks |
| The endpoint URL isn't HTTPS, or the certificate is invalid | The URL starts with http://, or the certificate is expired or doesn't match the host |
Use an HTTPS URL with a valid certificate |
Why am I receiving the same event more than once?
Webhooks are delivered at least once. If Community doesn't get a 2xx from your endpoint in time, it retries, and occasionally an event is delivered twice even when your endpoint responded. Store each ID for at least an hour and ignore repeats.
Why aren't some outbound messages showing up?
Some system messages don't send a message.outbound event, including help, start and stop responses and tapbacks.
I can't see Webhooks in Settings
Webhooks need to be on your plan and enabled for your seat. Contact your account manager or email yourfriends@community.com to request access.
What's the difference between outbound webhooks and API tokens?
An outbound webhook sends data from Community to your system when something happens. An API token lets your system send requests to Community, for example to look up a Member or send a message. A bot, for example, receives messages through a webhook and replies through the API using a token.