Gigya Job Openings

Salesforce Data Management Platform

Skip to end of metadata
Go to start of metadata

Introduction

The Salesforce Data Management Platform (formerly known as Krux) collects and organizes consumer web data, collected from multiple sources, in one central Big Data warehouse. Using the Salesforce DMP, organizations can consolidate and reconcile their first-party "web behavior" data with media and/or content from third-party data providers. Organizations can also integrate data from their user registration and subscription databases.

Gigya provides functionality for passing users' identity information from your website to the Salesforce DMP. This creates more detailed analytics and user insights, improving your understanding of your user base and allowing you to target ads on your site based on user data points such as age, gender, relationship status, country, likes, etc.

Below you will find a guide to integrating Gigya with Salesforce DMP.

Please create a test site in the Gigya admin console for integration testing (don't use your production site) and use a test list on the target integration platform. We are able to put integrations in "sample mode" for testing, which will restrict audiences to 10 sample accounts.

Integration Overview

Real-Time User Matching

Salesforce behavior tracking is based on third-party cookies that track the user through a specific browser. This leads to users having multiple Salesforce user IDs (KUID) based on the browser or the device they are using. User matching allows Salesforce to map users to their GUID (Gigya user ID) and consolidate all behavioral data for the user.

The user matching process handles User ID reconciliation between Salesforce and Gigya in real-time. Salesforce user matching code is to be implemented by the customer in the onLogin   event, which returns the user's ID in Gigya. The GUID is used to populate (), as seen in the code example below. 

Only accounts that have been synchronized will be transmitted to Salesforce.

After a user logs in or a new user is created, the customer must implement a call to Salesforce's endpoint alerting Salesforce of the user's GUID. This allows his current KUID to be 'matched' to the user's UID table, which holds the KUIDs associated with the user.

This done using the following URL (where Salesforce_partner_id is the id provided by Salesforce):

http://beacon.krxd.net/usermatch.gif?partner=<Salesforce_partner_id>&partner_uid=XXXX

Notes:

  • Data is passed in the next stage.

  • Users who switch browser\device\clean cookies will be re-synched.

  • Return codes: It is possible to check the response code for the Salesforce beacon endpoint call. 200 indicates - OK, Action completed successfully. Any other value indicates that an error has occurred.

Receiving Identity Data from Gigya

This is the main synchronization process between Salesforce and Gigya. Gigya's service will perform a daily transmission of identity information for users who have been added or changed since the last run. Any field can be passed on to Salesforce, including the users' likes and favorites. 

The process will: collect the delta set of users that should be reported (see query below); store them in a delimited file (see description below); compress the file in LZO format; transmit to Salesforce by FTP; get the FTP status and send a warning email if the process was not successful.

The sync will run daily, matching Salesforce digesting times. If no matching users are found, no file will be created or sent.

File Name and Format

The file name is {prefix}{timestamp}{suffix}.lzo, where:

  • {prefix} and {suffix }should be coordinated between Gigya's Customer Success Engineer and Salesforce's implementation engineer.
  • {timestamp} should be formatted as follows: yyyyMMdd_HHmm

The file format:

  • Each line in the identity info data file must contain all the data for a given user and should be delimited by the caret (^) symbol.
  • Each line in the identity info data file should contain 2 columns:
    • The first column represents the GUID and must match the GUID used in the user matching process. 
    • The second column contains all the data associated with the user and should be in the following format: "<Attribue:Value_1>;<Attribue:Value_2>" ... , where each attribute field is preceded by "g_". If a single attribute contains a list of values, these should be separated by a comma (,), as shown in the example below.
    • Each row can contain an arbitrary number of attribute-value combinations.
    • It is not mandatory for values to be specified for all attributes for a given user.

For example, if there are two columns called Age (representing age group) and Gender in the client's registration database, that need to be imported into the Salesforce platform, then the following represents a valid data file that can be ingested by Salesforce:

  • User1234^g_age:24
  • User2345^g_gender:f;g_age:24
  • User3456^g_gender:f;g_interests:biking,hiking,reading

Integration Configuration

To configure the translation of data between Salesforce and Gigya, you need to set up the configuration file in order to run data sync (see Get Identity Data from Gigya) from Gigya to Salesforce. Your Implementation Consultant will set up the file for you, however you will need to supply the following information:

  • The time of day that that synchronization will run. 
  • The prefix for the data file to be created on the Salesforce platform.
  • A filter defining the set of users that should be synchronized to Salesforce. 

Field Mapping: The integration file requires a map of how fields in Gigya are mapped to Salesforce. This will be coordinated between Gigya Customer Success Engineer and Salesforce Implementation Engineer.

Sync Variable: In order to reduce the integration run time, a Boolean field needs to be created in the customer's Profile Management - IDS , using the accounts.setSchema API method. The field should be called data.internalKruxIdSyncResponseCode and should have a write access of clientModify. The field is used by the code which performs the data sync.

Adding Gigya to a Web Page 

In this section we use an example to demonstrate user matching  when integrating Gigya with Salesforce.

The code both syncs users to Salesforce and indicates to Gigya that the user was synced, so that identity data can be transmitted.

Code Example

<script type="text/javascript">

function KruxUserMatch (res) 
{
    kruxBaseUrl = 'http://beacon.krxd.net/usermatch.gif?';
    partnerId = <Your_Krux_Partner_ID>;
    var src = kruxBaseUrl + 'partner=' + partnerId + '&partner_uid=' + res.UID;
    var img = document.createElement("img");
    img.src = src;
    document.body.appendChild(img);
    var data = {};
    var parms = {"data":{internalKruxIdSyncResponseCode: 'true'}};
    gigya.accounts.setAccountInfo(parms);
};
window.onload = function () {gigya.accounts.addEventHandlers( {onLogin:KruxUserMatch} ); }; 
</script>