> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usertick.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Send responses and account events to your own systems as signed HTTP requests, with retries and a delivery log.

A webhook sends events from Usertick to an endpoint you host. Usertick signs every request so your endpoint can verify where it came from, retries failed deliveries, and lists the deliveries of the last 30 days in a delivery log. Webhooks are available on the Starter plan and above.

Webhooks are set up in two places:

* **Settings → Developers → Webhooks** lists the endpoints. Each one has a URL, a signing secret, optional survey events and optional account notifications.
* **The Workflows page** holds workflows whose **Send to a webhook** step sends one survey's responses to an endpoint, limited to the responses that match its conditions. See [Workflows](https://docs.usertick.com/workflows/overview.md).

Payloads, signature checks and the retry schedule are described in the [developer reference](https://docs.usertick.com/developers/webhooks/overview.md).

## Create an endpoint in Settings

**1. Start a new webhook**

In **Settings → Developers → Webhooks**, select **New webhook**. The **New webhook** panel opens on the right.

**2. Set the endpoint**

Enter a **Name** and a **URL** that starts with `https://`.

**3. Choose the survey events**

If the endpoint should receive survey events, select **All surveys, including new ones** or **Only selected surveys** under **Survey events**, and set the options described in [Choose the survey events](#choose-the-survey-events).

**4. Select account notifications**

If the endpoint should also receive account events, such as a new member or a plan change, select them under **Account notifications**.

**5. Create the webhook**

Select **Create webhook**.

**6. Copy the signing secret**

Copy the secret that starts with `whsec_` into your server's configuration, then select **I saved it**. The new webhook's row opens in the list.

Usertick shows the full secret only once. Afterward, the webhook's row shows only its last 4 characters. Each webhook in an organization needs its own URL.

An organization can have up to 100 webhooks, turned on or off. When it already has 100, Usertick refuses a new one with `WH-005-009`: "This organization has reached the limit of 100 webhooks. Delete a webhook to add another." Subscriptions that apps and API keys add don't count toward this limit, because they have [limits of their own](https://docs.usertick.com/developers/api/rate-limits.md#other-limits).

None of the account notifications are selected by default. The full list is in [Account notifications](https://docs.usertick.com/developers/webhooks/events.md#account-notifications).

### Choose the survey events

Under **Survey events**, **Surveys** decides which surveys the endpoint hears from: **No surveys**, **All surveys, including new ones**, or **Only selected surveys**, as many as you select. When it isn't **No surveys**, two more settings decide what the endpoint receives:

* **When** sets the event. **When a response is submitted** sends each response immediately, and **After AI analysis** sends it about 30 seconds later with the AI type, urgency and themes. **When its status changes**, **When someone corrects the AI**, **When it becomes urgent** and **When a theme spikes** send those moments instead, as described in [AI events](https://docs.usertick.com/developers/webhooks/events.md#ai-events).
* **Only these responses** limits the event to some types, urgencies and themes, as far as the event takes them. For **When a theme spikes**, the setting is **Only these themes**. When the filters are empty, everything is sent. **When a response is submitted** takes no filters.

When a survey in **Only selected surveys** is deleted, Usertick takes it out of the list. If no survey is left, Usertick stops the survey events, because an empty list would mean every survey, and members whose role has the **Manage integrations** or **Manage developer settings** permission receive "A webhook stopped sending responses".

A webhook sends one event. To send a second event, add another webhook with its own URL. To send only the responses that match a condition, add a webhook step to a workflow instead.

## Send one survey's responses with a workflow

**1. Add the step**

In a [workflow](https://docs.usertick.com/workflows/overview.md), add **Send to a webhook** under **Add a step**.

**2. Select the endpoint**

In the step's panel, select the endpoint under **Webhook**.

**3. Limit the responses**

To send only some responses, add conditions under **Only if** in the trigger's panel, or put an **If / else** step before the webhook step.

**4. Test and publish**

After a **Test run** shows the delivery you expect, select **Publish workflow**.

The workflow's trigger decides when the request goes out, such as **When a response is submitted** or **After AI analysis**. [How conditions compare values](https://docs.usertick.com/workflows/overview.md#how-conditions-compare-values) covers letter case, spaces, languages and page URLs.

**Webhook** lists the endpoints added in **Settings → Developers → Webhooks**, and never the subscriptions that apps and API keys add. While the organization has no endpoint, **Send to a webhook** is listed under **More tools** with **Connect**, which asks for a **Name** and a **URL**, creates the endpoint and shows its signing secret once.

During a workflow's **Test run**, the step sends the survey's latest response, or a sample response when the survey has none, with the `X-Usertick-Test: 1` header. The test appears in the endpoint's delivery log with the source **Test**.

## Manage an endpoint

Each endpoint is one row in the list, with its masked URL, its state, what it sends and its last delivery. Selecting a row opens it in place:

* **The last 24 hours** show as a line with the number of deliveries and failures, and a chart of deliveries per hour.
* **Added by** names the person who added the endpoint and when. **Signing secret** shows the last 4 characters of the secret. **Used in** counts the workflows that send to the endpoint.
* **Deliveries** lists the attempts from the last 7 days, newest first, and loads more as you scroll to its end. A failed delivery offers **Send again**. Selecting a delivery opens it in the **Delivery log**, described in [Delivery and retries](https://docs.usertick.com/developers/webhooks/delivery.md#the-delivery-log).

The row's actions are:

* **Send test** sends a [test ping](https://docs.usertick.com/developers/webhooks/events.md#test-pings) and shows your endpoint's answer in the row.
* **Settings** opens a panel on the right with **Name**, **URL** and the **Active** switch, **Survey events**, **Account notifications**, **Used in** with an **Open workflow** link for each workflow, and **Payload sample**, which shows the body the endpoint receives for a selected survey and event. Changes apply after **Save changes**. Closing the panel with unsaved changes asks first.
* **Rotate secret** asks in the row, then shows the new secret once. The previous secret keeps signing for 24 hours, as described in [Rotate a secret](https://docs.usertick.com/developers/webhooks/rotation.md).
* **Delete webhook** is described in [Turn off or delete an endpoint](#turn-off-or-delete-an-endpoint).

Anyone with the **View surveys and results** permission can open the rows. Changing, testing, resending and deleting require the **Manage integrations** permission. Without it, **Settings** shows the settings as text, and the row doesn't show the signing secret.

## Resume a paused endpoint or workflow

A delivery that still fails after its retries counts as one failure. After 20 failures in a row, Usertick stops sending and sends a notification:

* If a workflow paused, members whose role has the **Manage workflows** permission are notified. After fixing the endpoint, select **Turn on** on the workflow's page.
* If the survey events paused, members whose role has the **Manage integrations** or **Manage developer settings** permission are notified. After fixing the endpoint, select **Resume** in the endpoint's row or in its **Survey events** settings.

While the pause lasts, Usertick keeps the events that would have been sent, for up to 7 days and at most 1,000 for each workflow or survey events setting, and sends them in the order they arrived after **Turn on** or **Resume**. See [Events that arrive during a pause](https://docs.usertick.com/developers/webhooks/delivery.md#events-that-arrive-during-a-pause).

Separately, after 5 failed attempts in a row, members whose role has the **Manage integrations** or **Manage developer settings** permission receive an "A webhook is failing" notification that links to the endpoint. Retry timing and status codes are described in [Delivery and retries](https://docs.usertick.com/developers/webhooks/delivery.md).

## Turn off or delete an endpoint

To stop sending without deleting the endpoint, select its row, select **Settings**, turn off **Active** and select **Save changes**. While the endpoint is off, workflow steps that send to it are skipped without counting as failures, and events that occur in the meantime are not sent later.

To delete an endpoint, select its row, select **Delete webhook** and type the endpoint's name to confirm. Deleting removes the endpoint and its delivery log. If workflows still send to it, Usertick lists those workflows first, and **Delete anyway** deletes it. Their **Send to a webhook** steps stop sending until they point to another endpoint.

## Webhooks added by apps and the API

When an app such as [Zapier](https://docs.usertick.com/integrations/zapier.md), or code using the [REST API](https://docs.usertick.com/developers/api/reference/subscribe-webhook.md), subscribes to events, the subscription appears in the same list marked **Added by an app** or **Added by an API key**. Its row shows what it sends and its deliveries, and its **Settings** show the subscription's event, survey and filters as text. A subscription can be deleted but not changed.

A Zap made for a workflow's Zapier step listens to no event of its own, so its row reads "A workflow's Zapier step", and its panel shows **Sends** with "A workflow's Zapier step" and **Workflow** with **Open the workflow** instead of the event and the survey. Deleting it stops that step from sending until a Zap is turned on for it again. See [Tools with Zapier](https://docs.usertick.com/integrations/with-zapier.md#send-responses-from-a-workflow).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.