Skip to main content

Onboarding Schema Reference

Technical reference for onboarding schema configuration, actions, database endpoints, and variable syntax.

For a conceptual overview of how onboarding schemas work, see Understanding Onboarding Schemas.


Schema Structure

{
"onboard_properties": {
"actions": {
// High-level workflows (org creation, AA links, etc.)
},
"db": {
"v1": {
// Direct database endpoint calls (nodes, etc.)
}
},
"execution_order": [
// Optional: explicit order of execution
],
"return_to": "/path" // Where to redirect after completion
}
}

Actions

All actions follow this structure:

{
"actions": {
"action_name": [
{
"store_as": "my_alias", // Optional: alias for referencing outputs
"properties": {
// Action-specific properties
}
}
]
}
}

create_organization

Creates a complete organization with party, customer, and location records. The system automatically uses this organization for all subsequent actions.

Example

{
"actions": {
"create_organization": [
{
"properties": {
"route": "{route}",
"country": "{country}",
"locality": "{locality}",
"org_name": "{org_name}",
"org_email": "{org_email}",
"postal_code": "{postal_code}",
"sublocality": "{sublocality}",
"street_number": "{street_number}"
}
}
]
}
}

create_merchant

Creates a merchant record.

Auto-injected fields:

FieldSource
party_idCurrent org's orgId
customer_idCurrent org's id

Example

{
"actions": {
"create_organization": [
{
"properties": {
"org_name": "{org_name}"
}
}
],
"create_merchant": [
{
"properties": {
"merchant_name": "{org_name} Merchant"
}
}
]
}
}

create_access_application

Creates an Access Application with encryption key setup.

Auto-injected fields:

FieldSource
customer_idCurrent org's id
org_idCurrent org's orgId
warning

Do NOT manually specify customer_id or org_id in your schema properties. These are always auto-injected from the current organization context and will be overwritten.

Output Fields

FieldTypeVariable SyntaxDescription
a_idAId{alias[0].a_id}Access Application ID

Example

{
"actions": {
"create_access_application": [
{
"store_as": "id_verification_aa",
"properties": {
"name": "{org_name} Identity Verification",
"scopes": [
"ss_Global_Identity_Document",
"ss_Person_Contact_Address"
],
"callback_uri": ["https://app.rayt.io"],
"aa_introduction": "Welcome! We use Raytio for identity verification."
}
}
]
}
}

Creates a shareable link for an Access Application.

Required Properties:

PropertyTypeDescription
a_idAIdAccess Application ID ({alias[0].a_id})
descriptionstringDescription for the link
wizardConfigWizardConfigForm configuration (see structure below)

WizardConfig Structure:

{
"pages": [
{
"name": "Page Title",
"schemas": ["schema_name"],
"verify": true,
"optional": false,
"multiple": false
}
],
"emails": ["{org_email}"],
"expiry_date": 365,
"quick_onboard": false
}

Output Fields

FieldTypeVariable SyntaxDescription
nIdNId{alias[0].nId}Link node ID
urlstring{alias[0].url}The shareable URL
short_link_keyLId{alias[0].short_link_key}KV store ID
descriptionstring{alias[0].description}Link description

Example

{
"actions": {
"create_access_application_link": [
{
"properties": {
"a_id": "{id_verification_aa[0].a_id}",
"description": "ID Verification Form",
"wizardConfig": {
"pages": [
{
"name": "Your identity document",
"verify": true,
"schemas": ["ss_Global_Identity_Document"]
}
],
"emails": ["{org_email}"],
"expiry_date": 365
}
}
}
]
}
}

Database Endpoints

Direct API endpoint calls for creating database records. These return raw API field names (e.g. id), unlike high-level actions which return client-mapped fields (e.g. a_id).

Format

{
"db": {
"v1": {
"endpoint_name": [
{
"store_as": "my_alias"
// Endpoint-specific payload
}
]
}
}
}

dsm_nodes (Profile Objects)

Creates profile objects (nodes).

Output: Returns node with n_id field. Reference with {alias[0].n_id}.

Example

{
"db": {
"v1": {
"dsm_nodes": [
{
"store_as": "provider_profile",
"labels": ["ss_Provider_Profile"],
"properties": {
"provider_name": "{org_name}",
"picture": "{logo_url}",
"permissions": "Public"
}
}
]
}
}
}

dsm_node_relationships

Creates relationships between nodes.

Example

{
"db": {
"v1": {
"dsm_node_relationships": [
{
"from": "{node_a[0].n_id}",
"to": "{node_b[0].n_id}",
"type": "OWNS",
"properties": {
"role": "owner"
}
}
]
}
}
}

Variable Substitution

User Input Variables

Reference wizard form inputs:

{
"org_name": "{org_name}",
"org_email": "{org_email}",
"merchant_name": "{org_name} Merchant"
}

Entity Reference Variables

Reference outputs from previous steps.

Format: {alias[index].field}

ComponentDescription
aliasThe store_as value from a previous action
indexArray index (usually 0)
fieldOutput field name

Examples:

{
"a_id": "{my_aa[0].a_id}",
"from": "{profile[0].n_id}"
}

Auto-Generated Aliases

If store_as is not specified, entities are stored under their path:

SourceAuto-generated alias
actions.create_organizationactions.create_organization[0]
db.v1.xrm_merchantsxrm_merchants[0]

Execution Order

Default order:

  1. All actions.*
  2. All db.v1.*
  3. Custom endpoints

Explicit Order

{
"execution_order": [
"actions.create_organization",
"db.v1.dsm_nodes",
"db.v1.xrm_merchants",
"actions.create_access_application",
"actions.create_access_application_link"
]
}
PrefixExample
actions.*actions.create_organization
db.v1.*db.v1.dsm_nodes

Entities must be created before they are referenced.


Complete Example

{
"onboard_properties": {
"actions": {
"create_organization": [
{
"store_as": "my_org",
"properties": {
"org_name": "{org_name}",
"org_email": "{org_email}"
}
}
]
},
"db": {
"v1": {
"dsm_nodes": [
{
"labels": ["ss_Provider_Profile"],
"properties": {
"provider_name": "{my_org[0].name}",
"permissions": "Public"
}
}
]
}
},
"return_to": "/profile"
}
}