Skip to main content
Version: 8.9 (unreleased)

JSON test cases

You can write your process tests in a JSON format instead of coding the test logic in Java. The JSON file describes the test cases with instructions that align with CPT's assertions and utilities.

note

CPT's JSON test cases are not compatible with the Test scenario files from the Web Modeler/Play.

Write a JSON test case

The JSON format is defined in the JSON schema. It defines the following structure:

  • testCases: An array of test cases to be executed.
    • name: The name of the test case.
    • description: A description of the test case.
    • instructions: An array of instructions to execute the test case.
      • Each instruction has a type that defines the action to be performed (e.g., CREATE_PROCESS_INSTANCE).
      • Additional properties depend on the instruction type (e.g., process definition ID, variables, etc.).

How to start:

  1. Create a new JSON file in your test resources folder (e.g., src/test/resources/test-cases/invoice-approval.json)
  2. Refer to the JSON schema https://camunda.com/json-schema/cpt-test-cases/8.9/schema.json in the $schema property. Use the same schema version as the CPT version you are using to ensure compatibility.
  3. Add your test cases and use the available instructions to define the behavior of your process test.

The basic structure of the JSON file looks like this:

{
"$schema": "https://camunda.com/json-schema/cpt-test-cases/8.9/schema.json",
"testCases": [
{
"name": "My first test case",
"description": "A human readable description of the test case.",
"instructions": [
]
}
]
}

You can find a full example of a JSON test case file in the Examples section below.

tip

Use AI to support the generation of your JSON files. Refer to the documentation, provide a description of your test case, and your BPMN processes to get a first draft of your test cases.

Or, use an IDE with JSON schema support to get auto-completion and validation while writing your test cases, for example IntelliJ IDEA.

Run a JSON test case

You can run your JSON test case files as a parameterized JUnit test. Add the @TestCaseSource annotation to your test method to read the files and provide their test cases as arguments. Then, execute the test cases using the TestCaseRunner provided by CPT.

The runner executes the test case instructions by leveraging CPT's assertions and utilities. If an assertion instruction fails, the runner throws an assertion error, causing the test to fail. If all instructions pass, the test case is considered successful.

@SpringBootTest
@CamundaSpringProcessTest
public class MyProcessTest {

@Autowired private TestCaseRunner testCaseRunner;

@ParameterizedTest
@TestCaseSource
void shouldPass(final TestCase testCase, final String fileName) {
// given: the process definitions are deployed

// when/then: run and verify the test case
testCaseRunner.run(testCase);
}
}

You can set the following fields in the @TestCaseSource annotation to configure which files to load:

  • directory: The classpath directory to scan for test cases JSON files. Defaults to /test-cases.
  • fileNames: An array of specific file names to load from the directory. If not set, all files in the directory are loaded.
  • fileExtension: The file extension to filter files in the directory. Defaults to json. The filter is ignored if fileNames is set.

Connect your process application

The TestCaseRunner integrates seamlessly with CPT's test lifecycle and connects to your process application and starts the job workers, if enabled.

You can add additional steps before and after running the test case, for example to deploy additional resources, or to mock external services of your process application.

@SpringBootTest
@CamundaSpringProcessTest
public class MyProcessTest {

@Autowired private CamundaClient client;
@Autowired private CamundaProcessTestContext processTestContext;
@Autowired private TestCaseRunner testCaseRunner;

@MockitoBean private AccountingService accountingService;

@ParameterizedTest
@TestCaseSource
void shouldPass(final TestCase testCase, final String fileName) {
// given: the process definitions are deployed via @Deployment on the process application
// optionally: set up mocks, job workers, etc.

// when/then: run and verify the test case
testCaseRunner.run(testCase);

// optionally: verify mock invocations, external resources, etc.
Mockito.verify(accountingService).addInvoiceToAccount("0815", "INV-1001");
}
}

Examples

You can find some example process tests using the JSON test cases on GitHub, like the following one:

Invoice Approval JSON test case
loading...

Reference: Instructions

Instructions define the actions and assertions to be performed in a test case. Each instruction has a type property that identifies the instruction, along with additional properties specific to that instruction type.

ASSERT_DECISION

An instruction to assert the evaluation of a decision. See the assertions documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "ASSERT_DECISION"stringYes
decisionSelectorThe selector to identify the decision.DecisionSelectorYes
outputExpected output of the decision (any JSON type)anyNo
matchedRulesExpected matched rule indexesarray of integerNo
notMatchedRulesExpected not matched rule indexesarray of integerNo
noMatchedRulesAssert that no rules were matchedbooleanNofalse

Example:

{
"type": "ASSERT_DECISION",
"decisionSelector": {
"decisionDefinitionId": "ChooseRocket"
},
"output": {
"rocket": "Ariane 6"
},
"matchedRules": [3]
}

ASSERT_ELEMENT_INSTANCE

An instruction to assert the state of an element instance. See the assertions documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "ASSERT_ELEMENT_INSTANCE"stringYes
processInstanceSelectorThe selector to identify the process instance.ProcessInstanceSelectorYes
elementSelectorThe selector to identify the element.ElementSelectorYes
stateThe expected state of the element instance.enum: IS_ACTIVE, IS_COMPLETED, IS_TERMINATEDYes
amountThe expected amount of element instances in the given state.integer (minimum: 1)No1

Example:

{
"type": "ASSERT_ELEMENT_INSTANCE",
"processInstanceSelector": {
"processDefinitionId": "MoonExplorationProcess"
},
"elementSelector": {
"elementId": "LaunchRocket"
},
"state": "IS_COMPLETED"
}

ASSERT_ELEMENT_INSTANCES

An instruction to assert the state of multiple element instances. See the assertions documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "ASSERT_ELEMENT_INSTANCES"stringYes
processInstanceSelectorThe selector to identify the process instance.ProcessInstanceSelectorYes
elementSelectorsThe selectors to identify the elements.array of ElementSelectorYes
stateThe expected state of the element instances.enum: IS_ACTIVE, IS_COMPLETED, IS_TERMINATED, IS_NOT_ACTIVE, IS_NOT_ACTIVATED, IS_ACTIVE_EXACTLY, IS_COMPLETED_IN_ORDERYes

Example:

{
"type": "ASSERT_ELEMENT_INSTANCES",
"processInstanceSelector": {
"processDefinitionId": "MoonExplorationProcess"
},
"elementSelectors": [
{ "elementId": "PrepareMission" },
{ "elementId": "LaunchRocket" },
{ "elementId": "LandOnMoon" }
],
"state": "IS_COMPLETED_IN_ORDER"
}

ASSERT_PROCESS_INSTANCE

An instruction to assert the state of a process instance. See the assertions documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "ASSERT_PROCESS_INSTANCE"stringYes
processInstanceSelectorThe selector to identify the process instance.ProcessInstanceSelectorYes
stateThe expected state of the process instance.enum: IS_ACTIVE, IS_COMPLETED, IS_CREATED, IS_TERMINATEDNo
hasActiveIncidentsWhether the process instance has active incidents.booleanNo

Example:

{
"type": "ASSERT_PROCESS_INSTANCE",
"processInstanceSelector": {
"processDefinitionId": "MoonExplorationProcess"
},
"state": "IS_COMPLETED"
}

ASSERT_PROCESS_INSTANCE_MESSAGE_SUBSCRIPTION

An instruction to assert the state of a process instance message subscription. See the assertions documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "ASSERT_PROCESS_INSTANCE_MESSAGE_SUBSCRIPTION"stringYes
processInstanceSelectorThe selector to identify the process instance.ProcessInstanceSelectorYes
messageSelectorThe selector to identify the message.MessageSelectorYes
stateThe expected state of the message subscription.enum: IS_WAITING, IS_NOT_WAITING, IS_CORRELATEDYes

Example:

{
"type": "ASSERT_PROCESS_INSTANCE_MESSAGE_SUBSCRIPTION",
"processInstanceSelector": {
"processDefinitionId": "MoonExplorationProcess"
},
"messageSelector": {
"messageName": "AstronautReady"
},
"state": "IS_CORRELATED"
}

ASSERT_USER_TASK

An instruction to assert the state of a user task. See the assertions documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "ASSERT_USER_TASK"stringYes
userTaskSelectorThe selector to identify the user task.UserTaskSelectorYes
stateThe expected state of the user task.enum: IS_CREATED, IS_COMPLETED, IS_CANCELED, IS_FAILEDNo
assigneeThe expected assignee of the user task.stringNo
candidateGroupsThe expected candidate groups of the user task.array of stringNo
priorityThe expected priority of the user task.integerNo
elementIdThe expected element ID of the user task.stringNo
nameThe expected name of the user task.stringNo
dueDateThe expected due date of the user task in ISO-8601 format.stringNo
followUpDateThe expected follow-up date of the user task in ISO-8601 format.stringNo

Example:

{
"type": "ASSERT_USER_TASK",
"userTaskSelector": {
"elementId": "ReviewMissionPlan"
},
"state": "IS_CREATED",
"assignee": "zee-astronaut",
"priority": 100
}

ASSERT_VARIABLES

An instruction to assert the variables of a process instance. See the assertions documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "ASSERT_VARIABLES"stringYes
processInstanceSelectorThe selector to identify the process instance.ProcessInstanceSelectorYes
elementSelectorThe selector to identify the element for local variables.ElementSelectorNo
variableNamesThe expected variable names.array of stringNo
variablesThe expected variables with their values.objectNo

Example:

{
"type": "ASSERT_VARIABLES",
"processInstanceSelector": {
"processDefinitionId": "MoonExplorationProcess"
},
"variables": {
"missionStatus": "completed",
"astronautName": "Zee"
}
}

BROADCAST_SIGNAL

An instruction to broadcast a signal.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "BROADCAST_SIGNAL"stringYes
signalNameThe name of the signal to broadcast.stringYes
variablesThe variables to broadcast with the signal.objectNo

Example:

{
"type": "BROADCAST_SIGNAL",
"signalName": "EmergencyEvacuation",
"variables": {
"reason": "meteor-shower",
"destination": "space-station"
}
}

COMPLETE_JOB

An instruction to complete a job. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "COMPLETE_JOB"stringYes
jobSelectorThe selector to identify the job to complete.JobSelectorYes
variablesThe variables to complete the job with.objectNo
useExampleDataWhether to complete the job with example data from the BPMN element. This property has precedence over variables.booleanNofalse

Example:

{
"type": "COMPLETE_JOB",
"jobSelector": {
"jobType": "analyze-moon-samples"
},
"variables": {
"analysisResult": "high-mineral-content"
}
}

COMPLETE_JOB_AD_HOC_SUB_PROCESS

An instruction to complete a job of an ad-hoc sub-process. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "COMPLETE_JOB_AD_HOC_SUB_PROCESS"stringYes
jobSelectorThe selector to identify the job to complete.JobSelectorYes
variablesThe variables to complete the job with.objectNo
activateElementsThe elements to activate in the ad-hoc sub-process.array of ActivateElementInstructionNo
cancelRemainingInstancesWhether to cancel remaining instances of the ad-hoc sub-process.booleanNofalse
completionConditionFulfilledWhether the completion condition of the ad-hoc sub-process is fulfilled.booleanNofalse

Activate Element Instruction

An instruction to activate an element in an ad-hoc sub-process.

PropertyDescriptionTypeRequired
elementIdThe ID of the element to activate.stringYes
variablesThe variables to set when activating the element.objectNo

Example:

{
"type": "COMPLETE_JOB_AD_HOC_SUB_PROCESS",
"jobSelector": {
"jobType": "conduct-experiment"
},
"variables": {
"experimentResult": "success"
},
"activateElements": [
{
"elementId": "CollectMoonSamples",
"variables": {
"sampleType": "regolith"
}
}
]
}

COMPLETE_JOB_USER_TASK_LISTENER

An instruction to complete a job of a user task listener. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "COMPLETE_JOB_USER_TASK_LISTENER"stringYes
jobSelectorThe selector to identify the job to complete.JobSelectorYes
deniedWhether the worker denies the work.booleanNofalse
deniedReasonThe reason for denying the job.stringNo
correctionsThe corrections to apply to the user task. Only applicable if denied is false.UserTaskCorrectionsNo

User Task Corrections

The corrections to apply to a user task.

PropertyDescriptionTypeRequired
assigneeThe assignee of the task.stringNo
dueDateThe due date of the task.stringNo
followUpDateThe follow up date of the task.stringNo
candidateUsersThe candidate users of the task.array of stringNo
candidateGroupsThe candidate groups of the task.array of stringNo
priorityThe priority of the task.integerNo

Example:

{
"type": "COMPLETE_JOB_USER_TASK_LISTENER",
"jobSelector": {
"jobType": "validate-astronaut-assignment"
},
"corrections": {
"assignee": "zee-senior-astronaut",
"priority": 50
}
}

COMPLETE_USER_TASK

An instruction to complete a user task.See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "COMPLETE_USER_TASK"stringYes
userTaskSelectorThe selector to identify the user task to complete.UserTaskSelectorYes
variablesThe variables to set when completing the user task. Ignored if useExampleData is true.objectNo
useExampleDataWhether to complete the user task with example data from the BPMN element. If true, the variables property is ignored.booleanNofalse

Example:

{
"type": "COMPLETE_USER_TASK",
"userTaskSelector": {
"elementId": "ReviewMissionPlan"
},
"variables": {
"approved": true,
"comments": "Mission plan looks good for moon exploration"
}
}

CORRELATE_MESSAGE

An instruction to correlate a message.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "CORRELATE_MESSAGE"stringYes
nameThe name of the message.stringYes
correlationKeyThe correlation key of the message.stringNo
variablesThe variables to correlate with the message.objectNo

Example:

{
"type": "CORRELATE_MESSAGE",
"name": "AstronautReady",
"correlationKey": "mission-001",
"variables": {
"astronautName": "Zee",
"status": "ready-for-launch"
}
}

CREATE_PROCESS_INSTANCE

An instruction to create a new process instance.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "CREATE_PROCESS_INSTANCE"stringYes
processDefinitionSelectorThe selector to identify the process definition to create the process instance for.ProcessDefinitionSelectorYes
variablesThe variables to create the process instance with.objectNo
startInstructionsThe instructions to execute when starting the process instance.array of StartInstructionNo
runtimeInstructionsThe instructions to affect the runtime behavior of the process instance.array of RuntimeInstructionNo

Start Instruction

An instruction to execute when starting a process instance.

PropertyDescriptionTypeRequired
elementIdThe ID of the element to start the process instance at.stringYes

Runtime Instruction

An instruction to affect the runtime behavior of a process instance.

PropertyDescriptionTypeRequired
typeThe type of the runtime instruction. Currently supports "TERMINATE_PROCESS_INSTANCE".stringYes
afterElementIdThe ID of the element after which to terminate the process instance. Required when type is "TERMINATE_PROCESS_INSTANCE".stringYes

Example:

{
"type": "CREATE_PROCESS_INSTANCE",
"processDefinitionSelector": {
"processDefinitionId": "MoonExplorationProcess"
},
"variables": {
"missionName": "Artemis-Zee",
"destination": "Moon",
"astronautCount": 4
}
}

EVALUATE_CONDITIONAL_START_EVENT

An instruction to evaluate conditional start events.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "EVALUATE_CONDITIONAL_START_EVENT"stringYes
variablesThe variables to evaluate the conditional start events with.objectYes

Example:

{
"type": "EVALUATE_CONDITIONAL_START_EVENT",
"variables": {
"weatherCondition": "clear",
"fuelLevel": 100
}
}

EVALUATE_DECISION

An instruction to evaluate a DMN decision.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "EVALUATE_DECISION"stringYes
decisionDefinitionSelectorThe selector to identify the decision definition to evaluate.DecisionDefinitionSelectorYes
variablesThe variables to evaluate the decision with.objectNo

Example:

{
"type": "EVALUATE_DECISION",
"decisionDefinitionSelector": {
"decisionDefinitionId": "ChooseRocket"
},
"variables": {
"payload": 5000,
"destination": "Moon"
}
}

INCREASE_TIME

An instruction to increase the time. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "INCREASE_TIME"stringYes
durationThe duration to increase the time by, in ISO 8601 duration format (e.g., "PT1H", "P2D").stringYes

Example:

{
"type": "INCREASE_TIME",
"duration": "P3D"
}

MOCK_CHILD_PROCESS

An instruction to mock a child process. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "MOCK_CHILD_PROCESS"stringYes
processDefinitionIdThe ID of the child process to mock.stringYes
variablesThe variables to set for the mocked child process.objectNo

Example:

{
"type": "MOCK_CHILD_PROCESS",
"processDefinitionId": "AstronautTrainingProcess",
"variables": {
"trainingCompleted": true,
"grade": "excellent"
}
}

MOCK_DMN_DECISION

An instruction to mock a DMN decision. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "MOCK_DMN_DECISION"stringYes
decisionDefinitionIdThe decision definition ID to mock.stringYes
variablesThe variables to set as the decision output.objectNo

Example:

{
"type": "MOCK_DMN_DECISION",
"decisionDefinitionId": "ChooseRocket",
"variables": {
"rocket": "Falcon Heavy"
}
}

MOCK_JOB_WORKER_COMPLETE_JOB

An instruction to mock a job worker who completes jobs. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "MOCK_JOB_WORKER_COMPLETE_JOB"stringYes
jobTypeThe job type to mock. This should match the zeebeJobType in the BPMN model.stringYes
variablesThe variables to complete the job with.objectNo
useExampleDataWhether to use example data from the BPMN element. If true, the variables property is ignored.booleanNofalse

Example:

{
"type": "MOCK_JOB_WORKER_COMPLETE_JOB",
"jobType": "calculate-trajectory",
"variables": {
"trajectory": "optimal",
"fuelConsumption": 450
}
}

MOCK_JOB_WORKER_THROW_BPMN_ERROR

An instruction to mock a job worker who throws BPMN errors. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "MOCK_JOB_WORKER_THROW_BPMN_ERROR"stringYes
jobTypeThe job type to mock. This should match the zeebeJobType in the BPMN model.stringYes
errorCodeThe error code to throw. This should match the error code in an error catch event.stringYes
errorMessageThe error message to include when throwing the error.stringNo
variablesThe variables to include when throwing the error.objectNo

Example:

{
"type": "MOCK_JOB_WORKER_THROW_BPMN_ERROR",
"jobType": "launch-rocket",
"errorCode": "WEATHER_UNSUITABLE",
"errorMessage": "High winds detected"
}

PUBLISH_MESSAGE

An instruction to publish a message.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "PUBLISH_MESSAGE"stringYes
nameThe name of the message.stringYes
correlationKeyThe correlation key of the message.stringNo
variablesThe variables to publish with the message.objectNo
timeToLiveThe time-to-live of the message in milliseconds.integerNo
messageIdThe message ID for uniqueness.stringNo

Example:

{
"type": "PUBLISH_MESSAGE",
"name": "LaunchApproved",
"correlationKey": "mission-001",
"variables": {
"approvedBy": "mission-control",
"launchWindow": "2026-03-15T10:00:00Z"
}
}

RESOLVE_INCIDENT

An instruction to resolve an incident. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "RESOLVE_INCIDENT"stringYes
incidentSelectorThe selector to identify the incident to resolve.IncidentSelectorYes

Example:

{
"type": "RESOLVE_INCIDENT",
"incidentSelector": {
"elementId": "LaunchRocket"
}
}

SET_TIME

An instruction to set the time. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "SET_TIME"stringYes
timeThe time to set, in ISO 8601 instant format (e.g., "2026-01-19T13:00:00Z").stringYes

Example:

{
"type": "SET_TIME",
"time": "2026-03-15T10:00:00Z"
}

THROW_BPMN_ERROR_FROM_JOB

An instruction to throw a BPMN error from a job. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "THROW_BPMN_ERROR_FROM_JOB"stringYes
jobSelectorThe selector to identify the job to throw the error from.JobSelectorYes
errorCodeThe error code to throw.stringYes
errorMessageThe error message to throw.stringNo
variablesThe variables to set when throwing the error.objectNo

Example:

{
"type": "THROW_BPMN_ERROR_FROM_JOB",
"jobSelector": {
"jobType": "deploy-satellite"
},
"errorCode": "DEPLOYMENT_FAILED",
"errorMessage": "Insufficient orbital velocity"
}

UPDATE_VARIABLES

An instruction to create or update process instance variables. See the utilities documentation for more details.

PropertyDescriptionTypeRequiredDefault
typeInstruction type, must be "UPDATE_VARIABLES"stringYes
processInstanceSelectorThe selector to identify the process instance.ProcessInstanceSelectorYes
variablesThe variables to create or update.objectYes
elementSelectorThe selector to identify the element for local variables.ElementSelectorNo

Example:

{
"type": "UPDATE_VARIABLES",
"processInstanceSelector": {
"processDefinitionId": "MoonExplorationProcess"
},
"variables": {
"currentPhase": "landing",
"fuelRemaining": 75
}
}

Reference: Selectors

Selectors are used to identify specific resources in your process tests. Each selector must contain at least one of the specified properties.

Decision Definition Selector

A selector to identify a decision definition.

PropertyDescriptionTypeRequired
decisionDefinitionIdID of the decision definitionstringYes

Example:

{
"decisionDefinitionId": "ChooseRocket"
}

Decision Selector

A selector to identify a decision. The selector must contain at least one of the following properties:

PropertyDescriptionTypeRequired
decisionDefinitionIdID of the decision definitionstringNo
decisionDefinitionNameName of the decision definitionstringNo

Example:

{
"decisionDefinitionId": "ChooseRocket"
}

Element Selector

A selector to identify a BPMN element. The selector must contain at least one of the following properties:

PropertyDescriptionTypeRequired
elementIdID of the BPMN elementstringNo
elementNameName of the BPMN elementstringNo

Example:

{
"elementId": "LaunchRocket"
}

Incident Selector

A selector to identify an incident. The selector must contain at least one of the following properties:

PropertyDescriptionTypeRequired
elementIdID of the BPMN element where the incident occurredstringNo
processDefinitionIdProcess definition ID of the incidentstringNo

Example:

{
"elementId": "LaunchRocket"
}

Job Selector

A selector to identify a job. The selector must contain at least one of the following properties:

PropertyDescriptionTypeRequired
jobTypeType of the jobstringNo
elementIdID of the BPMN elementstringNo
processDefinitionIdProcess definition ID of the jobstringNo

Example:

{
"jobType": "analyze-moon-samples"
}

Message Selector

A selector to identify a message.

PropertyDescriptionTypeRequired
messageNameName of the messagestringYes
correlationKeyCorrelation key of the messagestringNo

Example:

{
"messageName": "AstronautReady"
}

Process Definition Selector

A selector to identify a process definition.

PropertyDescriptionTypeRequired
processDefinitionIdID of the process definitionstringYes

Example:

{
"processDefinitionId": "MoonExplorationProcess"
}

Process Instance Selector

A selector to identify a process instance.

PropertyDescriptionTypeRequired
processDefinitionIdProcess definition ID of the process instancestringYes
{
"processDefinitionId": "MoonExplorationProcess"
}

User Task Selector

A selector to identify a user task. The selector must contain at least one of the following properties:

PropertyDescriptionTypeRequired
elementIdID of the BPMN elementstringNo
taskNameName of the user taskstringNo
processDefinitionIdProcess definition ID of the user taskstringNo

Example:

{
"elementId": "ReviewMissionPlan"
}