Skip to content

Commit f867dff

Browse files
authored
Merge pull request #6799 from segmentio/thomas/onetrust-source
Clarify setup instructions and add downloadable json file
2 parents 82894e4 + 6bc8657 commit f867dff

File tree

2 files changed

+176
-3
lines changed

2 files changed

+176
-3
lines changed
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
{
2+
"name": "[Consent - Segment] Consent Updates Post to Tracking API",
3+
"enabled": false,
4+
"workflowType": "COMPOSITE",
5+
"integrationName": "[Consent - Segment] Consent Updates Post to Tracking API",
6+
"referenceIntegrationName": "Generic",
7+
"dlqMessageCount": 0,
8+
"throttlingLimit": 0,
9+
"defaultDlqAction": "NONE",
10+
"failedAlertFrequencyHrs": 0,
11+
"redactLoggingEnabled": false,
12+
"sensitivity": "DEFAULT",
13+
"formatVersion": "1.0",
14+
"trigger": {
15+
"name": "[Consent - Segment] Consent Updates Post to Tracking API",
16+
"workflowName": "[Consent - Segment] Consent Updates Post to Tracking API",
17+
"triggerType": "EVENT",
18+
"triggerContext": {
19+
"EventTrigger": {
20+
"type": "EVENT",
21+
"eventCode": "3010",
22+
"condition": null,
23+
"baseCondition": null,
24+
"preCondition": null,
25+
"webhook": false,
26+
"subFlow": false,
27+
"config": false
28+
}
29+
},
30+
"description": null,
31+
"eventCode": "3010",
32+
"schema": null
33+
},
34+
"actions": [
35+
{
36+
"processType": "APPLYEACH",
37+
"processContext": {
38+
"ApplyEach": {
39+
"type": "APPLYEACH",
40+
"jsonPath": "event:$..profiles.*",
41+
"listKey": "event.payload.profiles",
42+
"commonNodeLabel": "messagelog",
43+
"continueOnError": null
44+
}
45+
},
46+
"nodeLabel": "applyEach_0",
47+
"nodeDescription": null,
48+
"requestSchema": null,
49+
"responseSchema": {
50+
"name": "Data Subject Profile Updated",
51+
"description": null,
52+
"schema": "{\"format\": \"JSON\",\"type\": \"record\",\"fields\": [{\"type\": \"string\",\"name\": \"eventId\",\"default\": \"1afcc0cb-48ee-4a3a-a409-1b20a5399d9e\"},{\"type\": \"string\",\"name\": \"eventTime\",\"default\": \"2020-01-09T16:35:26.277+0000\"},{\"type\": \"string\",\"name\": \"eventType\",\"default\": \"3010\"},{\"format\": \"JSON\",\"type\": \"record\",\"name\": \"payload\",\"fields\": [{\"type\": \"string\",\"name\": \"dataSubjectGuid\",\"default\": \"aa85841a-0141-4441-86af-c320ed6f0d7e\"},{\"type\": \"string\",\"name\": \"dataSubjectEmail\",\"default\": \"[email protected]\"},{\"type\": \"boolean\",\"name\": \"consentOnBehalfOf\",\"default\": true},{\"type\": \"array\",\"name\": \"parentPrimaryIdentifiers\",\"items\": {\"format\": \"JSON\",\"type\": \"record\",\"fields\": [{\"type\": \"string\",\"name\": \"ParentIdentifier\",\"default\": \"[email protected]\"},{\"format\": \"JSON\",\"type\": \"record\",\"name\": \"AdditionalParentIdentifierTypes\",\"fields\": []}]}},{\"type\": \"boolean\",\"name\": \"newDataSubject\",\"default\": true},{\"format\" : \"JSON\",\"type\" : \"record\",\"name\" : \"agentOnBehalf\",\"fields\": [{\"type\": \"string\",\"name\": \"agent\",\"default\": \"\"},{\"type\": \"boolean\",\"name\": \"onBehalf\",\"default\": false}]},{\"format\": \"JSON\",\"type\": \"record\",\"name\": \"contactFields\",\"fields\": [{\"type\": \"string\",\"name\": \"FirstName\",\"default\": \"John\"},{\"type\": \"string\",\"name\": \"LastName\",\"default\": \"Smith\"},{\"type\": \"string\",\"name\": \"Title\",\"default\": \"Mr.\"},{\"type\": \"string\",\"name\": \"Name\",\"default\": \"John Smith\"},{\"type\": \"string\",\"name\": \"Email\",\"default\": \"[email protected]\"},{\"type\": \"string\",\"name\": \"Address\",\"default\": \"Bangalore\"},{\"type\": \"string\",\"name\": \"Mobile\",\"default\": \"1234567890\"},{\"type\": \"string\",\"name\": \"CompanyName\",\"default\": \"companyname\"},{\"type\": \"string\",\"name\": \"Country\",\"default\": \"India\"},{\"type\": \"string\",\"name\": \"City\",\"default\": \"baganlore\"},{\"type\": \"string\",\"name\": \"Zip\",\"default\": \"560001\"},{\"type\": \"string\",\"name\": \"Password\",\"default\": \"password\"},{\"type\": \"string\",\"name\": \"Language\",\"default\": \"en-GB\"},{\"type\": \"string\",\"name\": \"MagicLink\",\"default\": \"ceb2uY3uH0phDvtCIYCn+8hjKjYgS6oQfMorWmmauCQ=\"}]},{\"type\": \"array\",\"name\": \"profiles\",\"items\": {\"format\": \"JSON\",\"type\": \"record\",\"fields\": [{\"type\": \"string\",\"name\": \"purposeId\",\"default\": \"3e900659-de89-4184-bb1a-0bca2e822b39\"},{\"type\": \"string\",\"name\": \"collectionPointGuid\",\"default\": \"21f16e84-8b2a-4217-8f52-b7bf6880df52\"},{\"type\": \"double\",\"name\": \"collectionPointVersion\",\"default\": 1},{\"type\": \"array\",\"name\": \"topics\",\"items\": {\"format\": \"JSON\",\"type\": \"record\",\"fields\": [{\"type\": \"string\",\"name\": \"topicGuid\",\"default\": \"6ed69adf-51a3-4452-ab8b-6280d58dafe8\"},{\"type\": \"string\",\"name\": \"integrationKey\",\"default\": \"fishing-int-key\"},{\"type\": \"boolean\",\"name\": \"value\",\"default\": true}]}},{\"type\": \"array\",\"name\": \"customPreferences\",\"items\": {\"format\": \"JSON\",\"type\": \"record\",\"fields\": [{\"type\": \"string\",\"name\": \"guid\",\"default\": \"5d134aee-0356-4a45-94a6-9f00769531d4\"},{\"type\": \"string\",\"name\": \"name\",\"default\": \"Test Custom Preference\"},{\"type\": \"array\",\"name\": \"options\",\"items\": {\"format\": \"JSON\",\"type\": \"record\",\"fields\": [{\"type\": \"string\",\"name\": \"guid\",\"default\": \"5d134aee-0356-4a45-94a6-9f00769531d5\"},{\"type\": \"string\",\"name\": \"name\",\"default\": \"Test Option1\"}]}}]}},{\"format\": \"JSON\",\"type\": \"record\",\"name\": \"profileFields\",\"fields\": [{\"type\": \"string\",\"name\": \"TotalTransactions\",\"default\": \"0\"},{\"type\": \"string\",\"name\": \"FirstTransaction\",\"default\": \"1543832130\"},{\"type\": \"string\",\"name\": \"ConsentDate\",\"default\": \"1543832130\"},{\"type\": \"string\",\"name\": \"TransactionStatus\",\"default\": \"ACTIVE\"},{\"type\": \"string\",\"name\": \"LastTransaction\",\"default\": \"1543832130\"},{\"type\": \"string\",\"name\": \"ActivationDate\",\"default\": \"1543832130\"},{\"type\": \"string\",\"name\": \"WithdrawalDate\",\"default\": \"1543832130\"},{\"type\": \"string\",\"name\": \"DoubleOptInConsent\",\"default\": \"N\"}]}]}}]},{\"format\": \"JSON\",\"type\": \"record\",\"name\": \"userDetails\",\"fields\": [{\"type\": \"string\",\"name\": \"roleId\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"tenantId\",\"default\": \"4\"},{\"type\": \"string\",\"name\": \"languageId\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"timeZoneOffsetInMinutes\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"tenantGuid\",\"default\": \"00000000-0000-0000-0000-000000000000\"},{\"type\": \"string\",\"name\": \"orgGroupId\",\"default\": \"00000000-0000-0000-0000-000000000000\"},{\"type\": \"string\",\"name\": \"userId\",\"default\": \"00000000-0000-0000-0000-000000000000\"},{\"type\": \"string\",\"name\": \"sessionId\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"role\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"email\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"permissions\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"scopes\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"permissionsCheckSum\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"defaultDomain\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"dsPortalDomain\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"originalHost\",\"default\": \"\"},{\"type\": \"string\",\"name\": \"locale\",\"default\": \"en_US\"}]},{\"type\": \"string\",\"name\": \"integrationId\",\"default\": \"00000000-0000-0000-0000-000000000000\"},{\"type\": \"string\",\"name\": \"workflowId\",\"default\": \"00000000-0000-0000-0000-000000000000\"},{\"type\": \"string\",\"name\": \"messageKey\",\"default\": \"[email protected]:21f16e84-8b2a-4217-8f52-b7bf6880df52\"},{\"type\": \"double\",\"name\": \"messageSequenceNumber\",\"default\": 1580445036773},{\"type\": \"string\",\"name\": \"deDuplicationStrategy\",\"default\": \"DISCARD_OLDER\"}]}"
53+
}
54+
},
55+
{
56+
"processType": "MESSAGELOG",
57+
"processContext": {
58+
"MessageLog": {
59+
"type": "MESSAGELOG",
60+
"continueOnError": null
61+
}
62+
},
63+
"nodeLabel": "messagelog",
64+
"nodeDescription": "Terminating Node : messagelog",
65+
"requestSchema": null,
66+
"responseSchema": {
67+
"name": null,
68+
"description": null,
69+
"schema": null
70+
}
71+
},
72+
{
73+
"processType": "TRANSFORM",
74+
"processContext": {
75+
"DataTransformer": {
76+
"type": "TRANSFORM",
77+
"template": "<#list 0..step.applyEach_0.customPreferences?size-1 as n>\n${set('truePrefs${n}', [])}\n<#list 0..step.applyEach_0.customPreferences[n].options?size-1 as m>\n<#if ((step.applyEach_0.customPreferences[n].options[m].value?c)!\"\") == \"true\">\n${push('truePrefs${n}', '${(step.applyEach_0.customPreferences[n].options[m].name)}')}\n</#if>\n</#list>\n</#list>",
78+
"independentNode": true,
79+
"continueOnError": null,
80+
"isIndependentNode": true
81+
}
82+
},
83+
"nodeLabel": "dataTransformator_0",
84+
"nodeDescription": null,
85+
"requestSchema": null,
86+
"responseSchema": {
87+
"name": "Data Transformer",
88+
"description": null,
89+
"schema": "{\"format\":\"JSON\",\"type\":\"record\",\"fields\":[]}"
90+
}
91+
},
92+
{
93+
"processType": "TRANSFORM",
94+
"processContext": {
95+
"DataTransformer": {
96+
"type": "TRANSFORM",
97+
"template": "{\n \"userId\": \"${(event.payload.dataSubjectEmail)!}\",\n \"event\": \"Consent Updated\",\n \"properties\": {\n \"purposeID\": \"${(step.applyEach_0.purposeId)!}\",\n \"purposeName\": \"${(step.applyEach_0.purposeName)!}\",\n \"status\": \"${(step.applyEach_0.profileFields.TransactionStatus)!}\",\n<#list 0..step.applyEach_0.customPreferences?size-1 as n>\n \"${(step.applyEach_0.customPreferences[n].name)}\" : \"<#list get('truePrefs${n}') as item>${item}<#sep>, </#list>\"\n<#sep>, </#list>\n }\n}",
98+
"independentNode": false,
99+
"continueOnError": null,
100+
"isIndependentNode": false
101+
}
102+
},
103+
"nodeLabel": "transform_0",
104+
"nodeDescription": "Https POST Consent Updates to Track API",
105+
"requestSchema": null,
106+
"responseSchema": {
107+
"name": null,
108+
"description": null,
109+
"schema": null
110+
}
111+
},
112+
{
113+
"processType": "HTTP",
114+
"processContext": {
115+
"HttpConnector": {
116+
"type": "HTTP",
117+
"headers": {
118+
"Content-Type": "application/json",
119+
"Authorization": "Basic {encoded write key here}"
120+
},
121+
"requestURI": "https://api.segment.io/v1/track",
122+
"httpMethod": "POST",
123+
"jweEncryptionRequired": false,
124+
"jweDecryptionRequired": false,
125+
"encryptionCredentialId": null,
126+
"decryptionCredentialId": null,
127+
"internal": false,
128+
"continueOnError": "NONE",
129+
"pathParams": {},
130+
"queryParams": {},
131+
"isInternal": false,
132+
"isDSPortal": false,
133+
"viewType": null
134+
}
135+
},
136+
"nodeLabel": "http_0",
137+
"nodeDescription": "Https POST Consent Updates to Track API",
138+
"requestSchema": null,
139+
"responseSchema": {
140+
"name": null,
141+
"description": null,
142+
"schema": null
143+
}
144+
}
145+
],
146+
"directions": [
147+
{
148+
"startNode": "applyEach_0",
149+
"endNode": "messagelog"
150+
},
151+
{
152+
"startNode": "applyEach_0",
153+
"endNode": "dataTransformator_0"
154+
},
155+
{
156+
"startNode": "dataTransformator_0",
157+
"endNode": "transform_0"
158+
},
159+
{
160+
"startNode": "transform_0",
161+
"endNode": "http_0"
162+
}
163+
],
164+
"categoryBitValue": 258,
165+
"seedSystem": false,
166+
"halted": false,
167+
"dlqEnabled": true
168+
}

src/connections/sources/catalog/cloud-apps/onetrust/index.md

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,19 @@ This source is maintained by OneTrust. For any issues with the source, [contact
1515
1616
## Getting Started
1717

18-
1. From your workspace's [Sources catalog page](https://app.segment.com/goto-my-workspace/sources/catalog){:target="_blank"} click **Add Source**.
18+
1. From your workspace's [Sources catalog page](https://app.segment.com/goto-my-workspace/sources/catalog){:target="_blank"} click **Add Source**.
1919

2020
2. Search for “OneTrust” in the Sources Catalog, select OneTrust, and click **Add Source**.
2121

2222
3. On the next screen, give the Source **a nickname** configure any other settings.
2323
- The nickname is used as a label in the Segment app, and Segment creates a related schema name in your warehouse. The nickname can be anything, but Segment recommends using something that reflects the source itself and distinguishes amongst your environments (like `OneTrust_Prod`, `OneTrust_Staging`, or `OneTrust_Dev`).
2424

25-
4. Copy the **Write key** from the Segment UI and log in to your OneTrust account - navigate to Settings > Integrations > Segment Integration and paste the key after encoding it.
25+
4. In OneTrust, navigate to **Integrations > Connections > Import**, and upload <a href="./OneTrust-Segment-Track-API-Integration.json" download>this JSON file</a>.
26+
27+
5. Copy the **Write key** from the Segment UI, and paste it in as the Auth header for the OneTrust integration.
28+
29+
6. Click **Save and Activate**.
30+
2631

2732
## Stream
2833

@@ -56,4 +61,4 @@ Now that your Source is set up, you can connect it with Destinations.
5661

5762
Log into your downstream tools and verify that events and properties appear the way you expect. If events and properties don’t appear as you expect them to, check the [Event Delivery](/docs/connections/event-delivery/) tool, and refer to the Destination docs for each tool for troubleshooting.
5863

59-
If there are any issues with how the events are arriving to Segment, [contact the OneTrust support team]([email protected]).
64+
If there are any issues with how the events are arriving to Segment, [contact the OneTrust support team]([email protected]).

0 commit comments

Comments
 (0)