- Category
- API
- Direction
- Event delivery
- Format
- JSON signed with HMAC-SHA256
- Endpoints
- Up to 25 per organization
- Retries
- Up to 6 attempts, over more than a day
- Setup
- An HTTPS address and a secret
- Plans
- Enterprise plan
- Publisher
- Upsellr
01What webhooks do
The signal that moves your tools forward.
- 01
An event at the end of every run
Completed, failed or stopped: at the end of each enrichment or generation run, Upsellr sends the event with the run’s details.
- 02
Signed, so it can be verified
Each delivery carries an ID, a timestamp and an HMAC-SHA256 signature computed with your secret: your tool checks it really comes from Upsellr.
- 03
Retried until received
Without a 2xx answer within 10 seconds, Upsellr retries after 1 minute, 5 minutes, 30 minutes, 4 hours, then 24 hours.
- 04
A log of every delivery
Status, HTTP code, number of attempts and content: each delivery can be checked for 7 days, and a failed one can be replayed in one click.
- 05
Chain your tools
Publish, notify a team or start an export as soon as the pages are ready: the webhook gives the signal, your tool does the rest.
- 06
Stay in control
Disable an endpoint, change its secret or delete it: its pending retries are canceled.
02Getting started
Connected in a few minutes.
- 01
Open the organization settings
API and webhooks section, reserved to owners and admins.
- 02
Add an endpoint
An HTTPS URL, reachable from the internet.
- 03
Copy the secret
It is shown only once and is used to verify the signature of each delivery.
- 04
Verify the signature
Recompute the HMAC-SHA256 signature of the timestamp and the content, and reject a delivery that is too old.
- 05
Answer fast
A 2xx answer within 10 seconds, then handle the rest on your side.
03Events
The events sent.
| Event | Sent | Retried if needed |
|---|---|---|
| Run completed (workflow.run.completed) | Yes | Yes |
| Run failed (workflow.run.failed) | Yes | Yes |
| Run stopped (workflow.run.stopped) | Yes | Yes |
Compatibility and requirements
- The Enterprise plan
- A public HTTPS address, on port 443
- An owner or admin role
- A 2xx answer within 10 seconds
- Tip: deduplicate on the event ID
You stay in control
Reliable by design.
- Signed with HMAC-SHA256, with a secret per endpoint
- Delivered at least once: deduplicate on the event ID
- Retried up to 6 times, over more than a day
- Sent over HTTPS, to public addresses only
04Questions
Questions about Upsellr webhooks.
Are webhooks included in my plan?
They are reserved to the Enterprise plan, like the API.
Which events are sent?
The end of an enrichment or generation run: completed, failed or stopped. Each event contains the run’s details.
How do I check a delivery comes from Upsellr?
Recompute the HMAC-SHA256 signature of the timestamp and the content with your secret, compare it with the X-Upsellr-Signature header, and reject a delivery older than 5 minutes.
What happens if my server does not answer?
Without a 2xx answer within 10 seconds, Upsellr retries after 1 minute, 5 minutes, 30 minutes, 4 hours, then 24 hours. A failed delivery can also be replayed by hand from the log.
Can I receive the same event twice?
Yes, it can happen: delivery is guaranteed at least once, with no guaranteed order. Deduplicate on the event ID.
How long is the log kept?
7 days, with the status, HTTP code, number of attempts and content of each delivery.
How many endpoints can I declare?
Up to 25 per organization, each with its own secret, which you can rotate.
Does a test in the workflow editor send an event?
No. Only real runs send events.
Your next product
deserves more than copy and paste.
Give your AI team its first products to work on.






