Integrations/Webhook
Webhook logo

Webhook + Courier

Send notifications to any endpoint with a webhook

Deliver a notification as an HTTP request to any URL you control, as one channel in your Courier stack, so you can integrate systems Courier does not natively support.

Overview

What the Webhook integration is

The Webhook provider delivers HTTP requests through Courier to a static or dynamic URL. Instead of a traditional channel, the notification arrives at an endpoint you control.

That makes it a general-purpose delivery channel: add it to your notification stack to reach any internal service, downstream system, or provider Courier does not natively support, alongside every other channel.

You need a Courier account and an HTTP endpoint that can receive a JSON request.

Why Courier

What you get with the Webhook channel

Any endpoint

Deliver to a URL you control

Point the webhook at a static URL in the integration settings, or set the destination per recipient with a dynamic profile field.

HTTP method

Choose method, headers, and body

Send GET, POST, PUT, and more, with custom headers. Override the URL, method, headers, or body per message with provider overrides.

Auth

Basic or bearer authentication

Set authentication.mode to basic or bearer and provide the credentials, so your endpoint stays protected.

Multi-channel

One channel among many

Include the webhook in a send that also reaches email, SMS, push, and inbox. No separate integration to build in your code.

Extensibility

Integrate systems Courier does not support

Reach downstream services and providers without a native connector by delivering the notification straight to your own endpoint.

Journeys

Fire an HTTP request inside a flow

Use the webhook as a step in a journey, so a multi-step notification can call your systems with delays and branching.

Use cases

What teams build with it

Deliver a notification to an internal service that has no native Courier connector
Send the same notification to users and to a downstream endpoint in one send
Set the destination URL per recipient with a dynamic webhook profile field
Call your own systems as a step inside a multi-step journey

Setup

Connect it in minutes

An admin adds the Webhook provider once on the Integrations page in Courier. After that it behaves like any other channel in your sends.

1
Add the Webhook provider
Open Integrations and add Webhook, then set a static URL and authorization type, or plan to pass the destination per recipient.
2
Configure the request
Set the HTTP method, headers, and authentication (basic or bearer). For dynamic delivery, add the destination to the recipient's webhook profile field.
3
Send from your app
Call the Send API with a recipient and any custom data. Courier delivers a JSON request with the template ID, recipient identifiers, and your data to the endpoint.

FAQ

Frequently asked questions

Can I use Webhook with Courier?

Yes. Webhook is a built-in Courier delivery channel that posts your notification to any HTTPS endpoint or API you define. It lets you treat a custom service as a channel alongside email, SMS, push, and Courier Inbox.

When should I use the Webhook channel?

Use it to reach a system Courier does not natively support, such as an internal service or a partner API. It is the general-purpose way to deliver a Courier notification anywhere over HTTP.

How do I set up Webhook in Courier?

Add the Webhook integration, then set a Webhook URL and authorization type on the setup page. For a fixed target use Static Destination; to vary it per recipient choose Dynamic Destination and pass a webhook object in the recipient profile.

What authentication does the Webhook channel support?

It supports basic and bearer authentication. Set authentication.mode to basic, with a username and password, or bearer, with a token. Authentication defaults to none if you provide no credentials.

What does Courier send in the webhook payload?

By default Courier sends a JSON body built from your Send API call, including the template, the to recipient, and data. Set profile to limited for send-time data only, or expanded to merge in stored profile data.

Can I customize the request Courier sends to my endpoint?

Yes. Use a provider override to replace the url, method, headers, and body of the outgoing request on a given send, so the payload matches your endpoint's exact contract instead of the default shape.

Is the Webhook channel the same as Courier's inbound event webhooks?

No. The Webhook channel sends notifications out from Courier to an endpoint you define. Inbound webhooks are separate and receive events into Courier. This page covers the outbound delivery channel.

More

Related integrations