Skip to main content

Answer quickly

A slow endpoint times out, and a timeout counts as a failed attempt. Usertick waits up to 30 seconds for a survey event delivery, and up to 10 seconds for an account notification, a test ping or a delivery sent with Send again. To stay within these limits, verify the signature, queue the work and answer with a 2xx before processing.

Retries

Usertick retries 30 seconds, 2 minutes, 10 minutes, 1 hour and 6 hours after the previous attempt, with each delay varied by up to 20 percent. A delivery gets 6 attempts in all, over about 7 hours. Survey events and account notifications follow the same schedule. Test pings and deliveries sent with Send again are sent once. A retry carries the same webhook-id, a new webhook-timestamp, a new signature and the next X-Usertick-Attempt number. An account notification retry sends the same body. A survey event retry describes the response as it is at the time of the retry, so fields such as status, assignees and updatedAt can differ from the first attempt. When Send again delivers an account notification that is waiting for a retry, Usertick stops retrying it. Survey event retries are sent either way.

Duplicates and order

Delivery is at least once. In rare cases the same message arrives twice, and Send again repeats one on purpose. To handle both, store the webhook-id values you processed for a while and skip any you have already seen. Usertick doesn’t guarantee order across deliveries. When order matters, use createdAt in the body.

The delivery log

Usertick keeps every attempt for 30 days, whatever sent it. When you select an endpoint’s row under Settings → Developers → Webhooks, the row opens with its deliveries by hour over the last 24 hours and its Deliveries: the attempts from the last 7 days, newest first, in a list that loads more as you scroll to its end. A failed delivery offers Send again. Selecting a delivery opens the Delivery log on the right with that attempt open. The log lists all 30 days, newest first, also loading more as you scroll, says how many deliveries match its filters, and shows new attempts as they are sent.
  • Status (Delivered or Failed), Source (Workflow, All surveys, API or app, Account notification or Test) and Survey filter the list.
  • Show details opens one attempt with what went wrong, the message ID, the request body as sent (up to 64 KB) and your endpoint’s response (up to 16 KB).
  • Send again sends the same body to the endpoint’s current URL with the same webhook-id, a new timestamp and a new signature, and logs it as a new attempt. A body longer than 64 KB was not stored in full, so it can’t be sent again.
Send test in the row sends a test ping. The API offers the same log for your own subscriptions: list deliveries and resend a delivery. A subscription that ended can’t receive a resend. On a published workflow’s page, the line under its name shows how many runs it sent, how many failed and how many were skipped in the last 7 days. Activity lists its runs from the last 30 days, and a failed run offers Retry.

When failures repeat

A delivery counts as failed when its last attempt fails, or when the endpoint answers with a status that isn’t retried.
  • A workflow pauses after 20 failed runs in a row. Members whose role has the Manage workflows permission receive “A workflow was paused”, and the workflow shows as Paused on the Workflows page. After fixing the endpoint, select Turn on on the workflow’s page.
  • Survey events from Settings pause after 20 failed deliveries in a row, and members whose role has the Manage integrations or Manage developer settings permission receive “A webhook stopped sending responses”. After fixing the endpoint, select Resume in the endpoint’s row or in its Survey events settings.
  • An API or app subscription pauses the same way and shows as Paused in the webhooks list. It resumes when the app that created it subscribes again. For Zapier, turning the Zap off and on does this.
  • For any endpoint, 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. Test pings don’t count. The notification is sent once per streak, and later failures in the same streak don’t send it again.
A subscription also ends, and shows as Ended, when the API key or app access that created it is revoked, or when the survey it is limited to is deleted. A subscription that ended because its survey was deleted stays ended, and members whose role has the Manage integrations or Manage developer settings permission receive a notification named after the app, such as “A Zapier trigger stopped”, or “An API subscription stopped” for one an API key created. Subscribing to that survey again fails with APK-006-005, so turning a Zap off and on doesn’t bring it back, and the Zap starts again only after its trigger names another survey.

Events that arrive during a pause

While failures keep a workflow, an endpoint’s survey events or a subscription paused, Usertick keeps the events that would have been sent. It keeps each event for up to 7 days and at most 1,000 events for each workflow, survey events setting or subscription. When more arrive, Usertick drops the oldest first. After Turn on, Resume or a new subscribe, Usertick sends the kept events in the order they arrived, before any event that arrives afterward. Only a pause that failures caused keeps events. Nothing is kept for a workflow or an endpoint that is turned off, or for a workflow that is paused because its survey changed or was deleted or because collection was paused for the organization. When someone turns off a paused workflow or the endpoint of paused survey events, or when a paused subscription ends, Usertick drops the events kept for it.

Turn an endpoint off

To stop all 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. A skip isn’t a failure and never pauses a workflow.
  • Its survey events are not sent.
  • Account notifications and waiting retries are not sent.
Events that occur while the endpoint is off are not sent later. After the endpoint is turned back on, sending resumes with the next event. Paused survey events stay paused until they are resumed. Send again still works while the endpoint is off.

Delete an endpoint

To delete an endpoint, select its row, select Delete webhook and type the endpoint’s name to confirm. Deleting removes the endpoint with its delivery log and its survey events. If workflows still send to it, the dialog lists those workflows first, and Delete anyway deletes it. Their Send to a webhook steps stop sending until they point to another endpoint. The Used in section of the endpoint’s Settings lists the workflows that send to it.

Endpoint requirements

  • The URL must use https:// with a valid certificate. Usertick checks the URL again before every send.
  • The host must resolve to a public address. Usertick doesn’t send to private networks, loopback addresses or cloud metadata addresses.
  • Usertick doesn’t follow redirects, so the URL must be the final one.
  • The endpoint should be idempotent, because retries, resends and the rare duplicate are expected.