Task Lifecycle

The diagram below shows the task lifecycle and supported transitions supported by Camunda. To get to know how to programmatically work with the lifecycle in your application, refer to the Java-API Reference .

  • Create: New tasks are normally created as part of process execution, but can be created by a user action, too (as standalone tasks). taskService.newTask()
  • Set Candidate: Typically candidates are initially set to groups of people as part of process execution, but can be requested by API, too. taskService.addCandidateGroup(taskId, groupId)
  • Claim: Individual members of a candidate group assign themselves to tasks when working on them.taskService.claim(taskId, userId)
  • Unclaim: Individual assignees unassign themselves and move a task back to the candidates.taskService.claim(taskId, null)
  • Assign: Directly assign a specific individual either as part of process execution, or because explicitly requested by API. taskService.setAssignee(taskId, userId)
  • Reassign: Individual assignees may want to hand over a task to somebody else. taskService.setAssignee(taskId, userId)
  • Delegate: Individual assignees may want to delegate (part of) the work: ask somebody else to resolve (part of) the work in order to pass the task back subsequently. taskService.delegateTask(String taskId, String userId)
  • Resolve: After having resolved the requested work individual assignees will want to pass a delegated task back to the owner: the original assignee. taskService.resolveTask(String taskId)
  • Complete: This is how you would close the work on a task and asking the process execution to move on taskService.complete(String taskId)

On this Page: