Events view

Inspect every event the project has received — search, filter, replay, or edit-and-replay.

The events view at Projects → your project → Events shows every event the project has received. It’s the operator’s primary surface: filter and search for the row you care about, click through for the full detail, replay when something went sideways.

The list

Each row shows source, status, label, a summary of the payload, and when it arrived. Rows update in near-real-time as new events ingest. Status pills:

PillMeaning
deliveredAt least one endpoint delivery succeeded (possibly after retries).
pendingA delivery is still retrying.
failedEvery delivery exhausted its retry policy.
droppedA rule dropped the event before delivery.

Filters

The pill row above the list filters by:

  • Source — webhook / email / slack / cron.
  • Status — one or more of the pills above.
  • Time window — last hour / 24h / 7d / 30d / all.

Filters stack; combine them freely.

Type a query into the search box to match substrings against the event’s prompt-ready rendering, the one-line summary, and the source label. Useful shapes:

  • Identifiers: evt_01hk8, cus_AbcDef, in_1PabcD, PR #42.
  • Email addresses or domains: alice@acme.com, @acme.com.
  • Provider or channel names: stripe, github, support-inbox.

Search composes with the filters above — filter to status=failed in the last 24h, then search for the customer id to find exactly the event you want.

The detail panel

Clicking a row opens a side panel with the full event. Two views:

  • Summary — source, channel, verification status, prompt-ready rendering, replies.
  • Raw — the full raw payload as Nevo received it.

The Deliveries section lists every endpoint the event was dispatched to and every attempt made, with retry counts and countdowns:

  • 200 · 142ms · 1x — succeeded on the first attempt.
  • 200 · 93ms · 3x — succeeded after two retries.
  • retrying · 2x · next retry in 1m 46s — still retrying; countdown updates live.
  • failed · 5x — terminally failed after the endpoint’s max attempts. Row links into the DLQ view.

Each row shows the endpoint’s retry policy inline (max 5 attempts · base 60s) so you know why a retry hasn’t fired yet.

Click open full page to pivot to the dedicated event page with the complete delivery history, reply log, and raw payload side by side.

Replay

Hit replay to re-dispatch the event through the current fanout. The replay carries the same event id, so your handler can treat it idempotently; endpoints receive Nevo-Origin: replay in the headers. Live filter and transform rules apply at replay time, same as for fresh events.

A toast confirms the replay was queued; new delivery attempts appear in the Deliveries section within a second or two.

Edit-and-replay

For webhook events, replay with edits opens a modal where you can tweak the request body before re-dispatching. Useful for:

  • Recovering from a bad upstream payload (e.g. Stripe sent a customer=null for a known customer — patch it and replay).
  • Testing how your handler responds to a variant without waiting for another live event.
  • Scrubbing a value you don’t want to resend (e.g. a test-mode signature) before feeding the event back through.

The editor validates JSON on save. The edited body is stored against the new delivery attempts only — the original event record is never mutated. Each edit is logged with the operator who made it.

Edit-and-replay is currently webhook-only. Email, slack, and cron events have richer shapes where body substitution isn’t well-defined, so the button shows disabled with an explanatory tooltip on those.

Tags from rules

If a rule tagged the event, the tags render as chips alongside the source pill. Click a tag to filter the list to every event carrying it.