Office Assignment

Four assignment types (fixed, location-based, field value, field code), multi-level officer processing, and OFFICE_ASSIGNMENT_NOTIFICATION.

Fixed office (CODE_FIXED_OFFICE)

Use when the office is always the same regardless of applicant input.

Always call list_offices first to fetch the correct officeId — never hardcode or guess UUIDs:

list_offices(organisationId: "<org_uuid>", level: "LEVEL_1")

Use the id field from the response as officeId:

"breakingAction": {
  "actionType": "OFFICE_ASSIGNMENT",
  "args": {
    "officeAssignmentType": "CODE_FIXED_OFFICE",
    "officeLevel": "LEVEL_1",
    "officeId": "<id from list_offices response>",
    "certificateWithList": false,
    "updateFieldWithDatasetValue": false
  }
}

Location-based (CODE_FROM_LOCATION)

Use when the office is determined by a location field the applicant filled in. The formFieldKey must use the .id suffix:

"breakingAction": {
  "actionType": "OFFICE_ASSIGNMENT",
  "args": {
    "officeAssignmentType": "CODE_FROM_LOCATION",
    "officeLevel": "LEVEL_1",
    "formFieldKey": "FIELD_YOUR_LOCATION_FIELD.id",
    "certificateWithList": false,
    "updateFieldWithDatasetValue": false,
    "excludeCurrentApplication": true
  }
}

Field value-based (CODE_IN_APPLICATION_OFFICE)

Use when the form has an office field that stores the office value directly (.value suffix):

"breakingAction": {
  "actionType": "OFFICE_ASSIGNMENT",
  "args": {
    "officeAssignmentType": "CODE_IN_APPLICATION_OFFICE",
    "officeLevel": "LEVEL_1",
    "officeId": null,
    "formFieldKey": "applicationOffice.value",
    "formFieldKeys": null,
    "fixedOfficeCode": null,
    "officeAssignmentExpression": null
  }
}

Office code from field (CODE_APPLICATION_FIELD_CODE)

Use when the form field stores the office code:

"breakingAction": {
  "actionType": "OFFICE_ASSIGNMENT",
  "args": {
    "officeAssignmentType": "CODE_APPLICATION_FIELD_CODE",
    "officeLevel": "LEVEL_1",
    "officeId": null,
    "formFieldKey": "applicationOffice.value",
    "formFieldKeys": null,
    "fixedOfficeCode": null,
    "officeAssignmentExpression": null
  }
}

Multi-level officer processing

ASSIGN_OFFICE fires from whatever state is ready to assign — after submission, payment, or integrations. The nextEvent: "ASSIGN_OFFICE" on the preceding state triggers it automatically.

officeLevel values: LEVEL_1, LEVEL_2, LEVEL_3, ...

Officer notification (OFFICE_ASSIGNMENT_NOTIFICATION)

Always pair with OFFICE_ASSIGNMENT. Goes in nonBreakingActions. Must repeat officeAssignmentType, officeLevel, formFieldKey in args alongside the template:

{
  "actionType": "OFFICE_ASSIGNMENT_NOTIFICATION",
  "args": {
    "notificationType": "STATIC",
    "staticTemplate": {
      "en": {
        "title": "Application Received",
        "subject": "Application Received",
        "emailBody": "...",
        "smsBody": "...",
        "emailMessage": null
      },
      "fr": {
        "title": "...",
        "subject": "...",
        "emailBody": "...",
        "smsBody": "...",
        "emailMessage": null
      },
      "rw": {
        "title": "...",
        "subject": "...",
        "emailBody": "...",
        "smsBody": "...",
        "emailMessage": null
      }
    },
    "officeAssignmentType": "CODE_FROM_LOCATION",
    "officeLevel": "LEVEL_1",
    "formFieldKey": "FIELD_YOUR_LOCATION_FIELD.id",
    "certificateWithList": false,
    "updateFieldWithDatasetValue": false,
    "excludeCurrentApplication": true
  }
}

On this page