Webhooks and API

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.

Inbound connection page with the Logs button highlighted in the header
Logs panel of an inbound connection with the streaming indicator, the All outcomes filter and ACCEPTED, IDENTIFIER_NOT_FOUND and UNAUTHORIZED rows

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.

OutcomeMeaning
ACCEPTEDAuthenticated, read, and at least one flow started
SAMPLE_CAPTUREDTaken by an open sample capture. No flow ran
UNAUTHORIZEDThe secret or signature did not match. The row message says why
INVALID_JSONThe body was not valid JSON
PAYLOAD_TOO_LARGEThe body was over 100 KB
IDENTIFIER_NOT_FOUNDNo contact could be found from the payload
TRIGGER_NOT_FOUNDThe connection is paused or deleted, no trigger is bound to it, or the plan no longer includes webhooks
NEWS_INGEST_FAILEDA news or help ingest bound to the connection rejected the payload
ERRORAny 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.

Logs panel of an outbound connection with the All statuses filter and SUCCESS, RETRYING and FAILED delivery rows with 200, 503 and 410 responses

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-for and x-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

SymptomLikely causeFix
A stream of UNAUTHORIZED rowsWrong secret, or the sender rotated theirsCopy the current secret into Wexio
UNAUTHORIZED with timestamp outside ±5 min toleranceThe sender's clock is off, or an old request was replayedCheck the clock on the sender
IDENTIFIER_NOT_FOUNDThe contact does not exist yet, or the JSON path is wrongCheck the path in the connection. Capture a fresh sample if the payload changed
INVALID_JSONThe sender posts form-encoded dataMake the sender post application/json
Outbound FAILED rowsThe receiver is down or slowCheck the receiver. Wexio retries on its own

Was this page helpful?

On this page