SSO Data Sharer Webhook

Push out real-time information about SSO users via a secured data sharer service. This service can notify an external third party system about users, sharing information such as user details and contact preferences etc. Third parties can then use this to ingest data about SSO users and keep user details up to date. This service will share updates whenever a user performs an action, i.e. updates their first name or opts in or out of a contact method.

Integration Party configures the service to point to an endpoint provided by the Cortex along with a secured key which can be used to identify and validate the request.

The JSON body detailed below will be sent to this endpoint whenever the user updates their SSO account.

Example

An example webhook request for a configured service. All webhooks requests will contain the full user profile, regardless of what was changed.


Method

URL

Example

POST

https://example.com/webhook

https://example.com/webhook ?\ key=PzRt3Fs5cvs8P2pAqegwJk5VZtYJ0IDk


Field

Type

Definition

id

Number

The user’s unique SSO ID

version

Number

The schema version

recordRevoked

Boolean

True if the user has requested their account be deleted under GDPR. You must either delete the user record from your system or remove all PII data associated with this user’s SSO ID.

clientId

String

The ID associated with this client i.e. CORTEX

registerMetadata.registerSource

String

The source location the user first registered

registerMetadata.registerType

String

The type of registration

registerMetadata.registerPlatform

String

The platform the user registered on

userProfile.id

Number

The user’s unique SSO ID

userProfile.email

String

The user’s email address

userProfile.guardianEmail

String

The email address of their guardian if the user is a minor

userProfile.minorId

String

If the user is a minor this is their username/nickname

userProfile.firstName

String

The user’s first name

userProfile.otherNames

String

The user’s middle name

userProfile.lastName

String

The user’s last name

userProfile.birthDate

ISO 8601 Datetime

The user’s date of birth

userProfile.gender

String

The user’s genderBased on the RFC 6350:

M = MaleF = Female O = Other N = None or not applicable U = Unknown

userProfile.address1

String

The user’s address line 1

userProfile.address2

String

The user’s address line 2

userProfile.town

String

The user’s town

userProfile.region

String

The user’s region / county

userProfile.country

String

The user’s country

userProfile.postcode

String

The user’s postcode

userProfile.contactNumber

String

The user’s phone number

userProfile.companyName

String

The user’s company name

userProfile.companyPhoneNumber

String

The user’s company phone number

userProfile.companyAddressOne

String

The user’s company address line 1

userProfile.companyAddressTwo

String

The user’s company address line 2

userProfile.companyTown

String

The user’s company town

userProfile.companyCountry

String

The user’s company country

userProfile.companyPostcode

String

The user’s company postcode

userProfile.lastUpdated

ISO 8601 Datetime

The last time the user updated their profile information

userProfile.createdAt

ISO 8601 Datetime

The date and time the user created their SSO account

userProfile.metadata

JSON

Unstructured JSON object that contains additional information about the user, for example:

"metadata":

"object": ,

"key": "value",

"number": 1,

"array": [1, "value"],

"boolean": false

userProfile.suspension

Object

If the user’s account has been suspended this field will contain information about it.If the user is not suspended then this field will be null.

userProfile.type

String

The type of account suspension, current values:

suspension

userProfile.expiresAt

ISO 8601 Datetime

The date and time this suspension will elapse.
If null this account is suspended indefinitely.

userProfile.reason

String

A freetext field providing additional context for suspension reason.
This field can be null.

clientPreferences

Array

This contains the list of account preferences available to the user

clientPreferences.clientId

String

The ID associated with this client i.e. CORTEX

clientPreferences.name

String

The display name of the preference

clientPreferences.description

String

The description of the preference

clientPreferences.key

String

The unique key for this preferenceNote:
this is unique per client ID, not per user

clientPreferences.set

Boolean

If true this indicates that the user has responded to this preference. This is useful for some preferences where the user is not obliged to select an option i.e. a checkbox preference. In this case we know the user has acknowledged the preference but not chosen any options.

clientPreferences.options

Array

A list of options available to the user for this preference

clientPreferences.options.id

Number

The globally unique ID of this option

clientPreferences.options.value

String

The display text for this option

clientPreferences.options.metadata

Object

Key / value pairs of additional metadata associated with this option

clientPreferences.options.selected

Boolean

True if the user has selected this option - false otherwise

entitlements

Array

A list of entitlements this user has

entitlements.id

String

The ID of this entitlement

entitlements.name

String

The name of this entitlement

entitlements.validFrom

ISO 8601 Datetime

The date and time this entitlement is valid from

entitlements.validTo

ISO 8601 Datetime

The date and time this entitlement is valid to
This will be null for entitlements that are open ended or never expire i.e. a lifetime membership or staff entitlement

accountLinks

Array

A list of account IDs linked to this SSO account

accountLinks.sourceSystemId

String

The system this account link relates to e.g. cortex_VM for Ticketmaster

accountLinks.sourceSystemUserId

String

The ID of the user’s account within that system

accountLinks.sourceSystemCreatedAt

ISO 8601 Datetime

The date and time this account link was created at the source, i.e. at Ticketmaster.

accountLinks.createdAt

ISO 8601 Datetime

The date and time this account link was created

accountLinks.lastModified

ISO 8601 Datetime

The date and time this account link was last updated