Workflow 2: Record the Verification Result
This workflow looks up the account created by Workflow 1, retrieves the verification outcome from 1Kosmos, and writes it back to the account.
Steps
#
Step
SailPoint Step Type
1
External Trigger
Trigger
2
Look Up 1Kosmos Account
Get Accounts
3
Get Verification Result
HTTP Request
4
Update Account
HTTP Request
External Trigger
Set the workflow trigger to External Trigger. An external trigger gives the workflow its own callable endpoint and its own auth credentials — calling that endpoint is what starts this workflow. SailPoint generates the endpoint URL, client ID, and client secret automatically when you add this trigger; open the trigger configuration to copy all three. You'll enter them into the 1Kosmos workflow, so that 1Kosmos can call this workflow when verification finishes.
1Kosmos calls this endpoint with the workflow instance ID in the request body, available in the workflow as:
$.trigger.data.wfInstanceId
Look Up 1Kosmos Account
Add a Get Accounts step to find the account whose nativeIdentity matches the wfInstanceId from Step 1, and save its internal id — you'll need it for the update in Step 4.
GET https://{tenant}.api.{domain}.com/v3/accounts?filters=nativeIdentity eq "{wfInstanceId}" and sourceId eq "{sourceId}"
Authorization: Bearer {access_token}
Get Verification Result
Add an HTTP Request step that calls the 1Kosmos result summary API to retrieve the outcome of the verification session.
GET https://{1kosmos_host}/workflowapi/workflow_instance/{wfInstanceId}/result_summary
Accept: application/json
keyId: {keyId}
keySecret: {keySecret}
license: {license}
requestfromswagger: true
Response
{
"data": {
"communityId": "{community_id}",
"createdAt": "2026-06-08T14:27:30.345Z",
"expiresAt": "2026-06-15T14:27:30.345Z",
"metaData": {
"email": "{email}",
"firstName": "{first_name}",
"identityId": "{identity_id}",
"lastName": "{last_name}"
},
"startAt": "2026-06-08T14:28:09.983Z",
"status": "COMPLETED",
"summary": {
"docsScanned": ["PASSPORT"],
"person_info": {
"dob": "{dob}",
"firstName": "{first_name}",
"lastName": "{last_name}"
}
},
"tenantId": "{tenant_id}",
"updatedAt": "2026-06-08T14:29:03.655Z",
"wfInstanceId": "{wfInstanceId}",
"workflowId": "{workflowId}"
},
"publicKey": "{publicKey}",
"signature_token": "{signature_token}"
}
Update Account
Add an HTTP Request step that calls the SailPoint PATCH /v3/accounts/{id} API to write the result onto the account, using the internal account id from Step 2 and the status from Step 3.
An HTTP Request step is used here rather than a built-in account-update step, since SailPoint's Workflow Builder doesn't currently include a step that can patch arbitrary account attributes like this — calling the API directly is the way to do it.
PATCH https://{tenant}.api.{domain}.com/v3/accounts/{account_id}
Authorization: Bearer {access_token}
Content-Type: application/json-patch+json
[
{
"op": "add",
"path": "/attributes/idvStatus",
"value": "{{$.hTTPRequest.body.data.status}}"
},
{
"op": "add",
"path": "/attributes/updateDate",
"value": "{{$.now()}}"
}
]
Last updated
Was this helpful?

