Akamai Identity Cloud (JanRain)

The Switchboard Akamai JanRain connector allows you to pull in data for JanRain entities (aka users).

Prerequisites

To configure access to the Akamai JanRain connector, you’ll need to set the following values in the Key Editor when you configure a CredentialType of Akamai JanRain.

Client ID
Unique identifier of an API client that has been assigned the owner feature. You can find the ID for an owner client by looking on Identity Cloud Console’s “Manage Properties” page.
Client Secret
Client secret (i.e., password) assigned to an API client that has the owner feature. You can find the secret for an owner client by locating the client on Identity Cloud Console’s “Manage Properties” page, clicking the Actions icon next to the client name, and then clicking Edit.

Scheduling

The Akamai JanRain connector may be scheduled to ingest data regularly on an hourly basis at a user-defined hour and timezone. See Hourly Scheduling for more information.

Script Properties

type_name
Corresponds to an entityType (user profile data stores) within Identity Cloud. If you have access to the Identity Cloud API, these may be queried programmatically.
attributes
Note that the attributes property is specific to a client. Refer to your Identity Cloud Manage Schemas page to determine which attributes are available to you.

The attributes property is also optional. If not provided, the connector will pull all attributes from the system.

Use the attributes parameter to limit the number of attributes returned for each record.

filter
Refer to the Akamai API documentation for information about filter syntax.
max_results
Integer value between 1 and 1000, inclusive, specifying the maximum number of records to be returned. The default value is 100.
sort_on
It’s recommended that you set the value of sort_on to an empty array as this typically improves performance.

Sample Switchboard Script

import akamai_janrain_entity_user_metadata_raw from {
    type: "akamai:janrain_entity";
    key: "akamai_janrain_key";
    type_name: "user";
    sort_on: [];
    attributes: [
        "uuid",
        "email",
        "givenName",
        "middleName",
        "familyName",
        "displayName",
        "primaryAddress",
        "created",
        "lastUpdated",
        "emailVerified",
        "lastLogin",
        "deactivateAccount",
        "birthday",
        "gender",
        "registrationLocation",
        "currentLocation",
        "destinationURL",
        "registrationIPAddress",
        "stripe_id",
        "marketing_opt_in",
        "silverpop",
        "discourse"
    ];
} using {
    "uuid": string;
    "email": string;
    "givenName": string;
    "middleName": string;
    "familyName": string;
    "displayName": string;
    "primaryAddress": {
        "address1": string;
        "address2": string;
        "city": string;
        "stateAbbreviation": string;
        "zip": string;
        "zipPlus4": string;
        "country": string;
        "phone": string;
        "mobile": string;
        "company": string;
    };
    "created": datetime('YYYY-MM-dd HH:mm:ss.SSSSSS Z');
    "lastUpdated": datetime('YYYY-MM-dd HH:mm:ss.SSSSSS Z');
    "emailVerified": datetime('YYYY-MM-dd HH:mm:ss.SSSSSS Z');
    "lastLogin": datetime('YYYY-MM-dd HH:mm:ss Z');
    "deactivateAccount": string;
    "birthday": string;
    "gender": string;

    "registrationLocation": string;
    "currentLocation": string;
    "destinationURL": string;
    "registrationIPAddress": string;

    "stripe_id": string;
    "marketing_opt_in": string;
    "silverpop": {
        "userId": string;
        "id": string;
    };
    "discourse": {
        "lastLogin": datetime('YYYY-MM-dd HH:mm:ss.SSSSSS Z');
    };
};