Webhook History
Read the live log of inbound requests and outbound deliveries on a connection
Every webhook connection has a log of the last 7 days of traffic. Open the connection and click Logs in the header. The panel is titled with the connection name and says Live webhook activity log. The log is view-only: you cannot retry or redeliver an event from it. Owners and Admins can open it, also on a plan below Pro, so you can see what happened while you were away.


A connection is either inbound or outbound, so its log shows one kind of traffic. A streaming indicator at the top shows the live feed is connected. New rows appear at the top. Scroll down to load older ones, or click Jump to latest to go back to the top.
Inbound Requests
For an inbound connection, each row is one POST to /webhooks/in/{connectionId}. It shows the time, an outcome, a short message or the request ID, the body size and the duration. A ⇒ n marker shows how many flow runs the request planned. A REPLAY marker means Wexio saw the same idempotency key again.
Use All outcomes to filter by one outcome, for example only UNAUTHORIZED.
| Outcome | Meaning |
|---|---|
ACCEPTED | Authenticated, read, and at least one flow started |
SAMPLE_CAPTURED | Taken by an open sample capture. No flow ran |
UNAUTHORIZED | The secret or signature did not match. The row message says why |
INVALID_JSON | The body was not valid JSON |
PAYLOAD_TOO_LARGE | The body was over 100 KB |
IDENTIFIER_NOT_FOUND | No contact could be found from the payload |
TRIGGER_NOT_FOUND | The connection is paused or deleted, no trigger is bound to it, or the plan no longer includes webhooks |
NEWS_INGEST_FAILED | A news or help ingest bound to the connection rejected the payload |
ERROR | Any other failure |
Click a row to see its request ID, idempotency key, the contact it resolved to, the logged headers, and the start of the body.
Outbound Deliveries
For an outbound connection, each row is one delivery attempt. It shows the time, a status, the event name, the destination URL, the response code from the receiver and the duration. A retry shows ↻ and the attempt number.

Use All statuses to filter. The statuses are PENDING, SUCCESS, RETRYING, FAILED and DEAD_LETTER.
Click a row to see the event ID, the destination, the error if the delivery failed, and the full payload. A long payload may load on demand. One event gives one row per attempt.
Wexio makes up to 6 attempts per event. The wait doubles each time, starting at 2 seconds.
What Is Stored
- Headers. Only
content-type,content-length,user-agent,x-request-id,x-idempotency-key,x-forwarded-forandx-real-ip. Secrets and signature headers are never saved. - Body. The first 4 KB, as a preview.
Rows are deleted after 7 days and cannot be recovered. If you need a longer audit trail, copy deliveries out on your own schedule.
Fix Common Problems
| Symptom | Likely cause | Fix |
|---|---|---|
A stream of UNAUTHORIZED rows | Wrong secret, or the sender rotated theirs | Copy the current secret into Wexio |
UNAUTHORIZED with timestamp outside ±5 min tolerance | The sender's clock is off, or an old request was replayed | Check the clock on the sender |
IDENTIFIER_NOT_FOUND | The contact does not exist yet, or the JSON path is wrong | Check the path in the connection. Capture a fresh sample if the payload changed |
INVALID_JSON | The sender posts form-encoded data | Make the sender post application/json |
Outbound FAILED rows | The receiver is down or slow | Check the receiver. Wexio retries on its own |
Related
- Inbound Webhooks - set up a connection that receives events.
- Outbound Webhooks - send Wexio events to your system.