From 0d786f5e29e1d3808edebeac78873d679b567ccd Mon Sep 17 00:00:00 2001 From: Thomas Gilbert Date: Tue, 9 Jul 2024 16:03:08 -0400 Subject: [PATCH 1/2] clarify setup instructions and add json file --- ...neTrust-Segment-Track-API-Integration.json | 168 ++++++++++++++++++ .../catalog/cloud-apps/onetrust/index.md | 7 +- 2 files changed, 174 insertions(+), 1 deletion(-) create mode 100644 src/connections/sources/catalog/cloud-apps/onetrust/OneTrust-Segment-Track-API-Integration.json diff --git a/src/connections/sources/catalog/cloud-apps/onetrust/OneTrust-Segment-Track-API-Integration.json b/src/connections/sources/catalog/cloud-apps/onetrust/OneTrust-Segment-Track-API-Integration.json new file mode 100644 index 0000000000..71d2bcdc45 --- /dev/null +++ b/src/connections/sources/catalog/cloud-apps/onetrust/OneTrust-Segment-Track-API-Integration.json @@ -0,0 +1,168 @@ +{ + "name": "[Consent - Segment] Consent Updates Post to Tracking API", + "enabled": false, + "workflowType": "COMPOSITE", + "integrationName": "[Consent - Segment] Consent Updates Post to Tracking API", + "referenceIntegrationName": "Generic", + "dlqMessageCount": 0, + "throttlingLimit": 0, + "defaultDlqAction": "NONE", + "failedAlertFrequencyHrs": 0, + "redactLoggingEnabled": false, + "sensitivity": "DEFAULT", + "formatVersion": "1.0", + "trigger": { + "name": "[Consent - Segment] Consent Updates Post to Tracking API", + "workflowName": "[Consent - Segment] Consent Updates Post to Tracking API", + "triggerType": "EVENT", + "triggerContext": { + "EventTrigger": { + "type": "EVENT", + "eventCode": "3010", + "condition": null, + "baseCondition": null, + "preCondition": null, + "webhook": false, + "subFlow": false, + "config": false + } + }, + "description": null, + "eventCode": "3010", + "schema": null + }, + "actions": [ + { + "processType": "APPLYEACH", + "processContext": { + "ApplyEach": { + "type": "APPLYEACH", + "jsonPath": "event:$..profiles.*", + "listKey": "event.payload.profiles", + "commonNodeLabel": "messagelog", + "continueOnError": null + } + }, + "nodeLabel": "applyEach_0", + "nodeDescription": null, + "requestSchema": null, + "responseSchema": { + "name": "Data Subject Profile Updated", + "description": null, + "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\": \"intgDsTestWithoutBatch@otprivacy.com\"},{\"type\": \"boolean\",\"name\": \"consentOnBehalfOf\",\"default\": true},{\"type\": \"array\",\"name\": \"parentPrimaryIdentifiers\",\"items\": {\"format\": \"JSON\",\"type\": \"record\",\"fields\": [{\"type\": \"string\",\"name\": \"ParentIdentifier\",\"default\": \"parentEmail@ot.privacy.com\"},{\"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\": \"bob@builder.com\"},{\"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\": \"intgDsTestWithoutBatch@otprivacy.com:21f16e84-8b2a-4217-8f52-b7bf6880df52\"},{\"type\": \"double\",\"name\": \"messageSequenceNumber\",\"default\": 1580445036773},{\"type\": \"string\",\"name\": \"deDuplicationStrategy\",\"default\": \"DISCARD_OLDER\"}]}" + } + }, + { + "processType": "MESSAGELOG", + "processContext": { + "MessageLog": { + "type": "MESSAGELOG", + "continueOnError": null + } + }, + "nodeLabel": "messagelog", + "nodeDescription": "Terminating Node : messagelog", + "requestSchema": null, + "responseSchema": { + "name": null, + "description": null, + "schema": null + } + }, + { + "processType": "TRANSFORM", + "processContext": { + "DataTransformer": { + "type": "TRANSFORM", + "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\n\n", + "independentNode": true, + "continueOnError": null, + "isIndependentNode": true + } + }, + "nodeLabel": "dataTransformator_0", + "nodeDescription": null, + "requestSchema": null, + "responseSchema": { + "name": "Data Transformer", + "description": null, + "schema": "{\"format\":\"JSON\",\"type\":\"record\",\"fields\":[]}" + } + }, + { + "processType": "TRANSFORM", + "processContext": { + "DataTransformer": { + "type": "TRANSFORM", + "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>, \"\n<#sep>, \n }\n}", + "independentNode": false, + "continueOnError": null, + "isIndependentNode": false + } + }, + "nodeLabel": "transform_0", + "nodeDescription": "Https POST Consent Updates to Track API", + "requestSchema": null, + "responseSchema": { + "name": null, + "description": null, + "schema": null + } + }, + { + "processType": "HTTP", + "processContext": { + "HttpConnector": { + "type": "HTTP", + "headers": { + "Content-Type": "application/json", + "Authorization": "Basic {encoded write key here}" + }, + "requestURI": "https://api.segment.io/v1/track", + "httpMethod": "POST", + "jweEncryptionRequired": false, + "jweDecryptionRequired": false, + "encryptionCredentialId": null, + "decryptionCredentialId": null, + "internal": false, + "continueOnError": "NONE", + "pathParams": {}, + "queryParams": {}, + "isInternal": false, + "isDSPortal": false, + "viewType": null + } + }, + "nodeLabel": "http_0", + "nodeDescription": "Https POST Consent Updates to Track API", + "requestSchema": null, + "responseSchema": { + "name": null, + "description": null, + "schema": null + } + } + ], + "directions": [ + { + "startNode": "applyEach_0", + "endNode": "messagelog" + }, + { + "startNode": "applyEach_0", + "endNode": "dataTransformator_0" + }, + { + "startNode": "dataTransformator_0", + "endNode": "transform_0" + }, + { + "startNode": "transform_0", + "endNode": "http_0" + } + ], + "categoryBitValue": 258, + "seedSystem": false, + "halted": false, + "dlqEnabled": true +} \ No newline at end of file diff --git a/src/connections/sources/catalog/cloud-apps/onetrust/index.md b/src/connections/sources/catalog/cloud-apps/onetrust/index.md index 19bd4f2cd7..757e94517a 100644 --- a/src/connections/sources/catalog/cloud-apps/onetrust/index.md +++ b/src/connections/sources/catalog/cloud-apps/onetrust/index.md @@ -22,7 +22,12 @@ This source is maintained by OneTrust. For any issues with the source, [contact 3. On the next screen, give the Source **a nickname** configure any other settings. - 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`). -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. +4. In OneTrust, navigate to **Integrations > Connections > Import**, and upload this JSON file. + +5. Copy the **Write key** from the Segment UI, and paste it in as the Auth header for the OneTrust integration. + +6. Click **Save and Activate**. + ## Stream From 6bc8657af7364afb5ec7e881f804c4ef12d89127 Mon Sep 17 00:00:00 2001 From: Casie Oxford Date: Wed, 10 Jul 2024 12:59:21 -0500 Subject: [PATCH 2/2] running a preview [netlify-build] --- src/connections/sources/catalog/cloud-apps/onetrust/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/sources/catalog/cloud-apps/onetrust/index.md b/src/connections/sources/catalog/cloud-apps/onetrust/index.md index 757e94517a..14c533f4c1 100644 --- a/src/connections/sources/catalog/cloud-apps/onetrust/index.md +++ b/src/connections/sources/catalog/cloud-apps/onetrust/index.md @@ -15,7 +15,7 @@ This source is maintained by OneTrust. For any issues with the source, [contact ## Getting Started -1. From your workspace's [Sources catalog page](https://app.segment.com/goto-my-workspace/sources/catalog){:target="_blank"} click **Add Source**. +1. From your workspace's [Sources catalog page](https://app.segment.com/goto-my-workspace/sources/catalog){:target="_blank"} click **Add Source**. 2. Search for “OneTrust” in the Sources Catalog, select OneTrust, and click **Add Source**. @@ -61,4 +61,4 @@ Now that your Source is set up, you can connect it with Destinations. 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. -If there are any issues with how the events are arriving to Segment, [contact the OneTrust support team](support@onetrust.com). \ No newline at end of file +If there are any issues with how the events are arriving to Segment, [contact the OneTrust support team](support@onetrust.com).