International Consumer Experience

ReachFive’s International Consumer Experience (ICE) feature empowers seamless profile management across multiple ReachFive accounts, allowing you to unify your user data across disparate systems with precision and efficiency. By syncing profiles between a Source account and a Target account, you can ensure consistent user experiences while adhering to regional data models and compliance requirements.

For instance, a global e-commerce platform operating in France and Korea can synchronize user profiles from its French Source account to its Korean Target account, mapping fields like language preferences or regional identifiers to maintain a cohesive customer journey. This reduces operational silos, streamlines data governance, and enhances personalization, all while leveraging ReachFive’s robust CIAM infrastructure to maintain security and scalability.

ice overview

Account relationships

A Source account can synchronize profiles to multiple Target accounts (one-to-many), enabling a central account, such as one in France, to share profiles with regional accounts like Korea and Japan. Conversely, a Target account can receive profiles from multiple Source accounts (many-to-one), allowing a regional account, such as Korea, to consolidate profiles from France, Germany, or other sources, applying consistent mappings for a unified data model.

It’s important to know that the configuration is only defined one way. This means that a Source account is configured to push information to a target account. You can configure a target account to listen to multiple source accounts.

This doesn’t mean you can’t configure it to work both ways. It simply means that two configurations are needed where the target of the first configuration is the source in the second configuration.

Source account

The Source account is the originating account to which you configure the target account to listen. Your ReachFive Professional Services contact defines what source accounts can be listened to for security purposes. Once this is defined, you can choose the target account to listen to the available options.

  • Enable account synchronization (via your ReachFive administrator).

  • Define synchronization triggers to select profiles for sharing (account administrator - that’s you).

Example

The ReachFive administrator configures your account to be able to listen to:

  • Example commerce Korea

  • Example commerce France

  • Example commerce United Kingdom

You want your Target account (France) to listen to both the Korea and United Kingdom accounts so that any changes made on those is reflected on your French account.

Target account

The Target account is the target account to which you configure the Source account to send updates. Your ReachFive Professional Services contact defines what accounts can be listened to for security purposes. Once this is defined, you can configure the target account to listen to the available options.

  • Enable account synchronization (ReachFive administrator).

  • Specify Source Accounts for profile syncing (ReachFive administrator).

  • Define mapping to align Source account’s data model with Target account’s (account administrator).

Synchronization process

  1. A profile is created, updated, or deleted on the Source account.

  2. If it meets the synchronization trigger criteria, it is shared with the Target account; otherwise, it is not shared.

  3. The Target account applies the defined mapping, enforces its business rules, and persists the profile.

Synchronization events

The following events are triggered during synchronization. These are available in Post-event webhooks and Pub/Sub hooks. However, they are not available in pre-event webhooks.

Event Description

profile_created_from_synchronisation

Emitted when a user profile is created on a target account.

profile_updated_from_synchronisation

Emitted when a user profile is updated on a target account.

profile_deleted_from_synchronisation

Emitted when a user profile is deleted on a target account.

account_synchronisation_conflict

Emitted when the synchronisation attempt failed due to a duplicate identifier (unverified across accounts).

account_synchronisation_error

Emitted when a technical error occurs during a synchronisation attempt.

Configure ICE with the ReachFive Console

You can configure International Consumer Experience (ICE) with the ReachFive Console.

In addition to this, you can configure the profile sharing settings and mappings using the Management API.

To enable International Consumer Experience, contact your ReachFive representative to activate the feature for your accounts. The representative will work with you to add your desired source accounts.

Mapping

First, select a Source account to configure from the available options in the dropdown menu.

ice mapping source account

You can configure the following mapping settings:

General settings

Toggle on Listening for events which enables the synchronization of profiles from the Source account to the target account.

ice mapping general settings

Processing settings

Processing settings are where you define how events are handled when they are received from the Source account.

ice mapping processing settings
Setting Action

On Create

  • Create profile

    Creates a new profile in the target account when a profile is created in the source.

  • Update if already exists

    Updates an existing profile in the target account if it already exists.

On Update

  • Update profile

    Updates a profile in the target account when the corresponding profile is updated in the source.

  • Create if does not exist

    Creates a new profile in the target account if it does not already exist.

On Delete

  • Delete profile

    Deletes a profile in the target account when the corresponding profile is deleted in the source.

  • Keep lite version

    Keeps the lite identity of the profile in the target account after deletion.

Field mappings

Field mappings define how user fields from the source account are transferred to the target account during synchronization.

Profile fields are consistent between the source and target accounts by definition. Only consent fields and custom fields may require manual mapping.

You can start with default mappings when fields align, or configure custom mappings for fields that differ. All mappings can be reviewed or edited before saving.

Default mappings

Default mappings are ideal when the source and target fields are already aligned. You can load these suggested mappings and adjust them if needed before saving your configuration.

Example:

BioFieldBio

Custom mappings

Use custom mappings for fields that are not aligned, typically consent fields or custom fields, or when you need more control over how data is synchronized.

ice mapping custom

Each mapping follows this structure:

Target fieldMapping typeValue

For each target field, you can choose one of the following mapping types:

  • Field: Map the target field to a different field from the source account.

    Example: UsernameFieldUserName

  • Constant: Assign a fixed, hard-coded value.

    Example: UserTierConstant"premium"

  • Generated — Assign a system-generated value (for example, a UUID).

    This option is available for advanced scenarios where a generated identifier is needed.

    Example: SyncIdGeneratedUUID

  • None: Do not map the field. The field is ignored during synchronization.

    Example: LegacyFlagNone

Profile sharing

You can configure profile sharing in the following ways:

  • Share all profiles

  • Filter profiles to share only a subset based on specific criteria

    You can filter by User profile fields.

    ice profile sharing

Configure profile sharing settings

You can use this API endpoint to configure profile sharing settings on a Source account, defining which user profiles are synchronized with Target accounts in a one-to-many relationship. For example, an administrator can specify that only profiles with specific locales (e.g., fr for France or kr for Korea) are shared.

PUT https://REACHFIVE_DOMAIN/api/v1/synchronization-settings/profile-sharing-settings
Content-Type: application/json
Authorization: Bearer {{source_token}}
Accept: application/json

{
    "share_all_profiles": false, (1)
    "criteria": [
        {
            "field": "locale",
            "operator": "IN", (2)
            "values": ["fr", "kr"]
        }
    ]
}
1 Setting share_all_profiles to false ensures only profiles matching the criteria (e.g., locale in fr or kr) are shared with Target Accounts. If share_all_profiles is set to true, all profiles are shared, and the criteria field is ignored, allowing administrators to enable broad synchronization when needed.
2 Defines the operator used. See Management API: Filtering for more details on operators.

Retrieve Source account definitions

Account administrators can use this API endpoint to retrieve the definitions of Source Accounts that a Target Account is configured to listen to, enabling many-to-one synchronization of user profiles. For example, an administrator can view settings for a Korean Target Account listening to a French Source Account, including how profile fields are mapped to accommodate regional variations and how profile events are processed.

If a Source field lacks a corresponding Target field or contains no data, it is omitted in the Target Account, ensuring data integrity and flexibility in synchronization.

  • We also only map fields of the same type.

  • Consents must be the same as well, meaning opt-in > opt-in, opt-out > opt-out, and so on.

GET https://api.realm.reachaverse.io/api/v1/synchronization-settings/source-definitions
Accept: application/json
Authorization: Bearer {{target_token}}

{
    "local-sync-source": {
        "listening": true, (1)
        "domain": "local-sync-source.reachaverse.io",
        "mapping": {
            "fields": [
                {
                    "mapping_type": "field", (2)
                    "target": "email",
                    "source": "email"
                },
                {
                    "mapping_type": "field", (3)
                    "target": "customFields.billingInfoValueOnlyInTarget",
                    "source": "givenName"
                },
                {
                    "mapping_type": "constant", (4)
                    "target": "birthdate",
                    "constant": "1834-01-01"
                },
                {
                    "mapping_type": "field", (5)
                    "target": "consents.alpha_only_in_target.granted",
                    "source": "consents.alpha_only_in_source.granted"
                }
            ]
        },
        "processing_settings": { (6)
            "create": {
                "create_profile": true,
                "update_if_already_exists": true
            },
            "update": {
                "update_profile": true,
                "create_if_does_not_exist": true
            },
            "delete": {
                "delete_profile": true,
                "keep_lite": true
            }
        }
    }
}
1 The listening field indicates the Target Account is actively receiving profile updates from the Source Account.
2 Direct mapping, copying the email field from Source to Target.
3 Cross-mapping, using the Source’s givenName for a custom billing field in the Target, reflecting regional data needs.
4 Constant mapping, assigning a fixed birthdate value to all synchronized profiles.
5 Consent mapping, aligning consent fields unique to Source and Target accounts.
6 The processing_settings define how profile events (create, update, delete) are handled, such as creating profiles or retaining lightweight profiles after deletion.