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:

  1. INITIATE_PUSH (system) → PENDING_PUSH_* with INTEGRATION in breakingAction, nextEvent: null
  2. PUSH (system/partner callback) → next state with nextEvent: "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 with PUSH event
  • "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.

On this page