Understanding the Workflow Response
After executing a workflow, the API returns a comprehensiveworkflowResult object. This object is the key to understanding the outcome of every check performed. This guide provides a structured, top-down walkthrough of how to parse this response, explaining each key object from the final verdict down to the granular evidence.
View Full API Response Example
View Full API Response Example
The examples in this guide refer to the following API response for workflow execution
01JZHEX5FQA4DJB0MMJFZR26JS. Click to expand and see the full structurePart 1: The Overall Outcome (The Final Verdict)
Start by examining the top-level fields of theworkflowResult object. These provide the final, authoritative outcome of the entire workflow execution.
Workflow Execution States (workflowExecutionState)
This field tells you if the workflow ran to completion.
When Each Execution State Occurs
COMPLETED
The workflow ran to completion. This is the expected state for most synchronous workflows.- Next step: Check
workflowResult.statusfor the verification outcome (PASS, FAIL, REVIEW, etc.)
IN_PROGRESS
The workflow is still executing and has not yet reached a terminal state. This occurs when:
Handling IN_PROGRESS responses:
- Configure webhooks (recommended) - Listen for completion events:
RESULTS_RETRIEVED- Verification results are readyFF_EXTERNAL_IDV_CHECK_COMPLETED- IDV/biometric submission complete
- Poll for results - Call
GET /v2/individuals/{entityId}/serviceprofiles/{serviceName}/workflows/{workflowName}to retrieve updated results - Use the retrieve endpoint - Call
/retrieve/{requestID}with therequestIDfrom the original response
Note: Biometric checks are asynchronous and can take up to 5 minutes to complete. Do not treatIN_PROGRESS
as a failure.
ERROR
An unrecoverable error occurred during workflow execution. Common causes:- Internal system error
- Invalid workflow configuration
- Data source connector failure
workflowExecutionId and retry the request. If persistent, contactsupport@frankieone.com.
TIMEOUT
The workflow exceeded the maximum allowed execution time. Common causes:- External data source unavailable or slow
- Network connectivity issues
- High system load
CANCELED
The workflow was manually canceled before completion. This can occur when:- The request was explicitly canceled via API
- A dependent process was terminated
TERMINATED
The workflow was forcefully stopped by the system. This may indicate:- System-level intervention
- Resource limits exceeded
- Security policy triggered
workflowExecutionId to investigate.
Workflow Statuses (status and result)
This is the final recommendation of the workflow.
Detecting Manual Overrides
It’s crucial to know if a workflow’s result was changed by a person. When an operator manually changes thestatus (e.g., from FAIL to PASS), the following fields are populated:
statusOverrideRequestId: The unique ID of the override request.statusOverrideBy: The user who performed the override.statusOverrideAt: The timestamp of the override.
To detect an override, check ifstatusOverrideRequestId exists and is not empty.
Part 2: The Step-by-Step Breakdown (workflowStepResults)
The workflowStepResults array is a log of each individual check, explaining how the overall status was reached. Each object in this array corresponds to a step configured in your workflow (e.g., KYC, AML, IDV).
Workflow Step Results (result)
Part 3: The Granular Evidence (processResults)
For the deepest level of detail, look inside a workflowStepResult at its processResults array. A Process Result Object (PRO) is the raw evidence from a single check against a single data source.
Process Result Classes (class)
Best Practices for Integration
CheckworkflowExecutionState first: Always confirm the workflow isCOMPLETEDbefore trusting thestatus.Automate based onstatus: Use the top-levelstatusfield for your primary business logic (e.g., approve account, flag for review).Debug withworkflowStepResults: When you get an unexpectedFAILorREVIEW, loop through theworkflowStepResultsto find whichstepNamehas a non-passingresult. ThesummaryandprocessResultswithin that step will tell you why.Log theworkflowExecutionId: This ID is your key for auditing, support queries, and correlating results.
Synchronous vs Asynchronous Workflows
Workflow behavior depends on the types of checks configured in your workflow.Synchronous Workflows
Workflows containing only synchronous steps returnCOMPLETED immediately with the final result.
Synchronous step types:
- KYC data source checks (government databases, credit bureaus)
- AML/PEP/Sanctions screening
- Watchlist checks
- Duplicate detection