QEHSQEHS

Developer portal

record.created.v1

A record was created in a module.

record.created.v1v1at-least-once delivery

Fires when

On successful record creation — via the QEHS UI, REST API, bulk import, or a public intake form submission.

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 newly-created record.
data.moduleKeystringrequiredComposer module key, e.g. incidents.
data.createdBy.userIdstring (uuid)optionalOmitted when created by an API key or service account.
data.createdBy.kind"user" | "external_user" | "api_key" | "service_account"requiredIdentifies the actor type.

Sample payload

{
  "eventId": "11111111-2222-3333-4444-555555555555",
  "event": "record.created.v1",
  "tenantId": "00000000-1111-2222-3333-444444444444",
  "firedAt": "2026-04-18T12:34:56.000Z",
  "data": {
    "recordId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    "moduleKey": "incidents",
    "createdBy": {
      "userId": "99999999-8888-7777-6666-555555555555",
      "kind": "user"
    }
  }
}

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.