Oracle Responsys Data Push

Overview

Oracle CrowdTwist integrates with Oracle Responsys using realtime API calls. This allows a client’s loyalty data to flow into their Responsys instance in real-time and be made available for communications.

This is achieved by Oracle CrowdTwist structuring their push feeds to match the API format of Oracle Responsys to populate the mutual client’s Profile Extension and Supplemental Data tables. Authorization is handled via access token for the server-to-server integration.

Note: This requires the client to have their own Oracle Responsys instance.

Data Push Feeds

The following types of data feeds can be enabled:

  • User Profile: Includes creations of new profiles and updates to existing profiles.
  • User Activity: Includes data on user activity completions.
  • User Redemption: Includes data on user reward redemptions.
  • Points Expiration: Includes points expiration details of a member.

Integration Setup Process

  1. Client creates tables (1 Profile Extension table & 2 Supplemental Data Tables), following specifications outlined below. Recommendation is to create distinct tables for each CrowdTwist instance.
  2. The name of each data extension table is configurable by client. Oracle CrowdTwist recommends using the naming format above and listing the push type, for example:
    • USER_PROFILE_PROD (for production User Profile endpoint)
    • USER_PROFILE_SAND (for sandbox User Profile endpoint)
    • USER_ACTIVITY_PROD (for production User Activity endpoint)
    • USER_ACTIVITY_SAND (for sandbox User Activity endpoint)
    • USER_REDEMPTION_PROD (for production User Redemption endpoint)
    • USER_REDEMPTION_SAND (for sandbox User Redemption endpoint)
    • POINTS_EXPIRATION_PROD (for production Points Expiration endpoint)
    • POINTS_EXPIRATION_SAND (for sandbox Points Expiration endpoint)
  3. Client generates API User Credentials for CrowdTwist platform
  4. Client provides the configuration details to Oracle CrowdTwist
    • Name of User Profile table, associated Contacts List and folder
    • Name of Supplemental Data tables and folders
    • Login Username
  5. Oracle CrowdTwist configures the Live Push API integration
  6. Oracle CrowdTwist pushes sample payload to each data extension table
  7. If successful, Oracle CrowdTwist configures automated process

API Endpoint for Authorization

  • https://login{enviroment}/rest/api/v1.3/auth/token

API Endpoint for Table Population

  • PET: https://{environment }/rest/api/v1.3/lists/{LIST_NAME}/listExtensions/{TABLE_NAME}/members
  • Supp: https://{environment}/rest/api/v1.3/folders/{FOLDER_NAME}/suppData/{TABLE_NAME}/members

Note: Pushes to Responsys are throttled to 1 call/second with each call containing data for up to 200 records.

Data Formats

Note: All CrowdTwist date formats are converted to MM/DD/YYYY HH:MI:SS. For example: 10/28/2019 17:51:50

User Profile

Note: The CrowdTwist User Profile push can match to the Responsys Contacts List (MCL) on the CrowdTwist member's Email or third party id (Responsys CUSTOMER_ID_). The specified member’s Email or Customer ID must already exist in the Responsys Contacts List. This should be populated via the registration flow. If a match is not found, the data for that member will not be populated (fail).

Settings:

  • insertOnNoMatch: true
  • updateOnMatch: REPLACE_ALL
  • matchColumnName1: EMAIL_ADDRESS or matchColumnName1: CUSTOMER_ID (based on configuration)

Responsys Field Name

Responsys Data Type

Notes

CT_EMAIL_ADDRESS

Text (500 chars)

If matching on Email Address, column will be null and as this is the merge field. If merging on Customer ID, column will be populated.

CT_CROWDTWIST_ID

Integer

CrowdTwist User ID. Attribute is renamed as not conflict with Responsys system attribute settings.

CT_THIRD_PARTY_ID

Text (500 chars)

If matching on Customer ID, column will be null and as this is the merge field. If merging on Email Address, column will be populated.

CT_IS_ACTIVE

Single Character

 

CT_FIRST_NAME

Text (500 chars)

 

CT_MIDDLE_NAME

Text (500 chars)

 

CT_LAST_NAME

Text (500 chars)

 

CT_GENDER

Text (25 chars)

 

CT_COUNTRY

Text (25 chars)

 

CT_POSTAL_CODE

Text (25 chars)

 

CT_MOBILE_PHONE_NUMBER

Text (100 chars)

 

CT_DATE_CREATED

Time Stamp

 

CT_DATE_LAST_LOGIN

Time Stamp

 

CT_DATE_LAST_UPDATED

Time Stamp

 

CT_DATE_OF_BIRTH

Time Stamp

 

CT_LANG_PREF

Text (25 chars)

 

CT_TOTAL_POINTS

Integer

 

CT_REDEEMABLE_POINTS

Integer

 

CT_RECEIVE_SMS_MESSAGES

Single Character

 

CT_EMAIL_IS_VERIFIED

Single Character

 

CT_RECEIVE_EMAIL_UPDATES

Single Character

 

CT_CUSTOM_DATA

Text (4000 chars)

Array, capped at 4000 characters

CT_TIER_RESET_DATE

Time Stamp

 

CT_TIER_DATE_REACHED

Time Stamp

 

CT_TIER_EXPIRATION_DATE

Time Stamp

 

CT_TIER_ASSIGNED_BY_EVENT

Text (25 chars)

 

CT_TIER_CURRENT

Text (100 chars)

 

CT_TIER_TIMEFRAME_SCORE

Number

 

CT_TIER_SCORE_NEEDED_TO_REACH

Number

 

CT_SIGNUP_CHANNEL_ID

Integer

 

User Activity

Settings:

  • insertOnNoMatch: true
  • updateOnMatch: REPLACE_ALL
  • matchColumnName1: EMAIL_ADDRESS
  • Primary Key: USER_ACTIVITY_ID

Responsys Field Name

Responsys Data Type

Sample Data

EMAIL_ADDRESS_

Text 500 chars

"testuser@gmail.com"

USER_ID

Integer

"203"

THIRD_PARTY_ID

Text 500 chars

"ASDT345354"

USERNAME

Text 100 chars

"Pranay"

MOBILE_NUMBER

Text 100 chars

"123456789"

USER_ACTIVITY_ID

Integer *PRIMARY KEY

"453"

ACTIVITY_ID

Integer

"215"

POINTS

Integer

"80"

ACTIVITY_NAME

Text 500 chars

"Rewards Redeemed"

TITLE

Text 500 chars

"Title in English"

DESCRIPTION

Text 4000 chars

"Abc"

ACTIVITY_EXTRA_DATA

Text 4000 chars

" {\"campaign_id\":\"123\"}"

DATE_CREATED

Time stamp

"2020-06-11 10:11:12.0"

DATE_AWARDED

Time stamp

"2020-06-08 3:11:12.0"

NoteS

Text 500 chars

"Cheap Coupon"

REFERENCE_ID

Text 500 chars

"A3453"

USER_ACTIVITY_CUSTOM_DATA

Text 4000 chars

" {\"customer_id\":\"test\"}"

LANGUAGE_ID

Text 100 chars

"fr"

TRANSLATED_TITLE

Text 500 chars

"Title In French"

TRANSLATED_DESCRIPTION

Text 4000 chars

"Abc in French"

User Redemption

Settings:

  • insertOnNoMatch: true
  • updateOnMatch: REPLACE_ALL
  • matchColumnName1: EMAIL_ADDRESS
  • Primary Key: ORDER_ID

Field Name

Responsys Data Type

Sample Data

EMAIL_ADDRESS_

Text 500 chars

"testuser@gmail.com"

USER_ID

Integer

"2155"

THIRD_PARTY_ID

Text 500 chars

"A46F64646"

FIRST_NAME

Text 100 chars

"John"

LAST_NAME

Text 100 chars

"George"

USERNAME

Text 100 chars

"JG"

MOBILE_NUMBER

Text 100 chars

"544466533"

REDEEMABLE_POINTS

Integer

"64545"

ORDER_ID

Text 500 chars

"A4556"

REWARD_GROUP_ID

Integer

"45645"

REWARD_ID

Integer

"56575"

REFERENCE_ID

Text 500 chars

"56"

QUANTITY

Integer

"45553"

TOTAL_POINTS_REDEEMED

Integer

"80"

CATEGORY_NAME

Text 500 chars

"Shirts"

DATE_FULFILLED

Timestamp

"2020-07-11 10:11:12.0"

ORDER_DATE

Timestamp

"2020-07-11 10:11:12.0"

TITLE

Text 500 chars

"T-Shirts"

DESCRIPTION

Text 4000 chars

"T-shirts with Marvel characters"

COLOR_NAME

Text 500 chars

"Red"

SIZE_NAME

Text 500 chars

"Medium"

REWARD_EXTRA_DATA

Text 4000 chars

" {\"email_template\":\"esp_1\"}"

NoteS

Text 4000 chars

"Notes"

COUPON_CODE

Text 4000 chars

"DFDFG"

SHIPPING_FIRST_NAME

Text 100 chars

"John"

SHIPPING_LAST_NAME

Text 100 chars

"Smith"

SHIPPING_STREET_ADDRESS1

Text 100 chars

"110 east 23rd st"

SHIPPING_STREET_ADDRESS2

Text 100 chars

"floor 7"

SHIPPING_POSTAL_CODE

Text 100 chars

"10010"

SHIPPING_PHONE_NUMBER

Text 100 chars

"456455645"

SHIPPING_CITY

Text 100 chars

"New York"

SHIPPING_STATE

Text 100 chars

"NY"

SHIPPING_COUNTRY

Text 100 chars

"USA"

REDEMPTION_CUSTOM_DATA

Text 4000 chars

" {\"customer_id\":\"test\"}"

LANGUAGE_ID

Text 100 chars

"fr"

TRANSLATED_TITLE

Text 500 chars

"translated title"

TRANSLATED_DESCRIPTION

Text 4000 chars

"translated description"

TRANSLATED_SIZE

Text 500 chars

"translated size"

TRANSLATED_COLOR

Text 500 chars

"translated color"

Points Expiration

Settings:

  • insertOnNoMatch: true
  • updateOnMatch: REPLACE_ALL
  • matchColumnName1: EMAIL_ADDRESS or matchColumnName1: CUSTOMER_ID (based on configuration)

Field Name

Sample Value

Format

Description

User Details

     

CT_USER_ID

 

348399 Integer This is crowdTwist member id.
CT_EMAIL_ADDRESS or EMAIL_ADDRESS_ test@ct.com Text (100 chars) Email of the member. If match is on email  use Field name EMAIL_ADDRESS_. If match is on third party id use Field name  CT_EMAIL_ADDRESS.

CT_THIRD_PARTY_ID or

CUSTOMER_ID_

11323 Text (100 chars) User's third party ID. If match is on third party id use CUSTOMER_ID_.
message_date 2021-05-20T18:25:43.511-04:00 Timestamp Event capture timestamp for inactivity point expiration.

inactivity_last_qualified_date

2021-05-20T18:25:43.511-04:00

Timestamp

The UTC date & time the of the last qualifying activity performed. This date must be an ISO-8601 compliant date field with offset appended to it.

inactivity_exp_date

2021-05-20T18:25:43.511-04:00

Timestamp

The UTC date & time the of the last qualifying activity performed. This date must be an ISO-8601 compliant date field with offset appended to it.

inactivity_points_exp 200 Integer Number of points that will be expiring if qualified activity is not performed.
redperiod_expiration_date_pre1 2021-05-20T18:25:43.511-04:00

Timestamp

Point expiration date of preceding 1st month where preceding month is the month where expiration period was updated and points have data. The UTC date & time the of the last qualifying activity performed. This date must be an ISO-8601 compliant date field with offset appended to it.

redperiod_expired_pre1 120 Integer Number of points expired in the preceding 1st month.
redperiod_redeemed_pre1 120 Integer Number of points redeemed in the preceding 1st month.
redperiod_expiration_date_nxt1 2021-05-20T18:25:43.511-04:00

Timestamp

Point expiration date of current month. The UTC date & time the of the last qualifying activity performed. This date must be an ISO-8601 compliant date field with offset appended to it.

redperiod_expiring_nxt1 200 Integer Number of points expiring in the current month.
redperiod_redeemed_nxt1 120 Integer Number of points redeemed in the current month.

redperiod_expiration_date_nxt2

2021-05-20T18:25:43.511-04:00

Timestamp

Point expiration date of next 1st month where next 1st month is the month where expiration period was updated and points have data. The UTC date & time the of the last qualifying activity performed. This date must be an ISO-8601 compliant date field with offset appended to it.

redperiod_expiring_nxt2 200 Integer Number of points expiring in the next 1st month.
redperiod_redeemed_nxt2 120 Integer Number of points redeemed in next 1st month.

redperiod_expiration_date_nxt3

2021-05-20T18:25:43.511-04:00

Timestamp

Point expiration date of next 2nd month where next 2nd month is the month where expiration period was updated and points have data.. The UTC date & time the of the last qualifying activity performed. This date must be an ISO-8601 compliant date field with offset appended to it.

redperiod_expiring_nxt3 200 Integer Number of points expiring in the next 2nd month.
redperiod_redeemed_nxt3 120 Integer Number of points redeemed in next 2nd month.

redperiod_expiration_date_nxt4

2021-05-20T18:25:43.511-04:00

Timestamp

Point expiration date of next 3rd month where next 3rd month is the month where expiration period was updated and points have data. The UTC date & time the of the last qualifying activity performed. This date must be an ISO-8601 compliant date field with offset appended to it.

redperiod_expiring_nxt4 200 Integer Number of points expiring in the next 3rd month.
redperiod_redeemed_nxt4 120 Integer Number of points redeemed in next 3rd month.

redperiod_expiration_date_nxt5

2021-05-20T18:25:43.511-04:00

Timestamp

Point expiration date of next 4th month where next 4th month is the month where expiration period was updated and points have data. The UTC date & time the of the last qualifying activity performed. This date must be an ISO-8601 compliant date field with offset appended to it.

redperiod_expiring_nxt5 200 Integer Number of points expiring in the next 4th month.
redperiod_redeemed_nxt5 120 Integer Number of points redeemed in next 4th month.

redperiod_expiration_date_nxt6

2021-05-20T18:25:43.511-04:00

Timestamp

Point expiration date of next 5th month where where next 5th month is the month where expiration period was updated and points have data. The UTC date & time the of the last qualifying activity performed. This date must be an ISO-8601 compliant date field with offset appended to it.

redperiod_expiring_nxt6 200 Integer Number of points expiring in the next 5th month.
redperiod_redeemed_nxt6 120 Integer Number of points redeemed in next 5th month.