Splashify RCS

Docs

Open panel
Panel

Event log

Every webhook delivery attempt and the response your endpoint returned, newest first. This is where you go when someone says “your webhook never fired”.

Find it at Settings → Event log (rcs.splashifypro.com/settings/events). Every role can read it.

You need at least one webhook first

The log records deliveries, so an account with no endpoints configured has nothing to show. Set one up under Webhooks and the attempts start appearing immediately.

What a row is

The Event log listing webhook attempts with the event, HTTP status, time taken, attempt number, endpoint and time, including two 401 replies, one attempt that got no response because it timed out, and one event retried three times until it succeeded
One row per attempt: the event, the status it got, which try it was and where it went.

One row is one attempt to deliver one event to one endpoint. A single event that had to be retried therefore appears several times. That is the retry schedule working, not a duplicate.

A row marked Failed (no response) never got an HTTP answer. The request timed out, the connection was refused, or your domain did not resolve, and the line under it says which. It is a failure like any other and is retried the same way.

Reading it

The tabs filter by outcome: All, Succeeded and Failed. Failed is usually the first one to open when something is wrong.

One event, several rows

Attempts 1–3 failing and attempt 4 succeeding is a healthy integration surviving a blip. Nothing to fix.

Every attempt around 12 seconds

Your endpoint is too slow. Each attempt waits 12 seconds for your reply, then counts as failed. Acknowledge with a 200 as soon as you have the payload and do the real work afterwards, rather than processing before you reply.

A wall of 401s or 403s

Almost always a rotated signing secret that the receiving service was never updated with. Check what your consumer is verifying against.

A wall of 404s

The route moved. Update the URL on the endpoint under Settings → Webhooks.

Nothing at all for an event you expected

The endpoint is probably not subscribed to that event type. Open it under Webhooks and check the event checkboxes.

It is a recent tail, not the whole history

The log holds the most recent attempts per endpoint, the footnote on the page says as much. There is no way to page back through older attempts.

Do not treat this as your archive

If you need webhook history for audit or reconciliation, keep your own. The Event log API exposes the same rows, so a periodic pull into your own store is straightforward, and your own server's access logs, correlated on the delivery id we send in the X-SplashifyPro-Delivery header, are the other half of the picture.

You may also see a note that the log is partial. That means one of your endpoints could not be read at that moment, so its attempts are missing from the table. Refresh. It is usually transient.

Dead-letter queue

The Dead-letter queue with three events that failed every attempt, their endpoint, the reason, when they were first tried and given up on, and a Replay button on each
Events that failed all four tries. Replay sends one again.

A delivery that fails is retried three more times, at 1 second, 5 seconds and 30 seconds. If all four attempts fail, it stops being retried and lands in the dead-letter queue, reachable from the Event log, or at Settings → Webhooks → Dead-letter.

Everything in that queue is an event your server never received. No amount of healthy-looking traffic elsewhere changes that; if there is a gap in your data, this is the first place to look.

Each row shows the event, the endpoint, why it was abandoned, when we first tried and when we gave up.

Replaying

Replay re-queues the archived event for delivery. It gets a fresh delivery id and the full four-attempt schedule again, and the row is removed from the queue so it cannot be replayed twice by accident.

  1. Fix the cause first

    A replay against a still-broken endpoint just fails again and lands straight back in the queue. Confirm the endpoint is healthy, the Test button on the webhook does exactly this.

  2. Replay the affected rows

    One at a time, from the dead-letter page.

  3. Confirm in the Event log

    The replay appears as a new attempt. A 2xx means it landed.

Your consumer must be idempotent

A replayed event is one your server may have already partially processed before it failed. It might have written a row and then crashed before replying. Deduplicate on the delivery id, or on the business fact in the payload. Assuming a replayed event is one you have never seen is how duplicate orders get created.

The payload is replayed exactly as it was originally sent. It is not recalculated from current state, so replaying last week's broadcast.completed delivers last week's counters, which is what you want for reconciliation, and worth knowing before you use one to refresh a dashboard.

When to use this page

Wiring up a new integration

Send a test from Settings → Webhooks, then come here and read what your server actually replied. Far faster than adding logging on your side and redeploying.

Someone reports a missing event

Filter by event type. Either there is a row, and the status and response settle the argument, or there is not, and the endpoint is not subscribed to it.

After an incident on your side

Check the dead-letter queue for the outage window and replay what was dropped.

After rotating a signing secret

Watch for a sudden wall of 401s, which means one consumer did not get the new secret.