diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index f0240ef22e..3582847744 100644 --- a/src/_data/catalog/destination_categories.yml +++ b/src/_data/catalog/destination_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination categories last updated 2024-04-04 +# destination categories last updated 2024-04-05 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml index 2f05eb3a69..9dda3189b4 100644 --- a/src/_data/catalog/destinations.yml +++ b/src/_data/catalog/destinations.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-04-04 +# destination data last updated 2024-04-05 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -66016,6 +66016,951 @@ items: dynamic: false allowNull: false presets: [] +- id: 6512d7f86bdccc3829fc4ac3 + display_name: Optimizely Data Platform + name: Optimizely Data Platform + slug: optimizely-data-platform + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/optimizely-data-platform + previous_names: + - Optimizely Data Platform + website: http://www.segment.com + status: PUBLIC_BETA + categories: + - Personalization + - A/B Testing + logo: + url: https://cdn-devcenter.segment.com/4382f18e-f9b6-4aaa-876e-52ebab6eb643.svg + mark: + url: https://cdn-devcenter.segment.com/8a97d9c2-c9ad-4e09-a033-8605443ab7ab.svg + methods: + track: true + identify: true + group: true + alias: true + screen: false + page: true + platforms: + browser: true + mobile: false + server: true + warehouse: false + cloudAppObject: false + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + connection_modes: + device: + web: false + mobile: false + server: false + cloud: + web: true + mobile: false + server: true + settings: + - name: apiKey + type: password + defaultValue: '' + description: Api Key used for Optimizely API authorization when sending events + required: true + label: Api Key + - name: region + type: select + defaultValue: US + description: Optimizely Region to sync data to. Default is US + required: true + label: Region + actions: + - id: fXGcooSt5ZV7XjR1gTBj1s + name: Upsert Contact + slug: upsertContact + description: >- + Send user profile data from Segment to Optimizely Data Platform. Creates + or updates a user profile in Optimzely Data Platform + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" + fields: + - id: gxC9svnT63qNDsCmiGuVdg + sortOrder: 0 + fieldKey: user_identifiers + label: User identifiers + type: OBJECT + description: 'User identifier details to send to Optimizely. ' + placeholder: '' + defaultValue: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.traits.optimizely_vuid + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: gMcQ6XSRegcyzxUidyNLL4 + sortOrder: 1 + fieldKey: company + label: Company Name + type: STRING + description: The name of the company associated with the Contact + placeholder: '' + defaultValue: + '@path': $.traits.company + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mrrEaEbNxgKfFNqbgErYuC + sortOrder: 2 + fieldKey: title + label: Title + type: STRING + description: The Contact's Title + placeholder: '' + defaultValue: + '@path': $.traits.title + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 81fY6TZR4n8YmwAP18isEq + sortOrder: 3 + fieldKey: name + label: Name + type: STRING + description: Contact's full name + placeholder: '' + defaultValue: + '@path': $.traits.name + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 9s4Sf2uCXTyS5S7embJWYX + sortOrder: 4 + fieldKey: firstname + label: First Name + type: STRING + description: Contact's first name + placeholder: '' + defaultValue: + '@path': $.traits.first_name + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 52aqzDYy3Qu7cFbamzjgCd + sortOrder: 5 + fieldKey: lastname + label: Last Name + type: STRING + description: Contact's last name + placeholder: '' + defaultValue: + '@path': $.traits.last_name + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: vH5d4Un2feybhi1MK1WvLM + sortOrder: 6 + fieldKey: gender + label: Gender + type: STRING + description: Contact's gender + placeholder: '' + defaultValue: + '@path': $.traits.gender + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sMBzJ2c1gPMuE8f8qVuT6n + sortOrder: 7 + fieldKey: DOB + label: Birthday + type: DATETIME + description: Contact's birthday. The format should be datetime + placeholder: '' + defaultValue: + '@path': $.traits.birthday + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kdPNqhDGCqL7iyUCfFZddR + sortOrder: 8 + fieldKey: phone + label: Phone + type: STRING + description: Contact's phone number. + placeholder: '' + defaultValue: + '@path': $.traits.phone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 8Hpr9VEjBdzZFzNtY586jo + sortOrder: 9 + fieldKey: age + label: Age + type: NUMBER + description: Contact's age. + placeholder: '' + defaultValue: + '@path': $.traits.age + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: frvhCiJPa9fu4a647rgUk2 + sortOrder: 10 + fieldKey: address + label: Address + type: OBJECT + description: Address details object + placeholder: '' + defaultValue: + street: + '@path': $.traits.address.street + city: + '@path': $.traits.address.city + state: + '@path': $.traits.address.state + zip: + '@path': $.traits.address.postalCode + country: + '@path': $.traits.address.country + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tngqTFxMihC8meogqEL4s8 + sortOrder: 11 + fieldKey: avatar + label: avatar + type: STRING + description: The user's avatar image URL. + placeholder: '' + defaultValue: + '@path': $.traits.avatar + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: iErwR3xPQSu7CD8UugWpCq + sortOrder: 12 + fieldKey: additional_traits + label: Addition User Traits + type: OBJECT + description: Additional user profile details + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hcqEnue2U8oG3e3iVHW5KV + name: Email Event + slug: emailEvent + description: Send email related Segment track() events to Optimizely Data Platform + platform: CLOUD + hidden: false + defaultTrigger: null + fields: + - id: x7CuvmeNY7UR4SQDDsha8A + sortOrder: 0 + fieldKey: user_identifiers + label: User identifiers + type: OBJECT + description: 'User identifier details to send to Optimizely. ' + placeholder: '' + defaultValue: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.context.traits.optimizely_vuid + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qtN7TqkR86yPfcXa9BR1u + sortOrder: 1 + fieldKey: event_action + label: Optimizely Event Action + type: STRING + description: The name of the Optimizely Event Action. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: nv9gXafS9K76Vsv5goaSb6 + sortOrder: 2 + fieldKey: campaign + label: Campaign Name + type: STRING + description: The campaign name + placeholder: '' + defaultValue: + '@path': $.properties.campaign_name + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: uRh2sdVY9AyBonoU3ffNPP + sortOrder: 3 + fieldKey: campaign_id + label: Campaign ID + type: STRING + description: The campaign unique identifier + placeholder: '' + defaultValue: + '@path': $.properties.campaign_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 7N6MNXpj7z9f9Lto1ppqE4 + sortOrder: 4 + fieldKey: link_url + label: Link URL + type: STRING + description: URL of the link which was clicked + placeholder: '' + defaultValue: + '@path': $.properties.link_url + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rUSHG6LjhpqHJ6WEpBKhmQ + sortOrder: 5 + fieldKey: timestamp + label: Timestamp + type: STRING + description: Event timestamp + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: meD4xgcJ8b3f29gWudiuFQ + name: Ecommerce Event + slug: customEvent + description: Send Segment Ecommerce track() events to Optimizely Data Platform + platform: CLOUD + hidden: false + defaultTrigger: null + fields: + - id: mKcrXoAFJMJVvirdKE9wwc + sortOrder: 0 + fieldKey: user_identifiers + label: User identifiers + type: OBJECT + description: 'User identifier details to send to Optimizely. ' + placeholder: '' + defaultValue: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.traits.optimizely_vuid + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: aN5iUDwxADZtYPJWS2etYA + sortOrder: 1 + fieldKey: event_type + label: Optimizely Event Type + type: STRING + description: The Optimizely Event Type. Defaults to "custom" if not provided + placeholder: '' + defaultValue: + '@path': $.event + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sAeNWXnnkrQf5BQdQUDZcm + sortOrder: 2 + fieldKey: event_action + label: Optimizely Event Action + type: STRING + description: The name of the Optimizely Event Action. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: oDgr989WSp3GZQc9dQUjs4 + sortOrder: 3 + fieldKey: products + label: Product details + type: OBJECT + description: >- + Product details to associate with the event. Product ID field is + required for each product + placeholder: '' + defaultValue: + '@arrayPath': + - $.properties.products + - product_id: + '@path': $.product_id + qty: + '@path': $.quantity + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: mXeGYjpAaGVbAiafssjc8B + sortOrder: 4 + fieldKey: order_id + label: Order ID + type: STRING + description: Identifier for the order + placeholder: '' + defaultValue: + '@path': $.properties.order_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: eM7bVZyi9NvmESaUR3tAbT + sortOrder: 5 + fieldKey: total + label: Order Total + type: STRING + description: Total value of the order + placeholder: '' + defaultValue: + '@path': $.properties.total + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: iiNQW8N5ekeVy6LtUY3kjU + sortOrder: 6 + fieldKey: timestamp + label: Timestamp + type: STRING + description: Event timestamp + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: xqor3XEmPcajqx2VPxiHJx + name: Custom Event + slug: nonEcommCustomEvent + description: Send Segment custom track() events to Optimizely Data Platform + platform: CLOUD + hidden: false + defaultTrigger: null + fields: + - id: qGohE2rWsSwGca2GyzQQyU + sortOrder: 0 + fieldKey: user_identifiers + label: User identifiers + type: OBJECT + description: 'User identifier details to send to Optimizely. ' + placeholder: '' + defaultValue: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.traits.optimizely_vuid + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: djVVTAaTM5mCYg9bkYonUh + sortOrder: 1 + fieldKey: event_type + label: Optimizely Event Type + type: STRING + description: The Optimizely Event Type. Defaults to "custom" if not provided + placeholder: '' + defaultValue: + '@path': $.event + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sRo8xcMk7cvNWCPTFf3Haq + sortOrder: 2 + fieldKey: event_action + label: Optimizely Event Action + type: STRING + description: The name of the Optimizely Event Action. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ec2bgYTLqu6NkpyRAz8SnP + sortOrder: 3 + fieldKey: data + label: Event Properties + type: OBJECT + description: Additional information to send with your custom event + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 5zYqdDAfbKUy7yarnVzgVa + sortOrder: 4 + fieldKey: timestamp + label: Timestamp + type: STRING + description: Event timestamp + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + presets: + - actionId: hcqEnue2U8oG3e3iVHW5KV + name: Email Sent + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.context.traits.optimizely_vuid + campaign: + '@path': $.properties.campaign_name + campaign_id: + '@path': $.properties.campaign_id + link_url: + '@path': $.properties.link_url + timestamp: + '@path': $.timestamp + event_action: sent + trigger: type = "track" and event = "Email Sent" + - actionId: meD4xgcJ8b3f29gWudiuFQ + name: Product Removed + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.traits.optimizely_vuid + event_type: product + products: + '@arrayPath': + - $.properties + - product_id: + '@path': $.product_id + qty: + '@path': $.quantity + order_id: + '@path': $.properties.order_id + total: + '@path': $.properties.total + timestamp: + '@path': $.timestamp + event_action: remove_from_cart + trigger: type = "track" and event = "Product Removed" + - actionId: hcqEnue2U8oG3e3iVHW5KV + name: Email Marked as Spam + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.context.traits.optimizely_vuid + campaign: + '@path': $.properties.campaign_name + campaign_id: + '@path': $.properties.campaign_id + link_url: + '@path': $.properties.link_url + timestamp: + '@path': $.timestamp + event_action: spam_report + trigger: type = "track" and event = "Email Marked as Spam" + - actionId: meD4xgcJ8b3f29gWudiuFQ + name: Product Added + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.traits.optimizely_vuid + event_type: product + products: + '@arrayPath': + - $.properties + - product_id: + '@path': $.product_id + qty: + '@path': $.quantity + order_id: + '@path': $.properties.order_id + total: + '@path': $.properties.total + timestamp: + '@path': $.timestamp + event_action: add_to_cart + trigger: type = "track" and event = "Product Added" + - actionId: hcqEnue2U8oG3e3iVHW5KV + name: Email Opened + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.context.traits.optimizely_vuid + campaign: + '@path': $.properties.campaign_name + campaign_id: + '@path': $.properties.campaign_id + link_url: + '@path': $.properties.link_url + timestamp: + '@path': $.timestamp + event_action: open + trigger: type = "track" and event = "Email Opened" + - actionId: meD4xgcJ8b3f29gWudiuFQ + name: Product Viewed + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.traits.optimizely_vuid + event_type: product + products: + '@arrayPath': + - $.properties + - product_id: + '@path': $.product_id + qty: + '@path': $.quantity + order_id: + '@path': $.properties.order_id + total: + '@path': $.properties.total + timestamp: + '@path': $.timestamp + event_action: detail + trigger: type = "track" and event = "Product Viewed" + - actionId: hcqEnue2U8oG3e3iVHW5KV + name: Email Link Clicked + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.context.traits.optimizely_vuid + campaign: + '@path': $.properties.campaign_name + campaign_id: + '@path': $.properties.campaign_id + link_url: + '@path': $.properties.link_url + timestamp: + '@path': $.timestamp + event_action: click + trigger: type = "track" and event = "Email Link Clicked" + - actionId: meD4xgcJ8b3f29gWudiuFQ + name: Order Completed + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.traits.optimizely_vuid + event_type: order + products: + '@arrayPath': + - $.properties.products + - product_id: + '@path': $.product_id + qty: + '@path': $.quantity + order_id: + '@path': $.properties.order_id + total: + '@path': $.properties.total + timestamp: + '@path': $.timestamp + event_action: purchase + trigger: type = "track" and event = "Order Completed" + - actionId: hcqEnue2U8oG3e3iVHW5KV + name: Unsubscribed + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.context.traits.optimizely_vuid + campaign: + '@path': $.properties.campaign_name + campaign_id: + '@path': $.properties.campaign_id + link_url: + '@path': $.properties.link_url + timestamp: + '@path': $.timestamp + event_action: unsubscribe + trigger: type = "track" and event = "Unsubscribed" - id: 641d5acea88fa531b9068608 display_name: Optimizely Feature Experimentation (Actions) name: Optimizely Feature Experimentation (Actions) diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 2eccd851f0..53872f055f 100644 --- a/src/_data/catalog/destinations_private.yml +++ b/src/_data/catalog/destinations_private.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-04-04 +# destination data last updated 2024-04-05 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 26a4db3170..4671e203ea 100644 --- a/src/_data/catalog/source_categories.yml +++ b/src/_data/catalog/source_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# source categories last updated 2024-04-04 +# source categories last updated 2024-04-05 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/sources.yml b/src/_data/catalog/sources.yml index b953d32ef1..a8860cdbdf 100644 --- a/src/_data/catalog/sources.yml +++ b/src/_data/catalog/sources.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# sources last updated 2024-04-04 +# sources last updated 2024-04-05 items: - id: 8HWbgPTt3k display_name: .NET diff --git a/src/connections/destinations/catalog/optimizely-data-platform/index.md b/src/connections/destinations/catalog/optimizely-data-platform/index.md new file mode 100644 index 0000000000..36e52dc68e --- /dev/null +++ b/src/connections/destinations/catalog/optimizely-data-platform/index.md @@ -0,0 +1,64 @@ +--- +title: Optimizely Data Platform Destination +beta: true +id: 6512d7f86bdccc3829fc4ac3 +--- + +Sync your Twilio Segment customer data to Optimizely Data Platform (ODP) for real-time segmentation, reporting, and to enrich customer profiles in ODP. + +After you set up your Optimizely Data Platform destination, Segment syncs your customer data to ODP in near real-time. + +This destination is maintained by Optimizely. For any issues with the destination, [contact Optimizely Support team](mailto:support@optimizely.com). + +## Prerequisites + +- Twilio Segment workspace +- ODP or [ODP Lite](https://support.optimizely.com/hc/en-us/articles/8359093735309-Welcome-to-ODP-Lite){:target="_blank”} account + +## Enable the integration + +1. In ODP, open the **App Directory**. +2. Select the **Twilio Segment** app. +3. Click **Install App**. +4. On the Settings tab, click **Generate** and copy the displayed token. +5. Open the Segment app and navigate to the [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”}. +6. Search for and select **Optimizely Data Platform**. +7. Click **Add destination** and select a source to connect to the Optimizely Data Platform destination. +8. Enter a name for your destination and click **Create destination**. +9. On the destination's Settings tab, enter the following information: + - **Api Key** – Paste your ODP API token from step 4 + - **Region** – Select your region + - **Enable Destination** – Toggle to **On** +10. Click **Save Changes**. + +## Configure event mappings + +After you enable the Optimizely Data Platform destination, you must map the events that you want Twilio Segment to send to ODP. + +In Twilio Segment, on the **Mappings** tab of the Optimizely Data Platform destination, Segment displays a list of pre-built mappings that you can enable or disable. For example, if you enabled the **Email Opened** mapping, each email opened event Segment ingested after you enabled the mapping would sync to ODP. + +If you want to map an event that is not listed: +1. Click **New Mapping > Custom Event**. +2. _(Optional)_: Enter a descriptive name for the event. +3. Select the event that you want to send to ODP. +4. Click **Load Test Event from Source**. This generates the raw data for the selected event and populates your mappings. The ID and timestamp field mappings auto-populate, but you can edit them as desired. +5. Select the event type and, optionally, the event action. For example, if you are configuring a custom event to track button clicks, select _button_ for the event type and _click_ for the event action. + +> info "Required fields" +> In ODP, each event requires an ID, timestamp, and event type. The event action is optional. See ODP's [Events](https://docs.developers.optimizely.com/optimizely-data-platform/docs/thebasics-events){:target="_blank”} documentation for more details. + +
    +
  1. + _(Optional)_: To ensure the custom event is configured correctly, click **Send test event to destination**. +
  2. +
  3. + Click **Save**. +
  4. +
  5. + Toggle your custom event's status to **Enabled**. +
  6. +
+ +The event data sends from Twilio Segment to ODP starting after you enable the mapping in the destination. It does not retroactively send events that occurred prior to configuring the integration and enabling the mappings. + +{% include components/actions-fields.html %}