AckdbEventTypeInput

Event type definition payload for declaring/editing an event type. The same shape is accepted in `SourceCreateRequest.events[]`, `POST .../events`, and `PUT .../events/{eventType}`.

Properties

eventTypestringrequired

Event type identifier (e.g. `usage.daily_rollup`).

descriptionstringrequired

What this event represents.

categorystring

Optional cross-source activity category.

rationalestring

Optional: why this event is included.

contentNaturestringrequired

How the event's content should be treated downstream (e.g. for embedding).

"conversational""structured""activity-signal"
eventScopestringrequired

Whether the event describes a person or the entity (company/account).

"person""entity"
fieldsobjectrequired

Field name → field definition. The event's content schema.

promotedMetadataFieldsarray of

Fields promoted into entity_events.metadata for fast filtering/aggregation.

string
traitHintsarray of

Optional traits that should be updated when this event is ingested.

traitKeystringrequired

Trait to update. Must be a registered trait definition.

computeHintstring

How to compute the trait value from this event's content.

updateStrategystring

Advisory authoring hint only - it does NOT auto-translate to an ingest `op`. `always` ≈ `op:set`; `latest` ≈ `op:set_if_newer` (date traits); `first_only` has no native op (the workflow must guard on first observation). The workflow still sets the actual `op` on each ingested trait.

"always""first_only""latest"
ingestExampleobject

Optional complete POST /ingest template for this event.

replacesEventsarray of

Source events intentionally excluded because this event covers their signal.

string
contactMappingsarray of

Multiple contact mappings (merged with the singular `contactMapping`).

Example

AckdbEventTypeInput example
{
  "eventType": "string",
  "description": "string",
  "category": "string",
  "rationale": "string",
  "contentNature": "conversational",
  "eventScope": "person",
  "fields": {},
  "promotedMetadataFields": [
    "string"
  ],
  "traitHints": [
    {
      "traitKey": "string",
      "computeHint": "string",
      "updateStrategy": "always"
    }
  ],
  "ingestExample": {},
  "replacesEvents": [
    "string"
  ],
  "contactMapping": {
    "role": "string",
    "nameField": "string",
    "emailField": "string",
    "titleField": "string",
    "externalIdField": "string",
    "externalIdType": "string",
    "linkedinUrlField": "string",
    "phoneField": "string",
    "departmentField": "string",
    "excludeWhen": {}
  },
  "contactMappings": [
    {
      "$ref": "See AckdbContactMappingInput"
    }
  ]
}