Business Event Field Reference
Enterprise Edition only
This page documents the payload fields of Business Events (Enterprise Edition).
Every business event is delivered as the payload string of the Event Envelope. Once parsed as JSON, its fields depend on which entity the event describes — but every payload shares a common set of base fields, described first below.
Field names below match the Java class fields exactly, since the payload is serialized with Gson, which serializes declared fields rather than getters. Types are the underlying Java types; in JSON, Date/Instant fields are rendered according to the format yyyy-MM-dd'T'HH:mm:ss.SSSXXX, and absent/inapplicable fields are typically omitted or null rather than present with an empty value.
Common Fields
Every business event payload includes these fields (from the base BusinessEvent class):
| Field | Type | Description |
|---|---|---|
id | String | Identifier of the event's subject (e.g. the process instance id, task id, incident id) — populated for most, but not all, event types; see per-entity notes below. |
rootProcessInstanceId | String | The root process instance in which the event occurred (top of the call-activity chain). |
processInstanceId | String | The process instance in which the event occurred. |
executionId | String | Id of the execution in which the event occurred. |
processDefinitionId | String | Id of the process definition (deployment-specific). |
processDefinitionKey | String | Key of the process definition (stable across versions). |
processDefinitionName | String | Human-readable name of the process definition. |
processDefinitionVersion | Integer | Version of the process definition. |
eventType | String | The short event name, e.g. start, create, update — the last segment of businessEventType. |
businessEventType | String | The fully-qualified type, <prefix>:<entity>:<event> (e.g. bpms:task-instance:complete) — matches metadata.type in the envelope. |
sequenceCounter | long | Execution/variable sequence counter, useful for ordering events that were dispatched out of strict chronological order. |
Several entities (process instance, activity instance’s sibling detail entities, task instance, variable instance, form property, script violation) extend a further intermediate base, BusinessDetailEventEntity, adding:
| Field | Type | Description |
|---|---|---|
activityInstanceId | String | Activity instance associated with the change (meaning varies slightly per entity — see notes below). |
taskId | String | Task id, when the event is scoped to a task; otherwise null. |
timestamp | Date | When the event occurred. |
tenantId | String | Tenant id, in multi-tenant deployments. |
userOperationId | String | Id correlating this change back to the [user operation log](#user-operation-log) entry that caused it, if any (e.g. a task update triggered by an explicit API call vs. an internal engine action). |
Entities that extend BusinessEvent directly (activity instance, identity link, incident, job, batch, external task, DMN decision, user operation log) do not carry the BusinessDetailEventEntity fields above — only the Common Fields plus their own, listed per entity below.
Process Instance
Types: start, end, migrate (entity process-instance); update (entity process-instance-update)
Java: BusinessProcessInstanceEventEntity (extends BusinessDetailEventEntity)
| Field | Type | Description |
|---|---|---|
id | String | The process instance id (explicitly set to this on all process-instance events). |
businessKey | String | The process instance's business key, if set. |
startUserId | String | Authenticated user id that started the instance, if any. |
superProcessInstanceId | String | Parent process instance id, if this instance was started via a call activity. |
startActivityId | String | BPMN activity id where the instance started. |
endActivityId | String | BPMN activity id where the instance ended (only on end). |
deleteReason | String | Reason string, populated when the instance ended via deletion/cancellation rather than normal completion. |
state | String | One of ACTIVE, SUSPENDED, COMPLETED, INTERNALLY_TERMINATED, EXTERNALLY_TERMINATED (BusinessProcessInstanceState). |
startTime | Date | When the instance started. |
endTime | Date | When the instance ended (only on end). |
durationInMillis | Long | endTime - startTime, only populated once both are known. |
Activity Instance
Types: start, update, migrate, end (entity activity-instance)
Java: BusinessActivityInstanceEventEntity (extends BusinessEvent directly — no BusinessDetailEventEntity fields)
| Field | Type | Description |
|---|---|---|
activityInstanceId | String | The activity instance id (also set as the common id field). |
activityId | String | BPMN element id (e.g. ServiceTask_1). |
activityName | String | BPMN element name, if set in the model. |
activityType | String | BPMN element type, e.g. serviceTask, userTask, exclusiveGateway. |
activityInstanceState | int | 0 default, 1 scope complete, 2 canceled, 3 starting, 4 ending (ActivityInstanceState) — only meaningfully set on end. |
parentActivityInstanceId | String | Enclosing activity instance (e.g. the subprocess or call activity instance). |
calledProcessInstanceId | String | Set when this activity is a call activity that spawned a called process instance. |
tenantId | String | Tenant id, in multi-tenant deployments. |
startTime | Date | When the activity instance started. |
endTime | Date | When the activity instance ended (only on end). |
durationInMillis | Long | endTime - startTime, only on end. |
Task Instance
Types: create, update, migrate, complete, delete (entity task-instance)
Java: BusinessTaskInstanceEventEntity (extends BusinessDetailEventEntity)
| Field | Type | Description |
|---|---|---|
id / taskId | String | The task id. |
activityInstanceId | String | Activity instance backing the task's user task. |
assignee | String | Assigned user id, if any. |
owner | String | Task owner user id, if any. |
name | String | Task name. |
description | String | Task description. |
dueDate | Date | Due date, if set. |
followUpDate | Date | Follow-up date, if set. |
priority | int | Task priority. |
parentTaskId | String | Parent task id, for subtasks. |
taskDefinitionKey | String | Key of the user task in the BPMN model. |
taskState | String | The task's current internal state string. |
startTime | Date | When the task was created. |
endTime | Date | When the task was completed or deleted. |
durationInMillis | Long | endTime - startTime, on complete/delete. |
deleteReason | String | Set on complete (e.g. normal completion reason) and delete. |
Variable Instance
Types: created, updated, migrate, deleted (entity variable-instance)
Java: BusinessVariableUpdateEventEntity (extends BusinessDetailEventEntity)
| Field | Type | Description |
|---|---|---|
variableName | String | Name of the variable. |
variableInstanceId | String | Id of the variable instance row. |
revision | int | Optimistic-locking revision of the variable instance at the time of the event. |
scopeActivityInstanceId | String | Activity instance that scopes the variable (may differ from activityInstanceId, which is where it was set). |
activityInstanceId | String | Activity instance in which the variable was set (inherited field; here it identifies the source of the change). |
taskId | String | Task id, when the variable is task-scoped. |
serializerName | String | Name of the variable type's serializer (e.g. string, json, object). |
longValue | Long | Raw persisted LONG_ column value, mirroring ACT_RU_VARIABLE — populated depending on the variable's type. |
doubleValue | Double | Raw persisted DOUBLE_ column value. |
textValue | String | Raw persisted TEXT_ column value (e.g. String variables, or the primary text representation for complex types). |
textValue2 | String | Raw persisted TEXT2_ column value (secondary text column, used by some serializers, e.g. for a Java class name alongside serialized content). |
byteValue | byte[] | Inline raw bytes, for small binary values. |
byteArrayId | String | Id of the associated blob row, when the value is stored out-of-line as a byte array. |
isInitial | Boolean | true when this is the first value ever set for the variable, typically during process instance start. |
Reading the actual variable value
The variable’s value is spread across longValue/doubleValue/textValue/textValue2/byteValue/byteArrayId depending on serializerName — the same low-level representation used internally by ACT_RU_VARIABLE and ACT_GE_BYTEARRAY. There is no single pre-decoded “value” field; consumers that need the typed value should decode it the same way the corresponding variable serializer does, or query the variable through the regular Java/REST API instead of relying solely on the event payload for complex types.
Identity Link
Types: add-identity-link (entity identity-link-add), delete-identity-link (entity identity-link-delete)
Java: BusinessIdentityLinkEventEntity (extends BusinessEvent directly)
| Field | Type | Description |
|---|---|---|
time | Date | When the identity link change occurred. |
type | String | Identity link type, e.g. candidate, assignee, owner. |
userId | String | User id the link refers to, if any. |
groupId | String | Group id the link refers to, if any. |
taskId | String | Task id, if the link is on a task; null when the link is on a process definition instead. |
operationType | String | Literal "add" or "delete". |
assignerId | String | Authenticated user id who performed the operation, if any. |
tenantId | String | Tenant id, in multi-tenant deployments. |
Incident
Types: create, migrate, resolve, update, delete (entity incident)
Java: BusinessIncidentEventEntity (extends BusinessEvent directly)
| Field | Type | Description |
|---|---|---|
id | String | The incident id. |
createTime | Date | When the incident was created. |
endTime | Date | When the incident was resolved or deleted (only on those events). |
incidentType | String | Incident type, e.g. failedJob, failedExternalTask. |
activityId | String | BPMN activity id where the incident occurred. |
failedActivityId | String | BPMN activity id where the underlying failure originated (may differ from activityId for incidents that propagate). |
causeIncidentId | String | Id of the incident that directly caused this one, for incident chains. |
rootCauseIncidentId | String | Id of the root incident at the top of the causal chain. |
configuration | String | Incident-type-specific configuration string (e.g. the failed job's id for a failedJob incident). |
incidentMessage | String | Human-readable incident message, typically the underlying exception message. |
incidentState | int | 0 open, 1 resolved, 2 deleted (IncidentState). |
jobDefinitionId | String | Job definition id, for job-related incidents. |
historyConfiguration | String | Historic configuration string, retained for incidents surfaced via history. |
annotation | String | Free-text annotation attached to the incident, if any (e.g. via Cockpit). |
tenantId | String | Tenant id, in multi-tenant deployments. |
Job
Types: create, fail, success, delete (entity job)
Java: JobLogBusinessEvent (extends BusinessEvent directly)
| Field | Type | Description |
|---|---|---|
jobId | String | The job id. |
timestamp | Date | When the event occurred. |
jobDueDate | Date | The job's due date at the time of the event. |
jobRetries | int | Remaining retries at the time of the event. |
jobPriority | long | Job priority. |
jobExceptionMessage | String | Failure exception message, set on fail. |
exceptionStacktrace | String | Full failure stack trace, set on fail. |
jobDefinitionId | String | Job definition id, if any. |
jobDefinitionType | String | Job handler type; falls back to the job handler's own type when there is no job definition (e.g. async-continuation/signal jobs). |
jobDefinitionConfiguration | String | Job definition configuration string. |
activityId | String | BPMN activity id associated with the job. |
failedActivityId | String | BPMN activity id where the job failure originated. |
deploymentId | String | Deployment id the job belongs to. |
state | int | 0 created, 1 failed, 2 successful, 3 deleted (JobState). |
tenantId | String | Tenant id, in multi-tenant deployments. |
hostname | String | Hostname of the engine node that processed the job. |
batchId | String | Id of the batch the job belongs to, if it was created as part of a batch operation. |
Batch
Types: start, update, end (entity batch)
Java: BatchBusinessEvent (extends BusinessEvent directly)
| Field | Type | Description |
|---|---|---|
id | String | The batch id. |
type | String | Batch type, e.g. instance-migration. |
totalJobs | int | Total number of execution jobs the batch will create. |
batchJobsPerSeed | int | Number of execution jobs created per run of the seed job. |
invocationsPerBatchJob | int | Number of entities processed per execution job. |
seedJobDefinitionId | String | Id of the seed job definition. |
monitorJobDefinitionId | String | Id of the monitor job definition. |
batchJobDefinitionId | String | Id of the execution job definition. |
tenantId | String | Tenant id, in multi-tenant deployments. |
createUserId | String | User id that created the batch — only set on start. |
startTime | Date | When the batch started — only on start. |
endTime | Date | When the batch ended — only on end. |
executionStartTime | Date | Timestamp of the reported progress — only on update. |
External Task
Types: create, fail, success, delete (entity external-task)
Java: ExternalTaskBusinessEvent (extends BusinessEvent directly)
| Field | Type | Description |
|---|---|---|
externalTaskId | String | The external task id. |
timestamp | Date | Creation time on create; current time on the other events. |
topicName | String | External task topic name. |
workerId | String | Id of the worker that fetched/locked the task, if any. |
priority | long | Task priority. |
retries | Integer | Remaining retries at the time of the event. |
errorMessage | String | Failure error message, set on fail. |
errorDetails | String | Full failure details/stack trace, set on fail. |
activityId | String | BPMN external task activity id. |
activityInstanceId | String | Activity instance backing the external task. |
tenantId | String | Tenant id, in multi-tenant deployments. |
state | int | 0 created, 1 failed, 2 successful, 3 deleted (ExternalTaskState). |
DMN Decision Evaluation
Type: evaluate (entity decision)
Java: DmnDecisionEvaluationBusinessEvent (extends BusinessEvent directly)
Bundles the decision that was directly evaluated together with any required (sub-)decisions from the same decision requirements diagram into a single event.
| Field | Type | Description |
|---|---|---|
rootDecisionInstance | DmnDecisionInstanceEvaluation | The directly-evaluated decision (see structure below). |
requiredDecisionInstances | List<DmnDecisionInstanceEvaluation> | Any required (sub-)decisions evaluated as part of the same decision requirements diagram. Empty if none. |
tenantId | String | Tenant id, in multi-tenant deployments. |
userId | String | Authenticated user id — only populated when the decision was evaluated ad hoc (no process-execution context), e.g. via the Decision REST API directly. |
activityId | String | The business rule task id, when the decision was evaluated in-process. |
activityInstanceId | String | Activity instance of the business rule task, when evaluated in-process. |
DmnDecisionInstanceEvaluation:
| Field | Type | Description |
|---|---|---|
decisionDefinitionId | String | Id of the decision definition. |
decisionDefinitionKey | String | Key of the decision definition. |
decisionDefinitionName | String | Name of the decision definition. |
decisionRequirementsDefinitionId | String | Id of the decision requirements graph (DRG) definition, if the decision is part of one. |
decisionRequirementsDefinitionKey | String | Key of the DRG definition. |
evaluationTime | Date | When this specific decision was evaluated. |
inputs | List<DmnDecisionInputEvaluation> | The input clause values used for this evaluation. |
outputs | List<DmnDecisionOutputEvaluation> | The output clause values produced by this evaluation. |
DmnDecisionInputEvaluation:
| Field | Type | Description |
|---|---|---|
clauseId | String | Id of the input clause in the DMN table. |
clauseName | String | Name of the input clause. |
typeName | String | FEEL/DMN type name of the value, e.g. string, long. |
value | Object | The actual input value. |
DmnDecisionOutputEvaluation:
| Field | Type | Description |
|---|---|---|
clauseId | String | Id of the output clause in the DMN table. |
clauseName | String | Name of the output clause. |
ruleId | String | Id of the matched rule (row) that produced this output. |
ruleOrder | Integer | Order/index of the matched rule. |
variableName | String | Name of the output variable. |
typeName | String | FEEL/DMN type name of the value. |
value | Object | The actual output value. |
Form Property
Type: form-property-update (entity form-property)
Java: BusinessFormPropertyEventEntity (extends BusinessDetailEventEntity)
| Field | Type | Description |
|---|---|---|
propertyId | String | The form property's key. |
propertyValue | String | The submitted value, as a string. |
activityInstanceId | String | The start activity instance if this is a start form, otherwise the current task's activity instance. |
taskId | String | The task id, for task forms; null for start forms. |
userOperationId | String | Correlates back to the [user operation log](#user-operation-log) entry for the same submission, if any. |
tenantId | String | Tenant id, in multi-tenant deployments. |
User Operation Log
Type: create (entity user-operation-log)
Java: UserOperationLogBusinessEvent (extends BusinessEvent directly)
One event is published per changed property — an operation that changes three properties (e.g. a synchronous message correlation, see Security — user operation log settings) produces three separate user-operation-log:create events, all sharing the same operationId.
| Field | Type | Description |
|---|---|---|
operationId | String | Correlates all property-change events that belong to the same logical user operation. |
operationType | String | Operation type, e.g. Suspend, Assign, Complete. |
entityType | String | Type of entity the operation acted on, e.g. Task, ProcessInstance. |
property | String | Name of the specific property that changed. |
orgValue | String | Previous value, stringified. |
newValue | String | New value, stringified. |
userId | String | Authenticated user id that performed the operation. |
taskId | String | Correlation id, when the operation targeted a task. |
jobId | String | Correlation id, when the operation targeted a job. |
jobDefinitionId | String | Correlation id, when the operation targeted a job definition. |
deploymentId | String | Correlation id, when the operation targeted a deployment. |
batchId | String | Correlation id, when the operation targeted a batch. |
externalTaskId | String | Correlation id, when the operation targeted an external task. |
category | String | User operation log category, e.g. TaskWorker, Admin, Operator. |
annotation | String | Free-text annotation attached to the operation, if any. |
tenantId | String | Tenant id, in multi-tenant deployments. |
timestamp | Date | When the operation occurred. |
Script Violation
Type: create (entity script-violation)
Java: BusinessScriptViolationEventEntity (extends BusinessDetailEventEntity)
Published for every Script Guard violation recorded in AUDIT or ENFORCE mode. processInstanceId/rootProcessInstanceId (common fields) are null for deployment-time violations detected during BPMN parsing, and populated for runtime violations detected during script task execution.
| Field | Type | Description |
|---|---|---|
activityId | String | Id of the BPMN activity where the violation was detected, e.g. ServiceTask_1. |
language | String | Script language, e.g. javascript, groovy. |
sourceType | String | Script source type (see ScriptSourceType) — e.g. inline vs. external resource. |
origin | String | Script origin (see ScriptOrigin) — e.g. script task, execution listener, I/O mapping. |
ruleCode | String | Rule code that triggered the violation, e.g. SCRIPT_SECURITY_SYSTEM_GETENV. |
reason | String | Human-readable violation reason. |