Skip to content
Back to site

Event diff

Event diff reads two stored payloads and reports every path that was added, removed or changed. Use it when one event broke a receiver and a similar one did not.

It is Develop → Event Diff in the dashboard, and GET /api/v1/projects/{projectId}/events/diff in the API reference.

  1. Pick the two events. Search the project’s events by type or id and choose one for each side. Comparing an event with itself is allowed and reports nothing.

  2. Decide about masking. Mask PII before comparing is on by default: your PII masking rules are applied to both payloads first, so a masked field reads the same on both sides and drops out of the result. Turn it off when the field you are chasing is masked.

  3. Read the result. Each difference is a path into the payload ($.customer.email, $.items[2].sku), the value on each side, and one of three verdicts:

    Verdict Means
    ADDED The path exists on the right and not on the left.
    REMOVED The path exists on the left and not on the right.
    CHANGED Both sides have it and the values differ.

A diff is read-only. Both events keep their stored payloads unchanged.

Both event ids are in the page’s address, so a link opens the comparison already made. Paste it into an incident thread.

  • It compares two stored events only. Not a delivery body, not a transformation’s output, not pasted JSON, and not incoming webhooks (those are Incoming Events, a different record). To see what a template does to a payload, use Transform Studio.
  • Both events must be in the same project. An id from another project is reported as not found.
  • Arrays are compared by position. $.items[0] is compared with $.items[0], so inserting an element at the front of a list reports every later position as changed. Object fields are matched by name, so key order does not matter.
  • A payload that is not JSON is compared whole. If either side cannot be parsed, the result is a single $ entry holding both documents.
  • The two need not be the same type. You can compare order.created with user.updated. The result names the left event’s type.