QEHSQEHS

Developer portal

record.transitioned.v1

A record advanced between workflow states.

record.transitioned.v1v1at-least-once delivery

Fires when

After all workflow guards pass and the state machine advances. Not fired if a guard rejects the transition.

Payload fields

Envelope fields are shared across all event types. Event-specific data is nested under data.

FieldTypeRequiredDescription
eventIdstring (uuid)requiredUnique per delivery attempt. Use for deduplication.
eventstringrequiredFully-qualified event name, e.g. record.created.v1.
tenantIdstring (uuid)requiredTenant that owns the affected resource.
firedAtstring (date-time)requiredISO-8601 UTC timestamp when the event was emitted.
data.recordIdstring (uuid)requiredID of the transitioned record.
data.moduleKeystringrequiredComposer module key.
data.fromStatestringrequiredWorkflow state key before the transition.
data.toStatestringrequiredWorkflow state key after the transition.
data.transitionKeystringrequiredKey of the transition that fired.

Sample payload

{
  "eventId": "33333333-4444-5555-6666-777777777777",
  "event": "record.transitioned.v1",
  "tenantId": "00000000-1111-2222-3333-444444444444",
  "firedAt": "2026-04-18T12:36:00.000Z",
  "data": {
    "recordId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "moduleKey": "incidents",
    "fromState": "draft",
    "toState": "in_review",
    "transitionKey": "submit"
  }
}

Verify the signature

Every delivery includes X-QEHS-Signature: sha256=<hex> and X-Job-ID headers. Verify before trusting the body. See the webhooks signature docs for a full verification example.