How to Use Webhooks in UniLink (Send Real-Time Events to External Services)

How to Use Webhooks in UniLink (Send Real-Time Events to External Services)
Automatically notify your CRM, automation tool, or custom server the moment someone subscribes, submits a form, or places an order on your UniLink page.
What this article covers: How to create a webhook in UniLink, configure your endpoint URL, choose which events to send, read the delivery log, and retry failed requests.
A webhook is a push notification sent from UniLink to a URL you control. Instead of polling your dashboard every hour to check for new subscribers or orders, you configure a webhook once and UniLink calls your endpoint automatically every time a relevant event happens. This is how UniLink connects to CRMs, internal databases, Slack channels, and custom automation servers in real time — without needing a Zapier intermediary.
What Webhooks Does
When a trigger event occurs on your page — a new email subscriber, a form submission, a product order, a chatbot conversation — UniLink sends an HTTP POST request to your specified endpoint URL. The request body is a JSON object describing what happened: the event type, a timestamp, and the relevant data (subscriber email, form fields, order amount, etc.).
You can create multiple webhooks, each listening for different events and pointing to different endpoints. For example, one webhook can send new orders to your fulfillment system and another can send new subscribers to your email marketing API. Each webhook has its own delivery log so you can see every request that was sent, the HTTP response your server returned, and whether delivery succeeded or failed.
Failed deliveries are retried automatically up to three times with exponential backoff. If all retries fail, the webhook is marked as failed in the log and you can trigger a manual retry from the dashboard.
How to Get Started With Webhooks
- Open Integrations in your Dashboard — log in, go to Settings or the Integrations section, and select Webhooks.
- Click Add Webhook — this opens the webhook creation form.
- Enter your endpoint URL — this is the URL on your server or third-party service that will receive the POST request. It must be publicly accessible over HTTPS. For testing, you can use a free service like Webhook.site to inspect incoming requests without any server setup.
- Select the event types you want to receive — check all events relevant to your use case: New Subscriber, Form Submission, New Order, Chatbot Lead, or Link Click. You can select multiple events for one endpoint or create separate webhooks per event type.
- Add a secret key (optional but recommended) — UniLink will include this key in each request header as X-UniLink-Signature. Your server can verify the signature to confirm the request is genuinely from UniLink and not from a third party spoofing the payload.
- Send a test event — click Send Test to fire a sample payload to your endpoint. Check your server logs or Webhook.site to confirm the request arrived and your server responded with HTTP 200.
- Save the webhook — once the test succeeds, save. UniLink will begin delivering live events immediately.
How to Use Webhooks
- Read the delivery log — open any webhook and click Delivery Log. Each row shows the event, the timestamp, your server's HTTP response code, and the response body. A green checkmark means delivery succeeded; a red X means it failed.
- Retry a failed delivery — click Retry next to any failed entry. UniLink resends the original payload. This is useful if your server was temporarily down and you want to reprocess missed events.
- Inspect the payload — click any log entry to see the full JSON body that was sent. Use this to map field names when setting up your server-side handler or a Zapier Catch Hook.
- Pause a webhook without deleting it — toggle the Active switch off. UniLink stops sending events but retains the configuration and delivery history. Toggle back on to resume.
- Edit event subscriptions — return to the webhook settings at any time to add or remove event types without recreating the webhook.
- Monitor error rates — if your server consistently returns 4xx or 5xx responses, check the delivery log for patterns. A 400 error usually means a payload parsing issue on your server; a 401 or 403 means your endpoint requires authentication that UniLink is not providing.
- Delete old webhooks — remove webhooks for endpoints you no longer use to keep the list clean and avoid sending data to inactive URLs.
Key Settings Explained
| Setting | What it controls | Best practice |
|---|---|---|
| Endpoint URL | The HTTPS address that receives POST requests from UniLink | Use HTTPS only; HTTP endpoints will be rejected. Test with Webhook.site before pointing to a production server |
| Event Types | Which page events trigger a delivery to this webhook | Create separate webhooks for different business systems (one for orders, one for leads) rather than one webhook listening to all events |
| Secret Key | A string included as X-UniLink-Signature in every request header | Always set a secret and verify it on your server to prevent spoofed payloads from unauthorized sources |
| Active Toggle | Whether UniLink is currently sending events to this webhook | Pause webhooks during server maintenance rather than deleting them — you keep the history and configuration |
| Retry Policy | Automatic retries on delivery failure (3 attempts, exponential backoff) | Design your endpoint to be idempotent — capable of processing the same event twice without side effects, in case retries deliver a duplicate |
How to Get the Most Out of Webhooks
The most powerful use of UniLink webhooks is syncing new subscribers to an external email marketing tool or CRM. When a visitor enters their email in a Subscribe block, the webhook fires within seconds. Your server receives the email, first name, and any custom fields, and can immediately add the contact to Mailchimp, ActiveCampaign, HubSpot, or any system with an API — without manual exports.
For e-commerce use cases, hook the New Order event to a fulfillment webhook. When an order is placed on your UniLink storefront, the webhook sends the order data — items, quantity, shipping address — to your fulfillment partner or warehouse system in real time. This eliminates the delay of checking the UniLink dashboard manually and reduces the risk of missed orders during busy periods.
If you build your own server, make sure your endpoint responds with HTTP 200 within five seconds. UniLink considers any response outside that window a failure and will retry. A slow handler that takes ten seconds to process an order will cause unnecessary retries and duplicate entries in your system. Respond 200 immediately, then process the payload asynchronously.
Use the delivery log as a debugging tool during setup, not just when things break. Reviewing the first five live payloads after launch confirms that field names match what your code expects and that no events are being silently dropped.
Troubleshooting Common Issues
| Problem | Likely cause | Fix |
|---|---|---|
| Webhook shows failed status for every event | The endpoint URL is unreachable — server is down, firewall is blocking UniLink IPs, or the URL has a typo | Test the URL in a browser or with curl; check firewall rules and confirm the server is running; use Webhook.site to verify UniLink can reach an external endpoint |
| Server receives the payload but returns 401 | Your endpoint requires authentication that the webhook request does not include | Either remove authentication from the webhook route, or add the secret key and verify it in your server logic using the X-UniLink-Signature header |
| Duplicate entries appearing in your CRM | Retry logic is re-sending events because your server took too long to respond the first time | Respond HTTP 200 immediately upon receiving the request and process the payload asynchronously; add idempotency checks using the event ID in the payload |
| No events showing in the delivery log | The event types you selected have not been triggered yet, or the webhook is paused | Confirm the Active toggle is on; trigger a test event manually using the Send Test button; check that the selected event types match the actions you are performing on the page |
Pros
- Real-time delivery — events arrive at your endpoint within seconds of occurring on the page
- Works with any server or service that accepts HTTP POST — no vendor lock-in
- Detailed delivery log makes it easy to debug and verify that every event was processed
- Automatic retries with exponential backoff handle temporary server outages without manual intervention
Cons
- Requires a publicly accessible HTTPS endpoint — not suitable for local development without a tunnel tool like ngrok
- Your server must respond within five seconds or UniLink marks delivery as failed and retries
- No built-in payload transformation — if your CRM needs a different field structure, you must handle the mapping in your own server code or use a middleware tool like Zapier
Frequently Asked Questions
What format does the webhook payload use?
All webhook payloads are JSON objects sent as the POST request body with Content-Type: application/json. Each payload includes an event field identifying the event type, a timestamp in ISO 8601 format, and a data object containing the event-specific fields such as subscriber email, form fields, or order details.
Can I receive webhooks in Zapier directly?
Yes. In Zapier, create a Zap with a Webhooks by Zapier trigger set to Catch Hook. Zapier gives you a unique URL. Paste that URL as your endpoint in UniLink. This is the simplest way to connect UniLink events to any of Zapier's 5,000+ apps without writing server code.
How many webhooks can I create?
The number of webhooks available depends on your UniLink plan. Check the Integrations page in your dashboard for the limit on your current plan. Most paid plans allow multiple webhooks pointing to different endpoints.
Does UniLink retry webhooks if my server is down?
Yes. UniLink retries failed deliveries up to three times with exponential backoff — roughly 1 minute, 5 minutes, and 25 minutes after the initial failure. After three failed retries the delivery is marked as permanently failed, but you can trigger a manual retry from the delivery log at any time.
How do I verify that a webhook request is genuinely from UniLink?
Set a Secret Key when creating the webhook. UniLink includes this value in the X-UniLink-Signature header of every request. In your server code, compare the incoming header value to the secret you configured. If they do not match, reject the request. Never process webhook payloads without signature verification in a production environment.
Key Takeaways
- Webhooks send real-time POST notifications to your endpoint when events happen on your UniLink page — no polling required.
- Always test with Webhook.site before connecting a production server; it shows you the full JSON payload and all headers.
- Set a secret key and verify it on your server to prevent unauthorized spoofed requests.
- Respond HTTP 200 within five seconds and process payloads asynchronously to avoid triggering unnecessary retries.
- The delivery log shows every event, response code, and body — use it for debugging during setup, not only when something breaks.
Ready to connect UniLink to your stack in real time?
Sign up for UniLink and start sending live event data to your CRM, fulfillment system, or automation tools the moment something happens on your page.
Get Started FreeCreate Your Free Link-in-Bio Page
Join thousands of creators using UniLink. 40+ blocks, analytics, e-commerce, and AI tools — all free.
Get Started Free