Skip to main content

Condition Variables

The Workflow Builder's conditional nodes allow you to create intelligent routing based on applicant data, verification results, risk scores, and more. This reference documents all available condition variables.

Root Variables

VariableDescription
applicantInformation about the applicant
poiProof of identity document data
poaProof of address document data
deviceDevice and IP information
screeningSanctions, PEP, and adverse media results
questionnaireCDD/EDD questionnaire responses
riskComputed risk scores
workflowCurrent workflow execution state

Applicant Variables

Basic Info

FieldDescriptionExample
applicant.idApplicant IDapp_123abc
applicant.external_idYour external user IDuser_456
applicant.emailEmail addressuser@example.com
applicant.countryCountry code (ISO 3166-1 alpha-3)USA, GBR, DEU
applicant.created_atCreation timestamp2026-01-25T14:30:00Z
applicant.statusCurrent statuspending, approved, rejected

Personal Information

FieldDescription
applicant.info.first_nameFirst name
applicant.info.last_nameLast name
applicant.info.full_nameFull name
applicant.info.dobDate of birth
applicant.info.ageCalculated age in years
applicant.info.genderGender (M/F)
applicant.info.nationalityNationality (ISO alpha-3)
applicant.info.phonePhone number

Review Status

FieldDescription
applicant.review.decisionReview decision: approved, rejected, resubmission
applicant.review.reject_labelsList of rejection reasons
applicant.review.reviewer_idID of reviewer (if manual)

Document Variables (POI/POA)

Proof of Identity

FieldDescription
poi.countryDocument issuing country
poi.typeDocument type: passport, drivers_license, national_id
poi.numberDocument number
poi.dobDate of birth from document
poi.expiryExpiration date
poi.validWhether document is valid
poi.expiredWhether document is expired
poi.mrz_validMRZ validation result

Proof of Address

FieldDescription
poa.countryDocument country
poa.typeDocument type: utility_bill, bank_statement, tax_document
poa.addressExtracted address
poa.issue_dateDocument issue date
poa.age_daysDays since document was issued

Device & IP Variables

FieldDescription
device.ip_countryIP address country
device.ip_stateIP state/region code
device.is_vpnVPN detected
device.is_torTOR network detected
device.is_proxyProxy detected
device.risk_scoreDevice risk score (0-100)
device.fraud_scoreFraud probability score

Device Statistics

FieldDescription
device.stats.device_countNumber of devices used
device.stats.same_device_applicantsOther applicants on same device
device.stats.ip_countNumber of IPs used

Screening Variables

Sanctions

FieldDescription
screening.sanctions.has_hitsAny sanctions matches found
screening.sanctions.hit_countNumber of matches
screening.sanctions.listsLists with matches: ofac_sdn, un_consolidated, eu_sanctions
screening.sanctions.match_scoreHighest match confidence (0-100)

PEP (Politically Exposed Persons)

FieldDescription
screening.pep.is_pepIs a PEP
screening.pep.levelPEP level: 1, 2, 3, 4
screening.pep.categoriesPEP categories found

Adverse Media

FieldDescription
screening.adverse_media.has_hitsAny adverse media found
screening.adverse_media.categoriesCategories: financial_crime, terrorism, fraud, etc.
screening.adverse_media.severitySeverity level: low, medium, high, critical

Risk Variables

FieldDescription
risk.scoreOverall risk score (0-100)
risk.levelRisk level: low, medium, high, critical
risk.factorsContributing risk factors

Risk Labels

FieldDescription
risk.labels.emailEmail risk: disposable, high_risk, invalid
risk.labels.phonePhone risk: virtual, disposable, high_risk
risk.labels.deviceDevice risk: vpn_usage, tor_usage, high_risk_ip
risk.labels.identityIdentity risk: selfie_mismatch, document_fraud
risk.labels.amlAML risk: pep, sanctions, adverse_media

Questionnaire Variables

Access questionnaire responses:

questionnaire["questionnaire_id"]["section_id"]["item_id"]

Example:

questionnaire["cdd_basic"]["source_of_funds"]["employment_type"] equals "employed"

Common Questionnaire Fields

FieldDescription
questionnaire.scoreCalculated questionnaire score
questionnaire.completedWhether questionnaire was completed
questionnaire.risk_levelRisk level from questionnaire

Client Lists

Reference custom client lists in conditions:

clientLists.high_risk_countries contains applicant.country
clientLists.blocked_ips contains device.ip
clientLists.vip_customers contains applicant.external_id

Logical Operators

Comparison Operators

OperatorDescriptionExample
equalsExact matchapplicant.country equals "USA"
not_equalsNot equalapplicant.status not_equals "rejected"
greater_thanGreater thanrisk.score greater_than 60
less_thanLess thanapplicant.info.age less_than 18
greater_or_equalGreater or equalpoi.age_days greater_or_equal 90
less_or_equalLess or equalscreening.sanctions.match_score less_or_equal 50
containsContains valuerisk.labels.device contains "vpn_usage"
contains_anyContains any of valuesscreening.sanctions.lists contains_any ["ofac_sdn", "un_consolidated"]
is_inValue in listapplicant.country is_in clientLists.high_risk_countries
is_not_inValue not in listapplicant.country is_not_in clientLists.blocked_countries
is_emptyField is empty/nullapplicant.info.phone is_empty
is_not_emptyField has valuepoi.number is_not_empty

Logical Combinators

CombinatorDescription
ANDAll conditions must be true
ORAt least one condition must be true
NOTNegate condition

Common Condition Patterns

Country-Based Routing

IF applicant.country is_in clientLists.high_risk_countries
→ Enhanced Due Diligence
ELSE IF applicant.country equals "USA"
→ US-specific verification
ELSE
→ Standard verification

Age Verification

IF applicant.info.age less_than 18
→ Reject (underage)
ELSE IF applicant.info.age greater_than 70
→ Manual Review
ELSE
→ Auto-approve

Risk-Based Routing

IF risk.score greater_than 70 OR screening.sanctions.has_hits
→ Manual Review (high risk)
ELSE IF risk.score greater_than 40
→ Enhanced Due Diligence
ELSE
→ Auto-approve

VPN/Fraud Detection

IF device.is_vpn OR device.is_tor
→ Reject (VPN detected)
ELSE IF device.fraud_score greater_than 80
→ Manual Review
ELSE
→ Continue

Document Validation

IF poi.expired
→ Reject (expired document)
ELSE IF poi.country not_equals applicant.country
→ Manual Review (country mismatch)
ELSE
→ Continue

Next Steps