HomeGuidesAPI Reference
API Reference

Webhooks events and payloads

Process execution webhooks are used during the execution of processes you run on spektr's platform.

Read more about webhooks in spektr here.

All webhook events are sent in batches of the following shape:

{
  "results": [
    { "eventType": "process_run_start", "data": {} }
  ]
}

In the above representation, the results array contains individual events as described below.

WebhookDescription
process_run_startA process starts running.
loop_run_startA loop starts running. Data also includes execution fields and configured loop settings.
process_run_endA process reaches an outcome. Data includes customer and execution fields alongside the process result.
process_expiredA process link expires.
service_runA service response is received. vendorSearchId identifies the raw vendor response available through the record API.
alert_escalatedAn alert is escalated.
alert_resolvedAn alert is resolved.
customer_tag_addA tag is added to a customer.
customer_tag_removeA tag is removed from a customer.
customer_status_change (deprecated)Legacy status change event. Use customer_status_changed for new integrations.
customer_status_changedA customer status changes through a process, a user, or the API.
customer_duplicate_detectionA duplicate customer is detected.
customer_record_changedCustomer record fields change. JSON array values are delivered as arrays.
ownership_ai_createdA customer is created by AI ownership discovery.
ownership_ai_added_ownerAI discovery adds an owner to the connection graph.
client_record_syncAn imported customer is synchronized through a connector.
step_initA form step is initialized.
step_submitA form step is submitted. Data can include submitted field values.
behavior_signal_raisedA behavior signal is published after ingest. One event per reconciled transaction.
signal_claimedAn analyst claims a case with a linked RAI behavior signal.
signal_resolvedAn analyst resolves a case with a linked RAI behavior signal.
external_data_waitingAn External Data step is waiting for your integration to supply data.
external_data_receivedAn External Data step receives and accepts data.
external_data_timed_outAn External Data step times out before receiving data.

Common fields

Every event in a batch carries these fields. The sections below document the event-specific fields.

NameTypeDescription
idstringUnique event ID. Use it to deduplicate deliveries.
workspaceIdstringWorkspace that emitted the event.
eventTypestringType of event, for example process_run_start. Each section below documents one event type.
timestampnumberEvent creation time: Unix epoch milliseconds. HMAC header timestamps use seconds.
spektrIdstring | undefinedCustomer related to this event, when present.
sourceobject | undefinedOrigin of the event, when known.
source.sourceTypestringOrigin: spektr_process, external, manual, or unknown.
source.processIdstring | undefinedID of the originating process when sourceType is spektr_process.
source.userIdstring | undefinedID of the user who triggered a manual event, when available.
source.userNamestring | undefinedName of the user who triggered a manual event, when available.
source.userEmailstring | undefinedEmail of the user who triggered a manual event, when available.
additionalFieldsobject | undefinedCustomer fields selected in the matching delivery setting, when available.

process_run_start

A process starts running.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "process_run_start",
  "timestamp": 1788278400000,
  "data": {
    "processType": "onboarding",
    "processName": "Customer onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123",
    "token": "example-process-token",
    "parentProcessId": "686660b573833dea357e86f0",
    "parentSpektrId": "parent-customer-123",
    "method": {
      "type": "process",
      "processId": "686660b573833dea357e86f0"
    }
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.processNamestringName of the process.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.tokenstring | undefinedOptional token associated with this process run.
data.methodobject | undefinedHow the run was started, when known. The type selects the applicable metadata: process (processId), user (userId), or api.
data.method.typestringMethod that triggered the action; see the method object for the supported variants.
data.method.processIdstring | undefinedID of the process that triggered the action, present when type is process.
data.method.userIdstring | undefinedID of the user that triggered the action, present when type is user.
data.parentProcessIdstring | undefinedOptional ID of the parent process, present when another process triggered the process issuing this event.
data.parentSpektrIdstring | undefinedOptional ID of the parent customer, present when another process triggers this process through a linked UBO block.

loop_run_start

A loop starts running. Data also includes execution fields and configured loop settings.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "loop_run_start",
  "timestamp": 1788278400000,
  "data": {
    "processType": "loop",
    "processName": "Customer onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123",
    "token": "example-process-token",
    "parentProcessId": "686660b573833dea357e86f0",
    "parentSpektrId": "parent-customer-123",
    "method": {
      "type": "process",
      "processId": "686660b573833dea357e86f0"
    },
    "company_name": "Example Ltd",
    "loopHeader": "Complete your details",
    "loopMessage": "Please review and update your company details.",
    "loopUrl": "https://actions.spektr.com/form?token=example-process-token"
  }
}
NameTypeDescription
dataobjectEvent-specific payload. Also includes customer and execution fields, such as company_name, alongside the attributes below.
data.processNamestringName of the process.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.tokenstring | undefinedOptional token associated with this process run.
data.methodobject | undefinedHow the run was started, when known. The type selects the applicable metadata: process (processId), user (userId), or api.
data.method.typestringMethod that triggered the action; see the method object for the supported variants.
data.method.processIdstring | undefinedID of the process that triggered the action, present when type is process.
data.method.userIdstring | undefinedID of the user that triggered the action, present when type is user.
data.parentProcessIdstring | undefinedOptional ID of the parent process, present when another process triggered the process issuing this event.
data.parentSpektrIdstring | undefinedOptional ID of the parent customer, present when another process triggers this process through a linked UBO block.
data.loopHeaderstring | undefinedHeader configured in the loop settings.
data.loopMessagestring | undefinedMessage configured in the loop settings.
data.loopUrlstring | undefinedURL for filling in the loop form.

process_run_end

A process reaches an outcome. Data includes customer and execution fields alongside the process result.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "process_run_end",
  "timestamp": 1788278400000,
  "data": {
    "processType": "onboarding",
    "processName": "Customer onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123",
    "processOutput": "approved",
    "customerStatus": "approved",
    "score": 0,
    "risk_class": "low",
    "tags": [
      {
        "color": "rgba(0,128,0,1)",
        "label": "Reviewed"
      },
      {
        "color": "rgba(255,0,0,1)",
        "label": "Requires monitoring",
        "icon": "Siren"
      }
    ],
    "company_name": "Example Ltd",
    "company_number": "12345678",
    "country_of_incorporation": "GB"
  },
  "fields": {
    "groups": [
      {
        "group_id": "686660b573833dea357e8710",
        "fields": [
          "company_name",
          "company_number",
          "country_of_incorporation"
        ]
      }
    ]
  }
}
NameTypeDescription
dataobjectEvent-specific payload. Also includes customer and execution fields, such as company_name, alongside the attributes below.
data.processNamestringName of the process.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.scorenumber | undefinedScore calculated for the process run; may be 0.
data.risk_classstring | undefinedRisk classification associated with the run, for example low.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.tagsobject[] | undefinedTags associated with the customer or process result. An empty array means there are no tags in the result.
data.tags[].colorstringColor of the tag, for example rgba(255,0,0,1).
data.tags[].labelstringDisplay label of the tag, for example Requires monitoring.
data.tags[].iconstring | undefinedOptional icon name for the tag, for example Siren.
data.processOutputstring | undefinedOutcome reached by the process, for example approved or unknown.
data.customerStatusstring | undefinedCustomer status after the process result: pending, approved, rejected, or archived.
fieldsobject | undefinedWorkspace field groups present in the process result.
fields.groupsobject[]Workspace groups containing fields included in this result.
fields.groups[].group_idstringID of the workspace field group.
fields.groups[].fieldsstring[]Keys of the fields belonging to this group that are present in data.

process_expired

A process link expires.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "process_expired",
  "timestamp": 1788278400000,
  "data": {
    "processType": "onboarding",
    "processName": "Customer onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "linkExpiredAt": 1788278400000,
    "expiredAt": 1788278400000
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.processNamestring | undefinedName of the process.
data.linkExpiredAtnumberConfigured process-link expiry time, in Unix epoch milliseconds.
data.expiredAtnumberTime the process was marked expired, in Unix epoch milliseconds.

service_run

A service response is received. vendorSearchId identifies the raw vendor response available through the record API.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "service_run",
  "timestamp": 1788278400000,
  "data": {
    "processType": "onboarding",
    "processName": "Customer onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123",
    "stepType": "complyAdvantageKyc",
    "stepId": "686660b873833dea357e8702",
    "vendorType": "complyAdvantageKyc",
    "vendorSearchId": "6867b8db50ffa326d667ac61",
    "vendorData": {
      "complyAdvantageKyc_has_sanctions": false,
      "complyAdvantageKyc_is_PEP": false,
      "complyAdvantageKyc_has_adverse_media": false
    }
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.stepTypestringType of the step, for example form, ownershipTreeForm, complyAdvantageKyc, or externalData.
data.stepIdstringID of the step associated with the event.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.processNamestringName of the process.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.stepTitlestring | undefinedDisplay title of the step, when configured.
data.vendorSearchIdstring | undefinedID of the vendor call. Use it to retrieve the raw vendor response through the record API.
data.vendorTypestring | undefinedType of service called, for example complyAdvantageKyc.
data.vendorDataobject | undefinedFields mapped from the service response. Field names depend on the vendor and workspace configuration.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.

alert_escalated

An alert is escalated.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "alert_escalated",
  "timestamp": 1788278400000,
  "data": {
    "contextId": "6867b8db50ffa326d667ac60",
    "processId": "686660b573833dea357e86f6",
    "alertId": "alert-123",
    "alertName": "Review required",
    "alertType": "manual_review",
    "reference": "customer-123",
    "datasetId": "dataset-123",
    "status": "open"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.alertIdstringID of the alert.
data.alertNamestring | undefinedDisplay name of the alert.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.alertTypestring | undefinedType of alert, for example manual_review.
data.workspaceIdstring | undefinedSame value as the top-level workspaceId.
data.spektrIdstring | undefinedSame value as the top-level spektrId, when present.
data.datasetIdstring | undefinedID of the dataset containing the customer associated with the alert.
data.statusstring | undefinedStatus of the alert, for example open.

alert_resolved

An alert is resolved.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "alert_resolved",
  "timestamp": 1788278400000,
  "data": {
    "contextId": "6867b8db50ffa326d667ac60",
    "processId": "686660b573833dea357e86f6",
    "alertId": "alert-123",
    "alertName": "Review required",
    "alertType": "manual_review",
    "reference": "customer-123",
    "selectedAction": "accept"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.alertIdstringID of the alert.
data.alertNamestring | undefinedDisplay name of the alert.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.alertTypestring | undefinedType of alert, for example manual_review.
data.selectedActionstring | undefinedAction selected when resolving the alert, when available.

customer_tag_add

A tag is added to a customer.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "customer_tag_add",
  "timestamp": 1788278400000,
  "data": {
    "action": "add",
    "tag": {
      "color": "rgba(255,0,0,1)",
      "label": "Requires monitoring",
      "icon": "Siren"
    },
    "tagName": "Requires monitoring",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.tagobject | undefinedTag added to or removed from the customer, when available.
data.tag.colorstringColor of the tag, for example rgba(255,0,0,1).
data.tag.labelstringDisplay label of the tag, for example Requires monitoring.
data.tag.iconstring | undefinedOptional icon name for the tag, for example Siren.
data.tagNamestring | undefinedName of the tag, when available.
data.contextIdstring | undefinedID of the process run (execution context).
data.processIdstring | undefinedID of the process associated with this event.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.tokenstring | undefinedOptional token associated with this process run.
data.actionstringTag action: add or remove.

customer_tag_remove

A tag is removed from a customer.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "customer_tag_remove",
  "timestamp": 1788278400000,
  "data": {
    "action": "remove",
    "tag": {
      "color": "rgba(255,0,0,1)",
      "label": "Requires monitoring",
      "icon": "Siren"
    },
    "tagName": "Requires monitoring",
    "reference": "customer-123"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.tagobject | undefinedTag added to or removed from the customer, when available.
data.tag.colorstringColor of the tag, for example rgba(255,0,0,1).
data.tag.labelstringDisplay label of the tag, for example Requires monitoring.
data.tag.iconstring | undefinedOptional icon name for the tag, for example Siren.
data.tagNamestring | undefinedName of the tag, when available.
data.contextIdstring | undefinedID of the process run (execution context).
data.processIdstring | undefinedID of the process associated with this event.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.tokenstring | undefinedOptional token associated with this process run.
data.actionstringTag action: add or remove.

customer_status_change

Deprecated. Legacy status change event. Use customer_status_changed for new integrations.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "customer_status_change",
  "timestamp": 1788278400000,
  "data": {
    "oldStatus": "pending",
    "newStatus": "approved",
    "customerName": "Example Ltd",
    "processId": "686660b573833dea357e86f6",
    "processName": "Customer onboarding",
    "reference": "customer-123"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.oldStatusstring | undefinedCustomer status before the change, when available: pending, approved, rejected, or archived.
data.newStatusstringCustomer status after the change: pending, approved, rejected, or archived.
data.customerNamestringName of the customer (individual or company).
data.processIdstring | undefinedID of the process associated with this event.
data.processNamestring | undefinedName of the process.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.

customer_status_changed

A customer status changes through a process, a user, or the API.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "customer_status_changed",
  "timestamp": 1788278400000,
  "data": {
    "oldStatus": "pending",
    "newStatus": "approved",
    "method": {
      "type": "process",
      "processId": "686660b573833dea357e86f6"
    },
    "reference": "customer-123"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.oldStatusstring | undefinedCustomer status before the change, when available: pending, approved, rejected, or archived.
data.newStatusstringCustomer status after the change: pending, approved, rejected, or archived.
data.methodobjectHow the status change was triggered. The type selects the applicable metadata: process (processId), user (userId), or api.
data.method.typestringMethod that triggered the action; see the method object for the supported variants.
data.method.processIdstring | undefinedID of the process that triggered the action, present when type is process.
data.method.userIdstring | undefinedID of the user that triggered the action, present when type is user.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.

customer_duplicate_detection

A duplicate customer is detected.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "customer_duplicate_detection",
  "timestamp": 1788278400000,
  "data": {
    "contextId": "6867b8db50ffa326d667ac60",
    "processId": "686660b573833dea357e86f6",
    "customerDuplicateData": {
      "newRecordId": "customer-123",
      "oldRecordId": "customer-456"
    }
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.customerDuplicateDataobjectIdentifiers of the duplicate and original customer records.
data.customerDuplicateData.newRecordIdstring | undefinedspektrId of the new customer record, when available.
data.customerDuplicateData.oldRecordIdstring | undefinedspektrId of the existing customer record, when available.

customer_record_changed

Customer record fields change. JSON array values are delivered as arrays.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "customer_record_changed",
  "timestamp": 1788278400000,
  "data": {
    "reference": "customer-123",
    "method": {
      "type": "api"
    },
    "changes": [
      {
        "fieldId": "company_name",
        "oldValue": "Example",
        "newValue": "Example Ltd"
      }
    ]
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.methodobject | undefinedHow the change was triggered. The type selects the applicable metadata: process (processId, processType), user (userId), vendor (vendorName), or api.
data.method.typestringMethod that triggered the action; see the method object for the supported variants.
data.method.processIdstring | undefinedID of the process that triggered the action, present when type is process.
data.method.processTypestring | undefinedType of the triggering process, when available.
data.method.userIdstring | undefinedID of the user that triggered the action, present when type is user.
data.method.vendorNamestring | undefinedName of the connector that triggered the change, present when type is vendor.
data.changesobject[] | undefinedList of customer fields that changed.
data.changes[].fieldIdstringID of the field that changed.
data.changes[].oldValueany | undefinedPrevious field value, omitted when no previous value is available.
data.changes[].newValueany | undefinedUpdated field value, omitted when no new value is available. JSON array values are delivered as arrays.

ownership_ai_created

A customer is created by AI ownership discovery.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "ownership_ai_created",
  "timestamp": 1788278400000,
  "data": {
    "parentId": "customer-123"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.parentIdstringspektrId of the parent customer in the ownership graph.

ownership_ai_added_owner

AI discovery adds an owner to the connection graph.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "ownership_ai_added_owner",
  "timestamp": 1788278400000,
  "data": {
    "childId": "customer-456"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.childIdstringspektrId of the child customer discovered by AI.

client_record_sync

An imported customer is synchronized through a connector.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "client_record_sync",
  "timestamp": 1788278400000,
  "data": {
    "lastSyncedAt": 1788278400000,
    "vendor": "hubspot",
    "objectType": "hubspot companies"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.lastSyncedAtnumberTime the customer was synchronized, in Unix epoch milliseconds.
data.vendorstringConnector used to synchronize the customer, for example hubspot.
data.objectTypestring | undefinedCustomer object type in the connector: hubspot companies or hubspot contacts.

step_init

A form step is initialized.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "step_init",
  "timestamp": 1788278400000,
  "data": {
    "processType": "onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123",
    "stepType": "form",
    "stepId": "686660b873833dea357e8702",
    "token": "example-process-token"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.processIdstringID of the process associated with this event.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.contextIdstringID of the process run (execution context).
data.stepTypestring | undefinedType of the step, for example form, ownershipTreeForm, complyAdvantageKyc, or externalData.
data.stepIdstring | undefinedID of the step associated with the event.
data.tokenstring | undefinedOptional token associated with this process run.

step_submit

A form step is submitted. Data can include submitted field values.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "step_submit",
  "timestamp": 1788278400000,
  "data": {
    "processType": "onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123",
    "stepType": "form",
    "stepId": "686660b873833dea357e8702",
    "token": "example-process-token",
    "company_name": "Example Ltd"
  }
}
NameTypeDescription
dataobjectEvent-specific payload. Also includes the submitted field values, such as company_name, alongside the attributes below.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.processIdstringID of the process associated with this event.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.contextIdstringID of the process run (execution context).
data.stepTypestring | undefinedType of the step, for example form, ownershipTreeForm, complyAdvantageKyc, or externalData.
data.stepIdstring | undefinedID of the step associated with the event.
data.tokenstring | undefinedOptional token associated with this process run.

behavior_signal_raised

A behavior signal is published after ingest. One event per reconciled transaction.

{
  "id": "507f1f77bcf86cd799439011",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "behavior_signal_raised",
  "timestamp": 1788278400000,
  "data": {
    "source": "rai",
    "sourceVendor": "rai",
    "externalId": "rai_alert_01801291b5de61db",
    "externalUpdateId": "rai_upd_20260115_001",
    "externalCaseId": "rai_case_77a057f8d708ab7f",
    "detectorName": "aml_split_merge_fragmentation",
    "category": "aml",
    "priority": "HIGH",
    "priorityReasons": [
      "Unusual pattern detected",
      "High-risk jurisdiction"
    ],
    "title": "Split & merge fragmentation",
    "summary": "Suspicious money flow detected across multiple accounts.",
    "externalTransactionIds": [
      "txn_sepa_1042",
      "txn_sepa_1043"
    ],
    "externalMainEntity": {
      "value": "cust_acme_gmbh",
      "type": "customer_id"
    },
    "raisedAt": 1788278400000,
    "payload": {
      "alert_id": "01801291-b5de-61db-481f-f7db038616a8"
    },
    "signalId": "507f1f77bcf86cd799439099",
    "transactionId": "507f1f77bcf86cd799439088",
    "customerId": "customer-123"
  }
}
NameTypeDescription
dataobjectPublished behavior signal.
data.sourcestringSource system that raised the signal, for example rai. Unrelated to the top-level source, which describes where the event came from.
data.sourceVendorstring | undefinedThe vendor that produced the signal.
data.externalIdstringID of the signal in the source system.
data.externalUpdateIdstring | undefinedID of the source-system update that produced this event, when present.
data.externalCaseIdstring | undefinedExternal case identifier from the source system.
data.detectorNamestringName of the detection rule or model that raised the signal.
data.categorystring | undefinedCategory of the signal.
data.prioritystringPriority level of the signal.
data.priorityReasonsstring[]Reasons supporting the assigned priority.
data.titlestringShort title describing the signal.
data.summarystringDetailed summary of the signal.
data.externalTransactionIdsstring[]IDs of the source-system transactions the signal relates to.
data.externalMainEntityobject | undefinedThe main entity associated with this signal.
data.externalMainEntity.valuestringThe entity identifier value.
data.externalMainEntity.typestringThe entity identifier type.
data.raisedAtnumberUnix timestamp (milliseconds) representing when the signal was raised.
data.payloadobjectArbitrary key/value payload from the source system.
data.signalIdstringspektr ID of the behavior signal, assigned at ingest.
data.transactionIdstringspektr ID of the transaction this event is bound to.
data.customerIdstring | undefinedspektr ID of the resolved customer record, when known.
data.existingCaseIdstring | undefinedID of the existing case, when the signal was attached to a prior case.

signal_claimed

An analyst claims a case with a linked RAI behavior signal.

{
  "id": "686f58da3b9059f19eb2d066",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "signal_claimed",
  "timestamp": 1788278400000,
  "data": {
    "caseId": "67eba5f9ce9a594e4519cc88",
    "signalId": "67eba62500dd50ed396deb0c",
    "alertId": "rai_a3f7b41969f8b48e77a057f8d708ab7f",
    "externalCaseId": "rai_case_77a057f8d708ab7f",
    "feedbackEventId": "11111111-1111-4111-8111-111111111111",
    "analystId": "6610c91e8f2a4b12c3d4e5f6",
    "occurredAt": 1788278400000
  }
}
NameTypeDescription
dataobjectClaim feedback for the linked behavior signal.
data.caseIdstringCase the analyst claimed.
data.signalIdstringspektr ID of the behavior signal this feedback refers to.
data.alertIdstringID of the alert in the signal source.
data.externalCaseIdstring | undefinedID of the case in the signal source, when present.
data.feedbackEventIdstringIdempotency key for this feedback delivery.
data.analystIdstringStable analyst identifier. Analyst email is intentionally omitted.
data.occurredAtnumberUnix timestamp (milliseconds) when the claim occurred.

signal_resolved

An analyst resolves a case with a linked RAI behavior signal.

{
  "id": "686f58da3b9059f19eb2d067",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "signal_resolved",
  "timestamp": 1788278400000,
  "data": {
    "caseId": "67eba5f9ce9a594e4519cc88",
    "signalId": "67eba62500dd50ed396deb0c",
    "alertId": "rai_a3f7b41969f8b48e77a057f8d708ab7f",
    "externalCaseId": "rai_case_77a057f8d708ab7f",
    "feedbackEventId": "11111111-1111-4111-8111-111111111111",
    "analystId": "6610c91e8f2a4b12c3d4e5f6",
    "occurredAt": 1788278400000,
    "outcome": "closed_as_productive",
    "analystComment": "Confirmed suspicious flow, reported."
  }
}
NameTypeDescription
dataobjectResolution feedback for the linked behavior signal.
data.caseIdstringCase the analyst resolved.
data.signalIdstringspektr ID of the behavior signal this feedback refers to.
data.alertIdstringID of the alert in the signal source.
data.externalCaseIdstring | undefinedID of the case in the signal source, when present.
data.feedbackEventIdstringIdempotency key for this feedback delivery.
data.analystIdstringStable analyst identifier. Analyst email is intentionally omitted.
data.occurredAtnumberUnix timestamp (milliseconds) when the resolution occurred.
data.outcomestringOutcome selected for this signal when the case was resolved.
data.analystCommentstring | undefinedOptional closing comment from the analyst.

external_data_waiting

An External Data step is waiting for your integration to supply data.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "external_data_waiting",
  "timestamp": 1788278400000,
  "data": {
    "processType": "onboarding",
    "processName": "Customer onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123",
    "stepType": "externalData",
    "stepId": "686660b873833dea357e8702",
    "expectedFields": [
      {
        "spektrDataField": "credit_score",
        "type": "number",
        "required": true
      }
    ],
    "expiresAt": 1788278400000
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.stepTypestringType of the step, for example form, ownershipTreeForm, complyAdvantageKyc, or externalData.
data.stepIdstringID of the step associated with the event.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.processNamestringName of the process.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.stepTitlestring | undefinedDisplay title of the step, when configured.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.expectedFieldsobject[] | undefinedFields requested by the External Data step.
data.expectedFields[].spektrDataFieldstringKey of the spektr data field to supply.
data.expectedFields[].typestringExpected type of the field, for example number.
data.expectedFields[].requiredbooleanWhether the field must be supplied to complete the step.
data.expiresAtnumber | undefinedDeadline for supplying external data, in Unix epoch milliseconds, when configured.

external_data_received

An External Data step receives and accepts data.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "external_data_received",
  "timestamp": 1788278400000,
  "data": {
    "processType": "onboarding",
    "processName": "Customer onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123",
    "stepType": "externalData",
    "stepId": "686660b873833dea357e8702",
    "receivedFields": [
      "credit_score"
    ],
    "receivedData": {
      "credit_score": 720
    }
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.stepTypestringType of the step, for example form, ownershipTreeForm, complyAdvantageKyc, or externalData.
data.stepIdstringID of the step associated with the event.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.processNamestringName of the process.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.stepTitlestring | undefinedDisplay title of the step, when configured.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.
data.receivedFieldsstring[] | undefinedKeys of the external data fields received and accepted.
data.receivedDataobject | undefinedAccepted external data, keyed by spektr data field.

external_data_timed_out

An External Data step times out before receiving data.

{
  "id": "6867b8db50ffa326d667ac63",
  "workspaceId": "workspace-123",
  "spektrId": "customer-123",
  "eventType": "external_data_timed_out",
  "timestamp": 1788278400000,
  "data": {
    "processType": "onboarding",
    "processName": "Customer onboarding",
    "processId": "686660b573833dea357e86f6",
    "contextId": "6867b8db50ffa326d667ac60",
    "reference": "customer-123",
    "stepType": "externalData",
    "stepId": "686660b873833dea357e8702"
  }
}
NameTypeDescription
dataobjectEvent-specific payload.
data.stepTypestringType of the step, for example form, ownershipTreeForm, complyAdvantageKyc, or externalData.
data.stepIdstringID of the step associated with the event.
data.contextIdstringID of the process run (execution context).
data.processIdstringID of the process associated with this event.
data.processNamestringName of the process.
data.processTypestringType of process, for example risk, monitoring, onboarding, or loop.
data.stepTitlestring | undefinedDisplay title of the step, when configured.
data.referencestring | undefinedOptional reference associated with the customer or run. For onboarding, this can be passed through the reference query parameter.