Skip to content
Sendora
Create account
Concepts

The event envelope

Every event in Sendora shares one shape — five fields that every module understands.

Fields

  • actor — the user or system performing the action.
  • verb — a dotted name describing what happened.
  • object — what was acted on.
  • context — device, IP (hashed), locale, session, page.
  • consent — purpose allowlist at the time of the event.

Example

{
  "actor":   { "id": "u_123", "email": "sam@acme.co" },
  "verb":    "order.placed",
  "object":  { "id": "ord_81", "amount": 4200, "currency": "USD" },
  "context": { "ip": "203.0.113.4", "ua": "iPhone/17.2", "locale": "en-US" },
  "consent": ["marketing", "analytics"]
}

Why this shape

Because every module reads from and writes to the same envelope, analytics funnels, messaging templates, and support timelines all speak the same language. Add a new module, and it instantly has every event it needs — no pipeline to build.

Verb conventions

We recommend lowercase, dot-separated object.past_tense_verb: order.placed, session.started, link.clicked. Sendora doesn't enforce this — but it makes searching events easier.