AckdbSourceCreateRequest

Declare a custom source with eventTypeField. identityLinkTypes may be empty for a closed source containing only person_only types; otherwise include domain.

Properties

sourceTypestringrequiredpattern /^[a-z][a-z0-9_]*$/

Lowercase source identifier (e.g. `app_usage`).

displayNamestringrequired

Human-readable name.

descriptionstringrequired

What data this source carries.

versionstring

Optional source version string.

queryingGuidestring

Optional agent-facing guidance on how to query this source's events.

identityLinkTypesarray ofrequired

May be empty when every declared event is person_only and allowCustomEventTypes is false. Otherwise must include domain. Add domain before adding company event types or allowing custom types.

string
eventTypeFieldstringrequired

REQUIRED. Which content.metadata field determines the event type.

eventTypePrefixstringrequired

Namespace prefix for event types.

defaultContentNaturestring

Optional default content nature applied to events that don't specify one.

"conversational""structured""activity-signal"
allowCustomEventTypesboolean

Optional HubSpot-custom-objects escape hatch: accept unknown event types and skip per-event validation.

defaultTraitsarray of

Optional default traits (each key must be `<sourceType>_*`).

eventsarray of

Optional event type definitions to create alongside the source.

contextOnlyboolean

This source's events describe a PERSON but anchor to a company (`job` → the employer, `education` → the school), so the entities it mints are context rather than accounts (#493). A company whose only ingested evidence comes from such sources is hidden from the Companies grain and excluded from every score population. NULLABLE: `null` means never-decided and lets the pack loader seed it; `true`/`false` is a decision the loader will not overwrite.

Example

AckdbSourceCreateRequest example
{
  "sourceType": "app_usage",
  "displayName": "App Usage",
  "description": "string",
  "version": "string",
  "queryingGuide": "string",
  "identityLinkTypes": [
    "domain",
    "app_account_id"
  ],
  "eventTypeField": "event_type",
  "eventTypePrefix": "app_usage_",
  "defaultContentNature": "conversational",
  "allowCustomEventTypes": false,
  "defaultTraits": [
    {
      "traitKey": "app_usage_dau",
      "valueType": "number",
      "description": "string",
      "allowedValues": [
        "string"
      ]
    }
  ],
  "events": [
    {
      "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": {},
        "startedAtField": "string",
        "endedAtField": "string",
        "externalIdScope": "person",
        "endsPrior": false,
        "isPrimary": false
      },
      "contactMappings": [
        {
          "$ref": "See AckdbContactMappingInput"
        }
      ]
    }
  ],
  "contextOnly": false
}