Feature Availability: This feature is available with Wingify Experimentation, Personalize, and Insights exclusively on the Enterprise plan.
This article covers the following:
Overview
Salesforce, as a company that caters to the CRM industry, provides a platform for its clients to facilitate seamless customer experiences. This includes recording and processing lead information as captured in several forms on the client’s website, in Salesforce.
Integrating Wingify with your Salesforce account can be leveraged in myriad ways. This article focuses on one of them - how to use this integration to draw the campaign information from Wingify to create reporting in Salesforce and thereby gauge the impact of experimentation on the quality of the leads.
With Wingify, you can easily experiment a change in your website and effectively identify the winning variation that can potentially draw more leads. Integrating Wingify with Salesforce further extends this ability, wherein as you run your Wingify test campaign, the campaign and the variation information for the leads on your website can be tagged to Salesforce. This enables you to further analyze this information within your Salesforce account.
Steps to Facilitate Wingify - Salesforce Integration
The process of integrating Wingify with Salesforce involves the following fundamental steps:
Note: Wingify does not capture or process the lead details in any form. It only tags the campaign information of individual leads to Salesforce.
Create a Hidden Input Field in Forms
In order to avail the tagged campaign information of individual leads from Wingify, you need to create a hidden input field in the sign-up forms on your website, with a default null value.
In general, if the Wingify SmartCode is available on your website, Wingify automatically generates a unique 32-digit hexadecimal code (called the UUID) to uniquely identify every visitor that arrives on the website.
Using the Wingify UUID, you can view the campaign and variation information of individual leads. To do so, you need to perform the necessary configuration steps from your end to capture the leads’ Wingify UUID in the hidden field, during form submission.
Fetch Tagged Experiment Data Using the Wingify REST API
Once the form is submitted by the visitor, along with the form details, the UUID is also sent to Salesforce. Upon receiving the UUID, all you need to do is to trigger Wingify’s REST API, which then consumes the UUID as the input and delivers the campaign data as response.
If the visitor is exposed to more than one test campaign, the response in this case will contain the following information for each of the campaigns - Campaign ID, Campaign Name, Variation ID, and Variation Name.
NOTE: The term ‘Variation’ is replaced by its equivalent respectively for different tests. It appears as ‘Combination’ for a Multivariate test, and ‘Experience’ for a Personalize test.
The following REST API URL formats help fetch the campaign information corresponding to the UUID:
For an individual request,
curl --location --request GET 'https://app.vwo.com/api/v2/accounts/{{accountId}}/uuid/{{uuid}}' \
--header 'token: {{apiToken}}'Here, the {{accountId}} is the Wingify account ID, while {{uuid}} is the unique user ID that is sent through the hidden fields in your signup forms to your Salesforce account. You need to replace {{apiToken}} with your API token. For a bulk request,
curl --location --request POST 'https://app.vwo.com/api/v2/accounts/{{accountId}}/uuids/tracked-campaigns-data' --header 'token: {{apiToken}}' --header 'Content-Type: application/json' --data-raw '{
"uuids": [
"{{uuid1}}",
"{{uuid2}}",
"{{uuid3}}"
]
}'This REST API can be triggered at a set interval (let’s say after every 2 hours or once a day) as per the requirement.
The following examples help you understand how the data appears in real-time:
Individual Request
Let’s consider a sample account, whose Account ID is 111111. To obtain the data from that account for an individual visitor, whose UUID is D1DD64154AFA4392887A3507585F83127, the corresponding sample REST API URL may appear as follows:
curl --location --request GET 'https://app.vwo.com/api/v2/accounts/111111/uuid/D1DD64154AFA4392887A3507585F83127' \ --header 'token: 52f67bc9a8f370c3019cae954f1e95f9edae9f9aeaf4400fdbc40d60f35831e4'
Say the visitor is exposed to multiple test campaigns, then you get a response featuring all of them, as follows:
{
"_data": {
"tests": [
{
"id": 1,
"name": "Campaign 1",
"type": "multivariate",
"hitTime": "2022-04-18 08:46:56",
"combination": "1",
"combinationName": "Control"
},
{
"id": 2,
"name": "Campaign 2",
"type": "ab",
"hitTime": "2022-04-18 08:45:52",
"variationId": 1,
"variationName": "Control"
}
],
"personalize": [
{
"id": 3,
"name": "Campaign 3",
"type": "targeting",
"hitTime": "2022-04-18 08:45:52",
"experienceId": 2,
"experienceName": "Variation 1"
}
],
"recordings": [
{
"shareUrl": "https:\/\/player.vwo.me\/visitor-behavior-analysis\/dist\/recordings?campaignId=4&sessionId=1650532364&uuid=652951979E51A24905742E15054F0306&fetch_url=r3.visualwebsiteoptimizer.com&sig=MzEwOTQxOjY1Mjk1MTk3OUU1MUEyNDkwNTc0MkUxNTA1NEYwMzA2OjE1NzYxZjcwNTlkZjZhNjk3MmIwZWZmMjJlMjg1M2E4OWI1YWRjNGMwODE4ZDgwYzRkOWI2MmEyYTc5NGYwZTE%3D&numOfPages=1&account_id=111111&analyze=1&countryCode=IN&saved=0&nD=1&token=eyJhY2NvdW50ZjMxOwYjIiLCJzY29wZX2lkIJoYXNoIjoiOWZiZTYxOGRiZDZijozMTA5NDEsImV4cGVyaW1lbnRfaWQiOjMzLCJ2aXNpdG9yUmVjb3JkaW5nU2GIyZDkwYzI4ZDI2NjUVzc2lvbklkIjoxNjUwNTMyMzY0LCJjcmVhdGVkX29uIjoxNTczMTQxODMzLCJ0eXBlIjoidmlzaXRvclJlY29yZGluZ3MiLCJ2ZXJzaW9uIjoxLCSI6dHJ1ZSwiZnJuIjpmYWxzZX0=",
"sessionId": 1650271551
}
]
}
}Here, the visitor is bucketed into the following test campaigns:
Test 1: Multivariate
| Campaign ID | 1 |
|---|---|
| Campaign Name | Campaign 1 |
| Combination ID | 1 |
| Combination Name | Control |
Test 2: A/B
| Campaign ID | 2 |
|---|---|
| Campaign Name | Campaign 2 |
| Variation ID | 1 |
| Variation Name | Control |
Test 3: Personalize
| Campaign ID | 3 |
|---|---|
| Campaign Name | Campaign 3 |
| Experience ID | 2 |
| Experience Name | Variation-1 |
Session Recordings
| Session ID | 1650271551 |
|---|---|
| Shared URL | https://player.vwo.me/visitor-behavior-analysis/dist/recordings?campaignId=4&sessionId=1650532364&uuid=652951979E51A24905742E15054F0306&fetch_url=r3.visualwebsiteoptimizer.com&sig=MzEwOTQxOjY1Mjk1MTk3OUU1MUEyNDkwNTc0MkUxNTA1NEYwMzA2OjE1NzYxZjcwNTlkZjZhNjk3MmIwZWZmMjJlMjg1M2E4OWI1YWRjNGMwODE4ZDgwYzRkOWI2MmEyYTc5NGYwZTE%3D&numOfPages=1&account_id=111111&analyze=1&countryCode=IN&saved=0&nD=1&token=eyJhY2NvdW50ZjMxOwYjIiLCJzY29wZX2lkIJoYXNoIjoiOWZiZTYxOGRiZDZijozMTA5NDEsImV4cGVyaW1lbnRfaWQiOjMzLCJ2aXNpdG9yUmVjb3JkaW5nU2GIyZDkwYzI4ZDI2NjUVzc2lvbklkIjoxNjUwNTMyMzY0LCJjcmVhdGVkX29uIjoxNTczMTQxODMzLCJ0eXBlIjoidmlzaXRvclJlY29yZGluZ3MiLCJ2ZXJzaW9uIjoxLCSI6dHJ1ZSwiZnJuIjpmYWxzZX0= |
Bulk Request
To obtain the data from that account for visitors with UUIDs - D1DD64154AFA4392887A3507585F83127 and FA16F2F293FF4BA7EA434269458EE545, the corresponding sample REST API URL may appear as follows:
curl --location --request POST 'https://app.vwo.com/api/v2/accounts/{{accountId}}/uuids/tracked-campaigns-data' \
--header 'token: {{apiToken}}' \
--header 'Content-Type: application/json' \
--data-raw '{
"uuids": [
"{{uuid1}}",
"{{uuid2}}"
]
}'The response for the corresponding request will feature the data like this:
{
"_data": {
"D1DD64154AFA4392887A3507585F83127": {
"tests": [
{
"id": 1,
"name": "Campaign 1",
"type": "multivariate",
"hitTime": "2022-04-18 08:46:56",
"combination": "1",
"combinationName": "Control"
},
{
"id": 2,
"name": "Campaign 2",
"type": "ab",
"hitTime": "2022-04-18 08:45:52",
"variationId": 1,
"variationName": "Control"
}
],
"personalize": [
{
"id": 3,
"name": "Campaign 3",
"type": "targeting",
"hitTime": "2022-04-18 08:45:52",
"experienceId": 2,
"experienceName": "Variation 1"
}
],
"recordings": [
{
"shareUrl": "https:\/\/player.vwo.me\/visitor-behavior-analysis\/dist\/recordings?campaignId=4&sessionId=1650532364&uuid=652951979E51A24905742E15054F0306&fetch_url=r3.visualwebsiteoptimizer.com&sig=MzEwOTQxOjY1Mjk1MTk3OUU1MUEyNDkwNTc0MkUxNTA1NEYwMzA2OjE1NzYxZjcwNTlkZjZhNjk3MmIwZWZmMjJlMjg1M2E4OWI1YWRjNGMwODE4ZDgwYzRkOWI2MmEyYTc5NGYwZTE%3D&numOfPages=1&account_id=111111&analyze=1&countryCode=IN&saved=0&nD=1&token=eyJhY2NvdW50ZjMxOwYjIiLCJzY29wZX2lkIJoYXNoIjoiOWZiZTYxOGRiZDZijozMTA5NDEsImV4cGVyaW1lbnRfaWQiOjMzLCJ2aXNpdG9yUmVjb3JkaW5nU2GIyZDkwYzI4ZDI2NjUVzc2lvbklkIjoxNjUwNTMyMzY0LCJjcmVhdGVkX29uIjoxNTczMTQxODMzLCJ0eXBlIjoidmlzaXRvclJlY29yZGluZ3MiLCJ2ZXJzaW9uIjoxLCSI6dHJ1ZSwiZnJuIjpmYWxzZX0=",
"sessionId": 1650271551
}
]
},
"FA16F2F293FF4BA7EA434269458EE545": { "recordings": [] }
}
}Here, the data is presented for the visitors under their respective UUIDs.
After receiving the campaign information, involve your development team to parse through the response to assign the campaign and variation information for the lead to the campaign/experiment level record in your Salesforce account, experiment-wise.
The following is how an experiment-level record will be displayed in Salesforce:
The Wingify UUID of the respective lead will be stored in the lead-level record in Salesforce:
This is just one way to configure the integration. You can customize it in various ways to suit your specific use case and requirements.
Need more help?
For more information or further assistance, contact Wingify Support.