User Profile

The User Profile object

{
  "id": "AVqvOB58Fg6nZfQ0ZqXt",
  "name": "John Doe",
  "given_name": "John",
  "family_name": "Doe",
  "username": "jdoe",
  "nickname": "Johnny",
  "birthdate": "1983-11-13",
  "age": 33,
  "custom_identifier": "rollingUser1",
  "email": "john.doe@example.com",
  "email_verified": true,
  "emails": {
    "verified": [
      "john.doe@example.com"
    ],
    "unverified": [
      "other@example.com"
    ]
  },
  "password_hash": "$2a$13$A3BmaewEhI/lgxGsXoPATeKhxh1ToRG5r1eES76bVns4P4jAv0f/O",
  "gender": "male",
  "phone_number": "+33612345678",
  "phone_number_verified": false,
  "picture": "https://graph.facebook.com/10154500298019865/picture",
  "profile": "https://www.facebook.com/app_scoped_user_id/10154500298019865/",
  "addresses": [
    {
      "id": 0,
      "default": true,
      "address_type": "billing",
      "street_address": "10 rue Chaptal",
      "address_complement": "4 étage",
      "locality": "Paris",
      "postal_code": "75009",
      "region": "Île-de-France",
      "country": "France",
      "recipient": "Matthieu Winoc",
      "phone_number": "0723538943"
    }
  ],
  "likes_count": 67,
  "credentials":[
    {
      "created_at": "2021-04-12T15:18:30.612129Z",
      "phone_number": "+33612345678",
      "friendly_name": "my MFA phone number",
      "type": "sms"
    },
    {
      "created_at": "2022-05-12T12:22:33.162029Z",
      "email": "bob@example.com",
      "friendly_name": "my MFA email",
      "type": "email"
    }
  ],
  "identities":[
      "updated_at": "2021-05-18T14:28:25.682123Z",
      "created_at": "2021-04-12T15:18:30.612129Z",
      "provider": "google",
      "user_id": "122548588103668578225",
      "id": "122548588103668578225",
      "username": "cool_gal@example.com"
  ],
  "created_at": "2017-03-08T18:39:35.026123Z",
  "updated_at": "2018-08-12T12:54:09.631124Z",
  "first_login": "2017-03-08T18:39:35.026121Z",
  "last_login": "2018-08-12T12:54:09.631126Z",
  "logins_count": 53,
  "suspension_status": "permanent",
  "suspension_information": {
      "reason": "suspiciousUserNoGood"
  },
  "lockout_end_date": "2022-11-25T12:15:09.536Z",
  "origins": [
    "website",
    "game"
  ],
  "last_login_type": "facebook",
  "custom_fields": {
    "loyalty_card_number": "19872359235"
  },
  "consents": {
    "newsletter": {
        "consent_type": "opt-in",
        "granted": true,
        "date": "2018-05-25T15:41:09.671321Z",
        "consent_version": {
          "version_id": 1,
          "language": "fr"
        }
      }
  },
  "facebook_ids_for_pages": [
    {
      "user_id": "649145309042062",
      "page_id": "931332113682072"
    }
  ],
  "external_id": "2977460",
  "provider_metadata": { (1)
    "kakaotalk": {
      "ci": "OUBQAU1Uc5WY…​R/dLqvtWeVbL6r2BuT1S33A==",
      "ci_authenticated_at": "2022-01-24T08:41:03Z"
    }
  }
}
1 Currently, the provider_metadata field is only applicable to Kakao Connect.

User Profile fields

Table key
  • Import = importable into ReachFive

  • Sort = sortable (with API via :desc or :asc)

Name Scope required Description Import Sort

id

none

ReachFive user ID.

name

profile

Full user name

given_name

profile

Given name(s) or first name(s)

family_name

profile

Surname(s) or last name(s)

username

profile

Username

middle_name

profile

Middle name(s)

nickname

profile

Casual name that may or may not be the same as the given_name.

profile

profile

URL of one of the user’s profile page (usually a social provider’s page).

picture

profile

URL of one of the user’s profile picture. This URL refers to an image file (for example, a PNG, JPEG, or GIF image file).

email

email

User’s primary email address.

email_verified

email

Boolean. true if the user’s email address has been verified.

emails

email

Emails object. User’s email addresses.

password_hash

The user’s encrypted (hashed) password.

The hash cannot be retrieved except for very specific cases. If you would like to learn more, please contact your ReachFive representative.

phone_number

phone

User’s primary phone number.

At ReachFive, we use a dedicated library to validate a user’s phone number.

Since January 2022, all newly-created accounts where no country code is provided at creation have their default country code set to FR france (France).
For more details, check out Validating phone numbers.

phone_number_verified

phone

Boolean. true if the user’s phone number has been verified.

custom_identifier

profile

A string that allows users to authenticate with something other than an email or phone_number. It’s important to note that an email and/or phone_number is still required to create a managed profile.

Field rules:

  • Each custom_identifier value must be unique.

  • The custom_identifier must be between 4-100 characters.

  • The custom_identifier cannot be an email or phone number.

gender

profile

User’s gender. Allowed values are female , male, or other.

birthdate

profile

User’s birthdate, represented as an ISO 8601 YYYY-MM-DD format.

age

profile

Integer. User’s age computed from birth date.

company

profile

User’s company name.

likes_count

profile

Integer. Number of facebook pages liked by the user.

addresses

address

Array of Address objects. User’s postal addresses.

identities

profile

Array of Identity objects. List of user’s provider identities.

has_password

profile

Boolean. true if the user has a password.

created_at

profile

Date when the user was created.

updated_at

profile

Date when the user was last updated.

first_login

profile

Date of the user’s first login.

last_login

profile

Date of the user’s last login.

lockout_end_date

profile

Specifies the date and time when a user lockout ends.

  • If the date is in the future, the user is locked out.

  • If the date is in the past, the lockout is over and the user is not locked out.

  • If the user has never been locked out, the field is empty.

logins_count

profile

Integer. Number of logins for this user.

last_login_type

profile

Name of the authentication type used when user last logged in. e.g. facebook, google, password.

origins

profile

Array of strings which provide a list of origins.

What is an origin? 🤔

An origin is the channel through which the user authenticated. This could be a website, or perhaps a mobile app. It is defined via user interaction and only authenticated profiles contain origins. This means lite profiles do not contain the field.

You can value this field via the Identity API or our SDKs. However, the field cannot be valued through Imports or the Management API.

custom_fields

Custom

Object. User’s custom fields.

consents

profile

Users consents. Object containing a series of fields: for each consent key, a Consent object.

friends

profile

Array of Friend objects. List of user’s friends also linked to the same ReachFive account.

facebook-id-for-pages

profile

Array of Facebook Page objects. List of page scoped facebook user ids.

lite_only

profile

Boolean. true if the profile is LITE only.

external_id

profile

The unique identifier of the profile in your systems or Single Customer View. External IDs can only come from imports, the Management API, or the signup method.

The external ID is usually your internal unified customer profile ID, before you integrate with ReachFive.

Loading this information into ReachFive is useful to progressively update your systems with the ReachFive profile ID, or, if you must continue to use this ID for specific purposes.

suspension_status

profile

Specifies whether the suspension of the user is temporary or permanent.

If the suspension_status of the user is temporary, they are able to reactivate with a password reset link. If their suspension_status is permanent, they must contact their account administrator to unsuspend and reactive their account. See User suspension for more details.

suspension_information

profile

Object that provides specific information related to user suspension.

provider_metadata

profile

Object containing metadata from a specified provider.

As of 2023-05-31, only Kakao Connect uses this particular field.

Emails object

Name Description

verified

Array of strings. List of verified user’s email addresses.

Typically, a user has one email address for their account on your site. However, if a social profile is linked to their account, they may have multiple email addresses since it’s permissible to have a different email for the linked social account(s). In this case, the secondary email(s) are added to the emails.verified object.

unverified

Array of strings. List of unverified email addresses.

Addresses object

The addresses object can be sorted with the Management API through the specific fields (like ..&sort=addresses.locality:asc). When sorted, the results are sorted by address for all users.
Name Description Sort

id

ID of the address

title

Title of the address

default

Boolean. true if the address is the default postal address of the user. Only a single address can be the default address.

address_type

Type of the address. Allowed values are delivery or billing.

street_address

Full street address component, which may include house number, street name, and extended street address information separated by new lines.

address_complement

A complementary address field which can contain additional information about the address.

This can be the floor, door number, or any other useful address information.

locality

City or locality.

region

State, province, prefecture, or region.

postal_code

Zip code or postal code.

country

Country name.

delivery_note

Additional note from the user for the delivery.

recipient

Name of the recipient located at these address.

company

Name of the company located at these address.

phone_number

Phone number of the contact point at these address (no format validation is required).

Identities object

Table key

Filter = Filterable on the API.

Name Description Filter

id

The unique ID. This is created from a concatenation of the provider, :, and the user_id. For example: facebook:123456789.

provider

Name of the connected provider for this identity, in lowercase letters (facebook, google, etc.)

user_id

User’s unique identifier of the provider.

created_at

Date when this identity was linked to the profile.

updated_at

Date when this identity was last updated.

username

User’s username with the specified provider.

Suspension information object

Name Description

reason

The reason why the user was suspended.

Consents object

Name Description

consent_type

Consents type: opt-in or opt-out.

granted

Boolean. Whether the consent has been granted or not.

date

Consent date. This reflects the latest date when the granted or consent_version field was valued.

If a consent is updated, but the granted and/or consent_version field is unchanged, the date field remains the same as well. However, if either the granted or consent_version field is changed, the date then reflects the date of that change and a consent log is created.

consent_version

The consent version. This is an object containing a version ID and language.

Field Description

version_id

Specifies the consent version.

language

Specifies the default language of the consent.

reporter

Specifies the reporter who made the modification. For example, this could be an administrator for your site or even an import being executed.

This is an optional field and isn’t always applicable.

Friends object

Name Description

id

ReachFive identifier.

name

Full name.

given_name

Given name

family_name

Family name

gender

Gender

Facebook page object fields

Name Description

user_id

Page scoped user identifier.

page_id

Facebook page identifier.

MFA credentials object

The MFA credentials object contains information related to the MFA second factor for the user.

Name Type Description

credentials

array

An array of objects containing the MFA second factor credentials.

Property Description

created_at

string <date-time>

The timestamp for when the MFA second factor was created.

phone_number

string

The phone number used for the MFA second factor.

email

string

The email used for the MFA second factor.

type

string

Specifies the second factor type.

This is either email or sms.

friendly_name

string

The label for the MFA second factor credential.

Custom fields

The required scope must be declared when creating custom fields.