Set the state for a profile's role

Updates the lifecycle state of a specific role. Use this to advance a candidate through the admissions pipeline — for example, from applicant::submitted to applicant::admitted. Provide the target state as a single state_and_substate string in the request body. Alternatively (or in addition), pass a role object to update the role's journey fields. A request with neither leaves the role unchanged.

Path Parameters
  • profile_id
    Type: string
    required

    Unique identifier of the profile.

  • role_id
    Type: string
    required

    Unique identifier of the role.

Body
application/json
  • state_and_substate
    Type: string

    Target lifecycle state and substate as a single state::substate string. Both halves are required and must form a valid combination in the institution's lifecycle, otherwise the request returns 400.

Responses
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for patch/apis/profiles/profiles/{profile_id}/roles/{role_id}
curl https://ff-business-school.fullfabric.cloud/apis/profiles/profiles/507f1f77bcf86cd799439011/roles/507f1f77bcf86cd799439011 \
  --request PATCH \
  --header 'Content-Type: application/json' \
  --header 'FF-Auth: YOUR_SECRET_TOKEN' \
  --data '{
  "state_and_substate": "applicant::admitted"
}'
{
  "id": "6385bdd4976a7719120108ed",
  "withdrawn": false,
  "withdrew_at": null,
  "withdrawn_reasons": [],
  "withdrawn_detail": null,
  "state": "applicant",
  "substate": "submitted",
  "state_and_substate": "applicant::submitted",
  "potential": "high",
  "context_id": "6385bb46976a771912003e6a",
  "context_type": "Institutions::ClassOf",
  "campus_id": null,
  "owner_id": null
}