Read more about webhooks in spektr here.
All webhook events are sent in batches of the following shape:
{
"results": [
event1,
event2,
...
]
}
In the above representation, the results array contains individual events as described below.
WIPThese events are work in progress and their definition might slightly change in the final version.
| Webhook | Description | Status |
|---|---|---|
| PROCESS_RUN_START | Event created when a process starts running | Available |
| LOOP_RUN_START | Event created when a loop starts running | Available |
| PROCESS_RUN_END | Event created when a process finishes running | Available |
| SERVICE_RUN | Event created when a service response is received | Available |
| ALERT_ESCALATED | Event created when an alert is created | Available |
| ALERT_RESOLVED | Event created when an alert is resolved | Available |
| CUSTOMER_TAG_ADDED | Event created when a tag is added to a customer by a process or a user | Available |
| CUSTOMER_TAG_REMOVED | Event created when a tag is removed from a customer by a user | Available |
| CUSTOMER_STATUS_CHANGE(deprecated) | Event created when the status of a customer changes through a status node or manually by a user | Available |
| CUSTOMER_STATUS_CHANGED | Event created when the status of a customer changes through a status node or manually by a user | Available |
| CUSTOMER_DUPLICATE_DETECTION | Event created when a customer is found as duplicate | Available |
| CUSTOMER_RECORD_UPDATE(deprecated) | Event created when a customer receives an external update | Available |
| CUSTOMER_RECORD_CHANGED | Event created when a customer receives an update | Available |
| OWNERSHIP_AI_CREATED | Event created when a customer is created by AI discovery. | Available |
| OWNERSHIP_AI_ADDED_OWNER | Event created when an owner is added in the connection graph using AI discovery. | Available |
| CLIENT_RECORD_SYNC | Event created when an imported customer through a connector is synced. | Available |
| STEP_INIT | Event created when a form is rendered in the skyhub form editor application. | Available |
| STEP_SUBMIT | Event created when a form is submitted in the skyhub form editor application. | Available |
PROCESS_RUN_START
{
"id": "<event-id>",
"spektrId": "<id end-user related to this event>",
"eventType": "process_run_start",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"processType": "risk",
"processName": "Risk Assessment",
"processId": "12345",
"contextId": "67890",
"token": "<the token>",
"reference": "optional-reference",
"parentProcessId": "<id-of-parent-linked-process>",
"parentSpektrId": "<spektrId-of-parent-entity>"
}
}| Name | Type | Description | |
|---|---|---|---|
| id | string | Event ID. | |
| spektrId | string | ID of the end-user related to this event. | |
| eventType | string | Type of event, e.g., process_run_start. | |
| timestamp | number | Epoch timestamp when the event was created. | |
| workspaceId | string | ID of the workspace. | |
| data.processType | string | Type of process, e.g., 'risk', 'monitoring', 'onboarding', etc. | |
| data.processName | string | Name of the process. | |
| data.processId | string | ID of the process. | |
| data.contextId | string | ID of the run. | |
| data.token | string \ | undefined | The token associated with this process run. |
| data.reference | string \ | undefined | Optional value passed to the onboarding process through a query param. |
| data.parentProcessId | string \ | undefined | Optional value passed if the process that issues the event is triggered by another process |
| data.parentSpektrId | string \ | undefined | Optional values passed if the process that issues the event is triggered by another process linked to an UBO block |
LOOP_RUN_START
{
"id": "<event-id>",
"spektrId": "<id end-user related to this event>",
"eventType": "loop_run_start",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"processType": "risk",
"processName": "Risk Assessment",
"processId": "12345",
"contextId": "67890",
"stepType": "form",
"stepId": "686660b873833dea357e8702",
"token": "<the token>",
"reference": "optional-reference",
"spektr_id": "<id of the client related to this event>",
"parentProcessId": "<id-of-parent-linked-process>",
"parentSpektrId": "<spektrId-of-parent-entity>",
// ...all execution related spektr data fields (e.g. form submitted values, service mapped values, scores, etc.
"loopHeader": "Any header value", // Header set in loop settings
"loopMessage": "Any loop message", // Message set in loop settings
"loopUrl": "https://actions.spektr.com/form?token=eyJpZCI6ImI2NzllNzcw....", // Form filling URL
}
}| Name | Type | Description | |
|---|---|---|---|
| id | string | Event ID. | |
| spektrId | string | ID of the end-user related to this event. | |
| eventType | string | Type of event, e.g., loop_run_start. | |
| timestamp | number | Epoch timestamp when the event was created. | |
| workspaceId | string | ID of the workspace. | |
| data.processType | string | Type of process, e.g., 'risk', 'monitoring', 'onboarding', etc. | |
| data.processName | string | Name of the process. | |
| data.processId | string | ID of the process. | |
| data.contextId | string | ID of the run. | |
| data.stepType | string | The type of the step that was inited, e.g. 'form' or 'ownershipTreeForm'. | |
| data.stepId | string | The ID of the step that was inited. | |
| data.token | string \ | undefined | The token associated with this process run. |
| data.reference | string \ | undefined | Optional value passed to the onboarding process through a query param. |
| data.spektr_id | string \ | undefined | Id of the client related to this event |
| data.* | object | Rest of the execution related spektr data fields (e.g. form submitted values, service mapped values, scores, etc | |
| loopHeader | string \ | undefined | Header set in loop settings |
| loopMessage | string \ | undefined | Message set in loop settings |
| loopUrl | string \ | undefined | Form filling URL |
| data.parentProcessId | string \ | undefined | Optional value passed if the process that issues the event is triggered by another process |
| data.parentSpektrId | string \ | undefined | Optional values passed if the process that issues the event is triggered by another process linked to an UBO block |
Samples
{
id: '6867b8db50ffa326d667ac63',
workspaceId: 'd861cbbc0b5b5a0fcf201910cf8aa8c2',
eventType: 'loop_run_start',
timestamp: 1751627995564,
spektrId: '6867b8db50ffa326d667ac5f',
data: {
processType: 'onboarding',
processName: 'test stringList startOnboarding',
processId: '686660b573833dea357e86f6',
contextId: '6867b8db50ffa326d667ac60',
token:
'eyJpZCI6ImQ4NjFjYmJjMGI1YjVhMGZjZjIwMTkxMGNmOGFhOGMyIiwidG9rZW4iOiJiZTFjMTE3NDI3YjQ4NTdjMmExODQ2ZjU4YjljM2I0ZDI1ZjkxYmJmZjcyMWQ4YzNlNTVmZWNkZDc0ZDQ3ZTEyIn0=',
spektr_id: '6867b8db50ffa326d667ac5f',
score: 0,
loopHeader: 'Any header value',
loopMessage: 'Any loop message',
loopUrl: 'https://actions.spektr.com/form?token=eyJpZCI6ImQ4NjFjYmJjMGI1YjVhMGZjZjIwMTkxMGNmOGFhOGMyIiwidG9rZW4iOiJiZTFjMTE3NDI3YjQ4NTdjMmExODQ2ZjU4YjljM2I0ZDI1ZjkxYmJmZjcyMWQ4YzNlNTVmZWNkZDc0ZDQ3ZTEyIn0='
},
},
PROCESS_RUN_END
{
"id": "<event-id>",
"spektrId": "<id end-user related to this event>",
"eventType": "<event-type>",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"company_name": "unilever",
"company_number": "123",
"country_of_incorporation": "GB",
// other client record and execution fields
"processType": "onboarding",
"processOutput": "<output of the process>",
"processName": "<process-name>",
"processId": "12345",
"reference": "optional-reference",
"customerStatus": "pending",
"score": 0,
"contextId": "6850ea584ee798c166e36802",
"tags": [
{ "color": "rgba(0,0,0,1)", "label": "xxx" },
{ "color": "rgba(255,0,0,1)", "label": "red", "icon": "Siren" },
],
}
}| Name | Type | Description | ||
|---|---|---|---|---|
| id | string | Event identifier. | ||
| spektrId | string | ID of the end-user related to this event. | ||
| eventType | string | Event type, e.g. process_run_end | ||
| timestamp | number | Epoch timestamp when the event was created. | ||
| workspaceId | string | ID of the workspace. | ||
| data | object | key-value entries from end-user or external services. 'key' corresponds to field.key when entry was submitted by end-user. | ||
| data.* | ... | all client record and/or execution fields | ||
| data.processName | string | Name of the process. | ||
| data.processType | string | Type of process, e.g. 'onboarding' | ||
| data.processOutput | string | Output of the process, e.g. 'unknown' | ||
| data.processId | string | ID of the process | ||
| data.reference | string \ | undefined | Optional value passed to the onboarding process through a query param. | |
| data.score | number | Score of the process run or 0 | ||
| data.contextId | string | ID of the execution of the process | ||
| data.customerStatus | string | pending \ | rejected \ | approved |
| data.tags | object[] | Array of tags | ||
| data.tags[].color | string \ | undefined | Color of tag, e.g. rgba(255,0,0,1) | |
| data.tags[].label | string \ | undefined | Label of tag, e.g. 'Some tag' | |
| data.tags[].icon | string \ | undefined | Icon of tag, e.g. 'Siren' |
Samples
{
id: '686f58da3b9059f19eb2d066',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'process_run_end',
timestamp: 1752127706390,
spektrId: '686e28baebd46db5a35beccb',
data: {
company_name: 'test1',
vat_number: '123',
customerStatus: 'approved',
processType: 'loop',
processOutput: 'unknown',
processName: 'loop',
processId: '6863946a7addd2ed37a96af8',
score: 0,
contextId: '686f589e1926bef99eda763e',
tags: []
},
},
SERVICE_RUN
{
"id": "<event-id>",
"spektrId": "<id of the client related to this event>",
"eventType": "service_run",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"vendorType": "service type",
"stepType": "service type",
"stepId": "<step id>",
"contextId":"<process run id",
"processId":"<process id>",
"processName": "process name",
"processType": "process type",
"reference": "optional-reference",
"vendorData": {}
}
}| Name | Type | Description | |
|---|---|---|---|
| id | string | Event ID. | |
| spektrId | string | ID of the end-user related to this event. | |
| timestamp | number | Epoch timestamp when the event was created. | |
| eventType | string | service_run | |
| workspaceId | string | ID of the workspace. | |
| stepType | string | Type of the step | |
| stepId | string | ID of the step | |
| data.vendorType | string | Type of the vendor. | |
| data.vendorData.* | ... | all client record and/or execution fields | |
| data.contextId | string | ID of the process run. | |
| data.processId | string | ID of the process. | |
| data.processName | string | Name of the process. | |
| data.processType | string | Type of process, e.g., 'risk', 'monitoring', 'onboarding', etc. | |
| data.reference | string \ | undefined | Optional value passed to the onboarding process through a query param. |
Samples
{
"id": "6895df57920b519635cd08ff",
"workspaceId": "559ae2249db800a7b0fa02ad58b196ae",
"eventType": "service_run",
"timestamp": 1754652503978,
"spektrId": "6895df2c8ecdcab40a53e5c8",
"data": {
"stepType": "complyAdvantageKyc",
"stepId": "689520965b9adf44780d2b6d",
"vendorType": "complyAdvantageKyc",
"contextId": "6895df2c8ecdcab40a53e5c9",
"processId": "6890970bb7a99f6e058e6254",
"processName": "test customers",
"processType": "onboarding",
"vendorData": {
"complyAdvantageKyc_has_sanctions": true,
"complyAdvantageKyc_has_adverse_media": true,
"complyAdvantageKyc_is_PEP": true,
"complyAdvantageKyc_is_PEP_class_1": true,
"complyAdvantageKyc_has_sanctions_hit_count": 2,
"complyAdvantageKyc_has_adverse_media_hit_count": 15,
"complyAdvantageKyc_is_PEP_hit_count": 1,
"complyAdvantageKyc_is_PEP_class_1_hit_count": 1,
"complyAdvantageKyc_has_warnings": false,
"complyAdvantageKyc_service_failure": false,
"has_sanctions_unresolved_alerts": true,
"has_sanctions_alerts_with_no_matches": false,
"has_adverse_media_unresolved_alerts": true,
"has_adverse_media_alerts_with_no_matches": false,
"has_is_pep_unresolved_alerts": true,
"has_is_pep_alerts_with_no_matches": false
}
}
}ALERT_ESCALATED
{
"id": "<event-id>",
"spektrId": "<id end-user related to this event>",
"eventType": "alert_resolved",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"contextId":"<process-run-id",
"processId":"<process-id>",
"alertType":"<type of alert>",
"alertId":"<alert-id>",
"alertName": "<alert name>",
"reference": "<associated reference if present, or else undefined>",
"datasetId": "<dataset-id>",
"status": "open"
}
}| Name | Type | Description | |
|---|---|---|---|
| id | string | Event ID. | |
| spektrId | string | ID of the end-user related to this event. | |
| eventType | string | Type of event, e.g., "alert_resolved". | |
| timestamp | number | Epoch timestamp when the event was created. | |
| workspaceId | string | ID of the workspace. | |
| data.contextId | string | ID of the process run. | |
| data.alertType | string | The type of alert e.g. "manual_review" | |
| data.datasetId | string | The dataset for the customer the alert pertains to | |
| data.alertId | string | Alert ID. | |
| data.alertName | string | Name of the alert. | |
| data.status | string | The status of the alert e.g. "open" |
ALERT_RESOLVED
{
"id": "<event-id>",
"spektrId": "<id end-user related to this event>",
"eventType": "alert_resolved",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"contextId":"<process-run-id",
"processId":"<process-id>",
"userId":"<user-id that resolved alert>",
"alertId":"<alert-id>",
"alertName": "<alert name>",
"reference": "<associated reference if present, or else undefined>"
}
}| Name | Type | Description | |
|---|---|---|---|
| id | string | Event ID. | |
| spektrId | string | ID of the end-user related to this event. | |
| eventType | string | Type of event, e.g., "alert_resolved". | |
| timestamp | number | Epoch timestamp when the event was created. | |
| workspaceId | string | ID of the workspace. | |
| data.contextId | string | ID of the process run. | |
| data.processId | string | Process ID. | |
| data.userId | string | ID of the user who resolved the alert. | |
| data.alertId | string | Alert ID. | |
| data.alertName | string | Name of the alert. | |
| data.reference | string \ | undefined | Associated reference if present, or else undefined. |
Samples
{
id: '685bee5fc7097fb20c2d0693',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'alert_resolved',
timestamp: 1750855263822,
spektrId: '6867939d9a16445cb538a881',
data: {
processId: '67ea79350b4c07c041a50db7',
contextId: '67eba5f9ce9a594e4519cc88',
alertId: '67eba62500dd50ed396deb0c',
alertName: 'ComplyAdvantage PEP Alert'
},
},
CUSTOMER_TAG<>
{
"id": "<event-id>",
"spektrId": "<id end-user to/from which the tag was added/removed>",
"eventType": "customer_tag_add" | "customer_tag_remove",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"tagId": "<tag-id>",
"tagName": "<tag name if present, or else undefined>",
"action": "add" | "remove",
"userId":"<user-id that added/removed the tag>",
"processId":"<process-id that added/removed>",
"reference": "<associated reference if present, or else undefined>"
}
| Name | Type | Description | |
|---|---|---|---|
| id | string | Event ID. | |
| spektrId | string | ID of the end-user to which the tag was added. | |
| eventType | string | Type of event, e.g., "customer_tag_add" or "customer_tag_remove" | |
| timestamp | number | Epoch timestamp when the event was created. | |
| workspaceId | string | ID of the workspace. | |
| data.tagId | string | Tag ID. | |
| data.tagName | string \ | undefined | Tag name if present, or else undefined. |
| data.action | string | Action performed, i.e., 'add' or 'remove'. | |
| data.userId | string \ | null | ID of the user who added the tag, may be null. |
| data.processId | string \ | null | Process ID, may be null. |
| data.reference | string \ | undefined | Associated reference if present, or else undefined. |
Samples
{
id: '6852bca704fe27794144fec3',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'customer_tag_add',
timestamp: 1750252711466,
spektrId: '6867939d9a16445cb538a881',
data: {
tagName: 'dfs',
action: 'add'
},
},
CUSTOMER_STATUS_CHANGE (deprecated)
{
"id": "<event-id>",
"spektrId": "<id end-user to which the tag was added>",
"eventType": "customer_status_change",
"timestamp": 1672531199000,
"data": {
"oldStatus": "<old status>",
"newStatus":"<new status>",
"customerName": "name of the end-user (individual or corporation)",
"userId":"<user-id that changed the status if changed by user>",
"processId": "<process-id that changed the status if changed by a process>",
"processName": "<process name that changed the status if changed by a process>"
}
}| Name | Type | Description |
|---|---|---|
| id | string | Event ID. |
| spektrId | string | ID of the end-user to which the tag was added. |
| eventType | string | Type of event: customer_tag_add |
| timestamp | number | Epoch timestamp when the event was created. |
| data.oldStatus | string | Old status before the change. Possible values are "pending" | "approved" | "rejected" | "archived" | undefined |
| data.newStatus | string | Possible values are "pending" | "approved" | "rejected" | "archived" | undefined |
| data.customerName | string | Name of the end-user (individual or corporation). |
| data.processId | string | null | Process ID that changed the status, if changed by a process. |
| data.processName | string | null | Process name that changed the status, if changed by a process. |
CUSTOMER_STATUS_CHANGED
{
"id": "<event-id>",
"spektrId": "<id end-user to which the tag was added>",
"eventType": "customer_status_changed",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"oldStatus": "<old status>",
"newStatus":"<new status>",
"method": {
"type": "process" | "user",
"processId": "<process-id>",
"userId": "<user-id>"
},
}
}| Name | Type | Description |
|---|---|---|
| id | string | Event ID. |
| spektrId | string | ID of the end-user to which the tag was added. |
| eventType | string | Type of event: customer_tag_add |
| timestamp | number | Epoch timestamp when the event was created. |
| data.oldStatus | string | Old status before the change. Possible values are "pending" | "approved" | "rejected" | "archived" | undefined |
| data.newStatus | string | Possible values are "pending" | "approved" | "rejected" | "archived" | undefined |
| data.method | object | Metadata about the update method. |
| data.method.type | string | The source of the update (i.e. "process" or "user") |
| data.method.processId | string | undefined | Process ID that caused the update, if the type is "process" |
| data.method.userId | string | undefined | User ID that caused the update, if the type is "user" |
Samples
{
id: '6879f8090e380801df2a3e92',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'customer_status_changed',
timestamp: 1752823817954,
spektrId: '68777232009ac594ff34644f',
data: {
oldStatus: 'pending',
newStatus: 'approved',
method: { type: 'process' },
spektr_id: '68777232009ac594ff34644f',
},
},
CUSTOMER_DUPLICATE_DETECTION
{
"id": "<event-id>",
"spektrId": "<id end-user related to this event>",
"eventType": "customer_duplicate_detection",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"processId": "12345",
"contextId": "67890",
"reference": "optional-reference",
"spektr_id": "ID of the end-user to which the tag was added.",
"customerDuplicateData": { "newRecordId": "<spektrId>", "oldRecordId": "<spektrId>" }
}
}| Name | Type | Description | |
|---|---|---|---|
| id | string | Event ID. | |
| spektrId | string | ID of the end-user related to this event. | |
| eventType | string | Type of event, e.g., customer_duplicate_detection. | |
| timestamp | number | Epoch timestamp when the event was created. | |
| processId | string | ID of the process. | |
| contextId | string | ID of the run. | |
| workspaceId | string | ID of the workspace. | |
| data.processId | string \ | undefined | ID of the process. |
| data.contextId | string \ | undefined | ID of the execution context. |
| data.reference | string \ | undefined | Associated reference if present, or else undefined. |
| data.spektr_id | string \ | undefined | Related spektrId if present, or else undefined. |
| data.customerDuplicateData | Object | Contains the spektrId of the original record and the duplicate | |
| data.customerDuplicateData.newRecordId | string \ | undefined | The spektrId of the new record. |
| data.customerDuplicateData.oldRecordId | string \ | undefined | The spektrId of the old record. |
Samples
{
id: '68416dd53ed4ba72512d7a70',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'customer_duplicate_detection',
timestamp: 1749118421121,
spektrId: '686cc916dab2db293799a2c3',
data: {
contextId: '68416db4aec0b0c8bd26d5fc',
processId: '67d1301295adc080b6a01719',
customerDuplicateData: { newRecordId: '68416db4aec0b0c8bd26d5fb' },
spektr_id: '686cc916dab2db293799a2c3',
},
},
CUSTOMER_RECORD_UPDATE (deprecated)
{
"id": "<event-id>",
"spektrId": "<id end-user related to this event>",
"eventType": "customer_record_update",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"reference": "optional-reference",
"first_name": "new name"
}
}| Name | Type | Description |
|---|---|---|
| id | string | Event ID. |
| spektrId | string | ID of the end-user to which the update was performed. |
| eventType | string | Type of event, e.g., "customer_tag_add". |
| timestamp | number | Epoch timestamp when the event was created. |
| workspaceId | string | ID of the workspace. |
| data | object | Data that has been updated. |
CUSTOMER_RECORD_CHANGED
{
"id": "<event-id>",
"spektrId": "<id end-user related to this event>",
"eventType": "customer_record_changed",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"changes": [
{
"fieldId": "<field ID that changed>",
"oldValue": "<old value of the field>",
"newValue": "<new value of the field>"
}
],
"method": {
"type": "api"
},
"reference": "optional-reference",
}
}| Name | Type | Description |
|---|---|---|
| id | string | Event ID. |
| spektrId | string | ID of the end-user to which the update was performed. |
| eventType | string | Type of event, e.g., "customer_tag_add". |
| timestamp | number | Epoch timestamp when the event was created. |
| workspaceId | string | ID of the workspace. |
| data | object | Data that has been updated. |
| data.changes | array | An array of field changes. |
| data.changes[].fieldId | string | The ID of the field that changed |
| data.changes[].oldValue | any | The old value of the field that changed |
| data.changes[].newValue | any | The new value of the field that changed |
| data.method | object | Metadata related to the method that triggered the update |
| data.method.type | string | The method type that triggered the update, e.g. 'api' |
Samples
{
id: '6878e0ed4a0ed103aad2517d',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'customer_record_changed',
timestamp: 1752752365392,
spektrId: '6878df333cf39b7d3199f16e',
data: {
changes: [
{ fieldId: 'a0', newValue: 'a0' },
{ fieldId: 'a1', oldValue: 'v2', newValue: 'v99' },
{
fieldId: 'company_name',
oldValue: 'company name 2',
newValue: 'company name 3',
},
],
method: { type: 'api' }
},
},
OWNERSHIP_AI_CREATED
{
"id": "<event-id>",
"spektrId": "<id of end-user related to this event>",
"eventType": "ownership_ai_created",
"timestamp": 1672531199000,
"workspaceId": "<id of workspace>",
"data": {
"parentId":"<parent-spektrId>",
"spektr_id": '<id of end-user related to this event>'
}
}| Name | Type | Description |
|---|---|---|
| id | string | Event ID. |
| spektrId | string | ID of the end-user to which the update was performed. |
| eventType | string | Type of event, e.g., "ownership_ai_created". |
| timestamp | number | Epoch timestamp when the event was created. |
| workspaceId | string | ID of the workspace. |
| data.parentId | string | The id of the parent customer. |
| data.spektr_id | string | The id of the end user related to this event. |
Samples
{
id: '6853e5c8ab3b749662feb3a6',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'ownership_ai_created',
timestamp: 1750328776922,
spektrId: '6853e5c8ab3b749662feb39f',
data: {
parentId: '6853e5c8ab3b749662feb39f',
spektr_id: '6853e5c8ab3b749662feb39f',
},
},
OWNERSHIP_AI_ADDED_OWNER
{
"id": "<event-id>",
"workspaceId": "<id of workspace>",
"spektrId": "<id end-user related to this event>",
"eventType": "ownership_ai_added_owner",
"timestamp": 1672531199000,
"data": {
"childId": "<spektrId of the child>",
"spektr_id": "<id end-user related to this event>",
}
}| Name | Type | Description |
|---|---|---|
| id | string | Event ID. |
| spektrId | string | ID of the end-user to which the update was performed. |
| eventType | string | Type of event, e.g., "ownership_ai_added_owner". |
| timestamp | number | Epoch timestamp when the event was created. |
| workspaceId | string | ID of the workspace. |
| data.childId | string | The id of the child customer which was AI discovered. |
| data.spektr_id | string | The id of the end user related to this event. |
Samples
{
id: '6810bfcdc656e5f3e1594362',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'ownership_ai_added_owner',
timestamp: 1745928141388,
spektrId: '680f4a0f0d9a0fe44154de02',
data: {
childId: '6810bfccc656e5f3e1594353',
spektr_id: '680f4a0f0d9a0fe44154de02',
},
},
CLIENT_RECORD_SYNC
{
"id": "<event-id>",
"workspaceId": "<id of workspace>",
"spektrId": "<id end-user related to this event>",
"eventType": "client_record_sync",
"timestamp": 1672531199000,
"data": {
"lastSyncedAt": 1672531199000,
"vendor":"<vendor name, e.g. hubspot>",
"objectType":"<object type>"
}
}| Name | Type | Description |
|---|---|---|
| id | string | Event ID. |
| spektrId | string | ID of the end-user to which the update was performed. |
| eventType | string | Type of event, e.g., "client_record_sync". |
| timestamp | number | Epoch timestamp when the event was created. |
| workspaceId | string | ID of the workspace. |
| data.lastSyncedAt | number | The time when the customer was synced, in millis since epoch |
| data.vendor | string | The vendor that was used to sync the customer data, e.g. hubspot |
| data.objectType | string | The object type of the customer in relation with the vendor, e.g. hubspot contacts |
Samples
{
id: '6811c9c1516c28952cfb5fc3',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'client_record_sync',
timestamp: 1745996225926,
spektrId: '6811c9318c21029ae05832bd',
data: {
lastSyncedAt: 1745996225915,
vendor: 'hubspot',
objectType: 'hubspot contacts',
spektr_id: '6811c9318c21029ae05832bd',
},
},
STEP_INIT
{
"id": "<event-id>",
"workspaceId": "<id of workspace>",
"spektrId": "<id end-user related to this event>",
"eventType": "step_init",
"timestamp": 1672531199000,
"data": {
"processType": "risk",
"processName": "Risk Assessment",
"processId": "12345",
"contextId": "67890",
"stepId": "<ID of the inited step>",
"stepType": "<step type, 'form' or 'ownershipTreeForm'>",
"token": "<the token>",
"reference": "optional-reference"
}
}| Name | Type | Description | |
|---|---|---|---|
| id | string | Event ID. | |
| spektrId | string | ID of the end-user to which the update was performed. | |
| eventType | string | Type of event, e.g., "client_record_sync". | |
| timestamp | number | Epoch timestamp when the event was created. | |
| workspaceId | string | ID of the workspace. | |
| data | object | key-value entries from end-user or external services. 'key' corresponds to field.key when entry was submitted by end-user. | |
| data.processName | string | Name of the process. | |
| data.processType | string | Type of process, e.g. 'onboarding' | |
| data.processId | string | ID of the process | |
| data.stepId | string | ID of the inited step. | |
| data.stepType | string | Type of the inited step, 'form' or 'ownershipTreeForm'. | |
| data.reference | string \ | undefined | Optional value passed to the onboarding process through a query param. |
| data.contextId | string | ID of the execution of the process |
Samples
{
id: '687782e92f8e4aaa7c857e3c',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'step_init',
timestamp: 1752662761594,
spektrId: '687782da2f8e4aaa7c857dda',
data: {
processType: 'onboarding',
processName: 'test stringList startOnboarding',
processId: '686660b573833dea357e86f6',
contextId: '687782da2f8e4aaa7c857ddb',
stepType: 'form',
stepId: '686660b873833dea357e8702',
token:
'eyJpZCI6ImQ4NjFjYmJjMGI1YjVhMGZjZjIwMTkxMGNmOGFhOGMyIiwidG9rZW4iOiJkMTRkN2YwMWI5MGZkNThmMmYxMjNlMmM2NzNkZTE0MmFjNDZlMzBkZjdmMDgzYjk3ZWRlYTM4MmU2YTE3YjRmIn0='
},
},
STEP_SUBMIT
{
"id": "<event-id>",
"workspaceId": "<id of workspace>",
"spektrId": "<id end-user related to this event>",
"eventType": "step_init",
"timestamp": 1672531199000,
"data": {
"processType": "risk",
"processName": "Risk Assessment",
"processId": "12345",
"contextId": "67890",
"stepId": "<ID of the submitted step>",
"stepType": "<step type, 'form' or 'ownershipTreeForm'>",
"token": "<the token>",
"reference": "optional-reference"
}
}| Name | Type | Description |
|---|---|---|
| id | string | Event ID. |
| spektrId | string | ID of the end-user to which the update was performed. |
| eventType | string | Type of event, e.g., "client_record_sync". |
| timestamp | number | Epoch timestamp when the event was created. |
| workspaceId | string | ID of the workspace. |
| data | object | key-value entries from end-user or external services. 'key' corresponds to field.key when entry was submitted by end-user. |
| data.processName | string | Name of the process. |
| data.processType | string | Type of process, e.g. 'onboarding' |
| data.processId | string | ID of the process |
| data.stepId | string | ID of the submitted step. |
| data.stepType | string | Type of the submitted step, 'form' or 'ownershipTreeForm'. |
| data.contextId | string | ID of the execution of the process |
Samples
{
id: '687782e92f8e4aaa7c857e3c',
workspaceId: '559ae2249db800a7b0fa02ad58b196ae',
eventType: 'step_submit',
timestamp: 1752662761594,
spektrId: '687782da2f8e4aaa7c857dda',
data: {
processType: 'onboarding',
processName: 'test stringList startOnboarding',
processId: '686660b573833dea357e86f6',
contextId: '687782da2f8e4aaa7c857ddb',
stepType: 'form',
stepId: '686660b873833dea357e8702',
token:
'eyJpZCI6ImQ4NjFjYmJjMGI1YjVhMGZjZjIwMTkxMGNmOGFhOGMyIiwidG9rZW4iOiJkMTRkN2YwMWI5MGZkNThmMmYxMjNlMmM2NzNkZTE0MmFjNDZlMzBkZjdmMDgzYjk3ZWRlYTM4MmU2YTE3YjRmIn0='
},
},