BPMN Export

Every flow is exportable as a standard BPMN 2.0 file that opens in bpmn.io or Camunda Modeler. Exported files validate against the official OMG BPMN 2.0 schema.

  • Append ?format=bpmn to a flow’s chart URL
  • Request the REST chart endpoint with ?format=bpmn
  • Or use the management command:
./manage.py flowexport helloworld/flows.HelloWorldFlow --format bpmn -o helloworld.bpmn

Element mapping

Flow node BPMN element
flow.Start startEvent
flow.StartHandle startEvent + message event definition
flow.StartTimer startEvent + timer event definition (timeCycle)
flow.View userTask
flow.ManualTask manualTask
flow.Function scriptTask
flow.Handle receiveTask
flow.SendHandle sendTask
flow.BusinessRule businessRuleTask
celery.Job serviceTask
flow.Timer / celery.Timer intermediateCatchEvent + timer event definition
flow.MessageCatch / flow.MessageThrow intermediateCatchEvent / intermediateThrowEvent + message event definition
flow.SignalCatch / flow.SignalThrow intermediateCatchEvent / intermediateThrowEvent + signal event definition
flow.ConditionalCatch intermediateCatchEvent + conditional event definition
flow.EscalationThrow intermediateThrowEvent + escalation event definition
.OnEscalation(...) non-interrupting boundaryEvent + escalation event definition
flow.If / flow.Switch exclusiveGateway
flow.Split parallelGateway; inclusiveGateway with case= conditions
flow.SplitFirst eventBasedGateway
flow.Join parallelGateway; complexGateway with continue_on_condition
flow.Subprocess / flow.NSubprocess callActivity, multi-instance for NSubprocess (isSequential with sequential=True)
flow.Split branch with task_data_source target activity marked multi-instance
.OnTimeout(...) / .OnError(...) boundaryEvent + timer/error event definition
.CompensateWith(...) handler compensation boundaryEvent + association, handler task marked isForCompensation
flow.CompensateThrow intermediateThrowEvent + compensate event definition
flow.End endEvent
flow.TerminateEnd endEvent + terminate event definition
flow.ErrorEnd endEvent + error event definition

flow.If branches are labeled yes/no, flow.Switch marks its Default() branch as the gateway default flow. flow.Obsolete nodes have no BPMN counterpart and are omitted.