Track user origins

origins no title

Introduction

Understanding the origin of a user’s authentication or action can provide powerful insights into how and where your users are engaging with your services.

In ReachFive, an origin should usually provide information about the channel through which a user authenticated. This typically includes access through a website, a mobile app, or other supported applications. However, you can value origin with whatever suits your integration, such as with a country code. Origins are only associated with authenticated profiles, meaning they are not available on Lite profiles, giving you a clear view of verified user access points.

In this guide, we’ll cover the basics of identifying where to use origin and how to value it for optimal results, retrieving origin details from within your ReachFive setup, and analyzing this data to better understand the user journey and optimise their experience across different channels.

Limitations

Leveraging the origin parameter is a great way to understand user engagement with your brand. However, there are some limitations to be aware of:

  • You cannot edit the value of the origin after the initial input. Because of this, it’s best to define what your origins will look like and how you will retrieve them during the integration process.

  • You cannot value origin through the Management API.

Origin structure and storage

By following a standard pattern when you prepare your integration with ReachFive, you ensure an easier view into your users.

Example

Format: <country>_<device>_<platform>
Examples: fr_mobile_ios or fr_mobile_web

Format: <country>_<language>_<platform>
Example: fr_fr_ios or en_fr_ios

Once you have defined how you want your origins to look and how you’ll inject those into the origin field, you can see this information directly in the user profile and user event that occurs as shown in the example below.

  • User profile

  • User event

Get user profile info
{
    "auth_types": [],
    "sub": "5554afde-5da2-4bbe-8e8f-9b0c73dfd612",
    "lite_only": false,
    "created_at": "2025-10-29T15:21:50.547Z",
    "social_identities": [],
    "local_friends_count": 0,
    "likes_friends_ratio": 0,
    "emails": {
        "verified": [],
        "unverified": [
            "bob86@example.com"
        ]
    },
    "logins_count": 0,
    "provider_details": [],
    "uid": "5554afde-5da2-4bbe-8e8f-9b0c73dfd612",
    "identities": [
        {
            "updated_at": "2025-10-29T15:21:50.547Z",
            "provider": "local",
            "created_at": "2025-10-29T15:21:50.547Z"
        }
    ],
    "updated_at": "2025-10-29T15:21:50.547Z",
    "origins": [
        "ie_desktop_mac" (1)
    ],
    "id": "1954afde-5da2-4bbe-8e8f-9b0c73dfd674",
    "email": "bob86@example.com",
    "has_password": true,
    "email_verified": false,
    "devices": [],
    "has_managed_profile": true,
    "token_revocation_record": {
        "long_lived_by_client": {}
    },
    "third_party_grants": [],
    "providers": [],
    "login_summary": {
        "total": 0,
        "devices": [],
        "origins": [
            "ie_desktop_mac"
        ]
    }
}
1 Array of strings showing origins for the user.
Signup
{
    "date": "2025-10-29T08:49:58.573Z",
    "auth_type": "password",
    "origin": "API Identity 20251029", (1)
    "ip": "31.111.222.333",
    "identifier_type": "email",
    "type": "login",
    "client_id": "4opqrxpVWuM43mL85Mtt",
    "updated_keys": [],
    "provider": "password",
    "user_id": "ULMTjPSSzYY7u0Urq333",
    "login_time": "2025-10-29T08:49:58.573Z",
    "profile_id": "ULMTjPSSzYY7u0Urq333",
    "host": "https://example.com",
    "id": "KMWXd2F5GomBTGWlE-tM",
    "canal": "identity_first_party",
    "user_agent": "PostmanRuntime/7.42.0"
}
1 Origin information as part of the user event.

Valuing origin

As origin is optional in ReachFive for all requests, you should ensure that origin is used so that the user origin is collected and available for analysis.

Some good starting points for this are listed below:

Retrieving user origins

User events triggered as a result of an OAuth flow should have origin defined. This means, that in your integration of ReachFive, you should ensure that origin is valued at all points of authentication for users at a minimum. This ensures that you’re able to see where the user authenticated, whether that’s via your website, mobile app, or somewhere else.

Use case: iOS app signups

Let’s say you want to know how many users have signed up to your French site via your newly-launched iOS app over the past 30 days. You want to see if users are using the iOS app for authentication versus the traditional website on mobile devices.

In this case, you should value your origin with the ISO country code, device type, and operating system, in this case, iOS.

Format: <country>_<device>_<os>
Example: fr_mobile_ios

You can then add the origin as part of the signup core method which calls oauth/authorize and adds it as a query parameter or if needed, directly as a query parameter to the /oauth/authorize endpoint as /oauth/authorize?origin=fr_mobile_ios.

This is then valued in the user profile in the origins array and collected for our Premium analytics.

Analyzing user origins

Once you have set up origins in a way for analysis, you can use the Premium Analytics to gain insight into your users.

Currently, the analytics collates all origin data into one dataset. This means that it’s not currently possible to differentiate whether the origin came from the signup, login, or passwordless endpoint(s).

However, the more granular your origin parameter integration, the better insights you gain from it inside of the Analytics in your ReachFive Console.

origins