Webhooks

Webhooks let your backend react to events in your workspace without polling. How they work (events, signing, retries): Webhooks concepts.

The webhook list

Webhooks in the sidebar lists your webhooks with their Name, URL, Events ("all events" when none are picked), Status (Active or Paused) and Created date. Click a webhook to open its page.

On a plan with webhook limits, a Plan limits card shows Webhooks and Deliveries, last 24 hours against them. On the Free plan you can have 5 webhooks. At the cap, + Create webhook is disabled and an Upgrade to add more → link appears.

Create a webhook

  1. Click + Create webhook.
  2. Fill in:
    • Name: a label for you.
    • URL: where poolse POSTs. Must start with http:// or https://; use HTTPS in production.
    • Events: tick the events you want. Leave them all unticked to receive every event, including ones added later.
    • Active: on by default. Off creates the webhook paused.
  3. Click Create webhook.
  4. The Save the signing secret dialog shows the secret once. Click Copy secret, store it with your backend's secrets, then I've saved it.

Every delivery carries an X-Poolse-Signature header made with this secret. Check it before you trust a request: Webhook verification.

A webhook's page

Settings: change the Name, URL and Events, or switch Active off to pause the webhook (it keeps its settings but gets no deliveries). Click Save changes.

Details: the Webhook ID, Created date and how many Events it subscribes to ("All events" when none are picked).

Danger zone: Delete webhook…, then Yes, delete this webhook. Deliveries stop at once, and the webhook's delivery history is deleted with it.

Deliveries

The Deliveries table lists the webhook's 50 most recent deliveries, newest first.

ColumnShows
StatusDelivered (your URL answered 2xx), Retrying (failed, another attempt is scheduled), Failed (all 6 attempts failed) or Pending (not attempted yet).
EventThe event name, such as message.created.
ResponseThe HTTP status your URL returned, or — if there was none (timeout, connection error). Hover it to see the error.
AttemptsHow many attempts have failed so far.
WhenWhen the delivery was created.

View payload shows the event's JSON. Replay sends it again.

Deliveries are kept for 30 days.

Replay

Replay creates a new delivery with the same event and data and sends it through the normal retry schedule. The new delivery has a new id, so your handler's duplicate check on X-Poolse-Event-Id treats it as a new event. See Replay.

Retry schedule

A failed delivery is retried 1 minute, 5 minutes, 30 minutes, 2 hours and 12 hours after each failure: six attempts in all. A failure is any non-2xx status, a redirect, a timeout (10 seconds) or a connection error. After the sixth failure the delivery is Failed and poolse stops.

Quotas

On the Free plan a workspace gets 1,000 deliveries per rolling 24 hours. Past that, new events are not delivered and not queued; no error is shown anywhere. Watch Deliveries, last 24 hours on this page or Webhook deliveries, last 24 hours on Plan & usage. Pro has no cap. See Limits & quotas.

Webhooks · Dashboard · poolse docs