Integration Chain
How to chain multiple integration calls using INITIATE_PUSH and PUSH transitions.
One integration = one dedicated transition. Never stack multiple integrations in one array.
Flow
Each integration step uses two transitions:
INITIATE_PUSH(system) →PENDING_PUSH_*withINTEGRATIONinbreakingAction,nextEvent: nullPUSH(system/partner callback) → next state withnextEvent: "INITIATE_PUSH"to continue chain
Integration transition example
{
"startState": "SUBMITTED",
"event": "INITIATE_PUSH",
"endStateOne": {
"stateName": "Pending Push",
"stateNames": null,
"stateCode": "PENDING_PUSH_STEP_1",
"breakingAction": {
"actionType": "INTEGRATION",
"args": {
"endpointCode": "TODO: endpoint_code",
"async": true,
"certificateWithList": false,
"updateFieldWithDatasetValue": false
}
},
"breakingActions": null,
"nonBreakingActions": null,
"nextEvent": null,
"position": null
},
"endStateTwo": null,
"endStateCondition": null,
"authorisation": { "authorisedRoles": null, "authorisedUsers": null, "systemAuthorised": true },
"position": null,
"eventNames": null,
"eventConfigs": null
}{
"startState": "PENDING_PUSH_STEP_1",
"event": "PUSH",
"endStateOne": {
"stateName": "Pushed Step 1",
"stateNames": null,
"stateCode": "PUSHED_STEP_1",
"breakingAction": null,
"breakingActions": null,
"nonBreakingActions": null,
"nextEvent": "INITIATE_PUSH",
"position": null
},
"endStateTwo": null,
"endStateCondition": null,
"authorisation": { "authorisedRoles": null, "authorisedUsers": null, "systemAuthorised": true },
"position": null,
"eventNames": null,
"eventConfigs": null
}Async vs sync
"async": true— partner processes asynchronously and calls back withPUSHevent"async": false— synchronous call, system auto-continues
With IS_RESUBMITTED branching
When a partner RFA re-routes through the chain, some steps use endStateCondition to skip or alter behavior. See Conditional Branching.