From d40ba729bcf96ce192c18bfda20dde15ba2c6deb Mon Sep 17 00:00:00 2001 From: Peter Cooper <113425933+PcooperSegment@users.noreply.github.com> Date: Thu, 21 Mar 2024 11:57:57 +0100 Subject: [PATCH 001/438] Update firebase-react-native.md Changing the link, The old link refers back to our old React Native Library which is no longer supported. I've changed some wording around as well to make sure customers know that installing the google services is needed. --- .../react-native/destination-plugins/firebase-react-native.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md index 463288f198..d25f0ad7aa 100644 --- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md +++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md @@ -24,8 +24,8 @@ Run `pod install` after the installation to autolink the Firebase SDK. See [React Native Firebase](https://rnfirebase.io) and [React Native Firebase Analytics](https://rnfirebase.io/analytics/usage) for more details of Firebase packages. -> info "rnfirebase dependency" -> You will need to follow the [install guide](/docs/connections/sources/catalog/libraries/mobile/react-native/classic) for the rnfirebase dependency too. This may include adding the `GoogleService-Info.plist` and the `google-services.json` file. +> info "Installation" +> You will need to follow the [install guide]https://rnfirebase.io/#configure-firebase-with-android-credentials for Android and IOS. This includes adding the `GoogleService-Info.plist` and the `google-services.json` file. ## Using the Plugin in your App From b429a24d2be66a483a465056277c38882398e7c6 Mon Sep 17 00:00:00 2001 From: Peter Cooper <113425933+PcooperSegment@users.noreply.github.com> Date: Mon, 1 Apr 2024 16:28:25 +0200 Subject: [PATCH 002/438] Update firebase-react-native.md Changed to recommend links from Niall --- .../react-native/destination-plugins/firebase-react-native.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md index d25f0ad7aa..eb9a561ee4 100644 --- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md +++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md @@ -25,7 +25,7 @@ Run `pod install` after the installation to autolink the Firebase SDK. See [React Native Firebase](https://rnfirebase.io) and [React Native Firebase Analytics](https://rnfirebase.io/analytics/usage) for more details of Firebase packages. > info "Installation" -> You will need to follow the [install guide]https://rnfirebase.io/#configure-firebase-with-android-credentials for Android and IOS. This includes adding the `GoogleService-Info.plist` and the `google-services.json` file. +> You will need to follow the install guide for [Android](https://rnfirebase.io/analytics/usage/installation/android) and [iOS](https://rnfirebase.io/analytics/usage/installation/ios). This includes adding the `GoogleService-Info.plist` and the `google-services.json` file. ## Using the Plugin in your App From ae570647c0cf3ac24a0cb0b46812531b9006b87d Mon Sep 17 00:00:00 2001 From: Samantha Crespo <100810716+samkcrespo@users.noreply.github.com> Date: Wed, 1 May 2024 11:03:37 -0700 Subject: [PATCH 003/438] Update index.md --- .../catalog/actions-tiktok-audiences/index.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md index 7e804e3201..f8059e3138 100644 --- a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md +++ b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md @@ -70,24 +70,26 @@ To sync additional audiences from your Engage space, create a separate mapping i 5. On the Destination **Settings** tab, name your destination and authenticate with TikTok Audiences using OAuth. 6. Once authenticated, toggle “Enable Destination” on and click **Save Changes**. + +7. Follow the steps in the [Create a TikTok Audience](#create-a-tiktok-audience) section to create an audience. Once complete, make sure to note the `audience_id` obtained during this process, then proceed to Step 8. -7. Navigate to the **Mappings** tab, click **New Mapping**, and select **Add Users**. +8. Navigate to the **Mappings** tab, click **New Mapping**, and select **Add Users**. -8. Under Select mappings, select the TikTok "Advertiser ID" of the audience segment you want to add users to. Input the `audience_id` of that audience segment under "Audience ID." **Note: A separate mapping must be created for each audience segment you plan to send Engage audiences to.** +9. Under Select mappings, select the TikTok "Advertiser ID" of the audience segment you want to add users to. Input the `audience_id` of that audience segment under "Audience ID." **Note: A separate mapping must be created for each audience segment you plan to send Engage audiences to.** **Note:** Once you've created the audience using the name of Segment's audience key, you can get the Audience ID from TikTok's Assets>Audiences page. You'll also find the Advertised ID, noted by `aadvid`, over the TikTok URL. -9. Repeat steps 7 and 8 to also set up a **Remove Users** mapping. +10. Repeat steps 7 and 8 to also set up a **Remove Users** mapping. -10. Navigate back to **Engage > Audiences** and click on the audience from Step 1. +11. Navigate back to **Engage > Audiences** and click on the audience from Step 1. -11. Click **Add Destinations** and select the TikTok Audiences destination you just created. In the settings that appear in the side panel, toggle the **Send Track** option on and do **not** change the Audience Entered/Audience Exited event names. Click **Save Settings**. +12. Click **Add Destinations** and select the TikTok Audiences destination you just created. In the settings that appear in the side panel, toggle the **Send Track** option on and do **not** change the Audience Entered/Audience Exited event names. Click **Save Settings**. The setup is complete and the audience will start syncing to TikTok. The audience will appear in your [TikTok Ads Manager](https://www.tiktok.com/business/en-US/solutions/ads-manager){:target="_blank"} account under **Assets > Audiences**. Please note that it can take 24-48 hours for users to appear in TikTok. To sync additional audiences from your Engage space, create a separate mapping in the TikTok Audiences destination. Navigate to **Connections > Destinations**, search and select the TikTok Audiences destination, and follow steps 7-11 above. -### Create a TikTok Audience +### Create a TikTok Audience (_Legacy_) To create an audience in Segment: From c60ce068fb1f1ebe36dd6cd4e09cd0c54d345516 Mon Sep 17 00:00:00 2001 From: prigiattiperrut <47340158+prigiattiperrut@users.noreply.github.com> Date: Wed, 4 Sep 2024 15:55:58 +0100 Subject: [PATCH 004/438] Update troubleshooting.md --- .../website/javascript/troubleshooting.md | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md b/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md index a0364afa82..b5cd94175e 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md +++ b/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md @@ -20,9 +20,11 @@ Segment also provides a Chrome web extension, [Segment Inspector](/docs/connecti Solution: [Follow the Analytics.js Quickstart Guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/) -## Are you loading two instances of Analytics.js? +## Loading Multiple Instances of Analytics.js -Note that you *cannot* load Analytics.js twice on the same page, even if you're using different write keys. You might encounter `Uncaught RangeError: Maximum call stack size exceeded`. You can conditionally set the write key based on an environment variable. +### Analytics.js Snippet Loaded More Than Once + +It is not possible to load the Analytics.js snippet twice on the same page, even if different write keys are used. Doing so often results in errors like `Uncaught RangeError: Maximum call stack size exceeded`. However, you can conditionally set the write key based on an environment variable: Example: ```js @@ -30,6 +32,14 @@ var writeKey; ENV === 'production' ? writeKey = 'A' : writeKey = 'B'; ``` +### Multiple Versions of Analytics.js + +It is possible to load multiple versions of Analytics.js, such as a snippet version and an npm version (with different writekeys), in the same environment without them interfering with each other. This allows the npm library and the browser snippet to coexist without conflicting.Just keep in mind the following limitations with this approach: + +**1. Device-Mode Destination Conflicts**: If you are using the same device-mode destination in both instances (i.e., across different writekeys), conflicts may occur. This is due to third-party scripts that don't support global instances. To avoid issues, ensure you are not using the same device-mode destination between different write keys. + +**2. CDN URL Customization:** We currently do not support overriding the CDNURL when using multiple instances of Analytics.js. + ## Do you see events appear in your debugger? When you reload the page, does your debugger show a new [`page`](/docs/connections/spec/page)? You can also check the JavaScript console in the browser and manually fire an event, like an Identify call, which would show up in the debugger. From acbe6216407ef1fba2e3029d88197ae7412791a4 Mon Sep 17 00:00:00 2001 From: Terence Ma Date: Fri, 13 Sep 2024 16:30:37 +1000 Subject: [PATCH 005/438] add detail on linkedin capi --- .../catalog/actions-linkedin-conversions/index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-linkedin-conversions/index.md b/src/connections/destinations/catalog/actions-linkedin-conversions/index.md index 699679051e..48144c54e8 100644 --- a/src/connections/destinations/catalog/actions-linkedin-conversions/index.md +++ b/src/connections/destinations/catalog/actions-linkedin-conversions/index.md @@ -43,6 +43,9 @@ Your inputs must meet the following criteria: - `LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID` - `ACXIOM_ID` - `ORACLE_MOAT_ID` -- `conversionHappenedAt` must be a valid timestamp (milliseconds since epoch) and must have happened in the past 90 days +- `conversionHappenedAt` must be a valid epoch timestamp (milliseconds since epoch) and must have happened in the past 90 days. Segment additionally accepts [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) formatted timestamp, and converts it to valid epoch timestamp value. Any deviations from this specification might lead to failed inputs. + +### Why LinkedIn still shows "no integration data" after I successfully sent the data? +LinkdedIn won't reject events due to the lack ofcurrency and amount data, but they will not correctly recogonize the events you sent via Segment. Please ensure your payload has the data or try "Validate" for other undocumented errors. From 85f9c77383d47bfb5bb2a8fdbbbd32bcb00e2ef3 Mon Sep 17 00:00:00 2001 From: Terence Ma Date: Fri, 13 Sep 2024 16:46:57 +1000 Subject: [PATCH 006/438] fix wording --- .../catalog/actions-linkedin-conversions/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-linkedin-conversions/index.md b/src/connections/destinations/catalog/actions-linkedin-conversions/index.md index 48144c54e8..351255b4f7 100644 --- a/src/connections/destinations/catalog/actions-linkedin-conversions/index.md +++ b/src/connections/destinations/catalog/actions-linkedin-conversions/index.md @@ -43,9 +43,9 @@ Your inputs must meet the following criteria: - `LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID` - `ACXIOM_ID` - `ORACLE_MOAT_ID` -- `conversionHappenedAt` must be a valid epoch timestamp (milliseconds since epoch) and must have happened in the past 90 days. Segment additionally accepts [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) formatted timestamp, and converts it to valid epoch timestamp value. +- `conversionHappenedAt` must be a valid epoch timestamp (milliseconds since epoch) and must have happened in the past 90 days. Segment additionally accepts [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601){:target="_blank"} formatted timestamps, and converts it to a valid epoch timestamp. Any deviations from this specification might lead to failed inputs. ### Why LinkedIn still shows "no integration data" after I successfully sent the data? -LinkdedIn won't reject events due to the lack ofcurrency and amount data, but they will not correctly recogonize the events you sent via Segment. Please ensure your payload has the data or try "Validate" for other undocumented errors. +LinkdedIn won't reject events due to the lack of currency and amount data, but they will not correctly recogonize the events you sent via Segment. Please ensure your payload has the data or try [Event Tester](/docs/connections/test-connections/#ensuring-an-event-is-successfully-making-it-to-a-specific-destination) for other causes. From 0ca8f9cda0a81db4d91a2b2fc8b8717b2576ad26 Mon Sep 17 00:00:00 2001 From: Terence Ma Date: Thu, 19 Dec 2024 17:12:38 +1100 Subject: [PATCH 007/438] update wording --- .../catalog/actions-linkedin-conversions/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-linkedin-conversions/index.md b/src/connections/destinations/catalog/actions-linkedin-conversions/index.md index 351255b4f7..5ba3d6e45b 100644 --- a/src/connections/destinations/catalog/actions-linkedin-conversions/index.md +++ b/src/connections/destinations/catalog/actions-linkedin-conversions/index.md @@ -47,5 +47,6 @@ Your inputs must meet the following criteria: Any deviations from this specification might lead to failed inputs. -### Why LinkedIn still shows "no integration data" after I successfully sent the data? -LinkdedIn won't reject events due to the lack of currency and amount data, but they will not correctly recogonize the events you sent via Segment. Please ensure your payload has the data or try [Event Tester](/docs/connections/test-connections/#ensuring-an-event-is-successfully-making-it-to-a-specific-destination) for other causes. +### Why does LinkedIn show "no integration data" after I successfully sent the data? + +One reason may be that your events are missing currency and amount fields. LinkdedIn’s API itself won't reject events due to the lack of currency and amount data, but their platform will silently drop these events later in LinkedIn’s processing. Please ensure your payload has those fields with valid values. From ed7e6ddffee14b9beae43eb240b96a850ee871d5 Mon Sep 17 00:00:00 2001 From: joeynmq <37472597+joeynmq@users.noreply.github.com> Date: Fri, 24 Jan 2025 15:58:57 +0800 Subject: [PATCH 008/438] Update index.md --- .../destinations/catalog/actions-intercom-cloud/index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/connections/destinations/catalog/actions-intercom-cloud/index.md b/src/connections/destinations/catalog/actions-intercom-cloud/index.md index b62ec0b0d3..ba5510b643 100644 --- a/src/connections/destinations/catalog/actions-intercom-cloud/index.md +++ b/src/connections/destinations/catalog/actions-intercom-cloud/index.md @@ -47,3 +47,8 @@ If a company is created without an attached user, the company does not appear on ### Why isn’t a user getting attached to a company? When you use the Identify Company action, Segment creates or updates a company's information. In the same action, Segment also attaches the user in your group call to that company. If the user doesn't exist in Intercom when the action runs, Segment creates or updates the company but can't attach the user. Ensure the user is created in Intercom first. + +### Why do I get a 404 Not Found error when sending Track events to Intercom? +A `404 Not Found` error typically occurs when attempting to update a user in Intercom who does not yet exist in the system. This can happen if an Identify event, which includes the corresponding `userId`, was not sent before the Track event that resulted in the `404` error. + +To resolve this, ensure that Identify events are sent **before** Track events to guarantee proper processing and avoid errors. From 260784f21406f20987ac88390493bb6b57456462 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 20 Feb 2025 11:36:31 -0500 Subject: [PATCH 009/438] Update src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md --- .../react-native/destination-plugins/firebase-react-native.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md index eb9a561ee4..72a2920ea7 100644 --- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md +++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/firebase-react-native.md @@ -25,7 +25,7 @@ Run `pod install` after the installation to autolink the Firebase SDK. See [React Native Firebase](https://rnfirebase.io) and [React Native Firebase Analytics](https://rnfirebase.io/analytics/usage) for more details of Firebase packages. > info "Installation" -> You will need to follow the install guide for [Android](https://rnfirebase.io/analytics/usage/installation/android) and [iOS](https://rnfirebase.io/analytics/usage/installation/ios). This includes adding the `GoogleService-Info.plist` and the `google-services.json` file. +> You will need to follow the install guide for [Android](https://rnfirebase.io/analytics/usage/installation/android){:target="_blank”} and/or [iOS](https://rnfirebase.io/analytics/usage/installation/ios){:target="_blank”}. This includes adding the `GoogleService-Info.plist` and the `google-services.json` file. ## Using the Plugin in your App From 9e39dd0fe81aa87595c8edf39f11e14a8d801bd7 Mon Sep 17 00:00:00 2001 From: sade-wusi Date: Wed, 30 Apr 2025 16:49:42 +0100 Subject: [PATCH 010/438] webhooks misinformation corrected [netlify-build] --- src/_includes/content/destination-dossier.html | 2 ++ .../destinations/catalog/actions-webhook-extensible/index.md | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/_includes/content/destination-dossier.html b/src/_includes/content/destination-dossier.html index f437f81bcf..2d097759fa 100644 --- a/src/_includes/content/destination-dossier.html +++ b/src/_includes/content/destination-dossier.html @@ -105,6 +105,7 @@
Connection Modes {% endunless %} {% endif %} +{% unless page.id == '66b1f528d26440823fb27af9' %} {% if destinationInfo.partnerOwned == true %}
Partner Owned
@@ -113,5 +114,6 @@
Partner Owned
{% endif %} +{% endunless %} {% endif %} \ No newline at end of file diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 25e1f96e13..9ae9c4199b 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -11,8 +11,8 @@ Segment's Extensible Webhooks destination lets you send custom data payloads to Segment maintains this destination. For any issues, [contact Segment Support](friends@segment.com). -> info "Private beta" -> Extensible Webhooks is in private beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. +> info "Public Beta" +> Extensible Webhooks is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. ## Overview From bfa84ad49f060556eb9a91ca949052facd1d9083 Mon Sep 17 00:00:00 2001 From: sade-wusi Date: Fri, 2 May 2025 13:41:13 +0100 Subject: [PATCH 011/438] destination not avaiable in EU atm --- .../catalog/actions-webhook-extensible/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 9ae9c4199b..6ce2f84f76 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -9,9 +9,11 @@ hidden: true Segment's Extensible Webhooks destination lets you send custom data payloads to any webhook endpoint. With support for flexible payload configuration, multiple authentication methods, and real-time data flow, Extensible Webhooks can help you integrate with internal systems or tools not covered by Segment’s standard destinations. -Segment maintains this destination. For any issues, [contact Segment Support](friends@segment.com). +This destination is not currently available in EU regions. -> info "Public Beta" +Segment maintains this destination. For any issues, [contact Segment Support](friends@segment.com). + +> info "Public beta" > Extensible Webhooks is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. ## Overview From bf1a4028d574c8603e260bacac73d87a571059c9 Mon Sep 17 00:00:00 2001 From: piyush-nudge Date: Wed, 14 May 2025 13:49:44 +0530 Subject: [PATCH 012/438] feat: added docs for Nudge (Actions) Destination integration --- .../catalog/actions-nudge/index.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 src/connections/destinations/catalog/actions-nudge/index.md diff --git a/src/connections/destinations/catalog/actions-nudge/index.md b/src/connections/destinations/catalog/actions-nudge/index.md new file mode 100644 index 0000000000..b4005e5ad1 --- /dev/null +++ b/src/connections/destinations/catalog/actions-nudge/index.md @@ -0,0 +1,96 @@ +Nudge (Actions) Destination +--- + +{% include content/plan-grid.md name="actions" %} + +[Nudge](https://nudgenow.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is an AI personalization platform for marketing teams for enabling rapid personalization experimentation and for autonomously delivering 1:1 user experiences. + +This destination is maintained by the Nudge Developer Team. For any issues with the destination, [contact the Support team](mailto:support@nudgenow.com). + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Nudge". +2. Select **Nudge** and click **Add Destination**. +3. Select an existing Source to connect to Nudge (Actions). +4. Go to the [Nudge dashboard](https://dashboard.nudgenow.com){:target="_blank"}, and navigate to the **Settings** page. +5. Go to the **Secret Keys** section and click on the **Create new secret key** button. +6. Give appropriate name for the key, select the **Backend API** option from the permissions dropdown and create the key. +7. Copy the generated key and store it somewhere safe for future reference. +8. Enter the generated API key in the **Nudge** destination settings in Segment. + +## Supported methods + +Nudge (Actions) Destination currently supports the Identify and Track methods listed below in accordance to the core Segment Specs. Reference: [Spec Overview](https://segment.com/docs/connections/spec/) + +### Identify + +The Identify method lets you create or update a user in Nudge’s backend. Every Identify call should include a `userId`. See Segment's Spec for Identify for any reference: [Identify Spec](https://segment.com/docs/connections/spec/identify/) + +**Example (using Segment's Analytics.js SDK)** + +```js +analytics.identify('user123', { + firstName: 'Alice', + lastName: 'Smith', + email: 'alice.smith@example.com', + company: 'Acme Corp', + employees: 150 +}); +``` + +How Nudge handles Identify calls: + +* If `userId` does not exist, the request would throw a 400 validation error as it is a required field. +* If `userId` already exists, Nudge merges or overwrites profile properties with the latest values. +* Identify calls without `userId`, or with only `anonymousId`, are dropped. + +--- + +### Track + +The Track method sends custom events and their properties into Nudge. You must include `event` name in every Track call so events can be associated with the correct user. See Segment's Spec for Track for any reference: [Track Spec](https://segment.com/docs/connections/spec/track/) + +**Example (using Segment's Analytics.js SDK)** + +```js +analytics.track('Product Viewed', { + product_id: 784, + product_sku: 'SH#79817' +}); +``` + +How Nudge handles Track calls: + +* Segment ensures the `userId` is attached to the Track call for a previously successful Identify. +* Events without a valid `userId` or with only `anonymousId` are dropped. +* All other event properties are ingested as event metadata and can be used for trigger conditions. + + +{% include components/actions-fields.html %} + +## Troubleshooting + +### 1. Events not showing up in Nudge + +* **Missing or invalid API key** + Ensure that the API key you generated under **Settings → Secret Keys → Backend API** is correctly entered in your Segment destination settings. +* **Dropped Identify/Track calls** + Calls without `userId`, or with only `anonymousId`, are automatically dropped. Verify your mapping includes the correct identifier field. + +### 2. Timestamp or date format errors + +Nudge expects all date/time properties in UTC ISO-8601 format (Javascript Date object's ISO format). If you see failed events due to timestamp validation: + +* Confirm you’re sending dates like `"2025-05-14T07:30:00Z"`. +* Remove any timezone offsets other than `Z` (UTC). + +### 3. Validation failures + +If requests continue to fail after checking your API key and payload: + +* Compare against Nudge’s specification from the documentation: [https://docs.nudgenow.com/](https://docs.nudgenow.com/). +* Ensure all required fields (e.g., `userId`, `event` name for Track) are present and correctly typed. + +--- + +*If you still encounter issues, please reach out to the Nudge Developer Team or email [support@nudgenow.com](mailto:support@nudgenow.com).* \ No newline at end of file From 064c5fc4602449a5b3360284ba7d4e53ab6686c1 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Thu, 29 May 2025 11:40:50 -0700 Subject: [PATCH 013/438] Data Graph Visual Builder [netlify-build] --- src/unify/data-graph/index.md | 268 ++++++++++++++++++++++++---------- 1 file changed, 187 insertions(+), 81 deletions(-) diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md index 25e5941bac..23a8959723 100644 --- a/src/unify/data-graph/index.md +++ b/src/unify/data-graph/index.md @@ -13,7 +13,7 @@ The Data Graph acts as a semantic layer that allows businesses to define relatio ## Prerequisites -To use the Data Graph, you'll need the following: +To use the Data Graph, you need the following: - A supported data warehouse with the appropriate Data Graph permissions - Workspace Owner or Unify Read-only/Admin and Entities Admin permissions @@ -49,17 +49,19 @@ To connect your warehouse to the Data Graph: ## Step 3: Build your Data Graph -The Data Graph is a semantic layer that represents a subset of relevant business data that marketers and business stakeholders can use for audience targeting and personalization in downstream tools. Use the configuration language spec and the following features to build your Data Graph: +The Data Graph is a semantic layer that represents a subset of relevant business data that marketers and business stakeholders can use for audience targeting and personalization in downstream tools. There are 2 ways to build the Data Graph: +1. [Using the visual (no-code) builder](#using-the-visual-builder) +2. [Using the code editor](#using-the-code-editor) -- Use the **Warehouse access** tab to view the warehouse tables you've granted Segment access to -- Begin typing to autopopulate the configuration spec within the editor, as well as to autocomplete your warehouse schema -- Validate your Data Graph using the **Preview** tab +Segment recommends using the visual builder for most use cases because it helps to explore, understand, and update entities and relationships interactively. However, some teams may prefer the code editor to quickly bulk edit entities or relationships, or to copy the raw configuration into version control systems. The visual builder is the default experience, and you can switch between the two editors as needed by selecting the toggle for **Code editor (advanced)**. ### Key steps to build your Data Graph -1. First, define your entities. An entity corresponds to a table in your warehouse. Segment flexibly supports tables, views and materialized views. -2. Then, define the profile block. This is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, and so on. -3. Finally, define how your datasets are related to each other. The Data Graph preserves these relationships and carries this rich context to the destinations to unlock personalization. +Follow these key steps to build your Data Graph: + +1. Define your entities. An entity corresponds to a table, view, or materialized view in your warehouse. If you're just using Linked Events, this is the only step you need to do. If you're using Linked Audiences, you'll need to perform steps 2 and 3 as well. +2. Define the profile. This is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, and so on. Based on your Profiles Sync settings, the Data Graph attempts to define the profile block. +3. Define how your datasets are related to each other. The Data Graph preserves these relationships and carries this rich context to the destinations to unlock personalization. **Defining Relationships** @@ -68,8 +70,8 @@ Similar to the concept of [cardinality in data modeling](https://w.wiki/Ay$u){:t - **Profile-to-entity relationship:** This is a relationship between your entity table and the Segment Profiles tables, and is the first level of relationship. - **1:many relationship:** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. - **many:many relationship:** For example, a user can have many `carts`, and each `cart` can have many `products`. However, these `products` can also belong to many `carts`. -- The Data Graph currently supports 6 levels of depth (or nodes) starting from the profile. For example, relating the `profile` to the `accounts` table to the `carts` table is 3 levels of depth. There are no limits on the width of your Data Graph or the number of entities. -- Relationships are nested under the profile. Refer to the example below. + +The Data Graph supports 6 levels of depth (or nodes) starting from the profile. For example, relating the `profile` to the `accounts` table to the `carts` table is 3 levels of depth. There are no limits on the width of your Data Graph or the number of entities. Relationships are nested under the profile. Refer to the example below. **Data Graph Example** @@ -171,18 +173,105 @@ data_graph { ``` -### 3a: Define entities +### Using the Visual Builder + +#### 3a: Define entities + +The first step in creating a Data Graph is to define your entities. An entity corresponds to a table in the warehouse. If you’re only using Linked Events, you can go directly to Step 4 after this. If you’re using Linked Audiences, you’ll need to perform steps 3b and 3c as well. + +To define your entities: +1. Navigate to the **Entities** tab and select **Add Entity**. +2. Provide the following information: + + Parameter | Definition + ---------- | ---------- + `Name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences. This name can be modified at any time. + `Table/View` | Select the table, view or materialized view you’d like to reference. You may also preview the table by selecting the preview icon next to each table or view. + `Primary Key` | The unique identifier for the given table. Must be a column with unique values per row. + `Description` (*Optional*) | An optional descriptor used to add additional context to the entity (for example, table grain, cadence at which the table/view is refreshed). + `Use for Linked Events` | Select **Yes** if you plan to reference the entity table for Linked Events use cases. + +3. Select **Save Entity** and repeat as needed. + + +#### 3b: Define the profile + +> info "" +> Segments recommends that you select materialized views under the Profiles [Selective Sync settings](/docs/unify/profiles-sync/profiles-sync-setup/#step-3-set-up-selective-sync) to optimize warehouse compute costs. + +To define the profile, navigate to the **Relationships** tab. You'll see a **Profile** node which is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, etc. There can only be one profile for a Data Graph. + +Segment creates default settings for your profile that are based on your Profiles Sync configuration. If you wish to update these settings, you may select the node and select **View / Edit profile**. Otherwise, you may proceed to Step 3C. + + +Profile parameters include: + +Parameter | Defintion +--------- | ---------- +`Profile folder` | Define the fully qualified path of the folder or schema location for the profile tables. Segment will infer this setting based on your Profiles Sync settings. +`Profile type` | Use `Materialized` to sync materialized views with Profiles Sync. Segment recommends this configuration for all Linked Audiences and Data Graph setups. If you can’t sync materialized views, [reach out to Segment support](https://segment.com/help/contact/){:target="\_blank"} for help. Segment will infer this setting based on your Profiles Sync settings. + + +#### 3c: Define relationships + +Now define the relationships between your entities. Similar to the concept of [cardinality in data modeling](), the Data Graph supports 3 types of relationships below. All relationship types require you to define the relationship slug, name, and related entity. Each type of relationship has unique join on conditions. + +- **[Profile-to-entity relationship](#define-profile-to-entity-relationship):** This is a relationship between your entity table and the Segment Profiles tables, and is the first level of relationship. +- **[1:many relationship](#define-a-1many-relationship):** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. +- **[many:many relationship](#define-manymany-relationship):** For example, a user can have many `carts`, and each `cart` can have many `products`. However, these `products` can also belong to many `carts`. + * **Note:** To add many:many relationships, you need to use the [code editor](#using-the-code-editor). + +##### Define profile-to-entity relationship + +This is the first level of relationships and a unique type of relationship between the Segment profile entity and a related entity. + +Parameter | Definition +--------- | ----------- +`Select related entity` | The left-hand-side entity represents the Segment profile. On the right-hand-side, you can select which entity to relate it to.

Note: you can select the preview icon to preview both the Segment profile and the associated table or view representing the entity. +`Relationship name` | A label displayed throughout your Segment space for Linked Audiences. This name can be modified at any time. +`Description` (**Optional**) | An optional descriptor used to add additional context to the relationship. +`Join on external ID or trait` | The Segment external ID or trait you’ll use to join to your entity. To define a profile-to-entity relationship, reference your entity table and depending on your table columns. You can select either an [external identifier](/docs/unify/identity-resolution/externalids/) such as `user_id`, `email`, or `phone` or a [trait](/docs/unify/#enrich-profiles-with-traits) in your Unify Profiles. +`Join key` | The column on the entity table that matches the external ID or trait selected directly above. + +> info "" +> Segment recommends using materialized views with Profiles Sync. However, Segment may still reference unmaterialized tables during setup for schema detection. + +If you're using `Profile Type = Materialized` for your profile settings, you can click **Compute count** to check the number of rows returned when joining the profile and entity together based on the join keys you provide using `Join on external ID` and `trait and Join key`. This enables you to make sure that entity joins occur correctly while you’re setting up the Data Graph by returning the number of rows produced when joining two associated tables or view. + +##### Define a 1:many relationship -The first step in creating a Data Graph is to define your entities. An entity corresponds to a table in the warehouse. +For 1:many relationships, select the relationship node you’d like to add a new relationship to. Select **Add relationship**. Provide the following information: + +Parameters | Definition +---------- | ------------ +`Select related entity` | The left-hand-side entity represents the entity referenced in the relationship you had previously defined. This is immutable. On the right-hand-side, you can select which entity to relate it to.

Note: you can select the preview icon to preview both associated tables or views. +`Join keys` | Defines relationship between the two entity tables – i.e. how they should be joined together. +`Relationship name` | A label displayed throughout your Segment space for Linked Audiences. This name can be modified at any time + +By selecting **Compute count**, you can check the number of rows returned when joining the two entity tables or views together based on the join keys you provided. This is a good way to ensure results are as expected. + +Select **Add relationship** and repeat as needed. + + +### Using the code editor +Use the configuration language spec and the following features to build your Data Graph: +* Use the Warehouse access tab to view the warehouse tables you’ve granted Segment access to +* Begin typing to autopopulate the configuration spec within the editor, as well as to autocomplete your warehouse schema +* Validate your Data Graph using the Preview tab + +#### 3a: Define entities + +The first step in creating a Data Graph is to define your entities. An entity corresponds to a table in the warehouse. If you are only using Linked Events, you can go directly to Step 4 after this. If you’re using Linked Audiences, you’ll need to perform steps 3b and 3c as well. + +Parameter | Definition +--------- | ----------- +`entity` | An immutable slug for the entity, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (for example, `account-entity` or `account_entity`). +`description` (*Optional*) | An optional descriptor used to add additional context to the entity (for example, table grain, cadence at which the table/view is refreshed). +`name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences. This name can be modified at any time. +`table_ref` | Defines the fully qualified table reference: `[database name].[schema name].[table name]`. Segment flexibly supports tables, views and materialized views. +`primary_key` | The unique identifier for the given table. Must be a column with unique values per row. +`enrichment_enabled = true` (*If applicable*) | Add this if you plan to reference the entity table for [Linked Events](/docs/unify/data-graph/linked-events/) use cases. -| Parameters | Definition | -| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `entity` | An immutable slug for the entity, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (for example, `account-entity` or `account_entity`). | -| `description` (*Optional*) | An optional descriptor used to add additional context to the entity (for example, table grain, cadence at which the table/view is refreshed). | -| `name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences. This name can be modified at any time. | -| `table_ref` | Defines the fully qualified table reference: `[database name].[schema name].[table name]`. Segment flexibly supports tables, views and materialized views. | -| `primary_key` | The unique identifier for the given table. Must be a column with unique values per row. | -| (If applicable) `enrichment_enabled = true` | Add this if you plan to reference the entity table for [Linked Events](/docs/unify/data-graph/linked-events/) use cases. | **Example:** @@ -204,22 +293,23 @@ data_graph { } ``` -### 3b: Define the profile + +#### 3b: Define the profile > info "" > Segments recommends that you select materialized views under the Profiles [Selective Sync settings](/docs/unify/profiles-sync/profiles-sync-setup/#step-3-set-up-selective-sync) to optimize warehouse compute costs. -Next, define the profile. This is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, etc. There can only be one profile for a Data Graph. +Define the profile. This is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, etc. There can only be one profile for a Data Graph. -| Parameters | Definition | -| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `profile_folder` | Define the fully qualified path of the folder or schema location for the profile tables. | -| `type` | Use `segment:materialized` to sync materialized views with Profiles Sync. Segment recommends this configuration for all Linked Audiences and Data Graph setups. If you can't sync materialized views, [reach out to Segment support](https://segment.com/help/contact/){:target="\_blank"} for help. | +Segment creates default settings for your profile that are based on your Profiles Sync configuration. If you'd like to update these settings, you can select the node and select **View / Edit profile**. After, move on to [Step 3C](#3c-define-relationships-1). -**Example:** -```python +Parameter | Definition +--------- | ----------- +`profile_folder` | Define the fully qualified path of the folder or schema location for the profile tables. Segment will infer this setting based on your Profiles Sync settings. +`type` | Use `segment:materialized` to sync materialized views with Profiles Sync. Segment recommends this configuration for all Linked Audiences and Data Graph setups. If you can’t sync materialized views, reach out to Segment support for help. Segment will infer this setting based on your Profiles Sync settings. +```python data_graph { # Define entities ... @@ -231,44 +321,41 @@ data_graph { type = "segment:materialized" } } - ``` -### 3c: Define relationships +#### 3c: Define relationships -Now define your relationships between your entities. Similar to the concept of [cardinality in data modeling](), the Data Graph supports 3 types of relationships below. All relationship types require you to define the relationship slug, name, and related entity. Each type of relationship has unique join on conditions. +Now define the relationships between your entities. Similar to the concept of [cardinality in data modeling](), the Data Graph supports 3 types of relationships below. All relationship types require you to define the relationship slug, name, and related entity. Each type of relationship has unique join on conditions. - **[Profile-to-entity relationship](#define-profile-to-entity-relationship):** This is a relationship between your entity table and the Segment Profiles tables, and is the first level of relationship. - **[1:many relationship](#define-a-1many-relationship):** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. - **[many:many relationship](#define-manymany-relationship):** For example, a user can have many `carts`, and each `cart` can have many `products`. However, these `products` can also belong to many `carts`. + * **Note:** To add many:many relationships, you need to use the [code editor](#using-the-code-editor). -#### Define profile-to-entity relationship - +##### Define profile-to-entity relationship This is the first level of relationships and a unique type of relationship between the Segment profile entity and a related entity. -| Parameters | Definition | -| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (like `user-account` or `user_account`). | -| `name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences. This name can be modified at any time. | -| `description` (*Optional*) | An optional descriptor used to add additional context to the relationship. | -| `related_entity` | This references the already defined entity. | +Parameter | Definition +--------- | ----------- +`relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (like `user-account` or `user_account`). +`name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences. This name can be modified at any time. +`description` (*Optional*) | An optional descriptor used to add additional context to the relationship. +`related_entity` | This references the already defined entity. To define a profile-to-entity relationship, reference your entity table and depending on your table columns, choose to join on one of the following: -**Option 1 (Most common) - Join on an external ID:** Use the `external_id` block to join the profile entity with an entity table using external IDs from your [Unify ID resolution](/docs/unify/identity-resolution/externalids/) settings. Typically these identifiers are `user_id`, `email`, or `phone` depending on the structure of your entity table. - -- `type`: Represents the [external ID type](/docs/unify/identity-resolution/externalids/#default-externalids) (`email`, `phone`, `user_id`) in your ID resolution settings. - - This maps to the `type` column in the `user_identifiers` table when using materialized views. -- `join_key`: The column on the entity table that matches the external ID. +* **Option 1 - Join on an external ID (*most common*):** Use the `external_id` block to join the profile entity with an entity table using external IDs from your [Unify ID resolution](/docs/unify/identity-resolution/externalids/) settings. Typically these identifiers are `user_id`, `email`, or `phone` depending on the structure of your entity table. + - `type`: Represents the [external ID type](/docs/unify/identity-resolution/externalids/#default-externalids) (`email`, `phone`, `user_id`) in your ID resolution settings. + - This maps to the `type` column in the `user_identifiers` table when using materialized views. + - `join_key`: The column on the entity table that matches the external ID. -> note "" -> Segment recommends using materialized views with Profiles Sync. However, Segment may still reference unmaterialized tables during setup for schema detection. +> info "" +> Segment recommends using materialized views with Profiles Sync. However, Segment still needs to reference unmaterialized tables during setup for schema detection. -**Option 2 - Join on a profile trait:** Use the `trait` block to join the profile entity with an entity table using [Profile Traits](/docs/unify/#enrich-profiles-with-traits). +* **Option 2 - Join on a profile trait:** Use the `trait` block to join the profile entity with an entity table using [Profile Traits](/docs/unify/#enrich-profiles-with-traits). -- `name`: Represents a trait name in your Unify profiles. - - This maps to the `name` column in the `user_traits` table when using materialized views. -- `join_key`: The column on the entity table that you're matching to the trait. + - `name`: Represents a trait name in your Unify profiles. This maps to the `name` column in the `user_traits` table when using materialized views. + - `join_key`: The column on the entity table that you're matching to the trait. **Example:** @@ -309,17 +396,21 @@ data_graph { } ``` -#### Define a 1:many relationship +Select a Data Graph node to see an overview of the relationship and to also confirm what data is in your entity tables or views by previewing the first 10 rows. -For 1:many relationships, define the join on between the two entity tables using the spec below. +Click **Compute count** to check the number of rows returned when joining the profile and entity together based on the join keys you provide. This enables you to make sure that entity joins occur correctly while setting up the Data Graph by returning the number of rows produced when joining two associated tables or view. + +##### Define 1:many relationship +Define the join between the two entity tables using the spec below. + +Parameter | Definition +--------- | ----------- +`relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (like user-account or user_account). +`name` | A label displayed throughout your Segment space for Linked Audiences. This name can be modified at any time +`description` (*Optional*) | An optional descriptor used to add additional context to the relationship. +`related_entity` | References your already defined entity +`join_on` | Defines relationship between the two entity tables [lefty entity slug].[column name] = [right entity slug].[column name]. Note that since you’re referencing the entity slug for the join on, you do not need to define the full table reference. -| Parameters | Definition | -| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (like `user-account` or `user_account`). | -| `name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences, and so on. This name can be modified at any time | -| `description` (*Optional*) | An optional descriptor used to add additional context to the relationship. | -| `related_entity` | References your already defined entity | -| `join_on` | Defines relationship between the two entity tables `[lefty entity slug].[column name] = [right entity slug].[column name]`. Note that since you’re referencing the entity slug for the join on, you do not need to define the full table reference. | **Example:** @@ -353,7 +444,12 @@ data_graph { } ``` -#### Define many:many relationship +Select a Data Graph node to see an overview of the relationship and to also confirm what data is in your entity tables or views by previewing the first 10 rows. + +Click **Compute count** to check the number of rows returned when joining the profile and entity together based on the join keys you provide. This enables you to make sure that entity joins occur correctly while you’re setting up the Data Graph by returning the number of rows produced when joining two associated tables or view. + + +##### Define many:many relationship For many:many relationships, define the join on between the two entity tables with the `junction_table`. @@ -361,26 +457,26 @@ For many:many relationships, define the join on between the two entity tables wi > Attributes from a junction table are not referenceable via the Linked Audience builder. If a marketer would like to filter upon a column on the junction table, you must define the junction as an entity and define a relationship. -| Parameters | Definition | -| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (like `user-account` or `user_account`). | -| `name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences, and so on. This name can be modified at any time. | -| (Optional) `description` | An optional descriptor used to add additional context to the relationship. | -| `related_entity` | This references your defined entity. | +Parameter | Definition +--------- | ----------- +`relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (like `user-account` or `user_account`). +`name` | A label displayed throughout your Segment space for Linked Audiences. This name can be modified at any time. +`description` (*Optional*) | An optional descriptor used to add additional context to the relationship. +`related_entity` | This references your defined entity. + **Junction table spec** -| Parameters | Definition | -| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `table_ref` | Defines the fully qualified table reference to the join table: `[database name].[schema name].[table name]`. Segment flexibly supports tables, views and materialized views. | -| `primary_key` | The unique identifier for the given table. Must be a column with unique values per row. | -| `left_join_on` | Defines the relationship between the left entity table and the junction table: `[left entity slug].[column name] = [junction table column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again. | -| `right_join_on` | Define the relationship between the junction table and the right entity table: `[junction table column name] = [right entity slug].[column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again. | +Parameter | Definition +--------- | ----------- +`table_ref` | Defines the fully qualified table reference to the join table: `[database name].[schema name].[table name]`. Segment flexibly supports tables, views and materialized views. +`primary_key` | The unique identifier for the given table. Must be a column with unique values per row. +`left_join_on` | Defines the relationship between the left entity table and the junction table: `[left entity slug].[column name] = [junction table column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again. +`right_join_on` | Define the relationship between the junction table and the right entity table: `[junction table column name] = [right entity slug].[column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again. -When you define a many-to-many relationship using a junction table, `left_join_on` and `right_join_on` tell Data Graph how to connect each entity to the junction table: +When you define a many-to-many relationship using a junction table, `left_join_on` and `right_join_on` tell Data Graph how to connect each entity to the junction table: - Use `left_join_on` to specify which column in the junction table links to the parent (left) entity. - - Use `right_join_on` to specify which column links to the child (right) entity. These fields define the join conditions, but they don’t control how the join is executed. Data Graph always performs inner joins, even if you specify a `left_join_on`. @@ -423,12 +519,23 @@ data_graph { ``` +Select a Data Graph node to see an overview of the entity and to also confirm what data is in your entity tables or views by previewing the first 10 rows. + +Click **Compute count** to check the number of rows returned when joining the profile and entity together based on the join keys you provide. This enables you to make sure that entity joins occur correctly while you’re setting up the Data Graph by returning the number of rows produced when joining two associated tables or view. + + ## Step 4: Validate your Data Graph -You can validate your Data Graph using the preview, then click Save. After you've set up your Data Graph, your partner teams can start leveraging these datasets with with [Linked Events](/docs/unify/data-graph/linked-events/) and [Linked Audiences](/docs/engage/audiences/linked-audiences/). +You can validate your Data Graph by selecting **Save**. After you've set up your Data Graph, your partner teams can start leveraging these datasets with [Linked Events](/docs/unify/data-graph/linked-events/) and [Linked Audiences](/docs/engage/audiences/linked-audiences/). ## Edit and manage your Data Graph +There are 2 ways to edit the Data Graph: +1. Using the visual (no-code) builder +2. Using the code editor + +Segment recommends using the visual builder for most use cases because it helps to explore, understand, and update entities and relationships interactively. However, some teams may prefer the code editor to quickly bulk edit entities or relationships, or to copy the raw configuration into version control systems. The visual builder is the default experience, and you can switch between the two editors as needed. + To edit your Data Graph: 1. Navigate to **Unify > Data Graph**. @@ -439,7 +546,7 @@ To edit your Data Graph: A data consumer refers to a Segment feature like Linked Events and Linked Audiences that are referencing datasets, such as entities and/or relationships, from the Data Graph. You can view a list of data consumers in two places: - Under **Unify > Data Graph**, click the **Data consumers** tab -- Under **Unify > Data Graph > Overview** or the **Data Graph editor > Preview**, click into a node on the Data Graph preview and a side sheet will pop up with the list of data consumers for the respective relationship +- Under **Unify > Data Graph > Overview** or the **Data Graph editor** in either the visual builder or in the code editor preview, click into a node on the Data Graph preview and a side sheet will pop up with the list of data consumers for the respective relationship. ### Understand changes that may cause breaking and potential breaking changes @@ -461,9 +568,8 @@ To configure alerts for breaking changes: 1. Open your workspace and navigate to **Settings > User Preferences > Activity Notifications**. 2. Select **Data Graph**. 3. Select one of the following notification methods: + - **Email**: Select this to receive notifications at either the email address associated with your account or another email address that you enter into this field. + - **Slack**: Select this and enter a Slack webhook URL and channel name to send alerts to a channel in your Slack workspace. + - **In-app**: Select this to receive notifications in the Segment app. To view your notifications, select the bell next to your user icon in the Segment app. -- **Email**: Select this to receive notifications at either the email address associated with your account or another email address that you enter into this field. -- **Slack**: Select this and enter a Slack webhook URL and channel name to send alerts to a channel in your Slack workspace. -- **In-app**: Select this to receive notifications in the Segment app. To view your notifications, select the bell next to your user icon in the Segment app. - -4. Click **Save**. +4. Click **Save**. \ No newline at end of file From 889591bcb14fcb46f6bde60bf3572e4ed0cbfc74 Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Fri, 30 May 2025 17:28:29 +0530 Subject: [PATCH 014/438] Update tables.md --- src/unify/profiles-sync/tables.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index a40ddab975..f10f49df2b 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -105,7 +105,9 @@ Profile raw tables contain records of changes to your Segment profiles and Ident With raw tables, you have full control over the materialization of Profiles in your warehouse, as well as increased observibility. -Raw tables contain complete historical data when using historical backfill. +Raw tables contain complete historical data when using historical backfill. + +Note: `Timestamp` column will be empty for backfilled data. This is because reverse engineer historical profile changes from the current state of the profile. ### The id_graph_updates table @@ -296,7 +298,7 @@ If you're not using materialized views for Profile Sync and would like to switch 2. **Request a Full Profiles and Events Backfill** - After enabling the materialized views, you'll need to ensure historical data is populated in the materialized tables. - Write to [friends@segment.com](mailto:friends@segment.com) and request: - - A full **Profiles Backfill** to populate historical profiles data. + - A full **Profiles Backfill** to populate historical profiles data. Materialized views will have nil `Timestamp` for the same reason as Profile events table, discussed above. - An **Events Backfill** to include any relevant historical events, including a date range for Segment to pull data in for the events backfill. 3. **Verify Your Data** From a6972d2b400b8a3dfad7d99436dea28be296d5cc Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Fri, 30 May 2025 17:33:26 +0530 Subject: [PATCH 015/438] Update tables.md --- src/unify/profiles-sync/tables.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index f10f49df2b..62de487d25 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -107,7 +107,7 @@ With raw tables, you have full control over the materialization of Profiles in y Raw tables contain complete historical data when using historical backfill. -Note: `Timestamp` column will be empty for backfilled data. This is because reverse engineer historical profile changes from the current state of the profile. +Note: `Timestamp` column will be empty for backfilled data. This is because reverse engineer historical profile changes from the current state of the profile, and do not have access to the actual event timestamps. ### The id_graph_updates table @@ -298,7 +298,7 @@ If you're not using materialized views for Profile Sync and would like to switch 2. **Request a Full Profiles and Events Backfill** - After enabling the materialized views, you'll need to ensure historical data is populated in the materialized tables. - Write to [friends@segment.com](mailto:friends@segment.com) and request: - - A full **Profiles Backfill** to populate historical profiles data. Materialized views will have nil `Timestamp` for the same reason as Profile events table, discussed above. + - A full **Profiles Backfill** to populate historical profiles data. Materialized views will have nil `Timestamp` for the same reason as in Profile events table, discussed above. - An **Events Backfill** to include any relevant historical events, including a date range for Segment to pull data in for the events backfill. 3. **Verify Your Data** From 8884c7570fb9391c125212b6a95f7081bf37732e Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Fri, 30 May 2025 17:36:25 +0530 Subject: [PATCH 016/438] Update tables.md --- src/unify/profiles-sync/tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index 62de487d25..6224c42170 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -107,7 +107,7 @@ With raw tables, you have full control over the materialization of Profiles in y Raw tables contain complete historical data when using historical backfill. -Note: `Timestamp` column will be empty for backfilled data. This is because reverse engineer historical profile changes from the current state of the profile, and do not have access to the actual event timestamps. +Note: `Timestamp` column will be empty for backfilled data. This is because we reverse engineer historical profile changes from the current state of the profile, and do not have access to the actual event timestamps. ### The id_graph_updates table From 307d5fc55b667defe158c7dcc59be2a96926406a Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Fri, 30 May 2025 17:37:01 +0530 Subject: [PATCH 017/438] Update tables.md --- src/unify/profiles-sync/tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index 6224c42170..d1891b5b38 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -107,7 +107,7 @@ With raw tables, you have full control over the materialization of Profiles in y Raw tables contain complete historical data when using historical backfill. -Note: `Timestamp` column will be empty for backfilled data. This is because we reverse engineer historical profile changes from the current state of the profile, and do not have access to the actual event timestamps. +Note: `Timestamp` column will be empty for backfilled data. This is because we reverse engineer historical profile changes from the current state of the profile, and do not have access to the actual change timestamps. ### The id_graph_updates table From 6e7f1bce78c95ce188c6cfec06e25166100595de Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Fri, 30 May 2025 17:37:38 +0530 Subject: [PATCH 018/438] Update tables.md --- src/unify/profiles-sync/tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index d1891b5b38..5e9e13b114 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -298,7 +298,7 @@ If you're not using materialized views for Profile Sync and would like to switch 2. **Request a Full Profiles and Events Backfill** - After enabling the materialized views, you'll need to ensure historical data is populated in the materialized tables. - Write to [friends@segment.com](mailto:friends@segment.com) and request: - - A full **Profiles Backfill** to populate historical profiles data. Materialized views will have nil `Timestamp` for the same reason as in Profile events table, discussed above. + - A full **Profiles Backfill** to populate historical profiles data. Materialized views will have null `Timestamp` for the same reason as in Profile events table, discussed above. - An **Events Backfill** to include any relevant historical events, including a date range for Segment to pull data in for the events backfill. 3. **Verify Your Data** From e2d6a544441cce8606373c3b1cffb7faa9e03182 Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Fri, 30 May 2025 17:41:57 +0530 Subject: [PATCH 019/438] Update tables.md --- src/unify/profiles-sync/tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index 5e9e13b114..196ea67af4 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -107,7 +107,7 @@ With raw tables, you have full control over the materialization of Profiles in y Raw tables contain complete historical data when using historical backfill. -Note: `Timestamp` column will be empty for backfilled data. This is because we reverse engineer historical profile changes from the current state of the profile, and do not have access to the actual change timestamps. +Note: `Timestamp` column will be empty for backfilled data. This is because we reverse engineer historical profile changes from the current state of the profile, and do not use the actual change timestamps. ### The id_graph_updates table From 20f63b70a5b439c7b239db669909b21a823f51fa Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Fri, 30 May 2025 17:43:01 +0530 Subject: [PATCH 020/438] Update tables.md --- src/unify/profiles-sync/tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index 196ea67af4..29ca239bf0 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -107,7 +107,7 @@ With raw tables, you have full control over the materialization of Profiles in y Raw tables contain complete historical data when using historical backfill. -Note: `Timestamp` column will be empty for backfilled data. This is because we reverse engineer historical profile changes from the current state of the profile, and do not use the actual change timestamps. +Note: `Timestamp` column will be empty for backfilled data. This is because we reverse engineer historical profile changes from the current state of the profile, and do not refer to the actual change history. ### The id_graph_updates table From b53c876bbfd9a629985246dac1f5abe0c986f476 Mon Sep 17 00:00:00 2001 From: Liz Kane <68755692+lizkane222@users.noreply.github.com> Date: Fri, 30 May 2025 14:09:40 -0700 Subject: [PATCH 021/438] Update track.md Customers were confused on why context.traits in Track events were not updating user traits within Unify. Added clarification warning --- src/connections/spec/track.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/connections/spec/track.md b/src/connections/spec/track.md index 644d062c6a..0d58d2a98a 100644 --- a/src/connections/spec/track.md +++ b/src/connections/spec/track.md @@ -121,6 +121,10 @@ _For instructions on how to pass fields to the context object for a specific lib Segment's Actions destinations allows your team to build individual actions that are triggered based on a set of configured conditions. By adding the user's latest traits to the Track event's `context.traits` object, its possible to build two separate Actions to be triggered by this single event. For example, if your team would like to send an Identify event anytime the specific Track event "Button Clicked" is triggered, simply add the available traits into the Track event's payload, then build a destination Actions for the Track event : `Event Name is Button Clicked`, and a destination Action for the Identify event : `All of the following conditions are true: Event Name is Button Clicked, Event Context traits exists`, and then both Actions will have access to reference the `context.traits` fields within its mappings. +> warning "" +> Sending traits in Track or Page events via the context.traits object will not update traits on profiles within Unify. Only traits sent within an Identify call will apply to user profiles within the Unify Space. +> The instructions above are only relevant in sending additional user data through Actions Destinations and not to Unify Spaces. + For more information on the context object, please see the [Spec: Common Fields](https://segment.com/docs/connections/spec/common/#context) documentation. From 3a7c60f40b89ce3381d359da8378ee7b7250704b Mon Sep 17 00:00:00 2001 From: Ravi Bansal Date: Tue, 3 Jun 2025 21:57:01 -0700 Subject: [PATCH 022/438] Draft Public Facing Doc for Amazon Conversions API --- .../catalog/amazon-conversions-api/index.md | 164 ++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 src/connections/destinations/catalog/amazon-conversions-api/index.md diff --git a/src/connections/destinations/catalog/amazon-conversions-api/index.md b/src/connections/destinations/catalog/amazon-conversions-api/index.md new file mode 100644 index 0000000000..929e220ebd --- /dev/null +++ b/src/connections/destinations/catalog/amazon-conversions-api/index.md @@ -0,0 +1,164 @@ +--- +title: Amazon Conversions API +id: 683ef14a3f9aac157e3a3446 +hide-personas-partial: true +hide-boilerplate: false +hide-dossier: true +private: false +hidden: false + +--- +The Amazon Conversions API destination is a server-to-server integration with the Amazon Events API. This destination allows advertisers to send real-time or offline conversion events data from Segment directly to Amazon without needing Amazon Ad Tag (AAT) setup. + +This enables advertisers to evaluate the effectiveness of their Amazon marketing campaigns regardless of the location of the conversion and utilize this information to drive campaign optimization. Events API can help strengthen performance and decrease cost per action with more complete attribution, improved data reliability, and better optimized delivery. + +## Benefits of Amazon Conversions API (Actions) + +The Amazon Conversions API destination provides the following benefits: + +- **Simplified setup**. Data mapping for actions-based destinations happens during configuration, which eliminates the need for most settings. +- **Clearer data mapping**. Actions-based destinations enable you to define the mapping between the data Segment receives from your source and the data Segment sends to the Amazon Conversions API. +- **Prebuilt event mappings**. Standard events like `Add to Shopping Cart` and `Checkout` come preconfigured with recommended parameters. +- **Multiple event types**. Support for various conversion event types including purchases, sign-ups, leads, and more. +- **Multi-platform support**. Send events from websites, Android apps, iOS apps, Fire TV, or offline sources. +- **Comprehensive user matching**. Multiple matching keys available including email, phone, name, address, and mobile advertising IDs. +- **Data normalization**. Data is normalized before it's hashed to send to Amazon Conversions. +- **Custom attributes**. Include additional context with event-specific attributes. +- **Consent management**. Built-in support for various privacy frameworks including Amazon consent options, TCF, and GPP. + +## Getting started + +Before connecting to the Amazon Conversions API destination, you must have an [Amazon Advertising account](https://advertising.amazon.com/API/docs/en-us/guides/onboarding/overview){:target="_blank"} and an Advertiser ID. + +To connect the Amazon Conversions API Destination: + +1. From the Segment web app, go to **Connections > Catalog**. +2. Search for **Amazon Conversions Api** in the top right corner. +3. From the search results under **Destinations**, click on **Amazon Conversions Api** destination and then click on **Add destination** +4. Select the source that will send data to Amazon Conversions API and follow the prompts to name your destination. +5. On the **Basic Settings** page, enter: + - Destination name + - **Region** - Select North America (NA), Europe (EU), or Far East (FE) based on your Amazon Advertising account + - **Amazon Advertiser ID** - Your Amazon Advertising Account ID +6. Authenticate via OAuth when prompted. +7. Go to the **Mappings** tab. Prebuilt mappings, like `Checkout`, `Search`, and `Add to Shopping Cart`, include predefined parameters. +8. To create a new mapping: + - Click **New Mapping** and select **Track Conversion**. + - Configure and enable the mapping. +9. Follow the steps in [Customizing mappings](/docs/connections/destinations/actions/#customize-mappings). +10. Toggle **Enable Destination** on, then click **Save Changes**. + +{% include components/actions-fields.html settings="true"%} + +> info "Event Action Source" +> By default, Segment sends all mappings as `website` conversions. To send events from mobile apps, Fire TV, or offline sources, set the Event Action Source in each mapping to the appropriate value: `android`, `ios`, `fire_tv`, or `offline`. + +## Supported event types + +Amazon Conversions API supports the following standard event types: + +| Event Type | Description | +| ---------- | ----------- | +| ADD_TO_SHOPPING_CART | When a user adds an item to their shopping cart | +| APPLICATION | When a user submits an application | +| CHECKOUT | When a user initiates a checkout process | +| CONTACT | When a user submits contact information | +| LEAD | When a user perform an action that initiates a sales lead | +| OFF_AMAZON_PURCHASES | When a user completes a purchase | +| MOBILE_APP_FIRST_START | When a user opens a mobile app for the first time | +| PAGE_VIEW | When a user views a page | +| SEARCH | When a user performs a search | +| SIGN_UP | When a user creates an account | +| SUBSCRIBE | When a user subscribes to a service | +| OTHER | For custom events that don't fit into the standard types | + +## Match keys for user identification + +Amazon requires at least one match key to identify the user associated with each conversion event. The following match keys are supported: + +| Match Key | Description | +| --------- | ----------- | +| email | User's email address (will be hashed) | +| phone | User's phone number (will be hashed) | +| firstName | User's first name (will be hashed) | +| lastName | User's last name (will be hashed) | +| address | User's street address (will be hashed) | +| city | User's city (will be hashed) | +| state | User's state (will be hashed) | +| postalCode | User's postal code (will be hashed) | +| maid | Mobile advertising ID (ADID, IDFA, or FIREADID) | +| rampId | RAMP ID for attribution to traffic events | +| matchId | Custom match ID for the user | + +Segment automatically maps these fields from standard identity traits when available. + +## Consent management + +For EU advertisers and users, Amazon requires consent information to be included with conversion events. The Amazon Conversions API supports several consent mechanisms: + +### Geographic consent (IP Address) + +For basic consent management, include the user's IP address. Segment automatically maps this from the context.ip field when available. + +### Amazon consent format + +Amazon-specific consent format with two primary fields: + +| Consent Field | Description | Values | +| ------------- | ----------- | ------ | +| amznAdStorage | Whether the user has consented to cookie-based tracking | GRANTED, DENIED | +| amznUserData | Whether the user has consented to use personal data for advertising | GRANTED, DENIED | + +### Industry standard consent + +For more comprehensive consent management: + +| Consent Field | Description | +| ------------- | ----------- | +| tcf | Transparency and Consent Framework (TCF) encoded string | +| gpp | Global Privacy Platform (GPP) encoded string | + +## Data processing options + +The Amazon Conversions API supports data processing options to control how events are processed: + +| Option | Description | +| ------ | ----------- | +| LIMITED_DATA_USE | Signals that an event should be processed with limited data use restrictions. Events marked with this option will not be used for advertising purposes. | + +## Custom attributes + +You can include custom attributes with your events to provide additional context. Each custom attribute has: + +- **Name**: Identifier for the attribute (only letters, numbers, and underscores allowed) +- **Data Type**: STRING, NUMBER, or BOOLEAN +- **Value**: The attribute value (maximum 256 characters) + +## FAQ + +#### How does deduplication work? + +Amazon Conversions API uses the `clientDedupeId` field to prevent duplicate events. By default, Segment maps the messageId to this field. For events with the same clientDedupeId, only the latest event will be processed. + +#### What regions are supported? + +Amazon Conversions API supports three regions: +- North America (NA) +- Europe (EU) +- Far East (FE) + +Select the region that corresponds to your Amazon Advertising account. + +#### What are the requirements for OFF_AMAZON_PURCHASES events? + +OFF_AMAZON_PURCHASES events have additional optional fields: +- `currencyCode`: The currency of the purchase in ISO-4217 format (e.g., USD, EUR) +- `unitsSold`: The number of items purchased (defaults to 1 if not provided) + +#### How are PII fields handled? + +Personally identifiable information (PII) fields like email, phone, name, and address are automatically hashed before sending to Amazon. + +#### How can I verify events in Amazon? + +After you start sending events, you should see them in your Amazon Advertising dashboard under conversion tracking reports. Allow some time for the events to be processed and attributed. From 68001207d082da789429d66278f4a1fda85f10f9 Mon Sep 17 00:00:00 2001 From: Ravi Bansal Date: Tue, 3 Jun 2025 22:08:18 -0700 Subject: [PATCH 023/438] correcting the directory name based on updated slug name --- .../index.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/connections/destinations/catalog/{amazon-conversions-api => actions-amazon-conversions-api}/index.md (100%) diff --git a/src/connections/destinations/catalog/amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md similarity index 100% rename from src/connections/destinations/catalog/amazon-conversions-api/index.md rename to src/connections/destinations/catalog/actions-amazon-conversions-api/index.md From 3d76cfaf0eb4c39a373813ca6613ef54394d99d0 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 4 Jun 2025 22:23:05 -0700 Subject: [PATCH 024/438] edits --- src/unify/data-graph/index.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md index 23a8959723..371bef5adb 100644 --- a/src/unify/data-graph/index.md +++ b/src/unify/data-graph/index.md @@ -6,10 +6,10 @@ redirect_from: - '/unify/data-graph/data-graph' --- -The Data Graph acts as a semantic layer that allows businesses to define relationships between various entity datasets in the warehouse — such as accounts, subscriptions, households, and products — with the Segment Profile. It makes these relational datasets easily accessible to business teams for targeted and personalized customer engagements. +The Data Graph acts as a semantic layer that allows businesses to define relationships between various entity datasets in the warehouse — such as accounts, subscriptions, households, and products — with the Segment Profile. It makes these relational datasets accessible to business teams for targeted and personalized customer engagements. The Data Graph helps power Linked Audiences and Linked Events. -- **[Linked Audiences](/docs/engage/audiences/linked-audiences/)**: Empowers marketers to effortlessly create targeted audiences by combining behavioral data from the Segment Profile and warehouse entity data within a self-serve, no-code interface. This tool accelerates audience creation, enabling precise targeting, enhanced customer personalization, and optimized marketing spend without the need for constant data team support. -- **[Linked Events](/docs/unify/data-graph/linked-events/)**: Allows data teams to enrich event streams in real time using datasets from data warehouses or lakes, and send these enriched events to any destination. Linked Events is available for both Destination Actions and Functions. + - **[Linked Audiences](/docs/engage/audiences/linked-audiences/)**: Empowers marketers to effortlessly create targeted audiences by combining behavioral data from the Segment Profile and warehouse entity data within a self-serve, no-code interface. This tool accelerates audience creation, enabling precise targeting, enhanced customer personalization, and optimized marketing spend without the need for constant data team support. The Data Graph is used in Linked Audiences for defining relationships between warehouse tables and views, which are then used to build audiences of Segment Profiles. + - **[Linked Events](/docs/unify/data-graph/linked-events/)**: Allows data teams to enrich event streams in real time using datasets from data warehouses or lakes, and send these enriched events to any destination. Linked Events is available for both Destination Actions and Functions. The Data Graph is used in Linked Events to specify which tables to use in enrichments. ## Prerequisites @@ -35,7 +35,7 @@ To get started with the Data Graph, set up the required permissions in your ware - Linked Audiences: [BigQuery](/docs/unify/data-graph/setup-guides/BigQuery-setup/), [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/), [Redshift](/docs/unify/data-graph/setup-guides/redshift-setup/), and [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/) - Linked Events: [BigQuery](/docs/unify/data-graph/setup-guides/BigQuery-setup/), [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/), [Redshift](/docs/unify/data-graph/setup-guides/redshift-setup/), and [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/) -To track the data sent to Segment on previous syncs, Segment uses [Reverse ETL](/docs/connections/reverse-etl/) infrastructure to store diffs in tables within a dedicated schema called `_segment_reverse_etl` in your data warehouse. You can choose which database or project in your warehouse this data lives in. +To track the data sent to Segment on previous syncs, Segment uses [Reverse ETL](/docs/connections/reverse-etl/) infrastructure to store changes between audience computes in tables within a dedicated schema called `_segment_reverse_etl` in your data warehouse. You can choose which database or project in your warehouse this data lives in. ## Step 2: Connect your warehouse to the Data Graph @@ -53,13 +53,13 @@ The Data Graph is a semantic layer that represents a subset of relevant business 1. [Using the visual (no-code) builder](#using-the-visual-builder) 2. [Using the code editor](#using-the-code-editor) -Segment recommends using the visual builder for most use cases because it helps to explore, understand, and update entities and relationships interactively. However, some teams may prefer the code editor to quickly bulk edit entities or relationships, or to copy the raw configuration into version control systems. The visual builder is the default experience, and you can switch between the two editors as needed by selecting the toggle for **Code editor (advanced)**. +Segment recommends you to use the visual builder for most use cases because it helps to explore, understand, and update entities and relationships interactively. However, some teams may prefer the code editor for advanced use cases to quickly bulk edit entities or relationships, or to copy the raw configuration into version control systems. The visual builder is the default experience, and you can switch between the two editors as needed by selecting the toggle for **Code editor (advanced)**. ### Key steps to build your Data Graph Follow these key steps to build your Data Graph: -1. Define your entities. An entity corresponds to a table, view, or materialized view in your warehouse. If you're just using Linked Events, this is the only step you need to do. If you're using Linked Audiences, you'll need to perform steps 2 and 3 as well. +1. Define your entities. An entity corresponds to a table, view, or materialized view in your warehouse. If you're only using Linked Events, this is the only step you need to do. If you're using Linked Audiences, you'll need to perform steps 2 and 3 as well. 2. Define the profile. This is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, and so on. Based on your Profiles Sync settings, the Data Graph attempts to define the profile block. 3. Define how your datasets are related to each other. The Data Graph preserves these relationships and carries this rich context to the destinations to unlock personalization. @@ -67,7 +67,7 @@ Follow these key steps to build your Data Graph: Similar to the concept of [cardinality in data modeling](https://w.wiki/Ay$u){:target="\_blank"}, the Data Graph supports 3 types of relationships: -- **Profile-to-entity relationship:** This is a relationship between your entity table and the Segment Profiles tables, and is the first level of relationship. +- **Profile-to-entity relationship:** This is the first level of relationship, and is the relationship between your entity table and the Segment Profiles tables. This relationship is required for Linked Audiences because it connects Segment Profiles data with all the entity data you have in your warehouse. - **1:many relationship:** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. - **many:many relationship:** For example, a user can have many `carts`, and each `cart` can have many `products`. However, these `products` can also belong to many `carts`. @@ -199,9 +199,9 @@ To define your entities: > info "" > Segments recommends that you select materialized views under the Profiles [Selective Sync settings](/docs/unify/profiles-sync/profiles-sync-setup/#step-3-set-up-selective-sync) to optimize warehouse compute costs. -To define the profile, navigate to the **Relationships** tab. You'll see a **Profile** node which is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, etc. There can only be one profile for a Data Graph. +To define the profile, navigate to the **Relationships** tab. You'll see a **Profile** node which is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this enables marketers to filter on profile traits, event history, etc. There can only be one profile for a Data Graph. -Segment creates default settings for your profile that are based on your Profiles Sync configuration. If you wish to update these settings, you may select the node and select **View / Edit profile**. Otherwise, you may proceed to Step 3C. +Segment creates default settings for your profile that are based on your [Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/) configuration. If you wish to update these settings, you may select the node and select **View / Edit profile**. Otherwise, you may proceed to Step 3C. Profile parameters include: @@ -230,7 +230,7 @@ Parameter | Definition `Select related entity` | The left-hand-side entity represents the Segment profile. On the right-hand-side, you can select which entity to relate it to.

Note: you can select the preview icon to preview both the Segment profile and the associated table or view representing the entity. `Relationship name` | A label displayed throughout your Segment space for Linked Audiences. This name can be modified at any time. `Description` (**Optional**) | An optional descriptor used to add additional context to the relationship. -`Join on external ID or trait` | The Segment external ID or trait you’ll use to join to your entity. To define a profile-to-entity relationship, reference your entity table and depending on your table columns. You can select either an [external identifier](/docs/unify/identity-resolution/externalids/) such as `user_id`, `email`, or `phone` or a [trait](/docs/unify/#enrich-profiles-with-traits) in your Unify Profiles. +`Join on external ID or trait` | The Segment external ID or trait you’ll use to join to your entity. To define a profile-to-entity relationship, reference your entity table. Depending on the column in it that you would like to link to your Segment profile, you can select either an [external identifier](/docs/unify/identity-resolution/externalids/) such as `user_id`, `email`, or `phone` or a [trait](/docs/unify/#enrich-profiles-with-traits) in your Unify Profiles. `Join key` | The column on the entity table that matches the external ID or trait selected directly above. > info "" From 4162e3b4b5020f08cc4ece19ab87a830b413e761 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 5 Jun 2025 11:03:27 -0400 Subject: [PATCH 025/438] update docs file structure to match app --- src/_data/sidenav/main.yml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 8fcf0bfa3e..18daaae20f 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -561,23 +561,20 @@ sections: title: Privacy Overview - section_title: Privacy Portal slug: protocols/portal - expanded: true section: - path: /privacy/portal title: Detect PII - path: /privacy/data-controls title: Data Controls and Alerts - - section_title: GDPR - slug: protocols/complying-with-the-gdpr - expanded: true + - section_title: Deletion and Suppression + slug: privacy/user-deletion-and-suppression section: - - path: /privacy/complying-with-the-gdpr - title: Complying With GDPR - path: /privacy/user-deletion-and-suppression title: User Deletion and Suppression + - path: /privacy/account-deletion + title: Account & Data Deletion - section_title: Consent Management slug: privacy/consent-management - expanded: true section: - path: /privacy/consent-management title: Consent Management Overview @@ -593,8 +590,8 @@ sections: title: Consent FAQs - path: /privacy/data-retention-policy title: Data Retention and Deletion Policy - - path: /privacy/account-deletion - title: Account & Data Deletion + - path: /privacy/complying-with-the-gdpr + title: Complying With GDPR - path: /privacy/hipaa-eligible-segment title: HIPAA Eligible Segment - path: /privacy/faq From d2e0fd5f85d978f91fbd0ce2ff18f4d1e65e240b Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 5 Jun 2025 13:02:18 -0400 Subject: [PATCH 026/438] update privacy portal overview page --- src/_data/privacy.yml | 43 ++++++++++++++++++++++++++++++-------- src/_data/sidenav/main.yml | 14 ++++++------- 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/src/_data/privacy.yml b/src/_data/privacy.yml index e03789d66c..3a48d58a34 100644 --- a/src/_data/privacy.yml +++ b/src/_data/privacy.yml @@ -3,22 +3,47 @@ sections: section_col: 6 section: - name: Detect and classify customer data - description: "The Privacy Portal helps automate preparing for new privacy regulations." + description: "The Privacy Portal helps streamline your response to new privacy regulations." path: /privacy/portal/ icon: media/classify.svg - name: Control what data you collect - description: "Take control over whether specific data is allowed to enter Segment" + description: "Take control of the data that comes into your workspace." path: /privacy/data-controls/ icon: media/control.svg -- section_title: Prepare for GDPR & CCPA +- section_title: Respect your end user's consent preferences + section_col: 4 + section: + - name: Consent in Segment Connections + description: "Manage end user consent in your downstream tools with Consent Management." + path: /privacy/consent-management/consent-in-segment-connections/ + - name: Consent in Reverse ETL + description: "Enforce consent preferences stored in your data warehouse." + path: /privacy/consent-management/consent-in-retl/ + - name: Consent stored on the Profile + description: "Create Audiences of users that consent to receive marketing communications." + path: /docs/privacy/consent-management/consent-in-unify/ + +- section_title: Delete and suppress user information section_col: 6 section: - - name: Understand and Comply with regulations - description: "Segment is committed to making it easier for you to comply with the GDPR." - path: /privacy/complying-with-the-gdpr/ - icon: media/comply.svg - - name: Delete and suppress data about end-users - description: "Easily remove your company's end-users from Segment and supported connections." + - name: Delete and suppress data about end users + description: "Remove your company's end users from Segment and supported connections." path: /privacy/user-deletion-and-suppression/ + icon: media/detect.svg + - name: Delete data from sources, a Unify space, or your entire workspace + description: "Remove all data from a source, a Unify space, or a workspace." + path: /privacy/account-deletion/ icon: media/delete.svg + +- section_title: Comply with privacy regulations + section_col: 12 + section: + - name: Data Deletion and Retention Policy + icon: media/comply.svg + description: "Manage your data accurately, efficiently and securely within clearly defined retention periods." + path: /privacy/data-retention-policy/ + - name: HIPAA-Eligible Segment + icon: media/database-star.svg + description: "Segment is a HIPAA eligible platform, and meets the data privacy and security requirements of healthcare customers and their stakeholders." + path: /privacy/hipaa-eligible-segment/ diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 18daaae20f..1385dab3cd 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -566,13 +566,6 @@ sections: title: Detect PII - path: /privacy/data-controls title: Data Controls and Alerts - - section_title: Deletion and Suppression - slug: privacy/user-deletion-and-suppression - section: - - path: /privacy/user-deletion-and-suppression - title: User Deletion and Suppression - - path: /privacy/account-deletion - title: Account & Data Deletion - section_title: Consent Management slug: privacy/consent-management section: @@ -588,6 +581,13 @@ sections: title: Consent in Reverse ETL - path: /privacy/consent-management/consent-faq title: Consent FAQs + - section_title: Deletion and Suppression + slug: privacy/user-deletion-and-suppression + section: + - path: /privacy/user-deletion-and-suppression + title: User Deletion and Suppression + - path: /privacy/account-deletion + title: Account & Data Deletion - path: /privacy/data-retention-policy title: Data Retention and Deletion Policy - path: /privacy/complying-with-the-gdpr From f39070b903bfc306173134349fe9108f34a4a5f8 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 5 Jun 2025 13:08:55 -0400 Subject: [PATCH 027/438] [netlify-build] --- src/_data/privacy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_data/privacy.yml b/src/_data/privacy.yml index 3a48d58a34..ea32d48c94 100644 --- a/src/_data/privacy.yml +++ b/src/_data/privacy.yml @@ -46,4 +46,4 @@ sections: - name: HIPAA-Eligible Segment icon: media/database-star.svg description: "Segment is a HIPAA eligible platform, and meets the data privacy and security requirements of healthcare customers and their stakeholders." - path: /privacy/hipaa-eligible-segment/ + path: /privacy/hipaa-eligible-segment/ \ No newline at end of file From 897d5842d47b70dcbc8ecec19ba3c77b793cb191 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 5 Jun 2025 14:59:25 -0400 Subject: [PATCH 028/438] [netlify-build] --- src/_data/privacy.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/_data/privacy.yml b/src/_data/privacy.yml index ea32d48c94..5ce0a82be3 100644 --- a/src/_data/privacy.yml +++ b/src/_data/privacy.yml @@ -24,26 +24,27 @@ sections: description: "Create Audiences of users that consent to receive marketing communications." path: /docs/privacy/consent-management/consent-in-unify/ -- section_title: Delete and suppress user information - section_col: 6 +- section_title: Delete user and workspace data + section_col: 4 section: - - name: Delete and suppress data about end users + - name: Comply with GDPR and CCPA by deleting information about your company's end users from Segment description: "Remove your company's end users from Segment and supported connections." path: /privacy/user-deletion-and-suppression/ - icon: media/detect.svg - name: Delete data from sources, a Unify space, or your entire workspace description: "Remove all data from a source, a Unify space, or a workspace." path: /privacy/account-deletion/ - icon: media/delete.svg - -- section_title: Comply with privacy regulations - section_col: 12 - section: - name: Data Deletion and Retention Policy - icon: media/comply.svg description: "Manage your data accurately, efficiently and securely within clearly defined retention periods." path: /privacy/data-retention-policy/ + +- section_title: Tools to comply with privacy regulations + section_col: 6 + section: - name: HIPAA-Eligible Segment icon: media/database-star.svg description: "Segment is a HIPAA eligible platform, and meets the data privacy and security requirements of healthcare customers and their stakeholders." + path: /privacy/hipaa-eligible-segment/ + - name: Complying with the GDPR + icon: media/comply.svg + description: "Learn more about the tools and strategies you can use to maintain GDPR compliance." path: /privacy/hipaa-eligible-segment/ \ No newline at end of file From 903985c52dca150149c828dfba3132898d91e242 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 5 Jun 2025 17:46:03 -0400 Subject: [PATCH 029/438] Update src/_data/privacy.yml Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/_data/privacy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_data/privacy.yml b/src/_data/privacy.yml index 5ce0a82be3..7846fac3a0 100644 --- a/src/_data/privacy.yml +++ b/src/_data/privacy.yml @@ -34,7 +34,7 @@ sections: description: "Remove all data from a source, a Unify space, or a workspace." path: /privacy/account-deletion/ - name: Data Deletion and Retention Policy - description: "Manage your data accurately, efficiently and securely within clearly defined retention periods." + description: "Manage your data accurately, efficiently, and securely within clearly defined retention periods." path: /privacy/data-retention-policy/ - section_title: Tools to comply with privacy regulations From ca9eb360772b86f9fe9d1cbca58b2fd1e2778560 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 5 Jun 2025 17:49:44 -0400 Subject: [PATCH 030/438] fix [netlify-build] --- src/_data/privacy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_data/privacy.yml b/src/_data/privacy.yml index 5ce0a82be3..5882a899bc 100644 --- a/src/_data/privacy.yml +++ b/src/_data/privacy.yml @@ -27,8 +27,8 @@ sections: - section_title: Delete user and workspace data section_col: 4 section: - - name: Comply with GDPR and CCPA by deleting information about your company's end users from Segment - description: "Remove your company's end users from Segment and supported connections." + - name: Delete and suppress data about end usersDelete and suppress data about end users + description: "Comply with GDPR and CCPA by deleting information from Segment about your company's end users." path: /privacy/user-deletion-and-suppression/ - name: Delete data from sources, a Unify space, or your entire workspace description: "Remove all data from a source, a Unify space, or a workspace." From ded4a495732cd3f361c090a10d2c8c9dfd7cae71 Mon Sep 17 00:00:00 2001 From: Gil Omer Date: Fri, 6 Jun 2025 10:00:01 -0400 Subject: [PATCH 031/438] add db2 to supported retl sources --- src/connections/reverse-etl/setup.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md index 0fdd98bd7c..88cf060cd7 100644 --- a/src/connections/reverse-etl/setup.md +++ b/src/connections/reverse-etl/setup.md @@ -28,6 +28,7 @@ To add your warehouse as a source: - [Azure Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup) - [BigQuery Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup) - [Databricks Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup) + - [DB2 Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup) - [Postgres Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup) - [Redshift Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup) - [Snowflake Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup) From 0157936ae0d81b0a74fe14fd4a1e4c52e9afc457 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 6 Jun 2025 10:23:27 -0400 Subject: [PATCH 032/438] fixes [netlify-build] --- src/_data/privacy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_data/privacy.yml b/src/_data/privacy.yml index c5681302d6..80a9090a28 100644 --- a/src/_data/privacy.yml +++ b/src/_data/privacy.yml @@ -21,13 +21,13 @@ sections: description: "Enforce consent preferences stored in your data warehouse." path: /privacy/consent-management/consent-in-retl/ - name: Consent stored on the Profile - description: "Create Audiences of users that consent to receive marketing communications." + description: "Create Audiences of users based on consent status." path: /docs/privacy/consent-management/consent-in-unify/ - section_title: Delete user and workspace data section_col: 4 section: - - name: Delete and suppress data about end usersDelete and suppress data about end users + - name: Delete and suppress data about end users description: "Comply with GDPR and CCPA by deleting information from Segment about your company's end users." path: /privacy/user-deletion-and-suppression/ - name: Delete data from sources, a Unify space, or your entire workspace From 53a2fc0fec42e28a0c0cf4c1c04757987df04381 Mon Sep 17 00:00:00 2001 From: Gil Omer Date: Fri, 6 Jun 2025 10:27:47 -0400 Subject: [PATCH 033/438] add db2 setup guide --- .../db2-setup.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md new file mode 100644 index 0000000000..6a4d561d04 --- /dev/null +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -0,0 +1,70 @@ +--- +title: DB2 Reverse ETL Setup +--- + +Set up DB2 as your Reverse ETL source. + +At a high level, when you set up DB2 for Reverse ETL, the configured database user must have read permissions on any tables involved in the query, and write permissions on a managed schema (`SEGMENT_REVERSE_ETL`) that Segment uses to track sync progress. Authentication is handled through username and password credentials configured in the Segment app. + + + +## Required permissions + +In order to run a Reverse-ETL sync in a DB2 warehouse, Segment needs the following permissions: + +1. **Permission to read from all tables used in the model** (i.e., the tables included in your SELECT query). +2. **Permission to create and manage a schema** for tracking sync metadata. + + +> info "Use a dedicated user for Segment" +> It's recommended to create a dedicated DB2 user for Segment with access limited to only the relevant schemas and tables. + +1. Open the Db2 warehouse and navigate to **Administration > User management**. +2. Click **Add**. +3. Create a new user account with *user* privileges. Make sure you save the username and password, as these are required to set up the Segment configuration in a later step. + + +> info "" +> The `SEGMENT_REVERSE_ETL` schema will be created and managed by Segment to track the status of each sync. +> You can also choose to create this schema yourself by running: +> `CREATE SCHEMA SEGMENT_REVERSE_ETL` +> and explicitly grant Segment privileges on it. + + + +Run the below SQL commands to grant Segment the required permissions: + +```sql +-- Grant permissions to create manage objects within the SEGMENT_REVERSE_ETL schema +GRANT CREATEIN, DROPIN ON SCHEMA SEGMENT_REVERSE_ETL TO USER ; +GRANT CREATETAB ON DATABASE TO USER ; + +-- Grant read access on each table used in the model +GRANT SELECT ON TABLE . TO USER ; +``` + + +## Set up guide + +To set up DB2 as your Reverse ETL source: + +1. Make sure your DB2 database is network-accessible from [Segment's IPs](/docs/connections/storage/warehouses/faq/#which-ips-should-i-allowlist). +2. Open [your Segment workspace](https://app.segment.com/workspaces){:target="_blank"}. +3. Navigate to **Connections > Sources** and select the **Reverse ETL** tab. +4. Click **+ Add Reverse ETL source**. +5. Select **DB2** and click **Add Source**. +6. Enter the configuration settings for your DB2 source: + * Hostname: `` + * Port: `` (default) + * Database: `` + * Username: `` + * Password: `` + * Schema [optional]: If not specified, Segment will use the user’s default schema +7. Click **Test Connection** to validate the setup. +8. If the connection is successful, click **Add source**. + +> warning "" +> Segment only supports user/password authentication for DB2. +> Ensure that your DB2 instance is configured to allow remote connections and the user has the necessary permissions. + +After you've successfully added your DB2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. From 0fb8cb6842617a2c97b55cf46fab8293aa6f4b11 Mon Sep 17 00:00:00 2001 From: Gil Omer Date: Fri, 6 Jun 2025 17:03:34 -0400 Subject: [PATCH 034/438] [netlify-build] From 40d076082b761c136ba68b524b801604f16b1119 Mon Sep 17 00:00:00 2001 From: Ravi Bansal Date: Fri, 6 Jun 2025 16:54:40 -0700 Subject: [PATCH 035/438] Fixing review comments --- .../actions-amazon-conversions-api/index.md | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md index 929e220ebd..5732f46bfb 100644 --- a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md @@ -1,5 +1,5 @@ --- -title: Amazon Conversions API +title: Amazon Conversions API (Actions) Destination id: 683ef14a3f9aac157e3a3446 hide-personas-partial: true hide-boilerplate: false @@ -8,9 +8,9 @@ private: false hidden: false --- -The Amazon Conversions API destination is a server-to-server integration with the Amazon Events API. This destination allows advertisers to send real-time or offline conversion events data from Segment directly to Amazon without needing Amazon Ad Tag (AAT) setup. +The Amazon Conversions API (Actions) destination is a server-to-server integration with the Amazon Events API. This destination allows advertisers to send real-time or offline conversion events data from Segment directly to Amazon without needing Amazon Ad Tag (AAT) setup. -This enables advertisers to evaluate the effectiveness of their Amazon marketing campaigns regardless of the location of the conversion and utilize this information to drive campaign optimization. Events API can help strengthen performance and decrease cost per action with more complete attribution, improved data reliability, and better optimized delivery. +This enables advertisers to evaluate the effectiveness of their Amazon marketing campaigns regardless of the location of the conversion and utilize this information to drive campaign optimization. The Events API can help strengthen performance and decrease cost per action with more complete attribution, improved data reliability, and better optimized delivery. ## Benefits of Amazon Conversions API (Actions) @@ -21,9 +21,9 @@ The Amazon Conversions API destination provides the following benefits: - **Prebuilt event mappings**. Standard events like `Add to Shopping Cart` and `Checkout` come preconfigured with recommended parameters. - **Multiple event types**. Support for various conversion event types including purchases, sign-ups, leads, and more. - **Multi-platform support**. Send events from websites, Android apps, iOS apps, Fire TV, or offline sources. -- **Comprehensive user matching**. Multiple matching keys available including email, phone, name, address, and mobile advertising IDs. +- **Comprehensive user matching**. Multiple matching keys are available including email, phone, name, address, and mobile advertising IDs. - **Data normalization**. Data is normalized before it's hashed to send to Amazon Conversions. -- **Custom attributes**. Include additional context with event-specific attributes. +- **Custom attributes**. Includes additional context with event-specific attributes. - **Consent management**. Built-in support for various privacy frameworks including Amazon consent options, TCF, and GPP. ## Getting started @@ -34,13 +34,13 @@ To connect the Amazon Conversions API Destination: 1. From the Segment web app, go to **Connections > Catalog**. 2. Search for **Amazon Conversions Api** in the top right corner. -3. From the search results under **Destinations**, click on **Amazon Conversions Api** destination and then click on **Add destination** -4. Select the source that will send data to Amazon Conversions API and follow the prompts to name your destination. +3. From the search results under **Destinations**, select the **Amazon Conversions Api** destination and then click **Add destination** +4. Select the source that will send data to the Amazon Conversions API destination and follow the prompts to name your destination. 5. On the **Basic Settings** page, enter: - Destination name - - **Region** - Select North America (NA), Europe (EU), or Far East (FE) based on your Amazon Advertising account - - **Amazon Advertiser ID** - Your Amazon Advertising Account ID -6. Authenticate via OAuth when prompted. + - **Region:** - Select North America (NA), Europe (EU), or Far East (FE) based on your Amazon Advertising account + - **Amazon Advertiser ID:** - Your Amazon Advertising Account ID +6. Authenticate using OAuth when prompted. 7. Go to the **Mappings** tab. Prebuilt mappings, like `Checkout`, `Search`, and `Add to Shopping Cart`, include predefined parameters. 8. To create a new mapping: - Click **New Mapping** and select **Track Conversion**. @@ -74,18 +74,18 @@ Amazon Conversions API supports the following standard event types: ## Match keys for user identification -Amazon requires at least one match key to identify the user associated with each conversion event. The following match keys are supported: +Amazon requires at least one match key to identify the user associated with each conversion event. Amazon Conversions API supports the following match keys: | Match Key | Description | | --------- | ----------- | -| email | User's email address (will be hashed) | -| phone | User's phone number (will be hashed) | -| firstName | User's first name (will be hashed) | -| lastName | User's last name (will be hashed) | -| address | User's street address (will be hashed) | -| city | User's city (will be hashed) | -| state | User's state (will be hashed) | -| postalCode | User's postal code (will be hashed) | +| email | User's email address (is hashed) | +| phone | User's phone number (is hashed) | +| firstName | User's first name (is hashed) | +| lastName | User's last name (is hashed) | +| address | User's street address (is hashed) | +| city | User's city (is hashed) | +| state | User's state (is hashed) | +| postalCode | User's postal code (is hashed) | | maid | Mobile advertising ID (ADID, IDFA, or FIREADID) | | rampId | RAMP ID for attribution to traffic events | | matchId | Custom match ID for the user | @@ -94,7 +94,7 @@ Segment automatically maps these fields from standard identity traits when avail ## Consent management -For EU advertisers and users, Amazon requires consent information to be included with conversion events. The Amazon Conversions API supports several consent mechanisms: +For EU advertisers and users, Amazon requires consent information to be included with conversion events. The Amazon Conversions API supports several consent mechanisms. ### Geographic consent (IP Address) @@ -124,7 +124,7 @@ The Amazon Conversions API supports data processing options to control how event | Option | Description | | ------ | ----------- | -| LIMITED_DATA_USE | Signals that an event should be processed with limited data use restrictions. Events marked with this option will not be used for advertising purposes. | +| LIMITED_DATA_USE | Signals that an event should be processed with limited data use restrictions. Events marked with this option won't be used for advertising purposes. | ## Custom attributes From efae4b289f7bde34ab9b48ae94c287f821667f03 Mon Sep 17 00:00:00 2001 From: Gil Omer Date: Fri, 6 Jun 2025 22:28:55 -0400 Subject: [PATCH 036/438] [netlify-build] add DB2 source to dropdown menu --- src/_data/sidenav/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 8fcf0bfa3e..d73e7ddb26 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -210,6 +210,8 @@ sections: title: BigQuery Reverse ETL Setup - path: /connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup title: Databricks Reverse ETL Setup + - path: /connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup + title: DB2 Reverse ETL Setup - path: /connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup title: Postgres Reverse ETL Setup - path: /connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup From cd96a3a51cd2df0f8ed021f6da252a73e5556413 Mon Sep 17 00:00:00 2001 From: Gil Omer Date: Sun, 8 Jun 2025 12:12:15 -0400 Subject: [PATCH 037/438] [netlify-build] small fixes --- .../reverse-etl-source-setup-guides/db2-setup.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 6a4d561d04..b7ef7cf8df 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -21,7 +21,7 @@ In order to run a Reverse-ETL sync in a DB2 warehouse, Segment needs the followi 1. Open the Db2 warehouse and navigate to **Administration > User management**. 2. Click **Add**. -3. Create a new user account with *user* privileges. Make sure you save the username and password, as these are required to set up the Segment configuration in a later step. +3. Create a new user with *user* privileges. Make sure you save the username and password, as these are required to set up the Segment configuration in a later step. > info "" @@ -55,7 +55,7 @@ To set up DB2 as your Reverse ETL source: 5. Select **DB2** and click **Add Source**. 6. Enter the configuration settings for your DB2 source: * Hostname: `` - * Port: `` (default) + * Port: `` * Database: `` * Username: `` * Password: `` @@ -63,8 +63,4 @@ To set up DB2 as your Reverse ETL source: 7. Click **Test Connection** to validate the setup. 8. If the connection is successful, click **Add source**. -> warning "" -> Segment only supports user/password authentication for DB2. -> Ensure that your DB2 instance is configured to allow remote connections and the user has the necessary permissions. - After you've successfully added your DB2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. From b6f7a50dfa21a2c2117247850f43c90d6c04029f Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Mon, 9 Jun 2025 08:50:53 +0100 Subject: [PATCH 038/438] Add destination docs --- .../destinations/catalog/dotdigital/index.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/connections/destinations/catalog/dotdigital/index.md diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md new file mode 100644 index 0000000000..92eb5b2ead --- /dev/null +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -0,0 +1,34 @@ +--- +title: Dotdigital Destination +--- +{% include content/plan-grid.md name="actions" %} + +[Dotdigital](https://dotdigital.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is an all-in-one customer experience and data platform (CXDP) that empowers marketing teams to exceed customer expectations with highly personalized cross-channel journeys. + +This destination is maintained by Dotdigital. For any issues with the destination, [contact their Support team](mailto:support@dotdigital.com). + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Dotdigital". +2. Select Dotdigital and click **Add Destination**. +3. Select an existing Source to connect to Dotdigital (Actions). +4. Log in to your [Dotdigital account](https://login.dotdigital.com/){:target="_blank"}. Expand the User menu in the bottom left and go to Settings > Access > API users. +5. Create a [new API user](https://developer.dotdigital.com/docs/setting-up-an-api-user). +6. In Segment, select your Dotdigital account region and paste the **API user** and **API password** in the Dotdigital destination settings. + +{% include components/actions-fields.html %} + +## Action notes + +### Add Contact to List + +_Lists_ +- [Create a contact list in Dotdigital](https://support.dotdigital.com/en/articles/8198769-create-a-contact-list). +- Select your list from the dropdown in the Segment event mapping. + +_Data Fields_ +- [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields). +- Map Segment properties to Dotdigital data fields in the Segment event mapping. + +### Enrol Contact to Program +- The action will create a contact in Dotdigital for the identifier you provide, if they don't exist already. From 9f68558f345706dae2c2971ecdd2c460bf783ffa Mon Sep 17 00:00:00 2001 From: Gil Omer Date: Mon, 9 Jun 2025 10:04:21 -0400 Subject: [PATCH 039/438] [netlify-build] more fixes --- .../db2-setup.md | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index b7ef7cf8df..f72827138d 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -10,57 +10,61 @@ At a high level, when you set up DB2 for Reverse ETL, the configured database us ## Required permissions -In order to run a Reverse-ETL sync in a DB2 warehouse, Segment needs the following permissions: +In order to run a Reverse ETL sync in a DB2 warehouse, Segment needs the following permissions: -1. **Permission to read from all tables used in the model** (i.e., the tables included in your SELECT query). -2. **Permission to create and manage a schema** for tracking sync metadata. +* **Permission to read from all tables used in the model** (i.e., the tables included in your SELECT query). +* **Permission to create and manage a schema** for tracking sync metadata. +* **Permission to create tables in the database**, needed for internal metadata tables. > info "Use a dedicated user for Segment" > It's recommended to create a dedicated DB2 user for Segment with access limited to only the relevant schemas and tables. -1. Open the Db2 warehouse and navigate to **Administration > User management**. +1. In IBM Cloud, go to your DB2 instance and navigate to **Administration > User management**. 2. Click **Add**. -3. Create a new user with *user* privileges. Make sure you save the username and password, as these are required to set up the Segment configuration in a later step. +3. Create a new user with *user* privileges. Make sure to save the username and password—these are needed to configure the Segment + source connection later. > info "" > The `SEGMENT_REVERSE_ETL` schema will be created and managed by Segment to track the status of each sync. > You can also choose to create this schema yourself by running: > `CREATE SCHEMA SEGMENT_REVERSE_ETL` -> and explicitly grant Segment privileges on it. +> Then grant Segment the appropriate privileges. -Run the below SQL commands to grant Segment the required permissions: +Run the following SQL commands to grant Segment the required permissions: ```sql --- Grant permissions to create manage objects within the SEGMENT_REVERSE_ETL schema +-- Grant permissions to create and manage objects within the SEGMENT_REVERSE_ETL schema GRANT CREATEIN, DROPIN ON SCHEMA SEGMENT_REVERSE_ETL TO USER ; + +-- Grant permission to create tables in the database GRANT CREATETAB ON DATABASE TO USER ; -- Grant read access on each table used in the model GRANT SELECT ON TABLE . TO USER ; +-- Repeat the above command for all tables involved in your model ``` -## Set up guide +## Set Up Guide To set up DB2 as your Reverse ETL source: 1. Make sure your DB2 database is network-accessible from [Segment's IPs](/docs/connections/storage/warehouses/faq/#which-ips-should-i-allowlist). 2. Open [your Segment workspace](https://app.segment.com/workspaces){:target="_blank"}. -3. Navigate to **Connections > Sources** and select the **Reverse ETL** tab. +3. Navigate to **Connections > Sources** then select the **Reverse ETL** tab. 4. Click **+ Add Reverse ETL source**. 5. Select **DB2** and click **Add Source**. -6. Enter the configuration settings for your DB2 source: +6. Fill in the DB2 connection settings: * Hostname: `` * Port: `` * Database: `` * Username: `` * Password: `` - * Schema [optional]: If not specified, Segment will use the user’s default schema 7. Click **Test Connection** to validate the setup. 8. If the connection is successful, click **Add source**. -After you've successfully added your DB2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. +After successfully adding your DB2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. From 41b5cd9c403fabb04d257f7713d960ad2e982474 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Mon, 9 Jun 2025 14:36:44 -0700 Subject: [PATCH 040/438] edits --- src/unify/data-graph/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md index 371bef5adb..153fe46f0a 100644 --- a/src/unify/data-graph/index.md +++ b/src/unify/data-graph/index.md @@ -6,10 +6,10 @@ redirect_from: - '/unify/data-graph/data-graph' --- -The Data Graph acts as a semantic layer that allows businesses to define relationships between various entity datasets in the warehouse — such as accounts, subscriptions, households, and products — with the Segment Profile. It makes these relational datasets accessible to business teams for targeted and personalized customer engagements. The Data Graph helps power Linked Audiences and Linked Events. +The Data Graph acts as a semantic layer that enables businesses to define relationships between various entity datasets in the warehouse — such as accounts, subscriptions, households, and products — with the Segment Profile. It makes these relational datasets accessible to business teams for targeted and personalized customer engagements. The Data Graph powers both Linked Audiences and Linked Events. - **[Linked Audiences](/docs/engage/audiences/linked-audiences/)**: Empowers marketers to effortlessly create targeted audiences by combining behavioral data from the Segment Profile and warehouse entity data within a self-serve, no-code interface. This tool accelerates audience creation, enabling precise targeting, enhanced customer personalization, and optimized marketing spend without the need for constant data team support. The Data Graph is used in Linked Audiences for defining relationships between warehouse tables and views, which are then used to build audiences of Segment Profiles. - - **[Linked Events](/docs/unify/data-graph/linked-events/)**: Allows data teams to enrich event streams in real time using datasets from data warehouses or lakes, and send these enriched events to any destination. Linked Events is available for both Destination Actions and Functions. The Data Graph is used in Linked Events to specify which tables to use in enrichments. + - **[Linked Events](/docs/unify/data-graph/linked-events/)**: Enables data teams to enrich event streams in real time using datasets from data warehouses or lakes, and send these enriched events to any destination. Linked Events is available for both Destination Actions and Functions. The Data Graph is used in Linked Events to specify which tables to use in enrichments. ## Prerequisites @@ -552,7 +552,7 @@ A data consumer refers to a Segment feature like Linked Events and Linked Audien Upon editing and saving changes to your Data Graph, a modal will pop up to warn of breaking and/or potential breaking changes to your data consumers. You must acknowledge and click **Confirm and save** in order to proceed. -- **Definite breaking change**: Occurs when deleting an entity or relationship that is being referenced by a data consumer. Data consumers affected by breaking changes will fail on the next run. Note: The entity and relationship slug are immutable and treated as a delete if you make changes. You can modify the label. +- **Definite breaking change**: Occurs when deleting an entity or relationship that is being referenced by a data consumer. Data consumers affected by breaking changes will fail on the next run. Note: The entity and relationship slug are immutable and treated as a delete if you make changes. You can modify the name. - **Potential breaking change**: Some changes such as updating the entity `table_ref` or `primary_key`, may lead to errors with data consumers. If there’s a breaking change, the data consumer will fail on the next run. Unaffected data consumers will continue to work. ### Detect warehouse breaking changes From 95009565c580779fb0f04a2fa0fdfbfbacbfceeb Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Wed, 11 Jun 2025 14:25:33 +0100 Subject: [PATCH 041/438] Update steps --- src/connections/destinations/catalog/dotdigital/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index 92eb5b2ead..0e28112970 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -13,8 +13,9 @@ This destination is maintained by Dotdigital. For any issues with the destinatio 2. Select Dotdigital and click **Add Destination**. 3. Select an existing Source to connect to Dotdigital (Actions). 4. Log in to your [Dotdigital account](https://login.dotdigital.com/){:target="_blank"}. Expand the User menu in the bottom left and go to Settings > Access > API users. -5. Create a [new API user](https://developer.dotdigital.com/docs/setting-up-an-api-user). -6. In Segment, select your Dotdigital account region and paste the **API user** and **API password** in the Dotdigital destination settings. +5. Note your API region (r1, r2 or r3) for step 7. +6. Create a [new API user](https://developer.dotdigital.com/docs/setting-up-an-api-user). +7. In Segment, select your Dotdigital account region and paste the **API user** and **API password** in the Dotdigital destination settings. {% include components/actions-fields.html %} From 11ab7804dada11d14383e7d49ea723e035a37716 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:38:12 -0400 Subject: [PATCH 042/438] Update src/_data/sidenav/main.yml Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/_data/sidenav/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index d73e7ddb26..ca54f8f1a6 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -211,7 +211,7 @@ sections: - path: /connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup title: Databricks Reverse ETL Setup - path: /connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup - title: DB2 Reverse ETL Setup + title: Db2 Reverse ETL Setup - path: /connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup title: Postgres Reverse ETL Setup - path: /connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup From 1dcbf58be15a0f67869105a34ee5ca012f1db4fc Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:38:30 -0400 Subject: [PATCH 043/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index f72827138d..031711f608 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -1,5 +1,5 @@ --- -title: DB2 Reverse ETL Setup +title: Db2 Reverse ETL Setup --- Set up DB2 as your Reverse ETL source. From 73240ca0b890fcd196e0c2a5e279588549e62f71 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:38:37 -0400 Subject: [PATCH 044/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 031711f608..f53e0dbf11 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -2,7 +2,7 @@ title: Db2 Reverse ETL Setup --- -Set up DB2 as your Reverse ETL source. +Set up Db2 as your Reverse ETL source. At a high level, when you set up DB2 for Reverse ETL, the configured database user must have read permissions on any tables involved in the query, and write permissions on a managed schema (`SEGMENT_REVERSE_ETL`) that Segment uses to track sync progress. Authentication is handled through username and password credentials configured in the Segment app. From 3c5c38c6e25a8de55a5d6fa715aa3beb65ceec78 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:38:48 -0400 Subject: [PATCH 045/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index f53e0dbf11..dfdc448ee8 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -4,7 +4,7 @@ title: Db2 Reverse ETL Setup Set up Db2 as your Reverse ETL source. -At a high level, when you set up DB2 for Reverse ETL, the configured database user must have read permissions on any tables involved in the query, and write permissions on a managed schema (`SEGMENT_REVERSE_ETL`) that Segment uses to track sync progress. Authentication is handled through username and password credentials configured in the Segment app. +At a high level, when you set up Db2 for Reverse ETL, the configured database user must have read permissions on any tables involved in the query and write permissions on a managed schema (`SEGMENT_REVERSE_ETL`) that Segment uses to track sync progress. Segment authenticates with your Db2 instance through a username and password. From 7086a9fe94d503c7b682a99a67f5534c117c2a4a Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:38:56 -0400 Subject: [PATCH 046/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index dfdc448ee8..a68b8b00ef 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -12,7 +12,7 @@ At a high level, when you set up Db2 for Reverse ETL, the configured database us In order to run a Reverse ETL sync in a DB2 warehouse, Segment needs the following permissions: -* **Permission to read from all tables used in the model** (i.e., the tables included in your SELECT query). +* **Permission to read from all tables used in the model**: The user must be able to access all tables included in your SELECT query. * **Permission to create and manage a schema** for tracking sync metadata. * **Permission to create tables in the database**, needed for internal metadata tables. From fab1552266e19b0310e7e8ae756e36abbc916b9c Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:39:05 -0400 Subject: [PATCH 047/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index a68b8b00ef..662a6e6f63 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -10,7 +10,7 @@ At a high level, when you set up Db2 for Reverse ETL, the configured database us ## Required permissions -In order to run a Reverse ETL sync in a DB2 warehouse, Segment needs the following permissions: +In order to run a Reverse ETL sync in your Db2 warehouse, you'll create a user with the following permissions: * **Permission to read from all tables used in the model**: The user must be able to access all tables included in your SELECT query. * **Permission to create and manage a schema** for tracking sync metadata. From b98e62f05b2862c4dc819fe293a95cb822f90fce Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:39:16 -0400 Subject: [PATCH 048/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 662a6e6f63..01a5974710 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -13,7 +13,7 @@ At a high level, when you set up Db2 for Reverse ETL, the configured database us In order to run a Reverse ETL sync in your Db2 warehouse, you'll create a user with the following permissions: * **Permission to read from all tables used in the model**: The user must be able to access all tables included in your SELECT query. -* **Permission to create and manage a schema** for tracking sync metadata. +* **Permission to create and manage a schema**: Segment creates and manages a schema in your warehouse to track sync metadata. * **Permission to create tables in the database**, needed for internal metadata tables. From 395ae0fefa28cdaf5aed8bb891b2cca74c8ec7da Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:39:24 -0400 Subject: [PATCH 049/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 01a5974710..959a8b902d 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -14,7 +14,7 @@ In order to run a Reverse ETL sync in your Db2 warehouse, you'll create a user w * **Permission to read from all tables used in the model**: The user must be able to access all tables included in your SELECT query. * **Permission to create and manage a schema**: Segment creates and manages a schema in your warehouse to track sync metadata. -* **Permission to create tables in the database**, needed for internal metadata tables. +* **Permission to create tables in the database**: Segment creates metadata tables in your warehouse. > info "Use a dedicated user for Segment" From 41f68c771c412ceb6ffb2aa30e3b6c42475b50b0 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:39:42 -0400 Subject: [PATCH 050/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 959a8b902d..eb60c3e5b0 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -17,8 +17,8 @@ In order to run a Reverse ETL sync in your Db2 warehouse, you'll create a user w * **Permission to create tables in the database**: Segment creates metadata tables in your warehouse. -> info "Use a dedicated user for Segment" -> It's recommended to create a dedicated DB2 user for Segment with access limited to only the relevant schemas and tables. +> info "Create a dedicated user for Segment's Reverse ETL connection" +> Segment recommends that you create a dedicated Db2 user for when setting up Reverse ETL. This user should only have access to the relevant schemas and tables you'll need to access during syncs between Segment and your warehouse. 1. In IBM Cloud, go to your DB2 instance and navigate to **Administration > User management**. 2. Click **Add**. From 67039972db0eac918f27c3ecc7616e363f2e8ae7 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:39:50 -0400 Subject: [PATCH 051/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index eb60c3e5b0..ea2ff2337f 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -20,7 +20,7 @@ In order to run a Reverse ETL sync in your Db2 warehouse, you'll create a user w > info "Create a dedicated user for Segment's Reverse ETL connection" > Segment recommends that you create a dedicated Db2 user for when setting up Reverse ETL. This user should only have access to the relevant schemas and tables you'll need to access during syncs between Segment and your warehouse. -1. In IBM Cloud, go to your DB2 instance and navigate to **Administration > User management**. +1. In IBM Cloud, go to your Db2 instance and navigate to **Administration > User management**. 2. Click **Add**. 3. Create a new user with *user* privileges. Make sure to save the username and password—these are needed to configure the Segment source connection later. From 7eeb28c122c1e15e2ea7ea90d5ef2ef1bb7f2970 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:40:16 -0400 Subject: [PATCH 052/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index ea2ff2337f..7bcb50b37f 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -22,8 +22,7 @@ In order to run a Reverse ETL sync in your Db2 warehouse, you'll create a user w 1. In IBM Cloud, go to your Db2 instance and navigate to **Administration > User management**. 2. Click **Add**. -3. Create a new user with *user* privileges. Make sure to save the username and password—these are needed to configure the Segment - source connection later. +3. Create a new user with *user* privileges. Note the username and password of the user you created, as you'll need this information to set up the Segment source connection in a later step. > info "" From 81e188c2ed96b3e71de71c654d498c960f6af1d7 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:40:33 -0400 Subject: [PATCH 053/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 7bcb50b37f..8cf7cd95cd 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -26,10 +26,10 @@ In order to run a Reverse ETL sync in your Db2 warehouse, you'll create a user w > info "" -> The `SEGMENT_REVERSE_ETL` schema will be created and managed by Segment to track the status of each sync. +> Segment creates and manages the `SEGMENT_REVERSE_ETL` schema to track the status of each sync. > You can also choose to create this schema yourself by running: > `CREATE SCHEMA SEGMENT_REVERSE_ETL` -> Then grant Segment the appropriate privileges. +> After you've created the schema, grant Segment the appropriate privileges. From d8a752c819d8a68ed00b64eea85fe6d2d65a0d63 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:40:54 -0400 Subject: [PATCH 054/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 8cf7cd95cd..248c55cee4 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -48,7 +48,7 @@ GRANT SELECT ON TABLE . TO USER ; ``` -## Set Up Guide +## Set up guide To set up DB2 as your Reverse ETL source: From b7b8003d9bf158be335ae3aadcc312a595dc033a Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:41:01 -0400 Subject: [PATCH 055/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 248c55cee4..5e63d4c5bb 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -50,7 +50,7 @@ GRANT SELECT ON TABLE . TO USER ; ## Set up guide -To set up DB2 as your Reverse ETL source: +To set up Db2 as your Reverse ETL source: 1. Make sure your DB2 database is network-accessible from [Segment's IPs](/docs/connections/storage/warehouses/faq/#which-ips-should-i-allowlist). 2. Open [your Segment workspace](https://app.segment.com/workspaces){:target="_blank"}. From f1cb5598eca5e44802fb6932a0295d2fd1d9a663 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:41:15 -0400 Subject: [PATCH 056/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 5e63d4c5bb..1ad061f3e2 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -52,7 +52,7 @@ GRANT SELECT ON TABLE . TO USER ; To set up Db2 as your Reverse ETL source: -1. Make sure your DB2 database is network-accessible from [Segment's IPs](/docs/connections/storage/warehouses/faq/#which-ips-should-i-allowlist). +1. Confirm that your Db2 database is network-accessible from the [IP address that Segment uses to connect to your warehouse](/docs/connections/storage/warehouses/faq/#which-ips-should-i-allowlist). 2. Open [your Segment workspace](https://app.segment.com/workspaces){:target="_blank"}. 3. Navigate to **Connections > Sources** then select the **Reverse ETL** tab. 4. Click **+ Add Reverse ETL source**. From c036ce8d840604c677259cead15bb00f10ab79d5 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:41:21 -0400 Subject: [PATCH 057/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 1ad061f3e2..a03f7d6582 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -56,7 +56,7 @@ To set up Db2 as your Reverse ETL source: 2. Open [your Segment workspace](https://app.segment.com/workspaces){:target="_blank"}. 3. Navigate to **Connections > Sources** then select the **Reverse ETL** tab. 4. Click **+ Add Reverse ETL source**. -5. Select **DB2** and click **Add Source**. +5. Select **Db2** and click **Add Source**. 6. Fill in the DB2 connection settings: * Hostname: `` * Port: `` From 66ee83d3d9b95d7d483d2c0f970826bf46fd38b9 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:41:27 -0400 Subject: [PATCH 058/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index a03f7d6582..8571b40a44 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -57,7 +57,7 @@ To set up Db2 as your Reverse ETL source: 3. Navigate to **Connections > Sources** then select the **Reverse ETL** tab. 4. Click **+ Add Reverse ETL source**. 5. Select **Db2** and click **Add Source**. -6. Fill in the DB2 connection settings: +6. Fill in the following Db2 connection settings: * Hostname: `` * Port: `` * Database: `` From d11879789358fcbc92cb57813bc7fc0367b92d45 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:41:37 -0400 Subject: [PATCH 059/438] Update src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 8571b40a44..915a9d71bc 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -66,4 +66,4 @@ To set up Db2 as your Reverse ETL source: 7. Click **Test Connection** to validate the setup. 8. If the connection is successful, click **Add source**. -After successfully adding your DB2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. +After successfully adding your Db2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. From f1a05db2061d4b5ae4c1da87f3ac22bebba18bf0 Mon Sep 17 00:00:00 2001 From: Gil Omer <80776787+gilsegment@users.noreply.github.com> Date: Wed, 11 Jun 2025 10:41:44 -0400 Subject: [PATCH 060/438] Update src/connections/reverse-etl/setup.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/reverse-etl/setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md index 88cf060cd7..4172e6e281 100644 --- a/src/connections/reverse-etl/setup.md +++ b/src/connections/reverse-etl/setup.md @@ -28,7 +28,7 @@ To add your warehouse as a source: - [Azure Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/azure-setup) - [BigQuery Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/bigquery-setup) - [Databricks Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup) - - [DB2 Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup) + - [Db2 Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup) - [Postgres Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup) - [Redshift Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup) - [Snowflake Reverse ETL setup guide](/docs/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup) From 1070edbffe9c6cae52071f733c9c3e287f539d0c Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Wed, 11 Jun 2025 17:24:58 +0100 Subject: [PATCH 061/438] Update src/connections/destinations/catalog/dotdigital/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/dotdigital/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index 0e28112970..38cc26dfe0 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -1,5 +1,7 @@ --- title: Dotdigital Destination +id: +beta: true --- {% include content/plan-grid.md name="actions" %} From f80b938d915f96781010f2bb1a737558349ccac0 Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Wed, 11 Jun 2025 17:25:10 +0100 Subject: [PATCH 062/438] Update src/connections/destinations/catalog/dotdigital/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/dotdigital/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index 38cc26dfe0..eb78fe0a57 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -7,7 +7,7 @@ beta: true [Dotdigital](https://dotdigital.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is an all-in-one customer experience and data platform (CXDP) that empowers marketing teams to exceed customer expectations with highly personalized cross-channel journeys. -This destination is maintained by Dotdigital. For any issues with the destination, [contact their Support team](mailto:support@dotdigital.com). +This destination is maintained by Dotdigital. For any issues with the destination, [contact the Dotdigital Support team](mailto:support@dotdigital.com). ## Getting started From 06c2ff3b4f42b701ad3e99cfd0702020fa16161a Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 11 Jun 2025 14:39:51 -0700 Subject: [PATCH 063/438] added images [netlify-build] --- src/unify/data-graph/index.md | 5 +++++ src/unify/images/data-graph-entities-tab.png | Bin 0 -> 232507 bytes .../images/relationships-tab-data-graph.png | Bin 0 -> 395346 bytes 3 files changed, 5 insertions(+) create mode 100644 src/unify/images/data-graph-entities-tab.png create mode 100644 src/unify/images/relationships-tab-data-graph.png diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md index 153fe46f0a..dd3327e2cb 100644 --- a/src/unify/data-graph/index.md +++ b/src/unify/data-graph/index.md @@ -181,6 +181,9 @@ The first step in creating a Data Graph is to define your entities. An entity co To define your entities: 1. Navigate to the **Entities** tab and select **Add Entity**. + + The Entities tab when creating the Data Graph + 2. Provide the following information: Parameter | Definition @@ -201,6 +204,8 @@ To define your entities: To define the profile, navigate to the **Relationships** tab. You'll see a **Profile** node which is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this enables marketers to filter on profile traits, event history, etc. There can only be one profile for a Data Graph. +The Relationships tab when creating the Data Graph + Segment creates default settings for your profile that are based on your [Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/) configuration. If you wish to update these settings, you may select the node and select **View / Edit profile**. Otherwise, you may proceed to Step 3C. diff --git a/src/unify/images/data-graph-entities-tab.png b/src/unify/images/data-graph-entities-tab.png new file mode 100644 index 0000000000000000000000000000000000000000..1946ddb30ae6b0fc42adfe6652709e38e5df878b GIT binary patch literal 232507 zcmeFZcT`hd*Ds0%3#ixtl`5!6FH)pq0a2s~gkA)sH|aG*R7B~Z2-2k(dhacQbc9et zCsG3hh#^1-X=n4i&s*+y&$uuCbH=!192ksjHfyi7_U!XF=i-Bw#-p=z*XU?yXwE)X zeW*=CLw|#YhBoHZ3E<9!`xaMdXz0r9A3V@{{NMqnmbW+Ao0e{AvIA`I5^uwe|p`I@HP7_e+1UMP~g`UPRl$(j(!kR|x;Y8dih^vuF z;L)>EXGC7nm3}{R+pX5n(#F?UMCrvO#Z+PTM9k0G%DAO{Jc&x$d>s*CC#qwO`Q5Q=Rzj}$W<$mG`nzXh# zRc#v1J{3|Ws|#IR=nZs>O53IP=ldUxb8~Zl41FovYNHx)#lkR1WypLhnT;mZ5OgcjU;^_6vi%Q2@x)eER$_c&Y){&)R?R6LLJ#mnX{4g!45Ggos z1phWMF)n?Sv!Ow!q$6N$G4*Y(zHOl6S(=yd)Wk%)bS&+4pS5vbn)i6y!0qcamrIVm z^gF4~*ZpPdtF_`4rQ=VO&e|Q7e}4SuE5_1e8sE?Q9x*?Es#WRo`;*}`%-OHcWN+ng zaul9W&N%LLV(K1k?g^rj;N3G(ubBqU^#`l{y0&rx{Oicd$p^m}uN>iMxqJNH-S=mn zajL6why@E=mwkW4PpMf;8CS+x~m{8SE?U z;xuO;U^0Y7=x((*lnOb~!Go`gTsrqU>sQE2y2j)EZ|LVDUrL)C<9MAs=kZ&jmSHp0 zyd~@QD{ZA`&raOtzkICye#qC0THUu#JKW5_0(zH!Pa<
@@ -126,7 +126,7 @@ From 1fcd9539d110c23360e1859ef6cadc9675106b57 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Wed, 30 Jul 2025 23:07:01 -0700 Subject: [PATCH 388/438] minor rewording --- src/unify/Traits/predictions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/Traits/predictions/index.md b/src/unify/Traits/predictions/index.md index 11cf3df866..46f1cc9995 100644 --- a/src/unify/Traits/predictions/index.md +++ b/src/unify/Traits/predictions/index.md @@ -81,7 +81,7 @@ To access Predictions, you must: #### Successful trait computation -This table lists the requirements for a trait to compute successfully: Please note that for the events below, there cannot be any days where the event was not seen or performed in the entire workspace +To compute a prediction successfully, the model must meet the following requirements. In particular, the target event must occur at least once per day across your workspace during the entire Feature Window. If there are days with no activity, the model may not train successfully. | Requirement | Details | | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | From 7b659ca14c9137866a8a44ef4ced298fc0ef6c80 Mon Sep 17 00:00:00 2001 From: motasem-userpilot Date: Thu, 31 Jul 2025 09:37:09 +0300 Subject: [PATCH 389/438] =?UTF-8?q?=F0=9F=93=9D=20Update=20index.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../catalog/userpilot-mobile/index.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/connections/destinations/catalog/userpilot-mobile/index.md b/src/connections/destinations/catalog/userpilot-mobile/index.md index 6f33df12b3..068b5d1b7f 100644 --- a/src/connections/destinations/catalog/userpilot-mobile/index.md +++ b/src/connections/destinations/catalog/userpilot-mobile/index.md @@ -2,15 +2,15 @@ title: Userpilot Mobile (Device Mode) Destination --- -Userpilot helps product teams deliver personalized in-app experiences to increase growth metrics at every stage of the user journey. When you integrate Userpilot with Segment, you can send your Segment events to Userpilot, allowing you to create more personalized experiences for your users across the product lifecycle. +Userpilot helps product teams deliver personalized in-app experiences to increase growth metrics at every stage of the user journey. When you integrate Userpilot with Segment, you can send your Segment events to Userpilot, enabling you to create more personalized experiences for your users across the product lifecycle. [Userpilot](https://www.userpilot.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} provides in-app guidance, product tours, and contextual onboarding experiences to help teams activate users and drive feature adoption. -This destination is maintained by Userpilot. For any issues with the destination, [contact the Userpilot Support team](mailto:support@userpilot.com). +Userpilot maintains this destination. For any issues with the destination, [contact the Userpilot Support team](mailto:support@userpilot.com). ## Getting started -1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"}, search for "Userpilot Mobile (Device Mode)". +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"}, search for *Userpilot Mobile (Device Mode)*. 2. Select **Userpilot Mobile** and click **Add Destination**. 3. Select an existing Source to connect to Userpilot. 4. Go to the [Userpilot installation dashboard](https://run.userpilot.io/installation){:target="_blank"}, and copy your **App Token**. @@ -29,19 +29,18 @@ analytics.identify(userId: "", traits: [ "email": "john.doe@example.com", "name": "John Doe", "plan": "Pro", - "createdAt": "2023-08-01T00:00:00Z" + "createdAt": "2019-10-17" ]) ``` -Calling `identify` from `Segment` will trigger the `userpilot.identify`. Segment recommends passing as much data as possible to get the most out of Userpilot. +Calling Identify from Segment triggers `userpilot.identify`. Segment recommends passing as much data as possible to get the most out of Userpilot. -Data passed in an Identify call can be organized under different categories. -* Properties about the user such as `plan` or `userRole` to help targeting a specifc segment +Data passed in an Identify call can be organized under these different categories: +* Properties about the user such as `plan` or `userRole` help target a specific segment * Properties to personalize the content of the Userpilot experiences, such as `name` or `company` -* Properties to target users based on their lifecycle, such as `createdAt`, which allows you to target newly created accounts or accounts that have yet to achieve a certain feature in the user lifecyle - -These appear within the Userpilot user dashboard and power audience segmentation and targeting. +* Properties to target users based on their lifecycle, such as `createdAt`, which allows you to target newly created accounts or accounts that have yet to achieve a certain feature in the user lifecycle +These appear within Userpilot's user dashboard and power audience segmentation and targeting. ### Group Send [Group](/docs/connections/spec/group) calls to associate users with an account, organization, or project. @@ -53,7 +52,7 @@ analytics.group(groupId: "", traits: [ ]) ``` -Segment sends Group calls to Userpilot as a `userpilot.identify` update with company-level traits, allowing you to use company metadata in targeting logic. +Calling Group from Segment triggers `userpilot.identify` with company-level traits, allowing you to use company metadata in targeting logic. ### Screen @@ -63,7 +62,7 @@ Send [Screen](/docs/connections/spec/screen) calls to track navigation or screen analytics.screen(title: "Home") ``` -Segment sends Screen calls to Userpilot as a `userpilot.screen` event. This allows Userpilot to: +Calling Screen from Segment triggers `userpilot.screen` event. This allows Userpilot to: * Trigger relevant experiences configured for specific pages/screens. * Check for ongoing experiences already running. @@ -73,11 +72,12 @@ Segment sends Screen calls to Userpilot as a `userpilot.screen` event. This allo Send [Track](/docs/connections/spec/track) calls to log user actions or custom events. ```swift -analytics.track(name: "Button Clicked", properties: [ - "buttonColor": "green" +analytics.track(name: "Added to Cart", properties: [ + "itemId" : "sku_456", + "price" : 29.99 ]) ``` -Segment sends Track calls to Userpilot as `userpilot.track`. These custom events can be used to: -* Trigger specific experiences (e.g., a Caroucel or Survey) +Calling Track from Segment triggers `userpilot.track`. These custom events can be used to: +* Trigger specific experiences (for example, a Carousel or Survey) * Monitor user behavior for analytics or lifecycle targeting \ No newline at end of file From f0c762bfe2bc06b0fdd1eac63cd991c154cfbfa3 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 31 Jul 2025 08:27:04 -0400 Subject: [PATCH 390/438] Update index.md --- src/connections/destinations/catalog/firebase/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/firebase/index.md b/src/connections/destinations/catalog/firebase/index.md index 3c4d7f201b..002454e569 100644 --- a/src/connections/destinations/catalog/firebase/index.md +++ b/src/connections/destinations/catalog/firebase/index.md @@ -120,7 +120,7 @@ Consent mode may involve updates to your sources outside of Segment, such as inc To set up consent mode for Google Firebase: 1. Update your app's SDK to a version that supports consent mode v2. - * Android apps must use F[irebase Android Analytics SDK version 21.5.0 or later](https://firebase.google.com/support/release-notes/android#analytics_v21-5-0){:target="_blank"}. + * Android apps must use [Firebase Android Analytics SDK version 21.5.0 or later](https://firebase.google.com/support/release-notes/android#analytics_v21-5-0){:target="_blank"}. * iOS apps must use [Firebase Apple SDK version 10.17.0 or later](https://firebase.google.com/support/release-notes/ios#analytics){:target="_blank"}. 2. Set up consent mode for your app if you haven't already set it up. From 05d1f8a4ec1136a0a58e4bea1283b59ae7716f51 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 31 Jul 2025 09:37:57 -0400 Subject: [PATCH 391/438] Update index.md --- src/connections/destinations/catalog/firebase/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/connections/destinations/catalog/firebase/index.md b/src/connections/destinations/catalog/firebase/index.md index 002454e569..0d0c6f5f73 100644 --- a/src/connections/destinations/catalog/firebase/index.md +++ b/src/connections/destinations/catalog/firebase/index.md @@ -19,6 +19,9 @@ Segment's Firebase destination code is open source and available on GitHub. You ## Getting Started on Android +> warning "Firebase doesn't natively support arrays for Realtime Database implementations" +> If you are using Google's [Realtime Database](https://firebase.google.com/docs/firestore/rtdb-vs-firestore){:target="_blank"} to store Segment event data, see the [Best Practices: Arrays in Firebase](https://firebase.blog/posts/2014/04/best-practices-arrays-in-firebase/){:target="_blank"} blog post for some array best practices. + To start sending data to Firebase Analytics from your Android project, you'll need to follow a few simple steps: 1. Register your mobile app with Firebase at `https://console.firebase.google.com` From 729e3aac4d10dad9f795595abe9f3121dbeb6952 Mon Sep 17 00:00:00 2001 From: Arnav Dev Date: Thu, 31 Jul 2025 20:36:19 +0530 Subject: [PATCH 392/438] fix: add empty array check to defaultValue --- src/_includes/content/destination-footer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_includes/content/destination-footer.md b/src/_includes/content/destination-footer.md index 8c5e0c3864..13fd3de1fe 100644 --- a/src/_includes/content/destination-footer.md +++ b/src/_includes/content/destination-footer.md @@ -36,7 +36,7 @@ Segment lets you change these destination settings from the Segment app without {% unless item.deprecated == true %} - + From 5838381cf46679087a6ae199c096d797b526c427 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 31 Jul 2025 16:15:26 +0100 Subject: [PATCH 393/438] no more pleases --- .../destinations/catalog/actions-tiktok-audiences/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md index e264a92c4d..b5c184c6df 100644 --- a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md +++ b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md @@ -69,7 +69,7 @@ The setup is complete and the audience will start syncing to TikTok. The audienc 1. From the Segment web app, navigate to **Engage > Audiences**. Ensure you are in the Engage space you plan to use with the TikTok Audiences destination. Either choose an existing Engage audience or create a new one. This is the audience you plan to send to TikTok. -2. Navigate to **Engage > Engage Settings** and click **Destinations**. Please ensure you are still in the correct Engage space. +2. Navigate to **Engage > Engage Settings** and click **Destinations**. Ensure you are still in the correct Engage space. 3. Search for “TikTok Audiences” and select the destination. Click **Configure TikTok Audiences**. @@ -90,7 +90,7 @@ The setup is complete and the audience will start syncing to TikTok. The audienc 11. Click **Add Destinations** and select the TikTok Audiences destination you just created. In the settings that appear in the side panel, toggle the **Send Track** option on and do **not** change the Audience Entered/Audience Exited event names. Click **Save Settings**. -The setup is complete and the audience will start syncing to TikTok. The audience will appear in your [TikTok Ads Manager](https://www.tiktok.com/business/en-US/solutions/ads-manager){:target="_blank"} account under **Assets > Audiences**. Please note that it can take 24-48 hours for users to appear in TikTok. +The setup is complete and the audience will start syncing to TikTok. The audience will appear in your [TikTok Ads Manager](https://www.tiktok.com/business/en-US/solutions/ads-manager){:target="_blank"} account under **Assets > Audiences**. It can take 24-48 hours for users to appear in TikTok. To sync additional audiences from your Engage space, create a separate mapping in the TikTok Audiences destination. Navigate to **Connections > Destinations**, search and select the TikTok Audiences destination, and follow steps 7-11 above. From d7b78400d68fb2bf9b01affc1352f1a13c5b0d1d Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 31 Jul 2025 11:41:40 -0700 Subject: [PATCH 394/438] catalog update --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 3086 ++++++++++++++++-- src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 2 +- 5 files changed, 2751 insertions(+), 343 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 3aeb133de6..22e3877200 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 2025-07-24 +# destination categories last updated 2025-07-31 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 6212e6c22a..9b363008b5 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 2025-07-24 +# destination data last updated 2025-07-31 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -7408,6 +7408,2302 @@ items: allowNull: false presets: [] partnerOwned: false +- id: 683ef14a3f9aac157e3a3446 + display_name: Amazon Conversions Api + name: Amazon Conversions Api + slug: amazon-conversions-api + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/amazon-conversions-api + previous_names: + - Amazon Conversions Api + website: https://advertising.amazon.com/help/GEDE65PCE2CL5P63 + status: PUBLIC_BETA + categories: + - Advertising + - Attribution + logo: + url: https://cdn-devcenter.segment.com/a4e77672-0b0c-4c68-b522-bbd6f83d33b5.svg + mark: + url: https://cdn-devcenter.segment.com/51ad439c-55ca-4bc7-97f4-3cd896f24766.svg + methods: + track: true + identify: true + group: true + alias: true + screen: false + page: true + platforms: + browser: true + mobile: false + server: true + warehouse: true + cloudAppObject: false + linkedAudiences: true + 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: advertiserId + type: string + defaultValue: '' + description: Your Amazon Advertiser Account ID. + required: true + label: Amazon Advertiser ID + - name: region + type: select + defaultValue: https://advertising-api.amazon.com + description: Region for API Endpoint, either NA, EU, FE. + required: true + label: Region + actions: + - id: 3PXoEXmHMzVcnY5RaMTcQp + name: Track Conversion + slug: trackConversion + description: Send conversion event data to Amazon Events API + platform: CLOUD + hidden: false + defaultTrigger: type = "track" + fields: + - id: qgPBt4VU1i9xAd7B9VeAtF + sortOrder: 0 + fieldKey: name + label: Event Name + type: STRING + description: The name of the imported event. + placeholder: '' + defaultValue: + '@path': $.event + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hqKYNYP77wh4xNjxN2VzJa + sortOrder: 1 + fieldKey: eventType + label: Event Type + type: STRING + description: The standard Amazon event type. + placeholder: '' + required: true + multiple: false + choices: + - label: Add to Shopping Cart + value: ADD_TO_SHOPPING_CART + - label: Application + value: APPLICATION + - label: Checkout + value: CHECKOUT + - label: Contact + value: CONTACT + - label: Lead + value: LEAD + - label: Off Amazon Purchases + value: OFF_AMAZON_PURCHASES + - label: Mobile App First Start + value: MOBILE_APP_FIRST_START + - label: Page View + value: PAGE_VIEW + - label: Search + value: SEARCH + - label: Sign Up + value: SIGN_UP + - label: Subscribe + value: SUBSCRIBE + - label: Other + value: OTHER + dynamic: false + allowNull: false + - id: kWXzbjoTkpx4aWmfePffqR + sortOrder: 2 + fieldKey: eventActionSource + label: Event Action Source + type: STRING + description: >- + The platform from which the event was sourced. If no value is provided, + then website is used as default. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + required: true + multiple: false + choices: + - label: Android + value: android + - label: Fire TV + value: fire_tv + - label: iOS + value: ios + - label: Offline + value: offline + - label: Website + value: website + dynamic: false + allowNull: false + - id: 6ZXd93NwZbHq1HWx8Dy4R9 + sortOrder: 3 + fieldKey: countryCode + label: Country Code + type: STRING + description: >- + ISO 3166-1 alpha-2 country code. e.g., US, GB. Also accepts locale + codes. e.g en-US, en-GB. + placeholder: '' + defaultValue: + '@path': $.context.locale + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qEbRQtxiwE6UXgVqgew7gu + sortOrder: 4 + fieldKey: timestamp + label: Event Timestamp + type: STRING + description: >- + The reported timestamp of when the event occurred in ISO format + (YYYY-MM-DDThh:mm:ssTZD). + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rMe47AeWoAE33izcVbNMGX + sortOrder: 5 + fieldKey: value + label: Value + type: NUMBER + description: The value of the event. + placeholder: '' + defaultValue: + '@path': $.properties.value + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: pFA5UVqRSZ8MF6WTEcYsH2 + sortOrder: 6 + fieldKey: currencyCode + label: Currency Code + type: STRING + description: >- + The currencyCode associated with the 'value' of the event in ISO-4217 + format. Only applicable for OFF_AMAZON_PURCHASES event type. + placeholder: '' + defaultValue: + '@path': $.properties.currency + required: false + multiple: false + choices: + - label: AED - UAE Dirham + value: AED + - label: AUD - Australian Dollar + value: AUD + - label: BRL - Brazilian Real + value: BRL + - label: CAD - Canadian Dollar + value: CAD + - label: CNY - Chinese Yuan + value: CNY + - label: EUR - Euro + value: EUR + - label: GBP - British Pound + value: GBP + - label: INR - Indian Rupee + value: INR + - label: JPY - Japanese Yen + value: JPY + - label: MXN - Mexican Peso + value: MXN + - label: SAR - Saudi Riyal + value: SAR + - label: SEK - Swedish Krona + value: SEK + - label: SGD - Singapore Dollar + value: SGD + - label: TRY - Turkish Lira + value: TRY + - label: USD - US Dollar + value: USD + - label: DKK - Danish Krone + value: DKK + - label: NOK - Norwegian Krone + value: NOK + - label: NZD - New Zealand Dollar + value: NZD + dynamic: false + allowNull: false + - id: gPjsuc6hZv3Ao8BPPVF1HT + sortOrder: 7 + fieldKey: unitsSold + label: Units Sold + type: INTEGER + description: >- + The number of items purchased. Only applicable for OFF_AMAZON_PURCHASES + event type. If not provided on the event, a default of 1 will be + applied. + placeholder: '' + defaultValue: + '@path': $.properties.quantity + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: pKg4gSsqnBn9GX8PsEk5qv + sortOrder: 8 + fieldKey: clientDedupeId + label: Client Dedupe ID + type: STRING + description: >- + Amazon Conversions API uses the `clientDedupeId` field to prevent + duplicate events. By default, Segment maps the messageId to this field. + For events with the same clientDedupeId, only the latest event will be + processed. Please be advised that deduplication occurs across all event + types, rather than being limited to individual event types. + placeholder: '' + defaultValue: + '@path': $.messageId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rGnUAdVa6EL8GcZSw4T7Re + sortOrder: 9 + fieldKey: matchKeys + label: Match Keys + type: OBJECT + description: >- + Match keys are used to identify the customer associated with the event + for attribution. At least one match key must be provided. + placeholder: '' + defaultValue: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: csMgVG3qpFU5cS3c4Gzf1k + sortOrder: 10 + fieldKey: dataProcessingOptions + label: Data Processing Options + type: STRING + description: >- + A list of flags for signaling how an event shall be processed. Events + marked for limited data use will not be processed. + placeholder: '' + defaultValue: + '@path': $.properties.dataProcessingOptions + required: false + multiple: true + choices: + - label: Limited Data Use + value: LIMITED_DATA_USE + dynamic: false + allowNull: false + - id: 7RekLhoew8JipZEbxxMJgb + sortOrder: 11 + fieldKey: consent + label: Consent + type: OBJECT + description: >- + Describes consent given by the user for advertising purposes. For EU + advertisers, it is required to provide one of Geo ipAddress, + amazonConsent, tcf, or gpp. + placeholder: '' + defaultValue: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2xTkY2f7p33a19dTA8Ly8i + sortOrder: 12 + fieldKey: customAttributes + label: Custom Attributes + type: OBJECT + description: >- + Custom attributes associated with the event to provide additional + context. Note that only brand, category, productId and attr1 - attr10 + custom attributes are used for reporting. + placeholder: '' + defaultValue: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 29gVGBzJAjVHfNx6XYWAVY + sortOrder: 13 + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: When enabled, Segment will send data in batching. + placeholder: '' + defaultValue: true + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + presets: + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Sign Up + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: SIGN_UP + trigger: type = "track" AND event = "Signed Up" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Subscribe + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: SUBSCRIBE + trigger: type = "track" AND event = "Subscription Created" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Off Amazon Purchases + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: OFF_AMAZON_PURCHASES + trigger: type = "track" AND event = "Order Completed" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Page View + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: PAGE_VIEW + trigger: type = "page" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Other + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: OTHER + trigger: type = "track" AND event = "Other" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Checkout + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: CHECKOUT + trigger: type = "track" AND event = "Checkout Started" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Add to Shopping Cart + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: ADD_TO_SHOPPING_CART + trigger: type = "track" AND event = "Product Added" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Mobile App First Start + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: MOBILE_APP_FIRST_START + trigger: type = "track" AND event = "Application Opened" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Contact + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: CONTACT + trigger: type = "track" AND event = "Callback Started" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Lead + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: LEAD + trigger: type = "track" AND event = "Lead Generated" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Application + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: APPLICATION + trigger: type = "track" AND event = "Application Submitted" + - actionId: 3PXoEXmHMzVcnY5RaMTcQp + name: Search + fields: + name: + '@path': $.event + eventActionSource: + '@if': + exists: + '@path': $.context.device.type + then: + '@path': $.context.device.type + else: website + countryCode: + '@path': $.context.locale + timestamp: + '@path': $.timestamp + value: + '@path': $.properties.value + currencyCode: + '@path': $.properties.currency + unitsSold: + '@path': $.properties.quantity + clientDedupeId: + '@path': $.messageId + matchKeys: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + phone: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + firstName: + '@if': + exists: + '@path': $.context.traits.firstName + then: + '@path': $.context.traits.firstName + else: + '@path': $.properties.firstName + lastName: + '@if': + exists: + '@path': $.context.traits.lastName + then: + '@path': $.context.traits.lastName + else: + '@path': $.properties.lastName + address: + '@if': + exists: + '@path': $.context.traits.street + then: + '@path': $.context.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.context.traits.city + then: + '@path': $.context.traits.city + else: + '@path': $.properties.city + state: + '@if': + exists: + '@path': $.context.traits.state + then: + '@path': $.context.traits.state + else: + '@path': $.properties.state + postalCode: + '@if': + exists: + '@path': $.context.traits.postalCode + then: + '@path': $.context.traits.postalCode + else: + '@path': $.properties.postalCode + maid: + '@path': context.device.advertisingId + rampId: + '@if': + exists: + '@path': $.context.traits.rampId + then: + '@path': $.context.traits.rampId + else: + '@path': $.properties.rampId + matchId: + '@if': + exists: + '@path': $.context.traits.matchId + then: + '@path': $.context.traits.matchId + else: + '@path': $.properties.matchId + dataProcessingOptions: + '@path': $.properties.dataProcessingOptions + consent: + ipAddress: + '@path': $.context.ip + amznAdStorage: + '@path': $.properties.amznAdStorage + amznUserData: + '@path': $.properties.amznUserData + tcf: + '@path': $.properties.tcf + gpp: + '@path': $.properties.gpp + customAttributes: + brand: + '@path': $.properties.brand + category: + '@path': $.properties.category + productId: + '@path': $.properties.productId + attr1: + '@path': $.properties.attr1 + attr2: + '@path': $.properties.attr2 + attr3: + '@path': $.properties.attr3 + attr4: + '@path': $.properties.attr4 + attr5: + '@path': $.properties.attr5 + attr6: + '@path': $.properties.attr6 + attr7: + '@path': $.properties.attr7 + attr8: + '@path': $.properties.attr8 + attr9: + '@path': $.properties.attr9 + attr10: + '@path': $.properties.attr10 + enable_batching: true + batch_size: 500 + eventType: SEARCH + trigger: type = "track" AND event = "Products Searched" + partnerOwned: true - id: 5d1994fb320116000112aa12 display_name: Amazon EventBridge name: Amazon EventBridge @@ -7632,7 +9928,7 @@ items: description: >- Please input the Segment **event names** or **event types** on the left and the desired Firehose delivery stream destinations on the right. This - mapping is required for all events you would like in Firehose + mapping is **required** for all events you would like in Firehose required: false label: Map Segment Events to Firehose Delivery Streams - name: region @@ -23330,7 +25626,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: frz11tFBzfan6WbDamxaVV + - id: fDR8sk8ZPuCEHpjDyFgozW sortOrder: 0 fieldKey: external_id label: External User ID @@ -23344,7 +25640,7 @@ items: choices: null dynamic: false allowNull: false - - id: fZNmCULU5zqyCsXBKsBueY + - id: 5RJmpB58hzw4um4jgjHR1B sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23358,7 +25654,7 @@ items: choices: null dynamic: false allowNull: false - - id: nWcbDpUAifPFihnYj4keqq + - id: cu5jYWXnPpw6FiZ9wX1cFP sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -23372,7 +25668,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8SZmzgmJ8LrdcfBtpuRHrT + - id: jwzZpd94LxxvwoYokBJ5x sortOrder: 3 fieldKey: country label: Country @@ -23386,7 +25682,7 @@ items: choices: null dynamic: false allowNull: true - - id: m1xvh1MTCS2UwVfHxaDD75 + - id: kpYhLzP5v48mSmtJ8YJZcb sortOrder: 4 fieldKey: current_location label: Current Location @@ -23403,7 +25699,7 @@ items: choices: null dynamic: false allowNull: true - - id: 9pUSXbWPjCwyNHDxka5JxQ + - id: p8XB3sFptXjrWBJ3QQJ44m sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -23415,7 +25711,7 @@ items: choices: null dynamic: false allowNull: true - - id: nZNERLLfzCQk8LUGxwoV7d + - id: tfTrTjru2F4uY8XdjzMwiW sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -23427,7 +25723,7 @@ items: choices: null dynamic: false allowNull: true - - id: qU6PF14uYCiAvDDxPk1Ayc + - id: ga1WyMfE8dhXFBZGD4wJ8q sortOrder: 7 fieldKey: dob label: Date of Birth @@ -23439,7 +25735,7 @@ items: choices: null dynamic: false allowNull: true - - id: 4Fy1EYYDPuMjn3vpHuRGSN + - id: 9vFRhBFwWjtTe686tvTTye sortOrder: 8 fieldKey: email label: Email @@ -23453,7 +25749,7 @@ items: choices: null dynamic: false allowNull: true - - id: p8cpbr44nnQ2mjLRPntVwp + - id: uwHYEgL4SZvo2bh4pUv5N sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -23468,7 +25764,7 @@ items: choices: null dynamic: false allowNull: false - - id: 69zQTCZVr6GZCJwdSXfs1r + - id: 5KRPPZ1zFq7TWQvW22PDNX sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -23482,7 +25778,7 @@ items: choices: null dynamic: false allowNull: false - - id: xpWqRpHcjJf7vThkxd4cAe + - id: gqeqcDr1ZMLFbKo6PvsdTD sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -23496,7 +25792,7 @@ items: choices: null dynamic: false allowNull: false - - id: k4cPf5X5B4mVqfqJCE4G5N + - id: dWbRdjBmHuQahVfpp2kbU1 sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -23510,7 +25806,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7Da5ukyyK5GqnZEk6f7Ygy + - id: djKX1f82FMmWQmVP6QmXeg sortOrder: 13 fieldKey: first_name label: First Name @@ -23524,7 +25820,7 @@ items: choices: null dynamic: false allowNull: true - - id: kFbDdcP45ZzZZ9eV93iEdW + - id: 4eGUV9jTtwD6BjU4qGytBu sortOrder: 14 fieldKey: gender label: Gender @@ -23540,7 +25836,7 @@ items: choices: null dynamic: false allowNull: true - - id: mMPocCA5usL9n7twW1SEje + - id: 57daPPzryAhNN7cB1u5SAY sortOrder: 15 fieldKey: home_city label: Home City @@ -23554,7 +25850,7 @@ items: choices: null dynamic: false allowNull: true - - id: pVX5hWg3qAi48kv8QJFL8a + - id: rAQMHaiMEZwqML5uLic2hY sortOrder: 16 fieldKey: image_url label: Image URL @@ -23568,7 +25864,7 @@ items: choices: null dynamic: false allowNull: true - - id: f5gSYnr1y3U583SQm6NNpc + - id: cnPSX6jz1RWzazXFcwEufd sortOrder: 17 fieldKey: language label: Language @@ -23580,7 +25876,7 @@ items: choices: null dynamic: false allowNull: true - - id: odUBYhFPcmaVaYLyczAWXg + - id: gE2RcHsq5GBtDzAobjWzic sortOrder: 18 fieldKey: last_name label: Last Name @@ -23594,7 +25890,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4Ud9hghUJwojjb34DjkKjN + - id: 4SjCpfFqvTcPcgP1ADvB4L sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -23606,7 +25902,7 @@ items: choices: null dynamic: false allowNull: true - - id: 66uByU9E4zxTYaCERzSpH2 + - id: mKzJu2395MQjio8deZxU2W sortOrder: 20 fieldKey: phone label: Phone Number @@ -23620,7 +25916,7 @@ items: choices: null dynamic: false allowNull: true - - id: pQfqMK5Vh7jeUsxwyyF8hh + - id: hHdCpmvY8TpYt2Tr61yd2q sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -23635,7 +25931,7 @@ items: choices: null dynamic: false allowNull: false - - id: r8KSTT5rDmNJ6fmUKaR7Ya + - id: xiDqAeeRr1LqYabp17WciD sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -23652,7 +25948,7 @@ items: choices: null dynamic: false allowNull: false - - id: qx27sVuw2zir7E2P9nN6UD + - id: 939rX9rNsPzToLou8v32Fi sortOrder: 23 fieldKey: time_zone label: Time zone @@ -23667,7 +25963,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4ZAtgZZUm7bJXZDteEkcKS + - id: d63HrHJUBm5ANC1W8x7qPD sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -23682,7 +25978,7 @@ items: choices: null dynamic: false allowNull: false - - id: 894h5kEbTx9EcKxn9ATY2V + - id: aW3XkeWTRZx5VippFvdnRk sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -23696,7 +25992,7 @@ items: choices: null dynamic: false allowNull: false - - id: remoauHf6xfL5SBSc6qnwo + - id: pEtpN2Hb2vkA8Q8xRZ1BEP sortOrder: 26 fieldKey: _update_existing_only label: Update Existing Only @@ -23711,7 +26007,7 @@ items: choices: null dynamic: false allowNull: false - - id: wJaikKFKSUaimBeC2nxP3e + - id: deNbLhqaVWQ3a5ekv2Dgjr sortOrder: 27 fieldKey: enable_batching label: Batch Data to Braze @@ -23734,7 +26030,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: 5sq3xZZYZCJmmxZdAJacaM + - id: hrPz9vH7A3YkY4MRK8BZVJ sortOrder: 0 fieldKey: external_id label: External User ID @@ -23748,7 +26044,7 @@ items: choices: null dynamic: false allowNull: false - - id: s2zkyqErbM5rnfukkNabwC + - id: pkkSSueQLUhwMNeKHJyqWm sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23762,7 +26058,7 @@ items: choices: null dynamic: false allowNull: false - - id: kAvSZ6B6tQF5mmQUqsFdG7 + - id: vBJnn5mz3hNu55TfrA5FVw sortOrder: 2 fieldKey: email label: Email @@ -23782,7 +26078,7 @@ items: choices: null dynamic: false allowNull: false - - id: svUQfhxt5UAokobfxLjyUE + - id: fh8McJPhdVkZ7M1GjPQnjq sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -23796,7 +26092,7 @@ items: choices: null dynamic: false allowNull: true - - id: 9vdt5y2HA6aQRaUzUAhqQH + - id: mvefY6PdaWM3CrxHwZkuR6 sortOrder: 4 fieldKey: name label: Event Name @@ -23810,7 +26106,7 @@ items: choices: null dynamic: false allowNull: false - - id: hvdTckdbhyWk7ub8ehQmy3 + - id: jFGB75TdxH1midEQnvCNtB sortOrder: 5 fieldKey: time label: Time @@ -23824,7 +26120,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3sT13YAAj7B8v81HFYqsJ6 + - id: qy1WJxzc3uSCPUiDrMMwZS sortOrder: 6 fieldKey: properties label: Event Properties @@ -23838,7 +26134,7 @@ items: choices: null dynamic: false allowNull: false - - id: uoinvpfJPPouV2YsvsfjkW + - id: 2kskmcKBRxNct89Nr21iZA sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -23853,7 +26149,7 @@ items: choices: null dynamic: false allowNull: false - - id: 63vGmbb81vQnYW5and1Q4N + - id: r1qeUDq9S5yQv8Bq3raCyt sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -23876,7 +26172,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: fg36FexE4qyP7XsMzpT5Xr + - id: 6dz2NH94u6YHzeqgdnYfKf sortOrder: 0 fieldKey: external_id label: External User ID @@ -23890,7 +26186,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9obkVhVo4Qx4xPF891UphR + - id: ogekSoMUqWKsis21mVdSwG sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23904,7 +26200,7 @@ items: choices: null dynamic: false allowNull: false - - id: 22gDq94jeVHJGoNPEkjarw + - id: cZn4F9NYmrHKW8dezN41Rd sortOrder: 2 fieldKey: email label: Email @@ -23918,7 +26214,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2tRy54hoSLvavYenQz1skf + - id: oSYr6JRDq8Lzbh8cbezbso sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -23932,7 +26228,7 @@ items: choices: null dynamic: false allowNull: true - - id: w4mZFShTi45oTErsRyY6sv + - id: tzcURC4EbRDPsK2V6U8s5R sortOrder: 4 fieldKey: time label: Time @@ -23946,7 +26242,7 @@ items: choices: null dynamic: false allowNull: false - - id: hpWv5G8vm94mxArndAg3UA + - id: 8G7P2UkSm2HNmyMyeGWV4k sortOrder: 5 fieldKey: products label: Products @@ -23960,7 +26256,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2GWU2no3WGNC7B8SuS9UfX + - id: 9i4fK4YwETdw9pd9nGRw36 sortOrder: 6 fieldKey: properties label: Event Properties @@ -23974,7 +26270,7 @@ items: choices: null dynamic: false allowNull: false - - id: stG51w28ChLT3brTDNgusj + - id: 6ETQi1B982NFyz9T3D58Bd sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -23989,7 +26285,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5NPVqFjrESQCbdqzkGErtD + - id: gtNdLnuNQVuqRfeeuvwb83 sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -24026,7 +26322,7 @@ items: hidden: false defaultTrigger: null fields: - - id: pMwsciTRRwm6BD7o6eY8fx + - id: 4yze3B4RebQRNy5t249sdN sortOrder: 0 fieldKey: external_id label: External ID @@ -24038,7 +26334,7 @@ items: choices: null dynamic: false allowNull: false - - id: vkybr1e1L3d7YrdBWpkXYH + - id: khtVtUBsXZ3dXD7uNAdyT9 sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24052,7 +26348,7 @@ items: choices: null dynamic: false allowNull: false - - id: gdeASUanupEBDqQ1MDtn34 + - id: vzWebkoqo9wNospgS2ft3v sortOrder: 2 fieldKey: merge_behavior label: Merge Behavior @@ -24081,7 +26377,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: n4u7Qc5RqbRV4piQtNromi + - id: iKDENKBGFN17vQk527V39 sortOrder: 0 fieldKey: external_id label: External ID @@ -24093,7 +26389,7 @@ items: choices: null dynamic: false allowNull: true - - id: kKEB7i291m8YemagXD5ebn + - id: 8oXLyuZuAvbhFWC4FkQvT sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -24105,7 +26401,7 @@ items: choices: null dynamic: false allowNull: false - - id: owFCCbZwFjeeJXVoxxCTcG + - id: s1DvRj3mZTRTG9nnYbeCxk sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -24125,7 +26421,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: gwqZ4ycUKnkCZBxveCnjo2 + - id: oe3hf8kRGhTDXC51z8yFgG sortOrder: 0 fieldKey: external_id label: External User ID @@ -24139,7 +26435,7 @@ items: choices: null dynamic: false allowNull: false - - id: oCZ7RpFgTsdWDAVXCcWSDr + - id: 51NMeWJpAvs7eLZDk3vhLQ sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24153,7 +26449,7 @@ items: choices: null dynamic: false allowNull: false - - id: jzmPYZM1Rk48hYLEYpdYoq + - id: wJXPFHyq84k21N1SwV533x sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -24167,7 +26463,7 @@ items: choices: null dynamic: false allowNull: true - - id: gYVKFtjwAaQidhQ94hELrY + - id: hbgP26NkcwSYuR92ubBnnY sortOrder: 3 fieldKey: country label: Country @@ -24181,7 +26477,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8N44uGnJ2bTFCisTh9X9xT + - id: uwhpBXucF3BZNN7UBu5o43 sortOrder: 4 fieldKey: current_location label: Current Location @@ -24198,7 +26494,7 @@ items: choices: null dynamic: false allowNull: true - - id: q3QoZjmtJvnqjiiVQdX9Z9 + - id: oJ3EoesYT598C1ou5ndKpg sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -24210,7 +26506,7 @@ items: choices: null dynamic: false allowNull: true - - id: whdNHh25Wso67bW6uy1T8C + - id: v8pMqaaDuCwHyn94fvGK12 sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -24222,7 +26518,7 @@ items: choices: null dynamic: false allowNull: true - - id: ktfG8fY7MgLkNtQe6jPuSt + - id: rXMEVupni5zC1VNz7JWwBf sortOrder: 7 fieldKey: dob label: Date of Birth @@ -24234,7 +26530,7 @@ items: choices: null dynamic: false allowNull: true - - id: pWeJXhDmg7BZH9YHbJjEJB + - id: kCpEhQzeXn4cDbdF9qZpML sortOrder: 8 fieldKey: email label: Email @@ -24248,7 +26544,7 @@ items: choices: null dynamic: false allowNull: true - - id: 331FuRNhXV9eQgumoSjc5B + - id: 8dbLLfLef3eJTjWF129SpW sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -24263,7 +26559,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6gXWFLSGTjouJp2WHrvGHE + - id: 4iZ2iHgrchb8SEAin3ye2u sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -24277,7 +26573,7 @@ items: choices: null dynamic: false allowNull: false - - id: kMWdeN3peJtKrVwKVXXKkC + - id: btZsBGvZbSBXicy8iay7zs sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -24291,7 +26587,7 @@ items: choices: null dynamic: false allowNull: false - - id: cMgwvehK2W9mbSspBAPi74 + - id: wakkz6XuvZXPipP81QvPx4 sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -24305,7 +26601,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4yvo3qjnceKJGbYTx9vrXe + - id: vTTP7xpe4T7rGhvCrXkTE7 sortOrder: 13 fieldKey: first_name label: First Name @@ -24319,7 +26615,7 @@ items: choices: null dynamic: false allowNull: true - - id: cNsqEmuXDikmuSgeCSF8c5 + - id: ssSsnHKuPSFuQFc1MV17ZD sortOrder: 14 fieldKey: gender label: Gender @@ -24335,7 +26631,7 @@ items: choices: null dynamic: false allowNull: true - - id: 9e6Ns4qvCin4ibB2uZ87zJ + - id: 8L9aku58jMfmPMGfHhbsFw sortOrder: 15 fieldKey: home_city label: Home City @@ -24349,7 +26645,7 @@ items: choices: null dynamic: false allowNull: true - - id: 2r4fDWjg3uHQyA6YLXbwD7 + - id: xiBU6eUE6uzLDrBZv2jhVB sortOrder: 16 fieldKey: image_url label: Image URL @@ -24363,7 +26659,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8yKCLQ4YvcUhcpbdxY4wid + - id: 3rP2hq85GNyU8U9XgoSZCY sortOrder: 17 fieldKey: language label: Language @@ -24375,7 +26671,7 @@ items: choices: null dynamic: false allowNull: true - - id: rVizXpARf3duTGxik6qZyX + - id: iQcmVPWnTKVzvsxAKYj9mj sortOrder: 18 fieldKey: last_name label: Last Name @@ -24389,7 +26685,7 @@ items: choices: null dynamic: false allowNull: false - - id: qeedvdRAqYXHbAe32kRU7w + - id: t3g6HprsnqCh2M3fo9BXRM sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -24401,7 +26697,7 @@ items: choices: null dynamic: false allowNull: true - - id: oGdPKPYxudEvqPcA2JTXsS + - id: xmeuVQp8uMCXZXZm9UXMxH sortOrder: 20 fieldKey: phone label: Phone Number @@ -24415,7 +26711,7 @@ items: choices: null dynamic: false allowNull: true - - id: wmKgx4r2PAMGTSTiroDrwd + - id: rroMN2p5FLuExhzZWuHqtc sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -24430,7 +26726,7 @@ items: choices: null dynamic: false allowNull: false - - id: d7FCXVA7f3RppMEZqczuLw + - id: kEvbfkKEX1uqhzMWuNwmp2 sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -24447,7 +26743,7 @@ items: choices: null dynamic: false allowNull: false - - id: cVoANWsB8ytjevRfqF31SK + - id: rjGXsxbfqWbr3ZeFHwz27z sortOrder: 23 fieldKey: time_zone label: Time zone @@ -24462,7 +26758,7 @@ items: choices: null dynamic: false allowNull: false - - id: f9MvcdY6EEBQqbDdZfZcky + - id: u45mgdB6SJ8dqFavPgnbRT sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -24477,7 +26773,7 @@ items: choices: null dynamic: false allowNull: false - - id: sr3KDeAmubMwH5huLNEP8G + - id: w5XpKj2h7c8cseVPiE2Kfr sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -24491,7 +26787,7 @@ items: choices: null dynamic: false allowNull: false - - id: cdENeQDWi4frnTkLkNEeU4 + - id: u5Xa38kWR8zMCfDEYn4inB sortOrder: 26 fieldKey: enable_batching label: Batch Data to Braze @@ -24514,7 +26810,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: 6HP8cFtZUmj422SCVRFH8C + - id: c5QwcdEX6QoGvfR68ZvJAK sortOrder: 0 fieldKey: external_id label: External User ID @@ -24528,7 +26824,7 @@ items: choices: null dynamic: false allowNull: false - - id: 55mu6trKz3nHcpWyzgfQfM + - id: aV15trPsL3nD8meUQrZYcn sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24542,7 +26838,7 @@ items: choices: null dynamic: false allowNull: false - - id: wUvReNFdTX6oBB9DA8gP7 + - id: yxSQtvpEpaBSuCNVCyaLx sortOrder: 2 fieldKey: email label: Email @@ -24562,7 +26858,7 @@ items: choices: null dynamic: false allowNull: false - - id: egbTMCodi5BAXAzJrHdEQc + - id: w3rt9rnM9RQLGbxwddWfpq sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -24576,7 +26872,7 @@ items: choices: null dynamic: false allowNull: true - - id: 6v8RRJg2fGx5pu7snzanbr + - id: 5dnLJugnsTMbysGFrvabaE sortOrder: 4 fieldKey: name label: Event Name @@ -24590,7 +26886,7 @@ items: choices: null dynamic: false allowNull: false - - id: j2xw9f1aZyU6c9tofbhWoF + - id: 9ZM31KcgrubTvn73paBiEn sortOrder: 5 fieldKey: time label: Time @@ -24604,7 +26900,7 @@ items: choices: null dynamic: false allowNull: false - - id: cRnMjpPxBUByv2sF6fBHVy + - id: 9BZDbkF514gUW1rFFpgwW7 sortOrder: 6 fieldKey: properties label: Event Properties @@ -24618,7 +26914,7 @@ items: choices: null dynamic: false allowNull: false - - id: rypZ9WGeY5ZecDeusDNN4C + - id: r1YAg5cWiqtA5uEKuv9QFN sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -24643,7 +26939,7 @@ items: hidden: false defaultTrigger: null fields: - - id: vdC7t5iSzmAL18cZxY7ZQK + - id: pA9P84W33KWLVMeBaMrGvc sortOrder: 0 fieldKey: external_id label: External ID @@ -24655,7 +26951,7 @@ items: choices: null dynamic: false allowNull: false - - id: tWoJS7Bxh126VhyrbGnoqN + - id: q2RV1ddCen5DeQrq2zM9CJ sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24669,7 +26965,7 @@ items: choices: null dynamic: false allowNull: false - - id: ajA656rF84imeMoGefhNrH + - id: uSSwiZtKntADfysMTHzLwT sortOrder: 2 fieldKey: email_to_identify label: Email to Identify @@ -24681,7 +26977,7 @@ items: choices: null dynamic: false allowNull: false - - id: e7bxortit7qUL6ZW8qxUL5 + - id: w5gtkhWKoCxSfqngqoiNeG sortOrder: 3 fieldKey: prioritization label: Prioritization @@ -24695,7 +26991,7 @@ items: choices: null dynamic: false allowNull: false - - id: tz83vDWLBLJxJgev7kikjA + - id: 36vfotFjwJdrgsFqigq3s9 sortOrder: 4 fieldKey: merge_behavior label: Merge Behavior @@ -24724,7 +27020,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: suRsQh4ZMUo9mJ1L5A6MXU + - id: hn9sGteqXqBRngR2DLmBf6 sortOrder: 0 fieldKey: external_id label: External ID @@ -24736,7 +27032,7 @@ items: choices: null dynamic: false allowNull: true - - id: pPTpuGdJD5fbFa67QBGEgT + - id: nJsA2ACXiwnMj2EeV5yjG6 sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -24748,7 +27044,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7PJvRn7FZyrUTZEpiByxDq + - id: f1GfS5BFT1scHVFbxhcjZL sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -24768,7 +27064,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: 4BEobjyZiqb7324bvAQpJH + - id: ixMtCebbqNKfv1aGCtME4K sortOrder: 0 fieldKey: external_id label: External User ID @@ -24782,7 +27078,7 @@ items: choices: null dynamic: false allowNull: false - - id: h2k24P8KdrkEA5eL7acqUa + - id: ruCU35Wqs8T4PevS4ZmU5V sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24796,7 +27092,7 @@ items: choices: null dynamic: false allowNull: false - - id: 55eGJ542ZMW9uU7G73m2BV + - id: uzZDPa7uFWQpH1pLh3XsMz sortOrder: 2 fieldKey: email label: Email @@ -24810,7 +27106,7 @@ items: choices: null dynamic: false allowNull: false - - id: bdgLiyNtFG2sxS1wZsfRoq + - id: iEEVn7biQdecud9SGoYvhp sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -24824,7 +27120,7 @@ items: choices: null dynamic: false allowNull: true - - id: oK46PrHANHzVEhtxubD82x + - id: cKNB3NGqDqEjnbSb8pP3Qy sortOrder: 4 fieldKey: time label: Time @@ -24838,7 +27134,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9SCQGFpgDVLDnmUaZBWva3 + - id: mGzGN6fp6K2d46va9kBL sortOrder: 5 fieldKey: products label: Products @@ -24852,7 +27148,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6D3qjSYWEG5Csr92LGTiN9 + - id: WPEzRmRkZCNpmp6TdP8rf sortOrder: 6 fieldKey: properties label: Event Properties @@ -24866,7 +27162,7 @@ items: choices: null dynamic: false allowNull: false - - id: nAk6yZaqkdCWsurq2okNN1 + - id: 4ah6KWaND1oo82BTLggE6z sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -24889,7 +27185,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: ttvAPQeMyzL8qnGNPt7joY + - id: sPTCuHRcJCeAnecUuVqf2r sortOrder: 0 fieldKey: campaign_id label: Campaign ID @@ -24903,7 +27199,7 @@ items: choices: null dynamic: true allowNull: false - - id: kfS94uFHQJ761q4rTgcuc9 + - id: dEHae358DEQhGmePgivDR3 sortOrder: 1 fieldKey: send_id label: Send ID @@ -24917,7 +27213,7 @@ items: choices: null dynamic: false allowNull: false - - id: usvmKxE8M6rAak4TxRW1rb + - id: 5NhPCujCPP7txQ5WpPCFGS sortOrder: 2 fieldKey: trigger_properties label: Trigger Properties @@ -24934,7 +27230,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4ciJRAnqDZzVaqcuJcmSsW + - id: 2oemWzNaa6oZaqVhxbPwPN sortOrder: 3 fieldKey: broadcast label: Broadcast @@ -24949,7 +27245,7 @@ items: choices: null dynamic: false allowNull: false - - id: gtmVpCDAQVsJV6DxUQNYmX + - id: 84pncUPkpAegESBR3Em9nE sortOrder: 4 fieldKey: attachments label: Attachments @@ -24961,7 +27257,7 @@ items: choices: null dynamic: false allowNull: false - - id: kR7ubc31pdAWbRtQnenkzP + - id: bddJKZzjdJz4tmW3bzVN3N sortOrder: 5 fieldKey: recipients label: Recipients @@ -24975,7 +27271,7 @@ items: choices: null dynamic: false allowNull: false - - id: drVhjQzfXGXtn4iyWAQBWt + - id: ew1gYTSzqreFsASGNodNpo sortOrder: 6 fieldKey: prioritization label: Prioritization @@ -24989,7 +27285,7 @@ items: choices: null dynamic: false allowNull: false - - id: gxyhAziD3HT68uyexoGZpv + - id: 9ULKQQi91KHGaDwAUjrcZn sortOrder: 7 fieldKey: audience label: Audience @@ -25011,7 +27307,7 @@ items: hidden: false defaultTrigger: null fields: - - id: g2gSCrVLVLm5j8GUpbjfUA + - id: bPkKYCKGeSfiFSqPANm25m sortOrder: 0 fieldKey: item label: Catalog item to upsert @@ -25026,7 +27322,7 @@ items: choices: null dynamic: true allowNull: false - - id: 5SXHSbR8SdDyDJ96QmmzyC + - id: wD8HrbEBhG1oYSnAK17wpx sortOrder: 1 fieldKey: item_id label: Item ID @@ -25040,7 +27336,7 @@ items: choices: null dynamic: false allowNull: false - - id: v3u4199oSX5Z322yyGhtd7 + - id: cSe2bHd9wSLF41wLBEWvAo sortOrder: 2 fieldKey: enable_batching label: Batch Data to Braze? @@ -25053,7 +27349,7 @@ items: choices: null dynamic: false allowNull: false - - id: dxCVKwHFmf9fbCYRQgpzsS + - id: uKkyRXx83KMULmRcUA2JBU sortOrder: 4 fieldKey: operation label: Operation @@ -25069,7 +27365,7 @@ items: value: select dynamic: false allowNull: false - - id: 2nbDJ7xGv2ZD91FyqbN73h + - id: whMhv8Xne4y4MwRdzFs87E sortOrder: 5 fieldKey: selected_catalog_name label: Catalog Name @@ -25081,7 +27377,7 @@ items: choices: null dynamic: true allowNull: false - - id: ammQY5R2csXdQSoyr7VW8s + - id: oopajGWsU8s53yYzVZ6ACF sortOrder: 6 fieldKey: created_catalog_name label: Catalog Name @@ -25095,7 +27391,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2GwQd2JD85vD7CPJsvDCYN + - id: hnB1vZZKnwRmmkuy5RSkEC sortOrder: 7 fieldKey: description label: Catalog Description @@ -25107,7 +27403,7 @@ items: choices: null dynamic: false allowNull: false - - id: hE5Q8Hq97fUwB4Pm5ZuE7U + - id: jUZc1QZuEQXLG5xWjkDFGP sortOrder: 8 fieldKey: columns label: Catalog Fields @@ -25121,7 +27417,7 @@ items: choices: null dynamic: false allowNull: false - - id: fE3vYwcP4qxmXhVixpmJL3 + - id: cGqJWefruj1dQHLfZDjJpn sortOrder: 9 fieldKey: onMappingSave label: Select or Create a Catalog @@ -25144,7 +27440,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: 6AqjskUjsng6Rk3eg1yatq + - id: oiGEFgrdhJA3v32F4zTkeK sortOrder: 0 fieldKey: canvas_id label: Canvas ID @@ -25158,7 +27454,7 @@ items: choices: null dynamic: true allowNull: false - - id: qxsm9pbYcTM47HvGL7NCqX + - id: wxRm1RbcZysJpqUBF3C9zA sortOrder: 1 fieldKey: canvas_entry_properties label: Canvas Entry Properties @@ -25175,7 +27471,7 @@ items: choices: null dynamic: false allowNull: false - - id: hjci7Y7pY96gFWgyATVhgf + - id: bEuxY3oC6xbNHVeCdNXeYv sortOrder: 2 fieldKey: broadcast label: Broadcast @@ -25189,7 +27485,7 @@ items: choices: null dynamic: false allowNull: false - - id: oX4QsEV4CdaPSo3Td83aXD + - id: cn4tUKL6RL5DVizmrEL6Zy sortOrder: 3 fieldKey: recipients label: Recipients @@ -25203,7 +27499,7 @@ items: choices: null dynamic: false allowNull: false - - id: 647vdrzKXnGZVYZNG2zL9A + - id: q6ZN3k9SeiLdRncgf15KCC sortOrder: 4 fieldKey: prioritization label: Prioritization @@ -25217,7 +27513,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7oHphGH4yV5C2e3G88kRoh + - id: oEKGVECL2P4CyyxwQiXAfb sortOrder: 5 fieldKey: audience label: Audience @@ -25232,25 +27528,40 @@ items: dynamic: false allowNull: false presets: - - actionId: vE7Gf9yobj2gTuMBhwmg7g - name: Order Completed Calls + - actionId: 2P24zUSAL8BUpyGYNGmD7M + name: Identify Calls fields: external_id: '@path': $.userId - email: - '@path': $.traits.email braze_id: '@path': $.properties.braze_id - time: - '@path': $.receivedAt - products: - '@path': $.properties.products - properties: - '@path': $.properties + country: + '@path': $.context.location.country + current_location: + latitude: + '@path': $.context.location.latitude + longitude: + '@path': $.context.location.longitude + email: + '@path': $.traits.email + first_name: + '@path': $.traits.firstName + gender: + '@path': $.traits.gender + home_city: + '@path': $.traits.address.city + image_url: + '@path': $.traits.avatar + last_name: + '@path': $.traits.lastName + phone: + '@path': $.traits.phone + custom_attributes: + '@path': $.traits _update_existing_only: false enable_batching: true batch_size: 75 - trigger: event = "Order Completed" + trigger: type = "identify" - actionId: 3pnc4QJvUjWGi2bp6EnDt name: Track Calls fields: @@ -25276,46 +27587,25 @@ items: enable_batching: true batch_size: 75 trigger: type = "track" and event != "Order Completed" - - actionId: 2P24zUSAL8BUpyGYNGmD7M - name: Identify Calls + - actionId: vE7Gf9yobj2gTuMBhwmg7g + name: Order Completed Calls fields: external_id: '@path': $.userId - braze_id: - '@path': $.properties.braze_id - country: - '@path': $.context.location.country - current_location: - latitude: - '@path': $.context.location.latitude - longitude: - '@path': $.context.location.longitude email: '@path': $.traits.email - first_name: - '@path': $.traits.firstName - gender: - '@path': $.traits.gender - home_city: - '@path': $.traits.address.city - image_url: - '@path': $.traits.avatar - last_name: - '@path': $.traits.lastName - phone: - '@path': $.traits.phone - custom_attributes: - '@path': $.traits + braze_id: + '@path': $.properties.braze_id + time: + '@path': $.receivedAt + products: + '@path': $.properties.products + properties: + '@path': $.properties _update_existing_only: false enable_batching: true batch_size: 75 - trigger: type = "identify" - - actionId: 9DUBR4qVXRxPXa39oiz2Tc - name: Trigger Canvas - fields: - canvas_entry_properties: - '@path': $.properties - trigger: type = "track" and event = "Trigger Canvas" + trigger: event = "Order Completed" partnerOwned: false - id: 63872c01c0c112b9b4d75412 display_name: Braze Cohorts @@ -51518,7 +53808,7 @@ items: hidden: true defaultTrigger: null fields: - - id: iBdGLN4daYdMLtTU6rSv1C + - id: uWha72GX25vPRfwS2oBdMu sortOrder: 0 fieldKey: conversion_label label: Conversion Label @@ -51535,7 +53825,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pgwLcfsZH6s4HqS5sdCo1f + - id: nqYxqC3UvSFpzX5JYGpYSG sortOrder: 1 fieldKey: email label: Email @@ -51556,7 +53846,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 3KzeZyZbaT96776LXMgX2D + - id: vDm94ayk9M7uGiD1C1UULd sortOrder: 2 fieldKey: transaction_id label: Order ID @@ -51575,7 +53865,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dtZQFHLnt11KQctu8K3prK + - id: o3GVPNN5j3sxvMapS2x893 sortOrder: 3 fieldKey: user_agent label: User Agent @@ -51595,7 +53885,7 @@ items: dynamic: false allowNull: false hidden: false - - id: juj9hxpkAaHcMW8yunR6ga + - id: cG2xRCv3wgXbVHwQkLFrJW sortOrder: 4 fieldKey: conversion_time label: Conversion Time @@ -51610,7 +53900,7 @@ items: dynamic: false allowNull: false hidden: false - - id: z8t2PJC9eMsECfY8iU2Jo + - id: 6cymPUj7eTgTf8LH1LojWN sortOrder: 5 fieldKey: value label: Value @@ -51625,7 +53915,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tdPLT1QjTixCDdh2ARSdY4 + - id: eBic8Z7rk8EUTNx1PWj1ph sortOrder: 6 fieldKey: currency_code label: Currency Code @@ -51642,7 +53932,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8BMHKJ7CtsGkMJ4DZSYUsS + - id: 2wvNLpdBjK5qJoYzqb7RSn sortOrder: 7 fieldKey: is_app_incrementality label: App Conversion for Incrementality Study @@ -51656,7 +53946,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 37deXUoDfznDQhPawWk2aU + - id: cHHA1hA8bMUQ3stn2KZj1C sortOrder: 8 fieldKey: pcc_game label: PCC Game Flag @@ -51672,7 +53962,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jKmf9j3YR74YyKwo6Qq7tJ + - id: 4M3opu9vUaW9NmmLk2phi9 sortOrder: 9 fieldKey: phone_number label: Phone Number @@ -51695,7 +53985,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hQxynkT7BwwZV5VGcmG8Hp + - id: 3795pqaQ8YcSW61WMfDeAm sortOrder: 10 fieldKey: first_name label: First Name @@ -51716,7 +54006,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4YyDPV9ZGa6NJ7mmm6sJn + - id: emMif2fkzP6onGVxTKu2m6 sortOrder: 11 fieldKey: last_name label: Last Name @@ -51737,7 +54027,7 @@ items: dynamic: false allowNull: false hidden: false - - id: aGkZeveVk9nChZcmHj5CJ6 + - id: fA6XiPUFktDo8zESsuasC1 sortOrder: 12 fieldKey: street_address label: Street Address @@ -51760,7 +54050,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dBjSWaW5g7jdRmtvyM65j5 + - id: 4ajoxYfPqM7YwTd6GXthBq sortOrder: 13 fieldKey: city label: City @@ -51781,7 +54071,7 @@ items: dynamic: false allowNull: false hidden: false - - id: eGXf8FjKrgewuomyFK2mqS + - id: aPCKAtxzCNZWtDYE1DyfKD sortOrder: 14 fieldKey: region label: Region @@ -51802,7 +54092,7 @@ items: dynamic: false allowNull: false hidden: false - - id: gDRAbqyy5ieH8CNdXbAYsC + - id: jxSRRZbXvpCnFuE9dP4V5q sortOrder: 15 fieldKey: post_code label: Postal Code @@ -51823,7 +54113,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7iMKodntUfnTRKmV22Y6aT + - id: 5skcRYpfcyprMkUfDCXeUy sortOrder: 16 fieldKey: country label: Country @@ -51852,7 +54142,7 @@ items: hidden: false defaultTrigger: null fields: - - id: eCXMxWKtKFMs4PTGbYQvDS + - id: omAgmRFFNfRXAdG8qr5PC2 sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -51865,7 +54155,7 @@ items: dynamic: true allowNull: false hidden: false - - id: ehqSgvGkno7vNTPFYvU4DZ + - id: fLQsHXoaizEdcz7yBKx6h2 sortOrder: 1 fieldKey: adjustment_type label: Adjustment Type @@ -51891,7 +54181,7 @@ items: dynamic: false allowNull: false hidden: false - - id: oxNxgxppLBhE8GEkeZTWBN + - id: YjbsszTfHkcZPe7jZCNkK sortOrder: 2 fieldKey: adjustment_timestamp label: Adjustment Timestamp @@ -51910,7 +54200,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qM3QjfyqXzRacjeR6wpvKj + - id: eyHychXsKvGHvqbcLgkFMs sortOrder: 3 fieldKey: order_id label: Order ID @@ -51934,7 +54224,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7kLBDW24wEVMutcbj4TRq1 + - id: eG1VTciMMGGQqwaSpYciYB sortOrder: 4 fieldKey: gclid label: GCLID @@ -51949,7 +54239,7 @@ items: dynamic: false allowNull: false hidden: false - - id: s7JrGufTXe66hHnzjdxEgS + - id: mRP2EZ2fK2zQoqn1NQavWr sortOrder: 5 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -51966,7 +54256,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sMRHr3PQKaa8oFycVLWruv + - id: mu1VziJCgRGYksruacFzX1 sortOrder: 6 fieldKey: restatement_value label: Restatement Value @@ -51983,7 +54273,7 @@ items: dynamic: false allowNull: false hidden: false - - id: bPg5SSZKKqAgwhUuriL2MT + - id: hNNorN3TagJfdSdzLJ4AeE sortOrder: 7 fieldKey: restatement_currency_code label: Restatement Currency Code @@ -52000,7 +54290,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2VjP3Sipy7ESijt9y99Fpm + - id: cZ6z9BRcxohbgyMqMFSXQT sortOrder: 8 fieldKey: email_address label: Email Address @@ -52023,7 +54313,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ffybsX66UudshPyYF9Urju + - id: 3EnTrjDja1eXh2vXsAVZ8P sortOrder: 9 fieldKey: phone_country_code label: Phone Number Country Code @@ -52038,7 +54328,7 @@ items: choices: null dynamic: false allowNull: false - - id: go86Vo1ABjgCiamXkzvczf + - id: 3oHYVDBdCNy6CFSQzwLG4W sortOrder: 10 fieldKey: phone_number label: Phone Number @@ -52062,7 +54352,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hvuJmoqWAJxwVCkzg4TwUd + - id: P6k1koEpQt8ZtFeavRbMP sortOrder: 11 fieldKey: first_name label: First Name @@ -52083,7 +54373,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ipaMSu2iJaHaYe32XafDQM + - id: tifAw4k5oBmovrHA5mCN9m sortOrder: 12 fieldKey: last_name label: Last Name @@ -52106,7 +54396,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6kWQJhP6Yh74VwT9TztrmJ + - id: 2sa5Q9grqBUaWHQsb6ENGS sortOrder: 13 fieldKey: city label: City @@ -52127,7 +54417,7 @@ items: dynamic: false allowNull: false hidden: false - - id: aLEFjgF5MbPdcmU8fm5phK + - id: wcLty1SR2haj4FAn52gi3o sortOrder: 14 fieldKey: state label: State @@ -52148,7 +54438,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pKrq3Ka5UBs2a4qK2X2186 + - id: ckqcjRtGnZcPuBaJU4N2wA sortOrder: 15 fieldKey: country label: Country @@ -52171,7 +54461,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fXHZgfHLyxGJakZv8GvkxL + - id: rjm2T3658dmempxaEFoupZ sortOrder: 16 fieldKey: postal_code label: Postal Code @@ -52192,7 +54482,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9uiZQermcwddadvZoSc13j + - id: 77nneQeqaY1bqCQAH3cNFE sortOrder: 17 fieldKey: street_address label: Street Address @@ -52213,7 +54503,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wtmPb9uqyMZagw7bb6zrFg + - id: af1SWEBhs68rWnGqbzQ23P sortOrder: 18 fieldKey: user_agent label: User Agent @@ -52241,7 +54531,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 3dp4dwWydhb6JJwiTktoWh + - id: utY2sb8LJT9ADHyuYjjS12 sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -52254,14 +54544,12 @@ items: dynamic: true allowNull: false hidden: false - - id: dCGUr8btApEvMDW9fDGy8A + - id: tj9vVGsUiTyX7owrw3mizK sortOrder: 1 fieldKey: gclid label: GCLID type: STRING - description: >- - The Google click ID (gclid) associated with this conversion. One of - GCLID, GBRAID or WBRAID must be provided. + description: The Google click ID (gclid) associated with this conversion. placeholder: '' required: false multiple: false @@ -52269,15 +54557,14 @@ items: dynamic: false allowNull: false hidden: false - - id: jMacDSkKLczWkwDt7UNMNS + - id: sKeHtLQUrqpbwXWduXVKf2 sortOrder: 2 fieldKey: gbraid label: GBRAID type: STRING description: >- The click identifier for clicks associated with app conversions and - originating from iOS devices starting with iOS14. One of GCLID, GBRAID - or WBRAID must be provided. + originating from iOS devices starting with iOS14. placeholder: '' required: false multiple: false @@ -52285,15 +54572,14 @@ items: dynamic: false allowNull: false hidden: false - - id: nFgG5F7jmXuebojxar4wNi + - id: uqsSkCzwJuytniECH8tmkU sortOrder: 3 fieldKey: wbraid label: WBRAID type: STRING description: >- The click identifier for clicks associated with web conversions and - originating from iOS devices starting with iOS14. One of GCLID, GBRAID - or WBRAID must be provided. + originating from iOS devices starting with iOS14. placeholder: '' required: false multiple: false @@ -52301,7 +54587,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qtgVPXNp1vprTQgFzTN4tH + - id: vHEeru15MW6RLQ8p3H5mTT sortOrder: 4 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -52319,7 +54605,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 5RzDQzqZ62dfJVFF6vHKkR + - id: tv5ZPVcvDwYAC5Ku27ZAup sortOrder: 5 fieldKey: email_address label: Email Address @@ -52342,7 +54628,7 @@ items: dynamic: false allowNull: false hidden: false - - id: v9Y2rkt21JeceeNEvQUc1t + - id: 3YQ4QmgHmBJUERDrxMPt2N sortOrder: 6 fieldKey: phone_country_code label: Phone Number Country Code @@ -52357,7 +54643,7 @@ items: choices: null dynamic: false allowNull: false - - id: 39TB6eA4nCmwszMd1AZUqX + - id: dzbLeXVJ8pgWWDoPrcV5ZQ sortOrder: 7 fieldKey: phone_number label: Phone Number @@ -52381,7 +54667,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dEmis2fWEoL9T11DM8iGjV + - id: 9kFez51zJhGGuxzV49Prgw sortOrder: 8 fieldKey: order_id label: Order ID @@ -52404,7 +54690,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2WQrHtJXSKGiQpaeHHYxDT + - id: 4UgV2XrmqNowXqjv2AEZPV sortOrder: 9 fieldKey: value label: Value @@ -52419,7 +54705,7 @@ items: dynamic: false allowNull: false hidden: false - - id: k9U2C6dcV8nBExekv49yWv + - id: dUxuXfrsjwExTb92n44BUp sortOrder: 10 fieldKey: currency label: Currency @@ -52436,7 +54722,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dKbTuMgpUcpdRBYuxuHEe4 + - id: e1iuQhPPdoYfppCs2ptu5m sortOrder: 11 fieldKey: conversion_environment label: Conversion Environment @@ -52459,7 +54745,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9rC3aqb2U2WUwuqZAK6wTy + - id: dojz5Puob4x5dzruztLwx6 sortOrder: 12 fieldKey: merchant_id label: Merchant Center ID @@ -52472,7 +54758,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6kEqFf6NgmjdaLFpGqdje2 + - id: 4fBEAM2cx3WEzu5uKt3F7g sortOrder: 13 fieldKey: merchant_country_code label: Merchant Center Feed Country Code @@ -52487,7 +54773,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6PESYnLbYwDnqw232hiE9p + - id: m6SKLqLSQCPhs6GcedMSAM sortOrder: 14 fieldKey: merchant_language_code label: Merchant Center Feed Language Code @@ -52502,7 +54788,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 23f1pjvMKSs4U22Dad2hyU + - id: fXk3Kd7rsEPNoiTuWs3D2q sortOrder: 15 fieldKey: local_cost label: Local Transaction Cost @@ -52517,7 +54803,7 @@ items: dynamic: false allowNull: false hidden: false - - id: uB63H9dAhdty6tFXaoQwxY + - id: vVtKHGQBAVkwg3a1dgCcFN sortOrder: 16 fieldKey: items label: Items @@ -52539,7 +54825,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hf2sPQWjRt4XVmGbCjm5gw + - id: 9bDGpB3DuW5QVgC6EUGT8z sortOrder: 17 fieldKey: custom_variables label: Custom Variables @@ -52548,9 +54834,8 @@ items: The custom variables associated with this conversion. On the left-hand side, input the name of the custom variable as it appears in your Google Ads account. On the right-hand side, map the Segment field that contains - the corresponding value. Will not be sent if GBRAID or WBRAID fields - populated. See [Google’s documentation on how to create custom - conversion + the corresponding value See [Google’s documentation on how to create + custom conversion variables.](https://developers.google.com/google-ads/api/docs/conversions/conversion-custom-variables) placeholder: '' required: false @@ -52559,7 +54844,7 @@ items: dynamic: false allowNull: false hidden: false - - id: bET6XccxFUz7Dvx2ZZF5fu + - id: d3E6JXeWs2Z7JDYFrGNMvj sortOrder: 18 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -52580,7 +54865,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: rRWEPvmQtEhSG3fqjQkQAo + - id: rqWz2tdqWy44q3re2qPcan sortOrder: 19 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -52610,7 +54895,7 @@ items: hidden: false defaultTrigger: null fields: - - id: sSxraar6CY9nZVP9Cfk5zG + - id: 4f8DkasEy7gfgiDGoKYLwW sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -52623,7 +54908,7 @@ items: dynamic: true allowNull: false hidden: false - - id: bVnSzaJak8Y95HU3GSgrxk + - id: bvyoBYtRUjfNiMWUuswzy7 sortOrder: 1 fieldKey: caller_id label: Caller ID @@ -52638,7 +54923,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 387fuHreLjLMZ5bf5UcGQZ + - id: bWqYFPJVEAEKC9steowERU sortOrder: 2 fieldKey: call_timestamp label: Call Timestamp @@ -52654,7 +54939,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7WZgadQnr1VJQ12X9Bcitb + - id: rvVsxF5358hvqsfBMzhFWw sortOrder: 3 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -52672,7 +54957,7 @@ items: dynamic: false allowNull: false hidden: false - - id: p3KVFFHKpyjvZeAtSc8udc + - id: acryZDEJ2QWzS1yxEkjVQJ sortOrder: 4 fieldKey: value label: Value @@ -52687,7 +54972,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4mjiRpUv8J3A4QED6V2Rwh + - id: tY7j77TwuB8sCKG8jZ9ojM sortOrder: 5 fieldKey: currency label: Currency @@ -52704,7 +54989,7 @@ items: dynamic: false allowNull: false hidden: false - - id: bBZ2ekiDooc7kUex7iUm7k + - id: euiUmiVGEDNyjXPnzjRBWP sortOrder: 6 fieldKey: custom_variables label: Custom Variables @@ -52723,7 +55008,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7San8airb269Dqs1JQiXqX + - id: gFYUVWNwr3X3nMUyFnFCQ2 sortOrder: 7 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -52744,7 +55029,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: bdZnknNZgpLgeyHPbjr4w6 + - id: hmsZr7YmBzE5nVzeGZxRWS sortOrder: 8 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -52774,7 +55059,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: sDTvnmVA6y3y61Ar1mEahD + - id: cqgHCGxFhFynHcpvCAinf9 sortOrder: 0 fieldKey: first_name label: First Name @@ -52794,7 +55079,7 @@ items: choices: null dynamic: false allowNull: false - - id: bDAFX5rVNxPaGyMjccKw4c + - id: 3anbKJFHuFB7VVz2XEvfRz sortOrder: 1 fieldKey: last_name label: Last Name @@ -52814,7 +55099,7 @@ items: choices: null dynamic: false allowNull: false - - id: if1mquacvZLy4tvRLjAc8U + - id: wHnpK7yAaVjxXTu1AMMx8 sortOrder: 2 fieldKey: email label: Email @@ -52834,7 +55119,7 @@ items: choices: null dynamic: false allowNull: false - - id: ad7zLQ8tdoGB2swybneXZC + - id: 9wgSGJqKpBZLUHrHdUrXBx sortOrder: 3 fieldKey: phone label: Phone @@ -52854,7 +55139,7 @@ items: choices: null dynamic: false allowNull: false - - id: qMBtLxK9PkrbZMbyMkdbs7 + - id: 7rPpLTruSeHmnqTGjDogkQ sortOrder: 4 fieldKey: phone_country_code label: Phone Number Country Code @@ -52869,7 +55154,7 @@ items: choices: null dynamic: false allowNull: false - - id: x3DikK4gj23dN1Zx6c7bqc + - id: 2vAZpKhruZ3sKDZNsRmZvf sortOrder: 5 fieldKey: country_code label: Address Country Code @@ -52881,7 +55166,7 @@ items: choices: null dynamic: false allowNull: false - - id: uH1qipG1JvfGXmDNGqb94E + - id: aG5zwwx7yy42DJbL76zNNW sortOrder: 6 fieldKey: postal_code label: Postal Code @@ -52893,7 +55178,7 @@ items: choices: null dynamic: false allowNull: false - - id: nv1cUH4WkCQydf7HVRYNyv + - id: 5zBABfn9QKKVt67JoLPZAo sortOrder: 7 fieldKey: crm_id label: CRM ID @@ -52907,7 +55192,7 @@ items: choices: null dynamic: false allowNull: false - - id: qKSukeqfTLZqgQjTkWNkSq + - id: pFKVAjgoXpUoa2Vbb8XFT7 sortOrder: 8 fieldKey: mobile_advertising_id label: Mobile Advertising ID @@ -52923,7 +55208,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5DW9e4sZkipuVKp3EnWmh8 + - id: 88sX6YKP5mv7Nt2mnx1sZU sortOrder: 9 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -52944,7 +55229,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: 5WvmCQLEqaXGUkdRNmVoFs + - id: 3FFkdHp9kNiMpyiv8susSF sortOrder: 10 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -52966,7 +55251,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: 4x2tk47nBqJo1UWQcNtxwd + - id: 4o5yQvZcXaih4UfkLg3qxe sortOrder: 15 fieldKey: list_id label: Existing List ID @@ -52980,7 +55265,7 @@ items: choices: null dynamic: true allowNull: false - - id: 3AcgJUcXWGM4HpBQaW2uiE + - id: dH4J3TKA61RNod7wgFMqro sortOrder: 16 fieldKey: list_name label: List Name @@ -52992,7 +55277,7 @@ items: choices: null dynamic: false allowNull: false - - id: it3pxyzAfMQsx1Lqf8K4tk + - id: hgSR6UEShMHzyVZPizPieU sortOrder: 17 fieldKey: external_id_type label: External ID Type @@ -53011,7 +55296,7 @@ items: value: MOBILE_ADVERTISING_ID dynamic: false allowNull: false - - id: xmkFnQFNeWcKjGiqtka42V + - id: hu9WBML44VyhHaamrsuPgo sortOrder: 18 fieldKey: app_id label: App ID @@ -53026,7 +55311,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3xKnrU87x5Y482UKy57kfr + - id: m7JeAmkXZTsHrKpLx4o6u9 sortOrder: 19 fieldKey: retlOnMappingSave label: Connect to a Google Customer Match User List @@ -53049,7 +55334,7 @@ items: hidden: false defaultTrigger: null fields: - - id: gMby4TNBBsuSZwMc2Upz3r + - id: uAf37jkKyodreoNnhh7A76 sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -53061,7 +55346,7 @@ items: choices: null dynamic: true allowNull: false - - id: 7cyupTfqX3BSqTtRpk94WD + - id: 74nya66shfGVbGZHVFDghm sortOrder: 1 fieldKey: caller_id label: Caller ID @@ -53075,7 +55360,7 @@ items: choices: null dynamic: false allowNull: false - - id: w6Fn4rdTCrjEYpaW8HX3Cw + - id: imFcuLiJvXpXgveKMzUqNN sortOrder: 2 fieldKey: call_timestamp label: Call Timestamp @@ -53090,7 +55375,7 @@ items: choices: null dynamic: false allowNull: false - - id: uhtv8hYZsAXqN8YxU5PMzV + - id: foMqCVRjR1xyAZHikbN14o sortOrder: 3 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -53107,7 +55392,7 @@ items: choices: null dynamic: false allowNull: false - - id: k5LN9Tpzq79BKFC42QLzwF + - id: rRX4cn9PzKioY4Euc4Vjvc sortOrder: 4 fieldKey: value label: Value @@ -53121,7 +55406,7 @@ items: choices: null dynamic: false allowNull: false - - id: m63pKHus64ieUiyEFMv35X + - id: o6NSyFFV9hP7s2JDP4eZSd sortOrder: 5 fieldKey: currency label: Currency @@ -53137,7 +55422,7 @@ items: choices: null dynamic: false allowNull: false - - id: 69Fy3KJzGG1mqMM2uADmGq + - id: utLakv71FgC5qe9GDMYerC sortOrder: 6 fieldKey: custom_variables label: Custom Variables @@ -53155,7 +55440,7 @@ items: choices: null dynamic: false allowNull: false - - id: dRTWDPgLWJ18aXKwzHBbdn + - id: 6tinsFCw84ZjhxBcmz35Xo sortOrder: 7 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -53176,7 +55461,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: usEArmwJHcJ573JPYcnj3 + - id: dYP484NWtQS97KQLwBfAx6 sortOrder: 8 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -53206,7 +55491,7 @@ items: hidden: false defaultTrigger: null fields: - - id: xgrFy7Kc1e6Lys3i8th5h8 + - id: b3rMFQQMqvHSKHxxnygxdf sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -53218,7 +55503,7 @@ items: choices: null dynamic: true allowNull: false - - id: cmP9LEN7bYP7B22Bb2BQsZ + - id: 3nBUnvLoZHPvogC96VnEZe sortOrder: 1 fieldKey: adjustment_type label: Adjustment Type @@ -53243,7 +55528,7 @@ items: value: ENHANCEMENT dynamic: false allowNull: false - - id: gZUXXQDQf583MnXs8pedj2 + - id: YQAPDsJzVVViLTD6JS5r5 sortOrder: 2 fieldKey: adjustment_timestamp label: Adjustment Timestamp @@ -53261,7 +55546,7 @@ items: choices: null dynamic: false allowNull: false - - id: tQZfHzjhFtx2efo6m96v84 + - id: 9oR8yB31h8mWDAszBxWQvU sortOrder: 3 fieldKey: order_id label: Order ID @@ -53284,7 +55569,7 @@ items: choices: null dynamic: false allowNull: false - - id: oFww5R9FiGSyqbUwTNYWFE + - id: auFdQjYFV4GKJ9fap23nT2 sortOrder: 4 fieldKey: gclid label: GCLID @@ -53298,7 +55583,7 @@ items: choices: null dynamic: false allowNull: false - - id: uZtDpU4UMh1WL5R6Nj4hnQ + - id: DEJzZuWinQNduc4TVBpUY sortOrder: 5 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -53314,7 +55599,7 @@ items: choices: null dynamic: false allowNull: false - - id: cvJwWUy7u19g4xKxUMopEN + - id: rrQZJWaZpowfC25sYDAQet sortOrder: 6 fieldKey: restatement_value label: Restatement Value @@ -53330,7 +55615,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9wTsSdbMFwiPpd5VyDGV9L + - id: 5v9Siudh9PZc8i4i1FFrFJ sortOrder: 7 fieldKey: restatement_currency_code label: Restatement Currency Code @@ -53346,7 +55631,7 @@ items: choices: null dynamic: false allowNull: false - - id: cWjY4RNUR1uqQFPfsZVvFi + - id: tXxefoZhS5xjwdVyBRYYvz sortOrder: 8 fieldKey: phone_country_code label: Phone Number Country Code @@ -53361,7 +55646,7 @@ items: choices: null dynamic: false allowNull: false - - id: iwUubYi4C9o8nv5DjT4Pdf + - id: poFPAgMJ8Er3LNiAVezZ49 sortOrder: 9 fieldKey: email_address label: Email Address @@ -53383,7 +55668,7 @@ items: choices: null dynamic: false allowNull: false - - id: vr62XkSTrTEisvbvgq7SCx + - id: wQxcuDSrm8TzRyZLUPhi94 sortOrder: 10 fieldKey: phone_number label: Phone Number @@ -53406,7 +55691,7 @@ items: choices: null dynamic: false allowNull: false - - id: wJXWeutSazM2iwQn44pAZX + - id: qg9fSUT8WMsDNKaAuGGvhT sortOrder: 11 fieldKey: first_name label: First Name @@ -53426,7 +55711,7 @@ items: choices: null dynamic: false allowNull: false - - id: dMJNoRRKRfP1qij8FeSdcm + - id: wGKYaTi7vQHxekqQvUWfbp sortOrder: 12 fieldKey: last_name label: Last Name @@ -53448,7 +55733,7 @@ items: choices: null dynamic: false allowNull: false - - id: 56KDmkVZk3FoW7oNxq8Lwx + - id: hoXuP7SZKFQM2DQYCQhHEF sortOrder: 13 fieldKey: city label: City @@ -53468,7 +55753,7 @@ items: choices: null dynamic: false allowNull: false - - id: mSv4MdQ9oPQ5kSAAv4LJWB + - id: vTg9cqmwUN4ZfjY9yR7NL1 sortOrder: 14 fieldKey: state label: State @@ -53488,7 +55773,7 @@ items: choices: null dynamic: false allowNull: false - - id: kL6fcrFCKwb52zR2u4G2hE + - id: hBgt8cceFPUTsUK5synUnj sortOrder: 15 fieldKey: country label: Country @@ -53510,7 +55795,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6BwigpKhU8Z4MQE2Cc8Cdm + - id: oJmjV5rsmkJqSd9d393fnr sortOrder: 16 fieldKey: postal_code label: Postal Code @@ -53530,7 +55815,7 @@ items: choices: null dynamic: false allowNull: false - - id: uA2s9w8B7g6sw5aDkeHJbs + - id: w3W8nYGji2b54noDiWNYJB sortOrder: 17 fieldKey: street_address label: Street Address @@ -53552,7 +55837,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7uXnBfpKanK8ysTX8Dk5oN + - id: 8S38afzUEaARBu8XwNojPi sortOrder: 18 fieldKey: user_agent label: User Agent @@ -53579,7 +55864,7 @@ items: hidden: false defaultTrigger: null fields: - - id: vPV8GDsNZ8idSqekuhrn2a + - id: 7ABZGortsUcvwLZvqQM2As sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -53591,51 +55876,47 @@ items: choices: null dynamic: true allowNull: false - - id: dEhg2mGi8Bk5HGx7XP1mhC + - id: ctaGgQGVTWiLX2GhiJjnQM sortOrder: 1 fieldKey: gclid label: GCLID type: STRING - description: >- - The Google click ID (gclid) associated with this conversion. One of - GCLID, GBRAID or WBRAID must be provided. + description: The Google click ID (gclid) associated with this conversion. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: ji75441EHVQodrc7Vsrr1t + - id: 67vCA5yPvgu2FyGM3orNvY sortOrder: 2 fieldKey: gbraid label: GBRAID type: STRING description: >- The click identifier for clicks associated with app conversions and - originating from iOS devices starting with iOS14. One of GCLID, GBRAID - or WBRAID must be provided. + originating from iOS devices starting with iOS14. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: bd89GYci3MfCPPPK9eFvxd + - id: 2RsMyoVRGWdxhd6qcykCQx sortOrder: 3 fieldKey: wbraid label: WBRAID type: STRING description: >- The click identifier for clicks associated with web conversions and - originating from iOS devices starting with iOS14. One of GCLID, GBRAID - or WBRAID must be provided. + originating from iOS devices starting with iOS14. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: acmRbLVULtQANRdNnQY9g7 + - id: cfumqtkwbDJfyZMT71s4Wr sortOrder: 4 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -53652,7 +55933,7 @@ items: choices: null dynamic: false allowNull: false - - id: xBaE17VfftUXpwRU1sK42J + - id: 9f2dVz4zgHCHsaiiW7NiED sortOrder: 5 fieldKey: email_address label: Email Address @@ -53674,7 +55955,7 @@ items: choices: null dynamic: false allowNull: false - - id: sG6PBo9y61ZTiNRmcHW4qM + - id: cREGbk5YX4wyWzmope9rMm sortOrder: 6 fieldKey: phone_country_code label: Phone Number Country Code @@ -53689,7 +55970,7 @@ items: choices: null dynamic: false allowNull: false - - id: fDNY5boZaWXkqWma6QAYvU + - id: 4jYayQRzhmJ6pD5sG5oEuH sortOrder: 7 fieldKey: phone_number label: Phone Number @@ -53712,7 +55993,7 @@ items: choices: null dynamic: false allowNull: false - - id: 49hdCo5bmNtW5yVcLQSgvY + - id: 4hWmJCeKaCdsouF6JJ52dH sortOrder: 8 fieldKey: order_id label: Order ID @@ -53734,7 +56015,7 @@ items: choices: null dynamic: false allowNull: false - - id: qkh9N77mW6c8P7gcvFqGz5 + - id: vEq3e2RLGKMVszaQPSEff2 sortOrder: 9 fieldKey: value label: Value @@ -53748,7 +56029,7 @@ items: choices: null dynamic: false allowNull: false - - id: bttFjeS2DKZHEqEBFSSnth + - id: 5EoY6GCfsfR8estmYYA9f7 sortOrder: 10 fieldKey: currency label: Currency @@ -53764,7 +56045,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7Qm3ngduoEGxnPAaav6oUc + - id: sNp38MdzVKx95jQZUTmn7s sortOrder: 11 fieldKey: conversion_environment label: Conversion Environment @@ -53786,7 +56067,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: 9z1Dw9xX5nrnbhdhwjsgR1 + - id: rqXZwyZVefjUToq4eaWPAS sortOrder: 12 fieldKey: merchant_id label: Merchant Center ID @@ -53798,7 +56079,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4WU7iwyTw6H1HcK2N9S3pn + - id: 5fVHWgqDq29dGoG7L349ub sortOrder: 13 fieldKey: merchant_country_code label: Merchant Center Feed Country Code @@ -53812,7 +56093,7 @@ items: choices: null dynamic: false allowNull: false - - id: uJurc1BvcStz5yL85YjAW4 + - id: 5Nx1N3VvkykR7EyBVtfo8 sortOrder: 14 fieldKey: merchant_language_code label: Merchant Center Feed Language Code @@ -53826,7 +56107,7 @@ items: choices: null dynamic: false allowNull: false - - id: dgNyiZrXrHXpdSkWEjVvHH + - id: 5fqhNPgWg66GWzihfoDa3o sortOrder: 15 fieldKey: local_cost label: Local Transaction Cost @@ -53840,7 +56121,7 @@ items: choices: null dynamic: false allowNull: false - - id: f3mKMj3g1xXYKMBhXQESzQ + - id: mcKcE4iKz4kVSLtXFVaXEY sortOrder: 16 fieldKey: items label: Items @@ -53861,7 +56142,7 @@ items: choices: null dynamic: false allowNull: false - - id: ftdi5KQbp1Tr3akeZQpktp + - id: n5u5EL7kXGk6NTJrVYRheZ sortOrder: 17 fieldKey: custom_variables label: Custom Variables @@ -53870,9 +56151,8 @@ items: The custom variables associated with this conversion. On the left-hand side, input the name of the custom variable as it appears in your Google Ads account. On the right-hand side, map the Segment field that contains - the corresponding value. Will not be sent if GBRAID or WBRAID fields - populated. See [Google’s documentation on how to create custom - conversion + the corresponding value See [Google’s documentation on how to create + custom conversion variables.](https://developers.google.com/google-ads/api/docs/conversions/conversion-custom-variables) placeholder: '' required: false @@ -53880,7 +56160,7 @@ items: choices: null dynamic: false allowNull: false - - id: 34HKCS1dj1btdtw1boYxQe + - id: 7sKm97uefWyBEdS3JVcMkp sortOrder: 18 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -53901,7 +56181,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: wjNeujiw5b1YZ5tYdaz5qv + - id: aNuZsRK3V3QmGKrkkJPfBR sortOrder: 19 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -67437,7 +69717,7 @@ items: hidden: false defaultTrigger: type = "track" or type = "identify" fields: - - id: 5cY2gmAjT7DcH7jJYeC6A4 + - id: 775trsAhAPYd17NqGP3VTV sortOrder: 0 fieldKey: custom_audience_name label: Custom Audience Name @@ -67452,7 +69732,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pM4dn6ACmip7fEtv7fRPyd + - id: hY8h2gV8u2b2gDFjWxyQpK sortOrder: 1 fieldKey: segment_computation_action label: Segment Computation Action @@ -67469,7 +69749,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6nmVCm14f4RwY2dKpPigo2 + - id: nkV3MrsnGL4kTaSGnyr962 sortOrder: 2 fieldKey: append_arrays label: Append Array Fields @@ -67484,7 +69764,7 @@ items: choices: null dynamic: false allowNull: false - - id: rm6VSenWZ5VGUgmoggq6e6 + - id: iTUL5rDVguVC1brzCLKEzA sortOrder: 3 fieldKey: email label: Email @@ -67499,13 +69779,13 @@ items: '@path': $.context.traits.email else: '@path': $.traits.email - required: true + required: false multiple: false choices: null dynamic: false allowNull: false hidden: false - - id: bf1yxxMjviJbjSCDUWJfRC + - id: uwsRqaXZZzNTDyL8khFhTZ sortOrder: 4 fieldKey: phone label: Phone @@ -67526,7 +69806,7 @@ items: dynamic: false allowNull: false hidden: false - - id: iXQp8DQwvXnqdikYSHVxr4 + - id: sxEkWkgFTfMC2Csjh4DTU9 sortOrder: 5 fieldKey: traits_or_props label: traits or properties object @@ -67547,7 +69827,7 @@ items: dynamic: false allowNull: false hidden: false - - id: twctYXqLpW612tYSdgZdnf + - id: 3NUgLyanMaBff3BLy23WRW sortOrder: 6 fieldKey: user_id label: User ID @@ -67562,7 +69842,7 @@ items: dynamic: false allowNull: false hidden: false - - id: czuyBxpCF4n4QbnzPM8MLT + - id: aKFmYu3u3e88L8rZoVAfZT sortOrder: 7 fieldKey: anonymous_id label: Anonymous ID @@ -67577,7 +69857,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dcw7S2ANngS6ssCyq9iw1w + - id: k6yzvnHbKoM9ZVj3RqiTuu sortOrder: 8 fieldKey: event_type label: Event Type @@ -67592,7 +69872,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jQbdxQvzn1tKTejfyUZyfX + - id: goufJ3ucmppMy3u2WAYm3D sortOrder: 9 fieldKey: event_name label: Event Name @@ -67613,7 +69893,7 @@ items: dynamic: false allowNull: false hidden: false - - id: j1oLfmENnEeVXR2pspqrJS + - id: qETT7qHwKgdFdP4xXNDbAE sortOrder: 10 fieldKey: timestamp label: Timestamp @@ -82353,7 +84633,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: ghfHdBxx9d9GJVHn1588jR + - id: p4STQ2Bktmjj7oKxWteodJ sortOrder: 0 fieldKey: event_name label: Event Name @@ -82371,7 +84651,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vQXsGa5x39esNqwpN1X2jH + - id: fFnr29VLAnibybNLqyDRQd sortOrder: 1 fieldKey: event_type label: Event Type @@ -82386,7 +84666,7 @@ items: dynamic: false allowNull: false hidden: false - - id: b2jsatNsNR2MdcSWLHcuzy + - id: 2ihu6ZrRmBD9rumCBVyqA1 sortOrder: 2 fieldKey: segment_user_id label: User ID @@ -82401,7 +84681,7 @@ items: dynamic: false allowNull: false hidden: false - - id: o1ho88oDZ6UqdijgvcdEzM + - id: qbcYhPevV9fUPShAA7uTLL sortOrder: 3 fieldKey: livelike_profile_id label: LiveLike User Profile ID @@ -82416,7 +84696,7 @@ items: dynamic: false allowNull: false hidden: false - - id: piGMFX4emcuw6Jg54FdMAz + - id: 8NkPzSCvjBdg41isbWZDb2 sortOrder: 5 fieldKey: custom_id label: Custom ID @@ -82436,7 +84716,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jHUjAyqvQAHTNgdeZUNfLh + - id: t8V2yA4ZcTaCMDpdwfY2sX sortOrder: 6 fieldKey: timestamp label: Timestamp @@ -82454,7 +84734,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4XCGdGqszrx2kCcPxVYmrN + - id: cLkyfDHuRpYuLpNrmHoKpP sortOrder: 7 fieldKey: properties label: Event Properties @@ -82469,6 +84749,134 @@ items: dynamic: false allowNull: false hidden: false + - id: 6cquCWDuRPE99wLjvV4Lh6 + name: Sync to User Group + slug: syncToUserGroup + description: >- + Sync Segment user data to a user group in LiveLike. Can be used to sync + Engage Audience data to LiveLike User Groups. + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" + fields: + - id: ahGL5iZiqgyD8KVKQSk9AL + sortOrder: 0 + fieldKey: audience_id + label: Segment Audience ID + type: STRING + description: The unique identifier for the Segment Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.computation_id + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: amsVBCYihJQTusBp2pZscs + sortOrder: 1 + fieldKey: audience_name + label: Segment Audience Name + type: STRING + description: The name of the Segment Audience. + placeholder: '' + defaultValue: + '@path': $.context.personas.computation_key + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: u3KQPMHZrBmZGL3ePxEpS8 + sortOrder: 2 + fieldKey: action + label: Action + type: BOOLEAN + description: >- + Set to true to add the user to the User Group, set to false to remove + the user from the User Group. If connecting to an Engage Audience, leave + this field empty. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: cDLfYtf62K1SKnQjzwqSKA + sortOrder: 3 + fieldKey: timestamp + label: Timestamp + type: STRING + description: The timestamp of the event. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: xu2Zi43oXiLq2hXTSerVDK + sortOrder: 5 + fieldKey: traits_or_properties_hidden + label: Traits or Properties hidden + type: OBJECT + description: >- + Hidden field used to figure out if user is added or removed from an + Engage Audience + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits + then: + '@path': $.traits + else: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rd3ND6ENeRQ58uDM5ZVgCi + sortOrder: 6 + fieldKey: user_id + label: User ID + type: STRING + description: A unique identifier for a user. + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 92HbHyN84LBFpD6G7ekoYS + sortOrder: 7 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: The number of records to process in each batch. Default is 100. + placeholder: '' + defaultValue: 100 + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: nMtDZnTRVhjnBgyGLFo2t1 + sortOrder: 8 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false presets: - actionId: hi6egKehiHEcn789ZZvs18 name: Screen Calls diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index fc0e726a1c..29047ce6b1 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 2025-07-24 +# destination data last updated 2025-07-31 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index e7208eb76a..4037c85ab7 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 2025-07-24 +# source categories last updated 2025-07-31 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 5dc4192ba2..8bcc064b0d 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 2025-07-24 +# sources last updated 2025-07-31 items: - id: 8HWbgPTt3k display_name: .NET From b2cded3123f60cdb23887c78c63b6f243a9b2204 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 1 Aug 2025 15:14:24 -0400 Subject: [PATCH 395/438] fixedit --- src/_includes/content/destination-footer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_includes/content/destination-footer.md b/src/_includes/content/destination-footer.md index 13fd3de1fe..c54bd3ed9a 100644 --- a/src/_includes/content/destination-footer.md +++ b/src/_includes/content/destination-footer.md @@ -36,7 +36,7 @@ Segment lets you change these destination settings from the Segment app without {% unless item.deprecated == true %} - + From 1b30ccc96b2cdfcbe4dea1b0e5d5317946f21027 Mon Sep 17 00:00:00 2001 From: Varadarajan V <109586712+varadarajan-tw@users.noreply.github.com> Date: Mon, 4 Aug 2025 12:04:54 +0530 Subject: [PATCH 396/438] Update src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../catalog/actions-facebook-custom-audiences/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md index d44547c6e5..a98cd4cb26 100644 --- a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md +++ b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md @@ -22,9 +22,9 @@ This destination sends audiences, or lists of users, to Facebook Custom Audience ### Prerequisites -- A source already set up: +- A source already set up. - For Reverse ETL: If you don't yet have a Reverse ETL source, follow the instructions in Segment's [Reverse ETL documentation](/docs/connections/reverse-etl/#getting-started). Segment recommends setting an [External ID](#sync-audience) as the primary key for your Reverse ETL model, as you'll need an External ID to remove users from your custom audiences. - - For Engage Audiences: An [Engage Audience](/docs/engage/audiences/) configured which you can connect to this destination. + - For Engage Audiences: An [Engage Audience](/docs/engage/audiences/) that you can connect to this destination. - A Facebook account with [ads_management](https://developers.facebook.com/docs/permissions#ads_management){:target="_blank”} permissions for the target Facebook Ad Account(s). The Facebook Ad Account(s) must also be associated with a [Facebook Business Account](https://www.facebook.com/business/help/407323696966570?id=649869995454285){:target="_blank”}. - Ensure that the user connecting to the destination using OAuth has at least an *Advertiser* or *Admin* role on the ad account. To manage permissions and roles for an ad account, reference [Facebook's documentation](https://www.facebook.com/business/help/186007118118684?id=829106167281625){:target="_blank"}. From 42b788497100cb1a2b9c832e0085e6056b68125a Mon Sep 17 00:00:00 2001 From: Varadarajan V <109586712+varadarajan-tw@users.noreply.github.com> Date: Mon, 4 Aug 2025 12:05:01 +0530 Subject: [PATCH 397/438] Update src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../catalog/actions-facebook-custom-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md index a98cd4cb26..2e1995979b 100644 --- a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md +++ b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md @@ -124,7 +124,7 @@ Segment automatically hashes any of the following fields that are not already SH * Gender -## Additional Traits Matching +## Additional trait matching Segment [Trait Enrichment](/docs/engage/trait-activation/trait-enrichment/) allows you to send an expanded list of identifiers or traits to Facebook, so that Facebook can try to use these additional data points to match to their user profiles. If you have this feature enabled and implemented any of these traits in your Segment tracking, the Facebook Custom Audiences (Actions) can send this data to Facebook. Segment can now also sync multiple emails if the profile contains more than one. Additionally as part of this feature, Segment hashes fields before sending them downstream to Facebook, if required as described in [Hashing](#hashing)section. From ef0002a630b61c60ff78744259877ea870a502fe Mon Sep 17 00:00:00 2001 From: Varadarajan V <109586712+varadarajan-tw@users.noreply.github.com> Date: Mon, 4 Aug 2025 12:05:06 +0530 Subject: [PATCH 398/438] Update src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../catalog/actions-facebook-custom-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md index 2e1995979b..204e20c776 100644 --- a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md +++ b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md @@ -126,7 +126,7 @@ Segment automatically hashes any of the following fields that are not already SH ## Additional trait matching -Segment [Trait Enrichment](/docs/engage/trait-activation/trait-enrichment/) allows you to send an expanded list of identifiers or traits to Facebook, so that Facebook can try to use these additional data points to match to their user profiles. If you have this feature enabled and implemented any of these traits in your Segment tracking, the Facebook Custom Audiences (Actions) can send this data to Facebook. Segment can now also sync multiple emails if the profile contains more than one. Additionally as part of this feature, Segment hashes fields before sending them downstream to Facebook, if required as described in [Hashing](#hashing)section. +Segment [Trait Enrichment](/docs/engage/trait-activation/trait-enrichment/) allows you to send an expanded list of identifiers or traits to Facebook so that Facebook can try to use these additional data points to match to their user profiles. If you have this feature enabled and implemented any of these traits in your Segment tracking, the Facebook Custom Audiences (Actions) destination can send this data to Facebook. Segment can now also sync multiple emails if the profile contains more than one. Additionally as part of this feature, Segment hashes fields before sending them downstream to Facebook as described in the [Hashing](#hashing) section. ## FAQs and troubleshooting From 7da05d298483533b8d6fe3b34071304cb1ce8cbf Mon Sep 17 00:00:00 2001 From: motasem-userpilot Date: Mon, 4 Aug 2025 15:09:46 +0300 Subject: [PATCH 399/438] =?UTF-8?q?=F0=9F=93=9D=20Add=20Segment=20Destinat?= =?UTF-8?q?ion=20ID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/connections/destinations/catalog/userpilot-mobile/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/connections/destinations/catalog/userpilot-mobile/index.md b/src/connections/destinations/catalog/userpilot-mobile/index.md index 068b5d1b7f..2b80633eb0 100644 --- a/src/connections/destinations/catalog/userpilot-mobile/index.md +++ b/src/connections/destinations/catalog/userpilot-mobile/index.md @@ -1,5 +1,6 @@ --- title: Userpilot Mobile (Device Mode) Destination +id: 68207e064c022255721ec2d3 --- Userpilot helps product teams deliver personalized in-app experiences to increase growth metrics at every stage of the user journey. When you integrate Userpilot with Segment, you can send your Segment events to Userpilot, enabling you to create more personalized experiences for your users across the product lifecycle. From ae9624031ee8a28f76120364d4cb586f83c7aab9 Mon Sep 17 00:00:00 2001 From: Joe Ayoub Date: Tue, 5 Aug 2025 10:26:46 +0100 Subject: [PATCH 400/438] Supporting RCS channel for Twilio Messaging Destination --- .../destinations/catalog/actions-twilio-messaging/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 53f111b07a..a90746de5d 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -93,7 +93,7 @@ To configure the mapping: | Field | Description | Notes | | ------------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Channel** | Choose which channel to send the message on. | Options: SMS, MMS, and WhatsApp. | +| **Channel** | Choose which channel to send the message on. | Options: SMS, MMS, WhatsApp and RCS. If selecting RCS, ensure that RCS is enabled in your Twilio account. | | **Sender Type** | Pick how you want to send the message. | Options: Phone number or Messaging Service. Phone numbers must be approved in Twilio. | | **Content Template Type** | Select the type of content template. | Options include Inline or templates you’ve built in Twilio. Segment only shows templates that match your selected Channel and Template Type. | | **To Phone Number** | Enter the recipient’s phone number. | Must be in [E.164 format](https://www.twilio.com/docs/glossary/what-e164){:target="_blank"}. | From f2e9f57cb8711b10db7d85745450f146f1871638 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 5 Aug 2025 13:39:31 +0100 Subject: [PATCH 401/438] comma added --- .../destinations/catalog/actions-twilio-messaging/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index a90746de5d..282a97366d 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -93,7 +93,7 @@ To configure the mapping: | Field | Description | Notes | | ------------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Channel** | Choose which channel to send the message on. | Options: SMS, MMS, WhatsApp and RCS. If selecting RCS, ensure that RCS is enabled in your Twilio account. | +| **Channel** | Choose which channel to send the message on. | Options: SMS, MMS, WhatsApp, and RCS. If selecting RCS, ensure that RCS is enabled in your Twilio account. | | **Sender Type** | Pick how you want to send the message. | Options: Phone number or Messaging Service. Phone numbers must be approved in Twilio. | | **Content Template Type** | Select the type of content template. | Options include Inline or templates you’ve built in Twilio. Segment only shows templates that match your selected Channel and Template Type. | | **To Phone Number** | Enter the recipient’s phone number. | Must be in [E.164 format](https://www.twilio.com/docs/glossary/what-e164){:target="_blank"}. | @@ -182,4 +182,4 @@ Here are a few things to keep in mind when using the Twilio Messaging destinatio - **Phone numbers must be approved**. Any phone number you use to send messages must be approved in your Twilio account and support the channel you’re sending on. - **Message logs and errors**. If a message fails to send, you can view details in your Twilio Console message logs. Common issues include invalid phone number formats or missing required template fields. -Understanding these details will help you set up your messaging flows smoothly and avoid unexpected errors. \ No newline at end of file +Understanding these details will help you set up your messaging flows smoothly and avoid unexpected errors. From c8081f0bacd6e45a82f132801c89b3ee735bad6c Mon Sep 17 00:00:00 2001 From: Joe Ayoub Date: Tue, 5 Aug 2025 16:03:13 +0100 Subject: [PATCH 402/438] New Destination - Nextdoor --- .../catalog/actions-nextdoor-capi/index.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/connections/destinations/catalog/actions-nextdoor-capi/index.md diff --git a/src/connections/destinations/catalog/actions-nextdoor-capi/index.md b/src/connections/destinations/catalog/actions-nextdoor-capi/index.md new file mode 100644 index 0000000000..9996dbaf67 --- /dev/null +++ b/src/connections/destinations/catalog/actions-nextdoor-capi/index.md @@ -0,0 +1,26 @@ +--- +title: Nextdoor Conversions API Destination +--- + +{% include content/plan-grid.md name="actions" %} + +[Nextdoor Conversion API](https://yourintegration.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} allows advertisers to track and send conversion events directly to the platform. This API provides a programmatic way to record and attribute conversions, enabling advertisers to measure the effectiveness of their advertising campaigns. + +This destination is maintained by Nextdoor. For any issues with the destination, [contact their Support team](mailto:ads-api@nextdoor.com). + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Nextdoor". +2. Select Nextdoor Conversions API and click **Add Destination**. +3. Select an existing Source to connect to Nextdoor Conversions API. +4. Go to the [Nextdoor Ads Manager](https://ads.nextdoor.com/v2/manage/api){:target="_blank"}, then find and copy the **API key**, **Nextdoor Advertiser ID** and **Nextdoor Pixel Id** values. If these values are not visible in the Ads Manager, you may need to contact your Nextdoor Account Manager to ensure that your Nextdoor account has been whitelisted for the (Ads API) functionality. +5. Enter the **API key**, **Nextdoor Advertiser ID** and **Nextdoor Pixel Id** values in the Nextdoor Conversions API destination settings in Segment. +6. In the Mappings tab, configure the Actions to send data to Nextdoor Conversions API. +7. Enable the Destination and Actions. +8. See [Nextdoor's documentation](https://developer.nextdoor.com/reference/conversion-api){:target="_blank”} for additional instructions. + +{% include components/actions-fields.html %} + +## Nextdoor Browser Plugin Action +When the **Nextdoor Conversions API** destination receives website data from a Segment JavaScript source, the **Nextdoor Browser Plugin** automatically grabs the **Nextdoor click ID** / **ndclid** from the querystirng in the page URL, and passes it to the **Send Conversion** Action. Supplying the **ndclid** boosts attribution accuracy and is strongly recommended for website tracking. The plugin is enabled by default as soon as the destination is created. + From 9f87520ee0f8e09045b00a766ea16ae9b3f688de Mon Sep 17 00:00:00 2001 From: Motasem Date: Wed, 6 Aug 2025 09:09:24 +0300 Subject: [PATCH 403/438] Update index.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/destinations/catalog/userpilot-mobile/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/userpilot-mobile/index.md b/src/connections/destinations/catalog/userpilot-mobile/index.md index 2b80633eb0..f661459c67 100644 --- a/src/connections/destinations/catalog/userpilot-mobile/index.md +++ b/src/connections/destinations/catalog/userpilot-mobile/index.md @@ -1,5 +1,5 @@ --- -title: Userpilot Mobile (Device Mode) Destination +title: Userpilot Mobile Device Mode Destination id: 68207e064c022255721ec2d3 --- From e45a7a9d2e593113c1f87e275eb348a0184703c3 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 6 Aug 2025 09:33:28 -0400 Subject: [PATCH 404/438] Update src/privacy/user-deletion-and-suppression.md Co-authored-by: Sharon Adewusi --- src/privacy/user-deletion-and-suppression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/privacy/user-deletion-and-suppression.md b/src/privacy/user-deletion-and-suppression.md index 40861daf5b..34d756a846 100644 --- a/src/privacy/user-deletion-and-suppression.md +++ b/src/privacy/user-deletion-and-suppression.md @@ -59,7 +59,7 @@ Warehouse deletions occur using a DML run against your cluster or instance. Segm ### Deletion requests tab -The deletion requests tab shows a 30-day overview of your deletions pipeline, including a Regulations usage tracker and a deletion requests status table. The deletion requests summary tab shows the status of all your deletion requests from the last 30-day and might not accurately reflect your current deletion request limits. +The deletion requests tab shows a 30-day overview of your deletions pipeline, including a Regulations usage tracker and a deletion requests status table. The deletion requests summary tab shows the status of all your deletion requests from the last 30 days and might not accurately reflect your current deletion request limits. To navigate to the deletion requests tab, open the Segment app and navigate to **Privacy > Deletion and Suppression > Deletion**. From c8572d0c0d5366caba7e9ebc162013564b6f9bf0 Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Wed, 6 Aug 2025 10:50:21 -0700 Subject: [PATCH 405/438] Update actions.md --- src/connections/destinations/actions.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 207bcc18f7..8132257e7c 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -350,7 +350,7 @@ This example converts an email address to lowercase and removes extra whitespace {% endraw %} ``` -Input: `event.properties.email` = "user@example.com" +Input: `event.properties.email` = " User@Example.com " Output: user@example.com @@ -378,9 +378,9 @@ This example formats a phone number by removing non-digit characters, adding a c {% endraw %} ``` -Input: `event.properties.phone` = "(123) 456-7890" +Input: `event.properties.phone` = "(234) 567-8901" -Output: +11234567890 +Output: +12345678901 Explanation: * The `assign` tag stores the cleaned phone number after applying `strip` and `remove` filters to eliminate whitespace and non-digit characters (for example, `-`, `(`, `)`). From e4f822b3b02ee1c8cdf5abe7c918e0a1f6201974 Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Wed, 6 Aug 2025 11:13:45 -0700 Subject: [PATCH 406/438] Update src/engage/audiences/index.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/engage/audiences/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 410dd88d2a..8f7bb165d8 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -110,19 +110,19 @@ Dynamic Property references give you more flexibility over funnel audiences. Ins ![Using dynamic property references with an Audience funnel](/docs/engage/images/dynamic_property_audiences1.png) ### Audience previews -After configuring your audience definition, use the **Preview** button to review your audience setup. It shows the total number of profiles that match your criteria and a sample list of those profiles, helping you confirm the audience is correct before launching campaigns. Previews are only available if your audience uses historical data, displaying the current size based on past data. To learn more about the Include Historical Data option, see here https://segment.com/docs/engage/audiences/#how-does-the-historical-data-flag-work. The audience will grow as new profiles meet your criteria. Click any profile in the sample list to view a detailed side sheet with their attributes, making it easy to verify membership. This feature simplifies campaign planning and ensures your audience targets the right profiles. +After configuring your audience definition, click the **Preview** button to review your audience setup. It shows the total number of profiles that match your criteria and a sample list of those profiles, helping you confirm the audience is correct before launching campaigns. Previews are only available if your audience uses historical data, displaying the current size based on past data. Learn more about the [Include Historical Data option](/docs/engage/audiences/#how-does-the-historical-data-flag-work). The audience grows as new profiles meet your criteria. Click any profile in the sample list to view a detailed side sheet with their attributes, making it easy to verify membership. This feature simplifies campaign planning and ensures your audience targets the right profiles. > info "" -> Audience preview membership is calculated using data that may be slightly delayed from real-time processing, which can lead to temporary discrepancies between the preview results and the profile information shown in the profile side sheet or via the Profile API. +> The audience preview membership is calculated using data that may be slightly delayed from real-time processing, which can lead to temporary discrepancies between the preview results and the profile information shown in the profile side sheet or via the Profile API. #### Identifier breakdown -To check how profiles in your audience are identified, first click **Preview** to view your audience configuration. In the Preview results, navigate to the **Insights** tab (next to the **Users** tab) to see a breakdown of the percentage of profiles associated with each external_id in the audience. These are the default IDs that Segment includes in the Identity resolution configuration. Segment displays the percentage of the audience with each identifier, which you can use to verify the audience size and profiles are correct. The update of identifier breakdowns on profiles doesn't occur in real time. +To check how profiles in your audience are identified, you can view them in the identifier breakdown. Click **Preview** to view your audience configuration. In the Preview results, navigate to the **Insights** tab to see a breakdown of the percentage of profiles associated with each external_id in the audience. These are the default IDs that Segment includes in the Identity resolution configuration. Segment displays the percentage of the audience with each identifier, which you can use to verify the audience size and profiles are correct. The identifier breakdowns on profiles doesn't update in real time. > info "" > The Identifier Breakdown doesn't show custom IDs included in the Identity resolution configuration unless those IDs are explicitly selected through [ID sync](/docs/engage/trait-activation/id-sync/). By default, Segment only displays external IDs in the breakdown. #### Audience overlap -To check how your audience intersects with others in your Segment space, first click **Preview** to view your audience configuration. In the Preview results, navigate to the **Insights** tab (next to the **Users** tab). In the Insights tab, select an existing audience from the dropdown menu and click **Compute overlap** to see the number of shared profiles. This feature optimizes campaign targeting by identifying redundant audiences and refining segmentation. +To check how your audience intersects with others in your Segment space, click **Preview** to view your audience configuration. In the Preview results, navigate to the **Insights** tab where you can select an existing audience from the dropdown menu and click **Compute overlap** to see the number of shared profiles. This feature optimizes campaign targeting by identifying redundant audiences and refining segmentation. ### Account-level audiences From 2e7fadc2a126292079a2e0a6c5a65d3d61e92edd Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 6 Aug 2025 19:41:34 +0100 Subject: [PATCH 407/438] Clarifying how Page events are sent to Optimizely --- src/connections/destinations/catalog/optimizely-web/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/optimizely-web/index.md b/src/connections/destinations/catalog/optimizely-web/index.md index db6ffc7eef..fadb1ba94e 100644 --- a/src/connections/destinations/catalog/optimizely-web/index.md +++ b/src/connections/destinations/catalog/optimizely-web/index.md @@ -64,13 +64,14 @@ Segment also handles the following mapping: ### Page -Segment maps `page` calls to its own `track` events. For example, invoking `analytics.page('Page Viewed')` using Segment's API maps the event to a `analytics.track('Page Viewed')` event. Segment maps the `track` event to other downstream destinations like a regular Segment `track` event. +Segment maps `page` calls to its own `track` events. When you call `analytics.page('')`, Segment automatically converts it into a track call with the formatted event name `Viewed Page`. For example, `analytics.page('Home');` becomes `analytics.track('Viewed Home Page');`. This event is then forwarded to Optimizely as a custom event named `Viewed Home Page`. + +Segment maps the `page` event to other downstream destinations like a regular Segment `page` event. ### Experiment Listeners Upon activation of an Optimizely experiment, an “Experiment Viewed” Track event is sent to Segment. The event includes Optimizely experiment metadata which is sent whenever the Optimizely [`campaignDecided` listener](https://docs.developers.optimizely.com/web/docs/add-listener#section-campaign-decided){:target="_blank"} is activated. - > info "Activating a Web experiment sends 'Experiment Viewed' Track events to Segment" > When you activate an Optimizely Web experiment, Optimizely automatically sends an "Experiment Viewed" Track event to Segment. This makes the Optimizely Web integration act as both a Destination and a Source, because the Track calls enrich and send Experiment Decisions and Exposure event data to Segment, which you can then send to other platforms. From 892539f0bf9ab99a9cbf104c2adb74626588a4c4 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 6 Aug 2025 11:54:15 -0700 Subject: [PATCH 408/438] Add Data Graph YT Video --- src/unify/data-graph/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md index bd83ad0497..b080e6b6d1 100644 --- a/src/unify/data-graph/index.md +++ b/src/unify/data-graph/index.md @@ -25,6 +25,10 @@ To use the Data Graph, you need the following: > info "" > To define entity relationships, you need to enable Linked Audiences. Contact your Customer Success Manager to get access to Linked Audiences. +## Overview + + + ## Step 1: Set up Data Graph permissions in your data warehouse > warning "" From 51c760a7f65272b2fb73cd44b52364fe23a0174a Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 6 Aug 2025 21:10:52 -0700 Subject: [PATCH 409/438] update rule creation steps --- src/connections/auto-instrumentation/configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/auto-instrumentation/configuration.md b/src/connections/auto-instrumentation/configuration.md index 1f5af89c19..996ba498b8 100644 --- a/src/connections/auto-instrumentation/configuration.md +++ b/src/connections/auto-instrumentation/configuration.md @@ -23,8 +23,8 @@ After you set up the Signals SDK to capture the signals you want to target, you ### Getting started with rule creation -1. In your Segment workspace, go to to **Connections > Auto-Instrumentation** and click on a source. -2. Click **Create Rules**. +1. In your Segment workspace, go to **Sources** and select a source. +2. Open the **Event Builder**, then click **Create Rules**. > info "Where's the Event Builder tab?" > The Event Builder tab only appears after you've installed the Auto-Instrumentation snippet in your site or app. If you don’t see the tab, double check your implementation or reach out to your Segment CSM. From 117a42b8d603b627a6a98fb1d58583b73420fc7e Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 6 Aug 2025 21:22:17 -0700 Subject: [PATCH 410/438] comment some stuff out --- .../auto-instrumentation/configuration.md | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/connections/auto-instrumentation/configuration.md b/src/connections/auto-instrumentation/configuration.md index 996ba498b8..2b6a005be3 100644 --- a/src/connections/auto-instrumentation/configuration.md +++ b/src/connections/auto-instrumentation/configuration.md @@ -31,7 +31,22 @@ After you set up the Signals SDK to capture the signals you want to target, you ### Using the Rules Editor -The Rules Editor is where you define rules that transform raw signal data into analytics events. In the editor, you write functions that convert signals into events and then call them in the `processSignal()` function. +The Rules Editor is where you define rules that transform raw signal data into analytics events. Using the dropdown-based editor, you can: + +- Combine multiple signals into a single event (for example, a click followed by a navigation) +- Set conditions to control when events should be triggered +- Assign custom event names + +#### Adding event properties + +You can enrich your events by adding properties based on signal metadata. For example: + +- Capture `product.price` in your **Add to Cart** event +- Add a boolean field like `couponApplied` to your **Order Completed** event + +These properties are sent alongside your event, giving your team deeper insights without requiring any manual instrumentation. + + + + ## Example rule implementations -You can use the Signals data definitions on this page to create tracking rules. +You can use Signals to create tracking rules using the event builder. ### Example: Identify users From 9f8ae164674b62c8a53f13d9d2d87118071ca6ab Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 6 Aug 2025 21:32:06 -0700 Subject: [PATCH 411/438] add some screenshots + comment out some code [netlify-build] --- .../auto-instrumentation/configuration.md | 17 +++++++++++++++-- .../signals_identify_event.png | Bin 0 -> 108246 bytes .../signals_track_event.png | Bin 0 -> 109461 bytes 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 src/connections/auto-instrumentation/signals_identify_event.png create mode 100644 src/connections/auto-instrumentation/signals_track_event.png diff --git a/src/connections/auto-instrumentation/configuration.md b/src/connections/auto-instrumentation/configuration.md index 2b6a005be3..3c04586a4c 100644 --- a/src/connections/auto-instrumentation/configuration.md +++ b/src/connections/auto-instrumentation/configuration.md @@ -236,6 +236,14 @@ You can use Signals to create tracking rules using the event builder. ### Example: Identify users +The following screenshot shows an Identify event rule that combines a button click with a successful network response to extract user data and trigger an identify call. + +![Identify event rule combining UI and network triggers](images/signals_identify_event.png) + + + + ### Example: Track `Add to Cart` events -This rule shows how you could implement the core ordering events from [the e-commerce Spec](/docs/connections/spec/ecommerce/v2/#core-ordering-overview): +This rule implements a core ordering event from [the e-commerce Spec](/docs/connections/spec/ecommerce/v2/#core-ordering-overview). It shows a Track event triggered by a button click and a network response, with product details from the response mapped to event properties. + +![Track event rule for Add to Cart using button click and network response](images/signals_track_event.png) + + \ No newline at end of file diff --git a/src/connections/auto-instrumentation/signals_identify_event.png b/src/connections/auto-instrumentation/signals_identify_event.png new file mode 100644 index 0000000000000000000000000000000000000000..43dd9a163b2e3ade365e5db6613614256ebba2c4 GIT binary patch literal 108246 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 literal 0 HcmV?d00001 diff --git a/src/connections/auto-instrumentation/signals_track_event.png b/src/connections/auto-instrumentation/signals_track_event.png new file mode 100644 index 0000000000000000000000000000000000000000..58c1f69ccf31d656f8ff80ef0889ab2cf496b4aa GIT binary patch literal 109461 zcmeFZXIN9s+6HRDf(=Cl5dl#U1tHRVQ96Nu^vbS-#)i``hR9{dfMJTvsj@Yu3z~S+nMu=eeKz&PO$f{PipMubeq^=DMPS zjQW`~6uiJU_3}mFjOlCm(U~)6|AIjNGc3FheD39)wgv+Z zxr=VAEVsbFn2T@nZs$bZVKmbqyhJ-qYO2wXgltS_N&jMA1Fhb1JYav_29cG`{J@py zTNhs3&aoR(2f2pT?;p#OC$KEcU_e#S&WoCwY1~Y241^0X|c~aaO(F@60bNr;g zlSk^R_hmVFCs*s#9=sBibJEx`{x&$C=ArDz!5SLcT2(Qt z0kvi}pQ~KSl)Y7x>j!3~6uX@8_jhq(yI0{)M;B<_D%GdonDBmBlMl8+`tvF92i%EJ z3uo<-@>R;bFu|{^0U^%>A-7lyuZN0%dHU`Bqvvk2tbwW5d|fEDUUWZ_dGPX!mGL4; zv@PFREpw>F3o&X?d$AXNmh3VbFP2hr(U4GSyDqt=RBnig3##0(K9>}*P@8vd`q@|1 zw$Qdp8#MWxZGrjOvkJf?*EZKxe5ayvh8;M*eCBK*^b7@XbQbvD2fk;{ zoR0`Na|!rM4SZ$3p8Izx1@G7M|2a4BETWc-0{sr7nqH$gNTdxqra~Z0giv420eQC z_a%YjF3|tIldZ$Qh6M}|^t%Ma&GiEGpSFRjV!zLds6k!KZS-WI zFyQe3_mJS`77`TuyTTtu|9i{-s;c{6RbL45|992@D*C@wwH(Y5(snT5rj8Q-J2(HT z{NIKDswf8fJ@)^47XS00|2_*mX^AUhp#RL8#Fe4~xur8_q|PYHywr3#yODUI_HGL? z&}4mp*(d7j<+1DRpE!}&nXS;|#IY&hlX&^lWf~fG=4THFrku$8iCquyjJ?9{y>%-W zcdjLOZN(-|SXkkwoTszYR}dd*D@6S;D=kN#O)z@`|I^+}OpJit##LoKB z@lpIy=?p~-$GOYAF*)lgh5xVC{-@!G-CwW&-}?Y1g@(7Jz7!d1(fa%UR|o!m_~s() z|8(tliTBc{GmXJZ+0{><|8JlFT?OcZ<@tZO|8pIRo9~|M49mV@{&U1qUtZGx_XGG> zV}DgWQmZRXXW&MZ;z)!Uda6N?|I{^>z|y7jc^ z#X@q?!e(du9teZF}KtBO%&DtohGHPO5Yr+Vo0Mi7ss?lCrwM<^?eMf zR$1xUY{h~K*|oBp1M)aqXYjI}wT7Yvh`Ni)8-BnI=v_ zW3$AH37e{VrYnC8B|1{7H;zst6HI!*4WkSIzG9h+Gn&M^hYJTF=UFX-fG_uS|EzS7ig zcl6=)$TyS$6W8ajqOshjF(gr2pW)|E3x{>=-VEpH1Q|oz^V1*ezbfuzzYZ%Kj(dLF z?)2n>fJLuiaMlj zWYZ7$@fw!)risw9H+$)icl9eD1w#KFkHd(K=xR7GtUpCoqK{Wqa^i-tOJC_Rlhekr zz~Kz#DZw0_^rpsXYD6ydfhk)8A`5R_v%G#diy9r*8l8qUoC^H9Dq@QOtCx>gr#47f z{(4a`yc=XNLT%{8c4ln|`dDA^pVBBKL-TkF(_TfcJ>xtYrwy6dG9pBurmah^)tLXy0fNoyu^{u&ea1lKw;NcI9k!HuMlA6= zW0KDYxV#L=2W!ZH1G#GUZg?d<2%P!D=6M%CQQOpCDeg(jBoa>BlD&>+^&!RE(=}$n z>^&cGqt@GGeLm1Y$`=7xKpp-ktwd6c?ln4*0Zt>`Ddbdo5UhUuV)+~a>++`Qn09J4 zCbfHS?rk?g|PX9y%6DJd(qt^ z@_rZl#TyUS(W}DiMiH zo@Mk2hd-$+nq}fB+e9{RL|b%m3c$gCy>k;~E=ipItI@BceBp+Hxmk)isA|f=4|v!AyQa7+9!-+2#(` zGoIHAm`i#_;tj%*P$Yg*1-ag6^T?E{c(Vf2xeqa%rTD|%sVSXnxz5qd^2FfQ&oa9T zIU&y7*N41F_$%M8sfY{X+Ls{{_aoV8p~CGWtsQKP_qnRj>mjw9*Pzl0FPJ%lo2aJR z%(`BkyTVCS69(1JvRDrlT4woghy~M2_D|cFi!L7cG^{X+x`kZgeB4isex2Gzu%7UK z>`Hrs?!_?m)$!KKxrzOt@yq?ToGVr456@3Ud?~0uoxVXYHaTKs!I`X`O*Z!0Pfgf{ zjpiF|M2|}BbfAbNQ2z6vI?^>)h4(yWt23u@TPO@y;z?Dhj*oWNyZBtYiWvm7F|_p} z*7*e`EWi4Y(aS`&(p0qo>f?_5fpcYS&6R|ohd-MmRFEFO~ zO>yTU6N}CAk5kGbc4cck4^p8HH~!c{pFZ;@vs~6od*M7?EAy0YxH~X1Kw2~W8{egC z50)cic4iBu@y1W$>kh}5=h*VD2>Xk-bGi%THx@Pnu)V66c^p-ILchQ4ex3S>g0`Aw zWw|%e;&DPERTUDlz-+al>3PAnN@X;$W_75B8Dh;6$-DHukILr`ru}E}Pe(Mhcg2Cd34pVJ`}+TupzLi6Ct!SjT)6u^vhAo0*}bU`?+Q z7hJI-8kdu2cNmqvc_Ts0kKOJ83D7Wrpoj9jHUuik_$V;Myj&fL>!Z(Tez2DOg z+d3xk(EL@ND9j${BiwLmbb2{@#@?*6$($>Z#k@h*_|#3TkFYB?z?Y zSuieKxY>YXS}lPtmP-y(C(NcSCB1-uDuHve8Y;QoX*g z4wvbjC>_94#wQaXR>qo(Ty7sOgHG|>N{4LfBbSyeSUodE zI!aG6((oA`rIV%$A){q8liGQ2C2hu@R-BkS`V2xuZ4(PqzwNL)zqs$V43!^WG^ z)@MuoF7(H4^kYxzA={f)Ir?hYt9Sv3$5O*Gfw++*T2Of3HZa6YupfG^c7Mx4!0Tnd zz;}xTq!}VSs-euFT_1)yGJ@Rs>Wkq_Rg7$X)+8rx-pp%hY^f6^YP+f3P1Cl0OZ0ZX z3w(uV`I$KdR7OFKS(KX9iM6gGd?w$h0@rwr6oZs2T>3U+^cbvs;10|=LGX`@OTjuAZPTG>uze(#{!_VAqxm12G`XP%!=BA-9 zu>FNKLg&Y}GiNq)9SX{@wzV@7ghlXnLEbB0>&?=e5oiUO>*fLWbNBdfhz!FR=$)LV z_M!xASE#DIT0<+QXHM?bZSUJRP-wX5=|Z|<>N{Ao)5>(q-p&fCJ)7zH!v_L z;Mm>7DJ9rdcevSdj1mN31myyiy_CVy@Ksr`VCh0V+DX;K=eqv(4v@_^_m z=<|Eg&zmO&(-#C?o-~lT#}3dNW*Up_ zO?dDjSN}Gw#<8?whBSoP4L72qd#**e%&X)VsqpVX{yPc{50HX%DZjdZ;R63gF}SZV zKEL6|_Saj()!{e4x|TdajxoDqzcF+Jh zqiH6{%H$e;@lPxIsU-TQwqMkj0AuYk+{$Ftz70;hr%qey<8AP**Iml3H6RjuwjU*R zh8ZG=hEo8h!v0MzC#EMc@#CYjvKc~iar2?cFFJn5Uu8T#UI*We49#XW5Bc=VtjdE? zp_XHn`-a<`Ty>74>3J!{xXtp+;oc|Ij#23v248rbsue9CHD&&3C8g>wFUo%TT+kSP zpc3Y?F^>Nb-9NnzfC8Nq93Nl(vC%zL(*|IH zsJnUt{{TOHRlfYN`|0gmmMed_Chw*60NmoWwwWUBpS|(sVSfK2Rk<+Y=|7CaT=vWx zIla%UMt|%QXDB-T09=FTr&7xQeO3Se0iI)}d8Zu9(?cK~)Bpkg+t@oct_qF-LK3rX z*PqhTCA~Ws17B?C7ODIMiCQmgs$;te9>;gTn8;($&d-v_gHv>R!&KD4&vxm{&; z)RAd2Zl>ckUTN6)E^>PBP6p42xgkB1D6+OELD<^0(Wc>qkU8bFt#L@8XF5ip<>NWR z#5!xJ`Q&p@?LBe)Z4xKnGdYbDJVW*S@5yX8)Q$(9X!B*v)$ciVXBaI%28B#TvZ->$ z3`MYlPaG0DZ#p?FcbD9HEbm^>DYPu#71whdMj~KLq~*+R4I*6`wXxvBP+}nk83!u&^DICiHG!>p~)4qM|Lyg*E=`63ud?s{42ym6(C;ak^Cw zl{g`#j{GJJ!69uZ*I}L@?jAZt{E^>^r&tgY z4m*j#FqIX!p&BM<(Neg1+Y0?2pK}H%98FhgRdMC#MWhjptENmGewtj0B8-npU|;$M zj-Ss@R{bK>LgwlbQoDs$j}S}6n?xMN&ZousMv}CLkkKE(ll*i%7bYebmWn zBxrL)l#wH5us+cS#9Abfhze0 zxzu_e&$CvnEW*oqzA7?i&UYTj_DLX#MqzCix-dA+Zgy!&!1Wc9G+x}4L+|^|w+1X0 zrRCaIxN%WpvB(Mz+X`{y%=A{(zLNE?uSw(xcVc4L_>#^PlxoT=Q7cQG70ps|BZpGH zF*v`*u|ovnN>RHR1GWL2F|@pP*W#{hUwye-&T{##9G1)Bdf2DOYI+!}CP`We$`_gU zHW-UXuR_^6HbvT2yJUAD41&dB(_ZZTePG@j&uIk>Tm6;!FR>Bxu5GgGbi4g9N>$;o z9?AU}7B|V|paR0|bgtk8CCg=lXsRUC4vvWXeO|i5*;<5NEcqNZd$|1%U37tX%t5|z;k5hp7Qlh>)aT|Frab+C&Tn96#dH}$6HEl6^PypvP6GcTG^5KIxkUx`v!|LxZtDsKdP`PcD+hdm?Er(k8yHzXbnTguttGUud zepL9!E%5N;usX}lscl*l&ptGKBzL_2T0dW7RsAc;?apevv8dkQlMr9$`KL}K;+9vd zz?4}X1&5Kxdh94{u2I(b@;8t`vd2i5u{%kch^sg|Qf$s^Jyuw+`Z!-qX@x}P=F)SG zd)(f)EU!E#==)V@sc~Jp`0;_Yz}sd^&{5@RG)Ejd?Z{cwX^XRBtXXn#orBmbY76U$ zzsnu-iQo=NAuk&w3zc394H+BFa01T=zWO3lS0y31XE%(we+qW4=9wnXI@B9I zN9fDLVS;{I$x$yH_78n$n*4rz6$`%pm4Odh&H)2 zR z+*)f*x=!ucA30E3q=sI{AmF%|%B}hn(pqP_o88cNZ^bUoyQ1l_-)s0#T%!W{+)jCA z6JP3)wI`j#jH8_V>Q78|#dJBE8D_MEZ>=w&%XuY-`X6^|`A|ytmG6g@J_nl`lvxeu zI$>$*Rb<;ZId`v;JiM_hSI8>Kp5@;3S4*I`*GIF11Rt20}eKJO)`&2a~#I6=s6v9XeKk>O8CQW*>9Zn`&%ml@PRwl<8RBF4O4g3 zyNz1n8Lgr+mzn)3x$+Bu8GRQ=-{?UjC~r|swltnI#N`}k5NT018S(qL2nN6EegdHy zPvyyFS5{iD-t!aGK=ABz6%IzfjZ>-V94eQtYT~xn^QyaHo8&bm0R%qIOb)r5aXG~L zRD0&WMT_DY@;w{7I#MiCyhUG!`W~;>cvbE3e>dq1 zu^>ltq2aAk?5)T}P&YtS= z1|PE~Hk7Qfb(n|5&p0INOrr{FyvnTxGt4(m9yBVAMP=6`VrQCA(Z~msYpY*WPT??v z{Uluqe7h+~?=jx+8}iPCC&G*JO%wOj*ykRh96p}1-EeuKY|vV)p-CfPhOQbcPCw?$ z^x8_wF@`Vn>I&-Q*Sk670GX4p2}!!o-DGA~nR{ zWusrjwDrJ022UwIS>CRjnd1CN2V6gZ^c5c5KP5>({kKNzwgD@1XRzF;Q zsSE*$sZ5>!ZfF=Mp|;o%Z|B~uGMP+3KNH`PSbE}l{TjmU!*MQA5Q!I8tvaA5Qf_>1 zGdc9tXZe_`s^fI~^!-ceO{|@#a&zn=BZUb9M4hLfzsxj|UrFG?4&vFctMxRi96z%% zO}0#;?lR|#dCNNpj(_+_aj~N}bJx|b;emqhtQ)or|I*D92jeDQcbE!Fy(r^UY{sVb z%b~YnTGD3qrP)~FYvi(?PW*j@NG5HDJcH;`ChbH{ejO%lfW|PxO^ptq4QN5^`CBM8 zMcfT&2MCnrK{@*kP*WXzsi~|pp_AiQbK`*RMMyst8bK`MxINF zTdX^m`XG(P`;&Dy0Qmosj;IbXL_}p{#uE=7;(!}Z2*fC~CpHhq=bLyA8;x{Pb_qE9 z+}$P52#+3lMui#~CUYp#>%{UG;nwyeoe(%a=z!*os+sDK(Tdvv>GU}%c>3N3;wf#- z#wXFqN{uG`N9Rf3Js_t?&E>9=7;%_|gc;D%Z#M#&dHWJ&-6_ljZfhmC~tWp zVRBsY0^bg75hPvkMgF2L+5KN)8R#ZYk|+Mv+PC~VBl~_8O7~X|Q|H5D8WrBx$g<&I zEw|#W?JD~YS~wCT)%2k2vKp`KL;U-TGD=N9GoEu&rA|;%^O`x|H}-{_jLUh7u7peB zzaGxDeJ;9v;==xo2;^KgF1S=nSRLp#ctDt#S-J;&wFF1G4t5^Xj*fbKZTE^@z9^a8 z(%lcoGj(((TRj-|_=f(nS-xo|ZZrkmx&p!BHumj^@VpTB4-LC9fz-HYs~eD|%u)nY z2M!aB;(Tx(%~9~otzMmO+7-`Rv%keAeG`mR&Ztsw2&EAGok01WI$|?K)#@f>Cb>3A z*!R6-5XAhdaK{OYpQk{73~OY;b5lM^-Iu+2Sss%<-_o-$I7JA@AsSi5IRxyPD!8gP zMshbQ){F(6m_|K~L?EleawhMoME-J~Ve-P7l-l468suEO<-V&%XYuVj8%n+=yrvaw zK${uArvDXqrmFH-*iS{r1iqV!PuU*`ecZ9uvXrcXx$*qfL|vj9va$J*yImFme3>>h zwl&n!9U|D<3fMqZzy?ma_C=oh*MtzITr&-py@vVmx+eG=MV|+IPxo@RH@*d$T>D9y zjMzf4m0}n1ftAOK6UTkkR6`6RrB1IR&(#3fDCyFVaOk8 zKokn7#^_;{p|muzST4V=1F=|Z@fc+2Rr4!t%H23-HC(!@un_9kXh{$S9lS4Y{nA>J z_dv*X=4AV8rXM|52x2z}+SgZYc{o<;YwvE2;o4u}Sp@`6fIOb;>sbIN5NePhz{e*(tF(UGI4z zac=1HRW`^;!3n7L05T_wo}Txu^6r_LVd9#ZO-L)>ISI18CK<$Flzz1H$*ZY{>d9%6 z%lfd4P&!k{c0D_7lI!8{DWPWD8IQlcrJ6(~Nq9TQKRSgiu+T^Xpw)(7in^#HO|n1V zq_25V7m?9L>6`mgm7@>Jinq!o{9F~;xK9ixy_4c z&lwYwbcLXMLw@+SWKS)Z)ms3_ZIOKm@1sBFgg3onWC8Zm(MuEvA~Wc$Kz3fQrX7B) zv>o6OJ52*$0o9!x`k5TaY}(=LLOC4cq$ur{GI@kH&up_Xg6a=!=LrDbW>|?$YJ1Wd zRatnzqGh0!T)7hwfBU6YejQ#i>z86dor$5lf{dZteEnrwtm@XcT>Cy0u<+SJJkVXx@nUZ=Zom+^t4)kwx#;R7#+&>2>5R65U~QbQVU@_f(fw zo(#WYiyDM}8{{!~mwUwn^*)U}MCE?45x?UUiJA)$lw2e#OAs^-i9;vzeAlRtb70>? z{5+FX;??MpCeYi^RhEf-tv*^=Lhhiz!Gh1A;|}}|zLdA%>5$>g1j3i)Jk8#^G=lXO zSYf`nl{zFAk-n5sBrKBgRAni>NC^hviUmKg=#j6^oQ-Nbrk!3Tyn7uxb+xdM_rSsb zcH}Sg0zqFv@Bwen^=}(%%d0k9l8d)PA*oNeL)-f(m98evj+%_{c1RGD4Oi<~{Ac~Q zShIHC`>KLZApDmy_qx)JTFN$Mmcgp$XfuC?SEe27z?i!)JxlJGL{&QNd=zqP9jvP= z=$}@Fhe~Yuyz1fnDg07(KK2>CL>A%8fXGfb?-eh?aai~U&nAy;l1`l;g8i1bXtvk8 z1-|42_n$b4?@5YOqI(a#@{f6fpFx^3esN|&SlDRNV;dF-ijPv$+2H%`ipzJWq`y=g zc;v14|FVl*S+Uf;`>d)SkvIbu4Q1K?*k!UQln=W^!@T)8RJh<5H1;^Tn!M=zcvfjPrn*h?r*f89YHX_pbyb``@RPQIqaT&(Q&St5g@)%+CmmYzl}ulV__YaOP(Cn;PaF^hnSQDNJvbEEH;KXcyZWf91;ekP`qbZvVuJGuATO$n&9bPr;m<~ z%p$SXiRe#?d2-pY;tdtpx4fHBFP{xu`<%(*qfQR3Htf0`Lf<=zR3D0{ zu19$x*GCQ9LSn+@yfvEcOUySE@cxv1poJ$)&`%z^v2#D%iHjyRaO zr-h~qJftnvcjS`fyc_XNCo9VWJ7SVem%77_t`G1x(k_NkF@xZm!Uz6_C?)E5obl=g zk@PR@KNunUq0E(J0&>okjn%U)(afp_4tFv#w_dEjQG@2kzyo`YS>ZrpS{d7>Q8nc} z)objDJ1=^;dLAWt1kjOwlaP+SW-0Md-q0H5U>U2$UH-nfr*{jatCErCp2bw{E-_F&w3CkO^1!aZP_;^9+VwO z$Mk5i{e;qu-$f^`dBw;lQ~NgEm=ZPH#>i!c(i1(yce>|UL{!tSFmB>;Q#v<#v=$OZ z23u{Pk^aKtkl5aMHqGO^CifZjA<>;#s!9eavSyS4rBerNI{LN)1UMBaUs-nT8DIc} zv(q5v)d%x~xBK}`wq^-Qnjd@(a$xkC-!yJ|66y<`lQF-PT!2d zl5$SdP_upwp0S@}#4KYI5(rz*EAD8n5B-D&Ckmk6r6g034Z~tFS{)O}(rJEjXAGL4 zs5?Rn!>%{EO^-+;>t#M~BUB8x7B~J9+laY?Jszmj9iuV0!)X`Q`T;NmbBj!+Wv`kC zdS_w@itUddEUe%sSE9qqLkTnHlV6 zCVSyC=+nx$Xz{sOFJhP3jrv-a2x8&j39|TjYjd_nW{gQ>0WLBtVdQGp;Vb*s%-$n( zor>=tzLY&01lumO$_kt}%lwJDu=9(*V^#kNu!j4OwsJyrvTA1|;_E)W;jDNrE$}EJ zQPaX_AAj?8A0@DeW2PSLdAYNmA~&mH^Tit%+Cx8VaIa1$4)q`rV75g~&%CfJ&mD*K z^SB@|o^=GLDxWR1FOj9Yl*TCAxgU|gH1vb@jKWIFA?F=A>!Sl|R#A31?%}ekI5KCm z99!-QJ1$}~HropN*vFpVt2M1>OX(9+E@OmnO&LA-i=F;?2gKT*)q@g(oc}sB-lgS=nw3PN4vTU4rz7_#SQz zOwW`0#*Jly&&Ai#^6U{c!rrnXZ0@uW>2^EU;Tn9{$h68p@!3b2FxJQmaoJ2|JyrY5 z>0q8bFX)6WA_Y#;HAiQglyl|xMW=-X)m5o{KMY|(?_ z!;T=KVvDHGXs2ZA^I3{dKzWf9*7;l$mo!>b#x0Ca5f00}oQHq0H53}_t#m*Pd2k&A zh{2N_VHWlS4Y~-dc$MLrXHbca0c%)TY^z-QQd?WPscA-iOoH9yM0O4r| zsY_r0$p3AQ##ujiGFc-PUs<}_N?x7JOi#JAQIV6}_R3WW5j^cXA4q(vf`Q~)^!VyW z&>EKJ5hXT~yi;Cj`-Af_n$TW&IX{a`Z;UG6j9QFxTcxWp98^7fM--pCP+NB`lY0*B z)#0fk01>ddUog;)+1zOiPWPb~pT#!4Uw(s9j{Nm_U43MH;0%2Ky^m}%^MUAu>VfDw zPtW!hG`5ynMKl3>{*|NWG-`CSDLprIym$Nfp1k_qr$(pa<(ryNInw;!izg0}y>Bz& zlI;RFzXC62086_tEG)D6D~<;^{j9QS^&L3Cq!?-jkf-|>Y0V>4B(JUcneut=bRB-N z7Jp{|>UTd_G7tfl3J3l2`bx2N+EOVbegsuHG13s0W%6#{la@1RuTL{+agUX(J?XgZ z-0{YNlt_T`sj$Zj#oyx@$}CIozx0Ietk_%>cw<-I)_6G`pt3*8gV;CE5ow4KoR#NT zzw4Jc;_h0o)w6e;(Jt1goSh%IHrMzXD~2n>=Z!Kd-LsE`M;0S%w#ySuG;%M^z$SGb zqNXCTzowxeAydtjBvdUqk9;o7Po9SD^%Fe`{L2Fb4#=e3zE7p^o7|Z-x5nyPAnv>e z%3xMD6xMQPN82564HV9K5owc0Y=c_9Ns~kK0<*Pp#=ME!%jD7wY-J=DQgn4=*2JE- z>~VBKqC4fO_3DSW7wuSNlvYZ6F`RdIs50kr%C1?Hc#(z>6ZeS0zA|G3jLNPam$kVN z+?NEOcr9VQgkK%tgtr)7^kZ=uB3;OI``j#HN!1d~ZG^eL#>x~qIM~!m$!4;?P82lQ zVD#kG3qa4YqF6WPO3?=`?o^|8K7-;XOD8E1ecpkKYF-0Dc?oHYKYwk^^v*(`=)?)o zs0ijyJEA^tSPv=ETNK^Smka5>h#WttGQ_yF8(4d!LIU<#_^v=ArvrP1N|u{R0FFO(B) zF>IxlDGrW*u?qaW(6D3BrU?W$YrQ2<%-XzF(p3}A=mw27l^UW!P1%Tj9OZsc+1>P< z>fuRx!@bEY>;NQU^W#_ZJ8f)f(H_cePvb2_^Xg(g8oWu(c8FO-55L zAm6gMWOHSn!IRvh4qWu+Nm2ov<(P5ccX&K<@)a&9BrdJ&xXoQv?Pw~W?U-^>3|+_? zXdeM#ium+1DvzIWZ37F=kO(XFfFEPsBnWS~`fgN>n3m%rdg^GV>^^5$WN^ErhK%eY zwaugSrn|SSgBb7M7V<-Ar3i50jjo9V87g1PGX+te-;o_sr}Ulig9B6$3W^8&NdOI8x-rIJCnFM5o;)5 zt~`oFo%>8ahz5f!I-AD16b$kicubqOiouY;$&= zhaBg1);aE9Vsu+C`OmB4)8QlmeikR49(H@kcl^L zx6t4gV53`_Xq9$#uSq}qHnr##%0$%B(TT)b$xyz%QP##X8TpVSQA2XlJQH?e%NseR zE}V}4WbnulzztlPo%If~7K<&P#cDS42Uu6!2;uH$4X!HxxOh-ou(!A&;{yLehCy=!d10qiuJ(hDKj~v46h#z$k(^%Jl^8Sku$j;FkZ(!MpTsno}Af zdrP9c{YRYc`lsVCRmpBuMXUeUxwcbyndz*(v`2#H)|n~8G2A|943v?$83 za@*Si-7lgLZ7~EI9J_TrbAJ&okRQU<)`xQzFoo_3-4&ECH};90J>%i?5w2E-5n)dL^h-D?mAo=lk{Z~VH-!5VE0^D8d4pKC3o7j{*Gp#O< z_W-%w8=^sWf@^4H#}(gaURqWLwK0q5^^J7-j^xRsqZJg~aM2b-^bd@o$uoNp%zdNW zw~x2EZm*bJHT9X1n-e^ME(e4(Y(-e9%eO<*VW!Ls3=8Wj<~ovI8z0eitcbdsn-!`$ z9O+$_a)b}KX8H)vviCezZhF$PA#8(8)_B1| z!p4i(49)Hr;Lg}D;AoFdHE2-mRnOg^4Yin9Pit$KC`ZqE)a%nJs09TY9Df;(5bk7b zF{&_HuF#8qA*;`|A~ftwNd!`cRk)0xO&Ycz_Hre;_KM$1UKb{jwu4PQc0BBBHX;V6 z^8cdx!h3C{?E>ZH3Iqm{;Q(KF-}?EPhJ~)6;3@WvW}MMPoDtTu1P(`W#>oM0@%8vE zu~DMr;%uGGkN4k@?Q<5cuq>?v&J^oO-PB7`!+}Z8eEC9;?M|y?L26SEOpVas-{=xp zXIk@gymV7@_YmVuD=J5V?@~9|EN5Ur%9cJESGI|Tn7T!m%;Tpj+~e9nr@_<)#vHw8 ziJQyBF#tD&4JRaKich*Q@_jCzi)1%BPINgTkE>LOZAk9b;zvxoD1zcw`i^Jd#vi^X zy0b{33k|835!63~d{M|oIJqKN$*tXTzejK7 zd5YF_RXV?ithi8Jy2n%H_{npnuaI+EQ>xl0E z{-Vet@>6{bpm2ze+lb1jH?&G#Su9In&aF?f7X7g*lB5g`aGCr5Q5BXP7_9@2! zr8wX=SD5xlL%4|_+O|5a9xdqCvGgT7@7--l^x;>L*BC_$U5#VK@3;H{I*!q$!5wR> z73)JVq+0L{TQY7h8y6;t(8zw;a-x}89Pcm^+vb)U+rq^~`i3jKPM^l)fPfAHOQmBe zC`T~QE{f!>Nn!)??a5ic!#xg_kcRse8qm&FSp$zgG1AiuAx?xiaqDudg{^g$Cf5v# zJudKz>(NpzLS=DlH~S7u-5&BZ}lgHMMjA_Ndx-e(a`jl4^=K@MQ0+imS;6Rv*t7Q zz_vPT6Xo+(S;-D`M(o5?fm}7i{>H^%C29&Q~qQ_x!yBp?UlYv(`D# z$Kq)kad4KjTcPmdOlu5tJ)x9OSZQG%$fivE511K}jCBQen`}6{t>-5Wc_1H>Ka-&( zc(+7zE`qezPvzi>Y)@w_$wDs@KN1<*#JD^&EP5&{vswd`;Rsj8_9)1KK0tTw|KN6$ zqr*3Z@v8{2^{09g6(Ww;q&hL!EJ!|%Zq2Y79dc6wEnqYuK(lwPtZ!mwc-bJ7WBFXa%G$|%D(3r8%OnKM?mV*xeTZNa|G`(1YmQYh#;0f$5F zi;Ypnu4LNhER&3QomZ2Fq5XtTC(p3u$gJ9a``F%+9upF?28Ju|p|p80y=V&l^WVm# z|EMa-f;T4Pex{NrxjE$08UdC~1h+ibsx)ixIA}6VVnAfI*{ri3d(L~dafbyZ_vl7) zg{+Q+b14r=0@lN_R(S>BNt!7|S>JsBqfJ{3-=E)gd~*$N?MB ztEXHPX;>lJa)^*UW~kNx)j|4WwR!U=>0L2n|G;vU`f5gjnCM9})4O@~Ph#!a%Zp(E zL-wSIh4r7KeYS*son$KQ&HO#m3WEAf%ho>fhYWMhC=(w8@YdzDfw&M zx4kALNE=x7OzD3bL{!2LCFbs<6bln9esG&LQ%3n8M#FyHd%Y@V5%6$J01;A&|5cia zdiQM`U-JDodHVb%dF7KsZ2azr4bL3_AemZk zqjvm5?g_Wf`1oDXF+`zpYs5&Wjmpme2XYD`PD0RE9T2|vn{JY*+{dnh>P@k^buqM0 z9c$)qu-&9flG^z#ZUqFCu+0%GQ`kglF}gI zasp&Of+w+rp^|KCY-*OtAc|Sfi!&HCsy@QPk5`Siof?C{Adwz`GIy29fLnI>gb^fv$XLq=EqtEeG>Mlji#otQYIP2V`rzC)O3maI>I_#~H)xTB!5cUbs zj<7Z64wr|}no)#>2pG1th9s|gv7bJ#P)-MEmjPV@eM`cCAS9m0T)z>--X6a4EHY53V@L?go{M zhqR)}fb+Qyd$TGw-XYft@B&QFU%FnxIXOTxz7if1!bHTW-iSM5K=*aWmMAZc@Wg%x zbkoQKwv~S{I+|y^=k2g`S02*S04j=dW@-5+F)rP)ynRrkU>?q&;n-jGd3n|A?8vS0 zHsTCHRZa{bh{YTwuE`*U($3xrDPUzn43vK1b~xne54=vl6yjfxn~)v>&@wO5rn7{> z6GH`g+WEaKlZK?x%g1d{*HWwT?#y)J5pmn=6V&>7BqifN^eRf&d)|tMt~fHL@#UqB zcY>1#UrjDP>IwYKn7NX0QQBT~^Vhf={>7)u<0Chl{YSTV$9msvLk39 zxJ&*}%#3z%%RRZc!`3yZa}OZXVGJuyScEt&s(|D_i6?Hh?N9OK8Si4Y@Uj=uvi;>5 z?xLxQzu9fD&xG>LdJGcM^(I8-8K%tIRL9seM)0Vr?`-B6kimV&pKx>WZ|zNoV+tz= zAXUvGof7~0P41`=#|!_&GzgI=Z`Zw(%dQ-t5dK$?T!b=8qBV4k9K7?4N9}$iQ=y4Y z!-;vrc~zWffmvjqIXYpBf}elmLuy~y`5O{FG|%l1UzM{@cxtbmid*HPmXXf=$bx@* z8#}|K?q+5c4!xE2$e3``0?YZpRb<82E3a-;rcycjglq<}zL=uhjQS;|e}ff15TIN5 z|FHMgQB^};IB@Kt}=Fa&% z-{<=%@Vjf>-#_=RyY4@(gLBTjXJ+sB-mkr9_G>h?-Y>sV#UHEJ2B%_&I!)^F+an0| zhO*h@^VDPCPnsXSA>j8|8OV^MiF2MS^w5oLwf%Qd(;wUxl1~wopq-K{!&8T!v2PEQ ze2Cdhih|njh4k2udZ2`4hcH$}uHv&~$FGLEDrN zy{6;&@JXPtiL1vZ;dPZYT&^)pjORqGebCxNa0WGxxj-H|WZi5aY)62TLXZ0Vnql2= zwMAelk8Ja9z-RjBZ+g3F`q#p>HMlEfP768)qPNM6qe3FiF(aIx4>8$ z8J}J^#jvjcr-;fv!a=$U4#3(VGtNA^k8n+sr~s%OBFnt%gK$kb5}cG}%MbbHHBDqs zK{XPV+-*VE|E$%&$xcY(z*uaBJpTRn9|ckgSnvubZz}hsYlMg?0mi~f%6CnZq&KLV zN*4%wEp?5I{-5~%FBTsF!Oigc*q@DU5dFR+QIELmR7VmEf!g!MY+IUoQ9}S{3m}mw zeCGG{*0qWY=dak7du+h%IB|04WOJ6@>fL)9I?JQ#3uCH*amz_oW ze2RGIu4eyeeWSdIp-H<93*tP3kmmiLZ#PE3aoj?9Ifq6(i<4L7{jTvZeLz!XsaZ_lif07L}pQ3Z;M+qT#Xap`D9wvXFm? zJZ-cR0EjzQ9Y3xcIvaL+T;6FojnaF#_1#Aren_X>1|d1c1KkqP?Zj;oEl!4X4V=W+~nk=2jZR8d%N1k0l~?tzZKXK!nrN z&Aq{X;n2k_Uy8xKqQzBvJhWbMwk>e{50{B?XDsU!{P<|Rgrz|nD3zH8VwYpCEEOsmn&JiwXbbnnAsejM z8J$?KJ#=}0$(?nC!;IT-gMG~pUd|0l(sctlZL4FQSAzFD@@~C5x~(87*}!dkfKquL zwNs@40;KJq-_G_&n=YJNQRJ_M zAXY7}RgHmMxqfxKwOd(gmEmWb4SCL^-r!EZlC!=LV((7#o^ zgoj=;Gs;^CgF9ghr$=bpVK~dzIX@AUfovto-(>uZ$v?9`BV6;9AT-c_dGFKfCX6c% z#_XwZ6X_a%Oo9iX!KXw)#cSq66$9pjnumb;2mJf@M_xJrMdtW?uOnrXeFesXtB!>8 zhu{DAM^{zg$6GxgT*sG|{t*tDs!%DfB8nRb<(RzRgVAVzURQ1X8xGNIaV2kDGl@^2 zYMK;J+2fiFOTte8!_qgY5^h{0usJ@kXmrKMXxF$9PXPO*e#`ORyhedqJ;9=>>fe8G z4c0;hF!TSP02AyzBR(U9qPQNRJs2G?M>F}I)THaF^9{+HFTogD_GOk-b<|+4T7%(( z7Xo4E+R}f{wr*SOGppx(<+*gY^L`8xptpDmBEq_rp`2KTyK$K5orn+URJDur=<@}A z!xbmkk;2N;L(%^le)+EJzPjyI`0bfTL64~PeH>CVME!m{ei6Pu#i%F+6irde@Y~5%tB{w`?>0{#3Tm?5%$>#r4ucbfkV=zPI9S<6(YYL&LPSQIDM7OT$6-H<7t zIZGFd#qNVrCi7oRCr1&rg*Das* z#0ZkFX0xo#Y^Xi_PPg3hHpU|pn5DkS-pZi(4~qKNpoCT#u)C3iN=1Q#VY`k!6JK%I z*mQmJTItl6v13?{L5U%5;{!5$R+bl6-h+fr6zzj><%K57_US1X3dLCVk{rNS=S>Kw zF*&iQ!-VF(rGS3&6~j8$vD)qjmB8+|_uz%HABtMZjE&#Z@z(TrkoV|+?^ek%0~8g_ z@O&Yua6l3Flur{c)H>Qfss2}7&v!QHam6c;Q=}vBT-uo+hRCJuQOSP4Piq-r!crVS zG~6Z{bl<;)?eeP2-a`m8jBF#a;W3D}+K46D>1)v#W9+Fh5Q}DlkgwBEnWj1%IiGa} z=756p;N6bA8nbp*f(XKWczO^7xkcVl4DUYKKfe{0m{yE~KalsqU%@~#+6)3=HW_Or ze;2c25yN1WYPHeVlPVS+Mp?h~61!^Zr>F1glzGV74*l_w5#T^c27FlY;BDk{nIN3p za3Ngk!J}1PZCD!HaJgG5!E;f6%&yf^wk3nLydq%dkIz+aWbZh3b_X_*Rx1|IU8(qe zj`+hxtoGFI*#!5|s>8{A=@W>p`AP~ygYYTr=N|n7E@+w0?n!*Znr|G>=<4W>PfGn2 z<)kD=2owDt?AYOQdK9r%{6P%hh0`%jEvJB8cPwMiZS==F7U5&DLGg$L+abLP_9ce$ zmDXZ*Dr?HjIl5g4S<+2D20R{QL|FP&2U^4@HB-FQlQG~!s)(3*4Oz*|8hKo4W@c1upabVb0IAz- z3>#3}5A`C*HUUZ2BBw(sjI`kVOp~I$h5gNB`Z2&pV-3L_qxc0onlD`^bM_*#oL=|N zCt{uIU3b}J+i(Hp{ZKeTC17fjH9i$cdMlA+*8$6WLK+LmFBTvLoMps61U=Jo8WKXt+paur5-!quRewC}v+&eca zb{afUfNE8W0V;x_HxbXyFWXAVW<;tS-R5S3JeXPasG(SllRJ8j`UHDN!b29v&{&H} zt8=4jMC6dPcSXMR)lCcZiqj44`wf81(Wtuis1N1VP$?4Fw*Y7E^c#fzAVTN_ifI9Y z5E8H#5zJ_<^y8@SBC!6v0xRf29f-7O!Z+ULRq2($aGZiMw6fT85W}Q$lixCia?v># zcuWKa#hqH2;i=gdF&j!wRlKTiR}jzNnUl$*5N?BQ=w>lnvoI=iJZX-CSbrH@3%p4h zLljtV*TwH`AmZ&o{5t4KtyOGJ0Gs&9hlNhI<7Krhd9i8|eja(7#ZUcuG?fF|+o6wY zazlkanv5|OCEweKk_t-9A8jULF!sZyIny^$W-an(HN-3YeML=ic@usa>RJN!%@c&0 zloI37PU}f?Sg5|d$#`pS`3hl(u1CyIV*9yKmT?q>A(hhVqS(!nt|+dS_1eX##sI>u z*rDbr@o4@Ig&)hCV83#NZe6itrSMZMpo=J=&aLS{6aI1kWv79~yO>u^kSXhq_wyO* z)lu}bvl2Bc{okeq=%9y9SSrWK7aQ)`6Urv5O8~8NM^`!!a_raYJj|F09g=uU!7`?q zBfy|cmy|*hZMq$=D?0Q3xp=XxV25NtkfK-1)k4QB4yGrf>v>lg$oPy)X)~v5z*vgmo@u|_$Uh9HLRfu_tzxnt}heNVg@oert`cB$HxrZ;K z4U!AQa3iheyjt{P(m<}BNn03pG^bru&Z4mjlY#W^durK!y-rIvcb$l|Iky5B9dral zdK((*4twX5Mk;eSE@?jwIm|-jEJyFyEwn*n*1UE17ohPYFTqhDVwY_>dGojUZJ%2T>3uupw_#x&w}?;=f6{&h0n76k`s zbiKisP$|>J5SM20ZS}Ept2k_y-CdR!F)zEHB(J4u+&)PmFANFJ3eoDbHYzFJaDF)5 zLHES>*ZQonE)I^iJlI4uCDI$0Jt%;6#~OF?V4tnil!u3GUN#g##0cfJYzq`qRX?`D z1{yT3azo!{e5^~H>*%B2skzF|5=32RcB$ARdMu>#t^;(9C28$lN@T&}x(Zuzj?CKNu)`~@zC4Ka z$)HIZ5evH1C+_ymMf`4Yue+`_rz?0YZ78Mt&@|sES~9u<)tTHuh-WQegu|bM1kgft zc+BS)E+w#C!@_tMdWOPcL}#1PO?JP#REwdFDg=2ogRBEq%B0pw&Z?WQSs~z9=!V$r zGr$c6!(J&g!HV`JVaV2sbi4^~k6rnb`)~Ta@%t$URgy&8| zsEEULr{9bg2TnIB3ZO;ery6AKxkWyIy5IUw#Njx8%sI+T5;5XFx-B(Jum)QhkQOD=I)=Vl%QZ<9Yx*3?3>vG%i&z|!o@S*gkQseMM{@G6g z0~SaLJTgkb(a8j%IM^0X$9ay4ixBqZ^H|{+)4jjl8E+_v6)F93r>m^j@Bz1&8}77t z84~h$v;Rq4yc2~q2*C3Si^T#V6NrvkCRwzC;VAB{$eFB< zd$Krma~A!?oog=h4|D%q6r7ks254nSS{2z0V=6uVNV)KK!&5tc#z$YLnVAlgsvTt? zr2N?q|Eg;Ya(?GC3RT3bY>&JNN$|AF5G4*I0=o z5M@ho$FyCyamERDtAZ(lo?VxX|G)ot>FV60L1>61lFA4>cr=CO7IxabFUde5v^BjCOXr_IDH`N}5^BCfa*2`gl%Jq|dEk-|9Le zEx>+}L2e#hu^hp0&)Y`^FuQui=U8oeCkbk@K2#}~nCX%TM}#s|yF#sm2q`3zDZS;= zjS>Q}Jn?zSC=X+@W#QVgxKU~vd+O|uj+qktgaD= zD(^cVb<0!39OW*-xtTf>lRk`Em*BYxcu@BDHMdGPUJ;Z~>vzu$Y8u^nyP{G~UPWTK zjdZr&5&ZR;_Yqd_FDwJ?Y)bKiBnPUDe)u2LB$7%f=}wuk;X{2xZ{OyBYNm&GCfjYF zB8!<$iI74hLzOu`hvw=C&xm69{J81L@Qj4u5wl_TE9#$?^poqtD3NVKx8J@MMGn-T z=i^;tB!;N!!{(*c=Ho!+$ep#M@hrc)Pb4$oVxH_rH?DtvsOZNKe$~GLZY<`8$Ps2=IM3 z5HaQwvUaFlO8BKC!c)g?q6x^Dit5OnQC!2R?_$fVa3Vg1f3BOZch3O?Q!J+AWmt{m zsE9tucL`WJy)cOH1&F@kb*gl^IA{6L?3XQi(8F^vQs;V$(QB~mrTy-bpVqcrusKyc zlL-8{Vcj?ZOGUYeOvEj~z`njv&FndIxgGQCDIrq0G z=*Tn?h+sF(5U}sU4|T1ZxzZ|0>!Zb{3K^WcHG_(7v~2ktx0v$uyDs-08t`1OH^TFt zI}6>VsbUHR;A)e@VsIQ-ukhfd=}#Qk!H(vM&A2w8##b+>YL@tJSX*{@>&}Gu)gC}3}VlKM|iMF}aNW|!1%dm`g>2@q`;aXcSMC!!>nj7XF=%StOnGmenVVG)| z!uHN19j5GKwhX@#7>hDYKC-?^u7cBa{8fKxu#%F}x~>yAOUR<%OHv9p#){SgIM(yi z;_Tan0w0@jtQCip81y%rI9!|^tQE98E)tJrFXwHAAJU9>+Akn`8$L1{$YUzOx#dBt zQ8QkYu>m=N4fo(P8_w;=vYN$lo$dDTFC_<#0Sz|>${CHf+nx^;U=#^YRZ}MQUBO1p zNjH+hJ)YB#8_G<`F~Wj&5Yq`mv+BKYuG7ti{q@R?3McDP9lV3%NkAn%Npa_~Z9+;~ zTBQ|G)e^Bd&Qa?Lt6_$~tcnf5dbPgjj=`M|*Oi@xE|c1`{UV@P6&A9*$p-zYxm8lh zLgiNU)w|!?%ok&A_Q#yJN_%O9h5J|S*VR3j9W;QZdeVg>7fSEC>OWJ+MMjK znSfzaOXVUEtqe`3Nf2i#|};z_^&`aB;fR0}U2_yzKLk(>A~Id?h3KNA&bt zy7ETr5v@DJM#8X~!x`T?t2j1`R1mmyl$e{yoJgKXv5BrcN`a+MF`k(ggSS{2V!R9? zo8|dk9Qbj}bIjc>y~2E$8UNMC1S{~GG?GzHurU4LAAT24=KM>q>+E34EZ%Y3+iGoW z(1|>Qbr`%rOM2#cxK7~)P+$5QeGIPMARsM?p)&Ii!!@Efn=J%LYJ6ugV^wxV96Tjv zNXGIx$~wn)r5$9Yqh+HNCID5rHOIpD533p%#|q`~VlJ|-c!=+nNn(0JzjME&!s|z< zU`=0>J#ABmmP{WaKl}XI4Wo;Jpi&*b;3GR}O_XMGimk6wBx;m;evDvhfwmP_TlF5bs;mb?CTgS)6uVJPi~ScJl`Nb>r+#Y z1B8p20tZfmViR>?x9>jG1ow3moZM2|z}=O6kpiswe0T-{E|MM7vpS5&`Wh)lx#i7B zM5h&1KvArFU*9ROb2GhdTD2v_aeg>kjq(vq&DpLU2A16B^<)2zi<7Af(?V&(q3lS9 zK_04p47a7`H}macu0I^s%Uc52SJLZBn@NTI^1(aaOjotZN3ZyO!;~-J)eN%DE!kkX zX-yG`WaMHX&$<?em9;)6kR%^%VpHRIDSBHM_B5gL4&?TIXt`S=71b;HHyCOZ0(M z+#50^b3y#~P*jWR0w&$|*Cr}UosO5&)(?1HAC$rLcWBRMGU7q_@cR*fO9 zQ{w;fgXle4S&{>=kk+p!+}sfQF|m=z+ePQkoEH`rD(WH;+ECxEJUot(j;5iOo3~i$ zWbCnwS3_M|DN=tuFwN^XwqG)=4&#==DH~igvx^tg8T7P5Ci#2=;pMYw!AjC^Rc1eY z59>d(U>>n-!hSIejuN0{?iM}asMVk8+3^L)4u8aKMlSm55!R8l-+2l%d z-bELrE5|EMqK6*K;Mr9_K{#=kBFD4iqW7udX`Ns<`^gv4aDpsJ4h z;{2f2w`%%LFzb^zmBl?#>TT0bRqhSl@thsgZJ(-yH+^8&X53*zH@6k$DrtGPH+-jk z>%5hIo4pxnGNMG1y$6HmbUI+?Xfggyp~DpS1H0F*Pw7d14`r;Y(+57yqu>u7-brjl zlSbS&Otg%gWZlW_EVoz;Z&f(1tS-aSz4K!IIXan^tX`$_euFwMQa>P65O7JII!}$ zI*G8*3zHLew8!%j%o(?#71=aI>KZiRjRFNo6S34^d zcf-)ujy=OPOXNtUit=jZP7 zEl)|%Ybu3CMJfNVo~OwBA|M5Yn4Fc8sq>%3NJF;~It8bkPfRpj2Ib;wou$>P)h%6n z^jw^ld&ph5@{j>$eii@x{KCT4|8#28+Y}$ImSC?M!wL%l`Pui+H3nnluz*~fCfU4} zCVMme*1We0N~Wf-y%{H*Pvl+IZ*tgnh{9OsMy%JA$1(?%hO+c1hKu-N1T61%ybz0v z!zOz}1Vr%T`ZDFHhuz-?4D-KMiw%>{R=od8a3k>J0eW#QpWQBP(bSnbbdNTr#zcOb zd!!4E<-3iA{=uX}UTrjtFX#8;-#>u!nq12@oyI1A_pxK;JTLD4%0k{G$qGthE_7vi zdV(f2onNVC|4VXu3%{Vj@$PbXNXUmt^tU8X;1x|KDy$gkTW7rT_1!tawMI+Z=|qO3 zrRLOc&yqi}nvO5o>*ynU#}63stDooJ*-Hq{_-2ow{}olDW3vQOEx(X4iGyEgvDJik z$LpybYfx^Q$5bjLO#b|v&Fo@sYWCkA*s8bpx(_#8E@1W+%Z%^h)xt{9OX!^@W6YZ$xwv8?mc}p@kD3w44cT6)NLzM`^5#4hY(QiK+=F0dgh=*Iif+_jLfuR8%+H{Bk+bTm)LM;OE% zsj~BRn&z_7p3kI#)}!$ zlds^knjQLX$+LVI^`$|gzT>=NTHzvQS5erd=Dx|WBrX!o>5u6AX<4Q6db<#Vas~-> zG)c*J*s`=+%I*mkK{abdAG$cc+iojq;P(aZKEmgdtjDgJnjg7oVFwMcqggM`WnH<3 zuQ)NkHmSSnUuW9gRO8_(TfrdM$;XQsxF9U3y`!UK+k9Vwq4l>5s(LBJ}*EN*Uw^XRb9*qYi1tfkqS$o9DP2v z&Qj7P-GFA#@Ti^+()jT zMMB8Sy@ly3R~cAGlWN$8N#)&TK1Nm;NcQrE92uPZPDf*zJ@j+f{z}fa7nq~|#9^%@ zf?AxlY306jq|#R-yhlWK}z_Xjgad$e}SyGR0_;34s`zBJwP! z4sC?Z<;h5(no)*b4C!`$zppstcqfXrp5T*?A*pDT8Go&W4q4a+x{EpXXG1K>uAHPP zQZ8K?oghPX&AHa#brRIcOkuBhCL0g#i`~(*p0xHcFE>e1Lmt!{)XzUJ^rXzlhweyh zZlvYblE09r$Ka97=y^aJaW6BoOp+&!>A=gmN{gKCd!iG4?dhj#k5D(*!(aEb`AE8v zaAG8bo`wpLkm8VS3#e#96$<*e8Cv*nxZ-2$kGvQRtKKag3}57Gnu`#ug|3#r&9tmC zoqQ4IsV;GkYgs#NxZ%UV_vfa_qG71siJj-HPEn1&;zuMy#4;n?OLp&s(TU=m3puj@yQ za;AzERy*Oam3S@5*x;JT=SU=u^6~MS*1oE1HR~ znMS2GZ37;O_IW$9tR`I2QVkrI$;lMBOA9iK$qC+GcbA0rK)kq>rMjFIke9oHAD*C2 zN2P*|yb|q<-Xq0j>7MzQ+l{hI!j!T4t9UwqwDoyQ=C$ahL#e;NGTG$ zxd-`$BpBKDM?T!*u^;=w%{mDjlTCi%n9xUw7ia4B7Kvs12`FC728HC~13?fUY2ez{ zl5hBsOALKv803!+v|o|6)A8J9o9FQsy{U_&G=TjE+u7@zs0)i{A%-31SDTx)dS3Q= zvb(bwT;2yeDd*l4lB`?e-i&-VT*GOjlsC94#ysM6p%(Pc??2SW>rPb2=5QRSJ5^S) zF_ND%wM;rL5^OXx4%=H!u~;)qh7O+aav|@QNm^yd|3d#>gCZ;8L#I|zwgo*OS>5iI zP+PI;&uJ-HS$Nk#wQFMW@mE*kB(!>>_#69OXZ)?&9e7q z(|*|v&_bh)d-fW8WfXR4Gau7tO}p9aQXVEm%T#Bov)5F}-07LqsCY;8wjP5kRgyI# z^FV|mb}k^nghaZLgUxMu0mRqm`CH0lO5o0;I)d;2)-ss}?%HCsT+nFt%_Unft4Y`(1 zyC$_>;>!#2)%NXg?HRhnSSRMaTQd5J2P?m;1J#1bCbj*wS5y4kPXXY6F*Ih z3LRv@8M!Nt`hMv^!$Ngw=k04rmwSoRj`bZWESzBuqYtBH(X}C+5#P--ejnr5Evl z#eQ9sY&nt7nd2QXjMI7jdMo)Tvz(*y$!A_Rge-ZpT`xu^Dm|m7EM^-aXXiwlmj%txF|;+bH@{>d+LZ5iP{y`sh$=oV&fK zCG(chex!!S^w1nLzsS-cxHJD9nFN!_73}GH;>b_a6)6F&9f zy@}xnU4oi}nxi*-H@Und>(RO>64+=4Vvj%)#(EWE8`_vsaU?4N$-?L^l9CUzEt`3A@J;&hS6`x8~n9fW^6M}FpggNyOo9G^whzy5{? zZ2#5b16r`=ML#|MtA&>t@zk5Q(n@V+e+V(b-jW){Rq+AI_xl|RUn-vb_mAP-Fh7$# z-TgL05w(Pg`u^~_?WjfzHA2BN-WR0dxwoxe|1->g|C98rH^<1~KyiqYD4>A^Q|jhI z=T}M!&%Zkapoivo3FwW zN&vS*LJayBJlKe1eY-O%o^#PQ6&CGeR&ty?k(@;^j5kdCO+IE{=2lSdQnu!9eLs3Q zO!u7_kO2Bni|pYEy;LK=vXFeiy#RWf)&`%@ODE* z#ah&*#(Es;%KHrI(5gukUTI z{UcR?{9(~cimAfFPc-zd_Bn^DRn2LiD=uIvJ3@~P?sMH7vln19%E^CIiZLdbqb7RK zkM|w2z%e5kxwwyLW7v&)zp@Hd*#~f4{EuY7r}t03*T+06=D+;^m|v*@&^Na#PpA1W z1^kaHVuB03|MS;>ed1L`!R-8+)gh>J|L-SY@_yC?mw8`#@{H(bO(9h^Ix63PtN4HS zi3l$8{!7c@-@sHrKxCX*`6Q)uWvnFN67S0oz2RDh1vEt=!nghDU+)3D(URe#dN5xkb=>Lh} z&n5XkQv{e42tBn&S<7h^1|8u~qiZRL&*tXMGK#;Sy5-Pqtdw}pFQ}C|hjbLZEZyF2 zr+xO5Ky=vQIL6pv_edi}<%7LK^^q?}lTj z^BL`wIuWE3r*2bbne*IU{m&PagasJq#s#ZHd1L`q&BoTj+)nmMvokyw8sSrtmx|N4 zi&puGfg4&5t7DCWroX?b5^T4>kA7w4lmJQDL1fAQOUqwAm*gQg5=;T_MiN4~or-a% zN6C;unioVZnu&nXIfwR$wr9*N;_<5hFRi-=_R8;~V@=dJbVp1pneG|y;01j_DhBc|5`1$CXQjSRmK_WoQM zqV3+??IlZn@=}kmG`9L+bOYk39Gv9AW1 z&QjQsU&qhj6=}c+@+Q6se=JNg7ZOCXpKn}UfqjQ zPUlZXl}Ckibkm79`~psj@Dy9SrVMM(;>Y4j_-rew#Br|__sBQR}!#lRnbh>@q(jhgC%$q+fXADtPZ zX&x|PH_@%5oR9UN>EA?rN>QiqHMr==Ct!;A@=_z5HaXcms@bo%a8mnR&y%V?b-2lj*IKqZesBLcqkRLWg!+RJes z#jClqR_Y*et{-hU8bR5+yw36ht2d`jt=EuZ$72ZSYb%QdocA>CraE?h?>J>^*>e$a zImdzwvF}*WpAI5H2)tGUl=PmYk|zlEGp!!aVL3&tjoK7>!k(rT2Rm-4_zVnCSV;nt zp4Qgf_m;fY-RzB;?&$=^ZM7`$)*}thoTh4e#vLvYKUu|A}Eb@CmKMM)2~=1=PpU1T|xl?gQ?5WHm_( zi^ENCpoUt@27BXi!Wi4CRT3T3_6F_<%%b?tzbf^x!3Ba@XoqECr|y3`MrQK57a{n` zDVm6x^dD;ZLLx|G#vP!F|jteHI+jyP?~h~ol#Thg>nnm)$m8X zR=d`nyzmk>WrP~O5o5H=e@sgolnU|j~-7IN@+j(zZXjy!CN`0R$j#u}d%h8S+@bc=8gkO%c&Ac^II{G6+9G?-r|c*5NIijl3Fj<$ zE*yD(dS6LKgws7W#@tXJILbD?o6>+`tmDE{U46o~m4TKV! zgx?SG@%x(41jg;r8U>~fjYO|*&)bAoJbAEkbE})8<1BmK zDu{KJkBe>HRy*!&@4I!XaEy3tIjyAB)1re^jd8^`Jk~hkRTn_90WT}(H z!y4nG1S`^2Y8KAvi*JZF66kBrvPva<_F&L#OLLtXjFia~n*qdh(Ww9xlbk9*zlD+3 z_apVhR^r_w4y{n`iYCRGGSc$3G2Vx4wd)3KtfNo|bGM``wyoaaBEsua@n zh#x!_R8}_}Dt6_vSHXY{l?Ol9+&c8F{T_$2eYjQ`~nEvUL>>@~QaXv5?!su@Jh`W;LZwkgIf%`y)qboS`fV&d47P&k;M7}|+& z2^CsE6#JX!9YRa#VSi}C8(G(Zfly^0X17Nr&M5F|z5m9$|9sja#YC&W>lN83;gFbm zsSTNA8ldZhM}PkUeCdCNx|P-dihh<~r?u!%Wcn?M?!}DVOrw^bJD-?0s!?ra8Q4=B4u;AGw>KqAuM%E@kf_N;A#txZ+jF1D=v2y6ZwzWLBdIt&;h@kZ@J*rw4^LrXi&cLJ>z`=is|-8@vj3gVa#>bwQ~=2<<#8_h zU!G|UnCaJkG~trVoxPC5MFxX^i@-%qyK0!k2A`y2tMFOfl2o%eMPd z%H(oq-{e4Nh3aJh|+dJa)OWXIY>#?dt6qP#XHT9-G5g^M6$|uE)%B8!_XKDz)6e z@}e58U=Gr;(lR$iv2^A8c^M4Sxf5L$0dIme;tG!4^Iu=oE9syt3v(($LKP{gKLjcc z^E;?1X^LZFIE_MsbwRP>y-H5hs}bcAia-^}4r@~e^;IeLFU1Pt2L8C=>pYaJVwRDC zzLY2>$WwTEbtR(_?#DCo^S>P+C4KyDCF2+rj9%72XT+zEJ9`Nq6}&3`k^MHwzIi6* zvCd%FzxM0@Tr5c%%q`8^`G5Y`zg{R_F`z2xB5LiI<#EIHD@f6Nef1paN)!x!BXDX! zE|;_VONV;ZJ+Njgj_TWc7oGzFfUpCo-=7`(@2|iba(d#pjBA~&F>pB6Puf@vwrMJt zh||WJ{mbbBS%$XGjRrF#t=5a(_f|%`q^0o@_qA?bdSh=QVhJYBQ zWp4o$V^~476&~{qp{p{wuJMGjHjh};^4^anLj!{hmaVi$F5l!NXTlPRBi-=kQ>u^m zi)&+@V$@u^?5wvu)5hq1!$*aQT@=)Y|lc$2=v9TWM8n4IG{ zp%CLyX}2P?_&CUJDenH!*8;Mkhy&e4Q=%NBh*;yv)24YHEw0Pjjoetkn{%5HRGj`^ zXdfvN#)DP2(1k}tm@(?n($tUEIH_=KZ=Uaa;&m!kY1?_5%vT#gA)er*S39grN>=^B zHN%TR9T-DQz~@dnVhF9d&?+>UR2?V%u=_n;mEK>or{UhR9;0rjO@mm)#`sHHnaB>< zkV(F7SCryJMN^1(cw`1XwL;#gqJQ-W(j`f`j$rDKCP^8~KI>E-P=4{Dx%0?1Gmwz^ zWj?3TJ|8tD<=v`bH#aQz9`>R2@(a8E{&!TOsM?(xn^~S%yXomMg%GlKL3-G@;+M;I zu?iXV#~N3~z<{&a|Z==2AVzi#haUcnL(ymrv zb2^(r-hYA9*}H#!vH^~$busTvB8#K?Ev1RU9zZNg?^$mqIOXVc=+-MKUVV8G@Baf5 z;yQi`cH~%PJqV^L6zWheH}tn!>CF`ieEs{%tBA?ws_YacGAHhS&5N!CGDgoj!WO`h z^}lVv8%*FGP(D3jL%*!w-vr?XUDco)`?9PM?|-#@LE7aoZunYDOLa3nE|VVR(szJQ z7ABdg_e&LHq@kdor$dyL7>w|^B%2!u0D5d`3JEnZ!L6Usa8BUpWBiri#N&+rk1i9$ zgCh)+D%i@8AkIz!^LUMuLD=ZDQh|379x8r(Ma-`Oz+)`EvcS2#CYWD?KnwC~>AP37KtLEQmt_na>eZGvpv8ma`Ryxfltc>r z4|_M^<+lMuv+(pdUl7h;LD4@V@4FAYDUn`)+m*$<4^KNjdE@hUMjaS^*Ck|Ni31pg zueKn=bElZkn*R2S;6c2WKw|`2B9pJSc)(kbzrDZePS}AzPnzwNy4u1ATAm_`yu7Nl zL_q)g%oixHwmbnX_uYOxyefqM1H^-AQSayG#-~zh>f|9Fc+Fb${p0bKDN3wO!c9gC z2bD_<)z_Z@)8)isHAZ-{S*=Gymh!s%D5?B+M_%)Y4XI0U_8x)pqG_!0rV@psu5O6F zyz7T68y|JV2vX>}r)yO(}86*ypIsg&l@Di;q-6781*?tzvl)}CV4 zNqkcR)&<2c_c&~;IUyr>8Uc`=+K0;sXk!N*c`akz95#gmp*XCn^VAz>iyD4~gIUAM zY2s^Yk#8gDN{6QiO|4c23btm`Mmk4#Od{6R+O-d-(9Dz|HdPAhj=lFdifeN^l+CbR zqD&nQCc2bMO{EsNvjzUPZ9wy*u+udx1S4qdy2m|Tak0t8OGxh#Xll4HcI$RWnSE#$ zFUF--fZqQ?yfoDHovo+)4B7^9JQA&3ZHJnC5YH_!?(0ONbKV&;m~y?dZWPFKR0!^W z9}W)=UPlrYQUQ0eSH%%$t$NJfE9#17sdO5)~COp;{Q=WS2HY#_&gy0g{y>fLq+ z(;|BtknMEPZ*4)lsO({}tM{#6REKRC5<4EI(4Lrha&0Z;3|S1Ds&54Jtk&{-jm zJUB~kyXGG_{xKAKZdE>**V7nZgZ@`$2aaAVLprv7>v!%bzzHL?uol?X;aGb zL$~Q4ZY8Q&b;Uw-#pFpODA54Q>_TFYmXWCvd0Sef@WojZ+;EzU7V1&RV|Ue-7Q!t+ zjCK3VpB;Y}K6CGPve7U*!x-s^_Wb~1 z-dd<0v5B8_?E+u@fOkH7H=4mJT+ODTI#oothkM5sHeT)o9}bm@NIf3c&3W974C>=Z zE{E5Yl_7Vo$owgdWJ|P766H@FdBvD}5fKp^NR(9~bW|d>cG$M!u`Dh28+{F9w%AT9 zFSBeWPC{cj4xe$HWMfyQ1-~ooiY^`beC|+r#K?4WiE871HZi)x5FEsdPUUNT@J=Lm zMR%b&<+MvxbDB^~QGibMa13^Hp3%D~_n=MQG?V2zYC$(Wp(R{6fkkbqg&Eoa|e6_6p{v--@M{fx25 zn_8%vv)M0J-(ul>2H_!>_40eClikdfC#`{3EUx)8%pDNu7XHY*>i&>i)5UM#d+z+k zywVml4csZ#DT0Ol<)&v*yaVJn29w1^F1L_i)*@tNJbx)=XRq7XsFQ$o^$VE*+eoIg zUWU-%TQu480=}PNkVLsM zZe(~KBVBrq|B5g94nF{Z9pNf^6%wU`?)bu<5?`5WqX$^i?`3yo5w47z51tmu!~un( zm!3pI4&UDWUltMA0W*9}mPD8T@6Gz!7b`6bpOHPNgW|&9gYyYPl%%xdNh8F6j${U& z>>^Yz{+LyzYXX^{$Ay;=fg%z6vZewa1S!1M?(U+ntitRB&5#oP$yX~aewbr%=EV>Vbl-%0(d-g|k)o9P>}@0Nbe*2CU4!Z9LqFVJ1m&io@CvW` ztjrR}26R@yKH?;o<1~6XN^~tl)#cpWwAgQo_#f=ObyQYs`z|U7f*{f$ji97}k^<5V zk`mI0fJk?TFG>m0-QC?Cf^;{$lt_1X?B`u;{my5sef~RRoIUpUA7jjyIiLB|eD3SM zuIo;{t+Ev=+gOgT?KG}dZeqqzpD3OQHfZOI8QJ`-EE>5(ScL#CGn#Ch*+AawDL~A| z?kdn0_Mx_1SS7kvYOXO_9}B`S=vUySO)i z7n)}}UG=PJ3rN-~0AYHB_v-K!_gY%$OGhbcG{3>?aZUU9a5mwLI_55Jj>bzE<)5+s zP=R|X?A0bvS2Clu?1lDSmG<+Nj%&Nmm^SXU5t%OcL|+@6I=oZNyEAW#kKcqLB~Hdx7hwivnv^kvV`C@Fs3K=&SDs5JWz z6#?s)@{f16jR9EF%w;=We7IaR_bz`<2Ua59SEudjWLif>!%jwAKe8`Zr`5b$<#ZKKp0Ex|j!0|yp zpL&ZInzR4}NDF!8GBGJdtN6c);A<{+jX(1Ug};M>lJzoPYHh1aU6}wkKK58XNT=xo z+_npl0;)J)?zL}?yplyLBa0995V$$(ch3U@&S;o?d9czyzRjp<`3=`@yLzQ&z6S_B zH-WCH)E!8#t_@aFnDxr^yYZZX{>gM8Ng#t$AdD`z#d)WGWz&Wc6m2N}9~~Ay$!#Rv zUx7rQH;@o}$7i52pAyl2kMZ$V2idgIQPT4R{~soRXD{`xRKzcG5;(&Aa1t&vhIR$; zZ9g5(O|-Jwud`}6q4JJ1Wl&=+rMyq3!(Bc%3jj!yK%TvjZo3YwCylbu>e?b7q+=)aP`x9>itFM4kQ@QeHP>js<=6t;I zWvDeC4$efYFLwUh_J9H;4<{`{aY-Yi91@q^<^p_Av*Z332QQtM!d0fPZ%*6!G;S?@ z!`CiDWvpt-S1;D}?2Tq=pQK|!iP!LT7fb((w-?*B=DQhu3`mif zUDdP?l63q%P|$f#lkoMr>;&-nf|75qYFv?0tw&p}CVNi-dHP~N{y9B=@~wcx%Y%Eo z9I7;lAx>E|uqq+-%8E#n@1F-a>90<$inVCrq~)xhS9zTM8g=+QgjAs!Y{J6lqMO+Q zj;~3O3)N7nFW0S8DUKO4=Y`!{IojL z8(55b8(>*$yy_VOPufh&!ZKXSG@Egxk47@+geEPo5a=}|YhX#_aebGOGR*oFhEQP9 z)?{fW(VY~PUMb8ME0RF{=MkWzRcoqy9jc?~j>tQ5@Ku&DAO*+842AcUwkkkPMV{o6 zQ+#npSi-86`n-fAbKuKn<}5};UD;7ja!p!Fgxsf5eOeYCjsT8qg~ z?s)Fq4$tP2iq~ZP$>sR@PGjWOXl11B##C{Mkf@$>JeTbz*p2LjSVwL*%hq6yqq#J? zU1{_qxz~FT^~OfVC6(Kd3-I8v#tB>V8OrzopV8Ug^5kS1lt+fOAzoE9UokEe{8 zD)U@fgEKsygg@>jNY+B5j$#Jnxk!41sU98h064)QKtU4bTAo+RR zlXMa`u^77GIi6_AAF@Ed(ZHFP-#;)`r^!y?I<-^La!g0nIbC{RCAF(T^&5-r7UVUq z4>W-w`GZUXb9dhZm-PCB*>_szkSFF19~leUJsWq<(I&O#=lfe;U2Y}Uky=^sU6_po zZbMIkQ{8Rq83ZT$`>i_!(vQhT`sWnC=Pn~T?p0ryTx?BE)VA=JmiE_=fwE4uC?~#) zqOPHZcNy7`ge`_H(bkWWd})Cts2&RGW>L$1vxa+oiBxx#<^>NVP9>UAdLJiKTNAsT zem6V96eE5^=60GKn<;2*NJC4Ll9>jyRN?v66eB{y^<;+#!CeY~@iwEET$4O59H-k;lJZp^Hrfd!v`#aNj7Zl$bdrI=_L|VQF&hEJ`0%XSK?!Z1l3xA(J)Vd^hKU6sQmBh#`(HUzkf866fF{iFg9DGYX zl^R$-??FpTi{?=}I#J?*Oy+tRj7oQkBp<{d>Sn}yXU4}^{FBEmwH<060ijSkQipj6 zNW3va&1$!%0nqm{rJCtdf*ZGIV4B#i@SeN7v|x@e{Z*#h>U&xzCrRL7arq>?Vb=ZT zDnl&FNLLz-N1lXEDm*^c$U5e1sZIV`Y_ypnUR^Fg zpt)U7#jS)Ma{K=CCTSbO7du|v8hw1>qXL1I;qeJ2DO^TX0Zu`R?C#>6-f!7{?n81p zdic8}J%+P&*+g0?clkCPIlR`BgX8O;-Ey7(;JUfKv0Y-`c+rf8ty*dje|4~Yu>~q; z**5!w%v=po7pTCgTA08c`5<5cf2cy59y&=hyO(vch~4Y=UAAY{9No=yjfX-1+@G^T z>ZEUWnDO(9h~dgn(dtmT(BAdzG%@ZLnZ_8AIa+1sD}$;0N{wy!JBq!n&{Wo$gY2g%%JR$ z@mQ7R{aA0);#i7lQsP)l_b$ph5n5xlm~X<;U+W~rJrbqKy%(-J2tGS3CKFFjIuv^? zza!~;Y@{5F3TF~JrRq!HCyK*49Uy)fll96}K>tqW5GnU|)mz_#oV@!D@uV9$oU9(s zUl7Q=e3Op_;|Kc9-^@1LTYQ%(2hRMbj|kN|K4#sspZIQ;3d$g84KL8FtIs?T%I)*DN+-_xjRN*(W1?0SACUc2VyCw-vWDmnDUYK`AZ zn`0*H0&>q?Q%PINZjE15sXNQ;`g5N&+~*Q_g68(2pui!B|NPb$Lbmf)T&O-_-K@~?HQOp<_S^axW<*viw-Yu25|4!s2kjV(zdEr@ODuuO;S{KEm}AfQ$TZpc7^m7L%o%yhq%|G92=VBN3w+ zzhHeq8UTw5*>F-%^=Flml`Td@jT{!D>@0Alh%a!`%R~e9I&)xttt43QvKfDzoZ}-9X`o^f=d7S-w;7^Ha2!IN9-Q)&&zER zzwSCW1@ZvPO)--=yLDmMC)Tvk4-vpDNM@}9GKxQH) z_y0^?eFtNLJQsxZpT_<37x`z<9VtG&$$wsP0b}x=NC6%m7iDpAIo9ph!~ZS#U|6P= zKuq$_qyr5sYl_9{{pXbq7=Yy(Su!S3s(5Eg_5wgBlN!c z^9nP#Lh(bK_RpF27&g;9mY@E4g#cU$woLn%q;?2wCoh3h*2DG4pxYF38}Px`#MwvKDe%aO^5o3+Xi6_=CNcTR zOW--HJ(cB(CWq=`GyMGzJMc);hX4)7gp<>=!tp@4+b{}iOnyAC_ZXi0A2AehBIz5r zBI}oT_1>*ab}6aO?yOQ757t=TJf$VuOgg1&mBdSm+>p z#enfFo*tt+j(fm2kf0Ix`QLpU6dJqJN1ggcuQB{6c!W|&;6vLNqVwE^b2e`7anz19 z#aeH#n=QQ+nXQE>NEdZNlZR(F<&e-v_Jr4_l+)lj;(5nSljL$F5DPxB9P5|I5@vvc zx!d62A4Y0zAS@YTg^~3b4u*mH3rld}$G@@-^@_+6y8|S2*mAXs7xy>@+gfn_^RHS= z@yom?Y7$27K&CK|Pps3}*L$8}`oKVCaTj5%_Xy82(^$icZmTsM_*4#yFB{gTwUUgf&Zd`%@MM{6iQ*j``UHxiybp z@y=(FvrX*1xRjS2-+!8N;(B1>_`29~a{Rtjv0&&iyq2QOAHbe4ph^aJs6<--4x^L9 z!AOtuB1>UEJ>jnn;s2}0WHCU#a5`4lY1)~R@UFLO0we+yWn@@yU;2Rj=yMayy9)iq zE`Lg#%yhh%fB+=k?R<^haeuKYmmBwQUd}%WLL(-t2=aQsvcZf5cN7-~M2BH|Zx^6>2< z0?ZNyYTeJ14{*+4`ZE8J5ypn|^<3tPB9y-&>vhzT!s~)f-&^p>C^&d#C~U^!XUv2d zo?(S4FV!pYCVN!1VL!iF+Ft=2?Iw4>x8$2bE9}lvVHR6J;?aUG%?C3FbJiYwrg3K{5eCp|Id8G4 zS6ii{5kDW0;atKoo-9dkj2@>$rirqgc;k(DjGX@E1rYq3y_OUe^&(2K>Uq{)bv5UH z<9e~+$F#ZM%~T0IOgg}z+mGWFR4t&4&w@ySUA;&L0&_+iD|*w?^i1{d>`qb*{9#X4 z0rAB{j1~BQ?6Jy$9$D2$@-`8RSUYJOuo`39`6*3AN3J^&-38e76w1!-I3TF&`A zpzpWUd$?>rf8=#@)57$zg}~e{u8%7lRb^xXh{i0(RNqZD-dvfhY)wyVaPN0e!VKbe z;UlC?0gN=(=ngms>xq$WNI1LB3%=AQ-4P7i88!euE2smuT>Sh35YL{TmzB^k+E>%k z`5q(yBeE9=gheo*BnQq!K{AzF&gz4%RQ~P{aJQ$W_X=vajevz!6>0|#F7BDgE@8?C zuVcf$5FvCP)*>+xQ{k-)^SOrOuc%CbI70HWx$tcu&loVl;i+saI08*yDDZ~YLa`gk zSLYaD43jYZ*xz@H1NE;(^9IJUe#vhqMveo)VS0_>JByP{Ods~*yruDNyWN=actAz{ zIHi!p2Hq151Ek|Q9y#H9C)=&oA4pYvyrX_UHq5CffeBCrsFB6KeX#~oU_#tmg&#He zAB}Is?@h&OS1<9y-K`i%lfWk8v`VuNaIvA9NS8hxJ_G2Z2F3#Lm@5U?_FR0SlZ?yp zrPr6)$y1BDsJ}|5oizgEdEXO|}w1u%xXZf!<_p z6NrSQj*FPwAU89^3*uBWkA769x`DDhEdqd#FdreGHr`w`@>e&b;*to}ryO2nYTZIf zinE_}WNZpfOf+9xTWkJSq~ZI)DY3IiyU~sDoxbTKCZ>Kw8{9*Mr$Q2i0C+DAmEr2F zS0U|la&JQ7$=pNM@|}f z+Kq#5nl)Wk)_%?pPcu{ay>A$%?z>Hs3>Jb2{3@LDphD^h!3V)RZc;Z{c!3 z`Q$vx5rx2vwOvB>?e3bW(p<cqmWtx~6 zm}Dl>$|Z9$(@BC+7YNOMm080{z&gDI!0SqE*%yN|8W)i9&s_#kb~r>9Fx5($K6g#| zc+IYzuN`Rfm;=YrH=4C}Xq$zInjhzHRKg}Yh!8M*B;XL4N!?5gqiyN`_HaseK81&CZtURJo){RSxsI~=R2&K=V})E1HM-2q;;k3 zvwP_=Gj(t1`1}*!V^jAQ$J?2_EnR-XjwT=>3q9^NrCDkfB$a-YHF+l7xBh{@3Lbbu7RBZYVt?R0Urhx?`)+gS@k8Kx-zFy$!m^36?Sjo-(Jb$3s?mX| zj{5^aecN4U^HpD3!jL3#abT5fve4>V@Io4S4c$09FK@rX_~zzn$K9;&Uhg=lrehOX z4#sq8>+3l)!U(<4IMs7GB~>DMH$)a-?78Kk9aE)r9fMF&l2(x{R=WOxa0+}!C@J+s2ZK00jU(w0k1{0!!zZ*|F|AbW2^s8*?Ry96faq*mNshOr- zmIB-HI&`Kt`q^G4=kYT4+=Lfe^;qgfg=M%BU0wvsMw?8a+9=03%+1Gn;VUqX)#xr? z*hLnW;ja&5oy;UiA(TD!ARLBNjy?mje4d2_6zA-T!4 z0Ysc0Ic{Xqm{*_!$Y1hs9?~fDM5xF{?5#*=Z+4*I(C;RHrv-MQ>iUzDKp!NJ113T5 zm*mC%z+@G7N1(>&_F2&XF82^+WUtK=-!qCM&jbe)+~LyH1#&plwH6HP_>FRhB=PWi4UZ{p)*Z)VVT4Km0k&XE#ZE z*LE5K@TijE#4keee)dl9QgZCNu=w{fzx6UCM8?BUn20o8lDOrVXt+Zw4Nh~4kKZSv z5wRnXLe;}vJAti1IO?YZ&XnqBhX;qD9Mviy7t_g)+f%hWR6CPPHj!1wz9?=3B9e(! z-`=O8!shSe$l!62M+&u>^7y?zj}`fkjI^#Tijb#z+-b@9gdw-%|5-uFTtO-_{S9rp zcZLb*&Gb^wBP~dT@Lj!6i1NMhqqn7Hy=a+~Mnq#c%(Z6Ca0|w7=r7NF>3TXu|Bf02 zVXKV-XYzlJ{SaY{fg*HZ)dvfR_ZWkoYiG7ygeP798Mnfs)1au1UofP& zu|{tHLRtW!l{>|NnPy}ap&`5+PfhqI{yZ4zVw7H}{(qkS_c56ekH*bOVh>x|h6eH3 zB~IOD;SXHMYgpJ%uj1kKYosoZw>nl{@BG9#480prveZ9tvV5gVyY+iWgyE9`nrmoe z{RF{CFiA!lN3C0*YJqc z)Q73`sdrVr?4$)cCR=1?wMjg!V@GN1$Rl3-Rf&}4^6vtC`5*lS2w@>ADT@jSEKHjy z*%g?Gk-sLV=9sJRHH^Zm<4WlU0eZ9b%GIq~{I?{81r+}d*3DgsSbh2(T}LT}AYcxi zM+`o#GcN>jdPQBGpz#ddFd>IbU>2L_Lpdcl*S8sbti!{v@(0!E&25prGl;7elP*XcAgvrF1u>W7{2C$Z93(1dunp=O(GV)H?1e-)$vH2aq1V&>X1bc3X*?hm>Oo9sB ztdsG1=I_2J{Bi3(8GlQE+*fn!%{=N6`pEF3@=3@0r7Tk$$Nd+n*C2A?wX+?O;yn`;9p=z_zHDwjr` z@B2kghL2*zG_-{2G&A_COrcC+py7|&jA8pm(1WcHrTn1b0Q~vN$$mkV37mi=L47al zf5?W4+Wdcs1?5BfL{=1M!VF1AZFL$au#qcGFWw0gojk_+!S)xp3n%){k%KdmQJ;ht-?H!4C?*SD;P_ z>6YE@gNIlke7z#RyE3uq$8QR@=qzd1fIq2uN&rie*Jrl-JCgp-CJMyh;F}^Jdrthj zN)!$u=Lz87b?I&Xi6NH*qF*Ze5$7M$T4Y6-ia5M;;#cwy?5Retz!lSVYm?t6CPr2X zSekU9#kb*=unh;28gTK9m7g1FZ-;Z&$uJ#As{TUaIYqP%yT~326VaFXxGo5nq?-s)o9v|Dplw-dtiB!@VV8g7j7lGoxk@r-8&YY6Q?^R_v7BF8#d@q*phhz z5GX3tbinO{!l1CqJom5_7&ZjME*NW8DZpVq2AaWlS>6wLn4p3K;2y5$C8GUKd1uc;3L${l-9BqG9BOgZNfv~|ao_?4-BfG0`f0G|Cj zSR^2Ax|4WwnRx}Yg$1TY4?Ko0b{fqArzt@F_(uLZ)~u$}eZ$OYbQ!=c4loRE3()QE zo6sA7|H3hAp`Rm@1I>``VN#5El{Vg+$TxTY`TVU~KuQFKSiQzl#n8Dy@M!{QLJ%R~ zz^`csJHRK285m?}I<2MK9S(}s_KWd_9uKcf0d~Rn!iB$$Xdqdzya*v1lB69RUs5u# zf)BDuO^#hUJhT}m%YjiOHC>NJAvyH`tK4q80v`1in!d1ZC1N!UdOuw|1RA?qL+TEa z;h-`M<%#z;m;mq>?ZaOIQkHMOGs{RmoU6jb!RrDTffY_iMp9Bz)-$=byz6ER^y##( zGOEl*QS7q(Dzt2^iwp-TfH28Shiqxo4W=c+rB{y9P$|&J9%ZC0O14GOrJ;SAV$Q{F zv#OIbp6pG!-d0xoW|e<+yGzmII{8bTe_TAuWf)(@YF9kC%S z!Sz@bXr05=m&yL#e^MCa_@D-(mFsOw~@}1M!=S`ZC_Ae z3zqG^K*sLWstet2I=}aRqTJuH!$dgP*zD4IFGO|l?}pLHf90Sh1$1X~<$`U>8Xx6u z$SwfJ)CjUx1L8jKi)JBuFuK{m6-JQI)s*I-UdL%%p5kK9j{|f|Pbo*S7zP<~Vj=PGpW3RfdcP{d3rRi zeYL($h!3$c(Tinl6J8B&{(PEayppEE)m?=0H=af^W+V+4h+zQ`W-#^DUj2&(;o>+XWfQJ#sSXjN$UYw zjB!Zlq$Vh4o0W5J+*^E?sK%Wk+`5VDSjkjN!3=jOw0Fvy5#r^N1rgmd<$E`6D^G#l z_2G;R1%HB-mG7j02}lVr?;y5j+Z{ zQ8aR(K5k*{ODTSg%;imLAivZ20S!Iw+x`jh_4VkCQ@u8mog*90(`@a=1~%idCs|)* z0&5(U@o~#PDM&HR9H|&nOE%x7q3#Dn?e#gNE?k_j8T+}J!<&?vuuu4Cjrsi^!1CWq zc9|3S$`^ltCkQ-o=RU+nV73u=BIRXzu^Qa!{c;pFxG5kvRM19_7$|^+@#V}=uU7p` zEHDc)mW%N;cVUdEm0skrK@sTzu7^<(PXcplvCwnS8{J0iU#wmfa<>b}!+%T4+K>QA zjVn#VrIvwjNmf|G5xce?E<}=1nPUuegd*g1G_q}=w$HM9yDpY@}hDQ z_yW5r)kgyD-bx~URyMzf)hta%vYFD4wl6HUeDY^tqFue+mDR~2p})Jtem5mz5C4(pezzklE(0Ooa4xbF$b6_si^Si z_`w+w(WkcnW*L5=*iR#~t3QCB$W1|=t3g1J# z9sb1T@^r5OF-n_!GZNlsy)WI*0PQF{DREssUyZFs$&+(w{1swCI5f@aXuTme&;w6k z@J0niG&|hC2A}SIo*LAU;EPG%TBzPMZ zS~)X2FMeI*GT?n4sF!lRTXU;=DMI}cBcC%np0R?BI9rW*6;v~;JM!cp@Y}w(@l~3V z8^|rqU?1|ERH{=tfDIkyGs04H!!)<(V8sc{BMQ?pjjZyC34`rJamxn2#f5m$@jWSlkINLj z+$$Y2}Rxyt-KZa^Lfz5#OMM=X$p5=jUjSP6he2Fgu8>AhmO;3)}WG2 zFo9{bjw)%W7&+6<);!I@IjPE1Y4;1&@{}QGS^LfKcS3ONhkvYDz1g;`UW)pq1A}?bI4kgt=C{n^7Ed!&B$9!6AVE2|P-j zKCa8~`DFb`35qVlg);dg>c=mhM};1}u9!za*29TobN(xF?W6g@jH+0@_|f0TZV^#_ z39?w$_qyS9N_5QaJ&=DQeExl8un9Q!;j;aWc_cLP2B5mJ!rnFoKSEki$W#Au-m$ z0-RQ4$MrTdKfe51i&I(ptE?cvMe9 zjJdPNpJMT1`N*~TBH5x2{W%K4K1I;@jo5yP`Iv}~3W$g&!p}E}AkUE%^VOOoo@nBF zGdymivU$RlF&*)BIanQOOzH)suA%ZHI8H!&T?3N?A5OptoEU^(3t|8KMqKN- zw+4Ar5~BOQ07n=Rl&e$3sC`3*j3WVAqE|3!@sd`qRaVMX%+^pKTrKe6_3sX+H)YFF z=^B29b0_cxT#=RF-PQxp*ax7o6pmy+&Kl;gg6ei|8wG#|ES!M{tT)$)$R@pvo~}#@ z$ixG%mr)4=f?aaclx=o}(I^)*C?*af#1=kA()Jm*t4-wDB+r6JlPH!T`7Br}Ne+QX zSe<7Nc1{p?ycb=_^H&{kzfM8Gi7Erg z4^I9;@8IuHR?r~~eY(c6y7fCSh{FKBgCZL))@8q6c~lRkP8y%*e_!Xnqx1js$;MyP zM8DI^cC}bxG81Dk{4W25k4T}?pf-Bs3-q$2TiK+`YBD^R<3fL|px@0|)$CCp3&jSH zo8)Jnv#v(G{D9&o*dW;B{CW5Ep#TdL<$fuKI2EMs4vX8Fak{3%)$5ysNe;hKp2PPy z1qa;?XM2}VBCjr?-`t}4ZnVOem=Sp>OJ;?{o|L0Eyfz%3*~{wD3^FozWuC)nLY7=) zZnh!)dE?L-2kguVw(U(^$S3U6WpDiknQzlKDB9-k2^Qf!-Y7>^X~p$diq6J!86|V) zJ)9e+O|hk0{g$~x&VCwHtRJa=Ub00}2$I_&^(C)>VwnbVL{u>)>z-G{Llje zXV#(ZLU@y39}{hTxUY1@?h$XGva{o+X69ZMK^YlWU(29XF}Uq$6{CIh4PtFF`&F^_ zz+IZbC3gB=`kt13bLB9C7_Mb#DRy&;yFJ#*kaadc?uyqgd^BH)Dk^^M zZ6h3uw5I&}DC1kkf;TAe{?SEK+v|fpOgFpMEL(m%cUGBgi#>5a&%hX61k;=5eUt)2B6?-h3d}~vN`lhy$t#Y^ju8*v zpI)CFqxM!M^4m&X2?Q)r{sW%jYOsUf5l* z_R8_1+15Uv=)KqscQqO4zBs)lR3yvOa4`u_)=^d9{MLCT`u=gYxjTDy8v3@Bp{t`Sj>o%L@0@MZc|0KAF*Z1X*fZ-aS)x{VlwW zZ8asA#R$g~Sz|ue38wC=w@;4ln|APUI?Syf59BjkrO|8Tetx%YjLi$>Q)&8<{4P^{ zW=el6G?HsFH?X2KwqSaAW!m9Ksv|*!3TlMx40B@rP-j;p{ToVm?KQQesw}i$9IN(W zW>vB-dH($SsD`b^ zlbu^R-P$mUsfi=5sh8?@+sZvZXL=o%qxx(V$`ticJM>*%DFY+9<)Q#vp2j4WTQ7Ei z1>?5+@UGK)FL*Y(b+@5pQ+;TiV=VgVsqf{_T7QTJ>Ok+Kahp7!rULA$5!;&qSqFK) zd*Rx5Z0{$=Z5`}r;@@4$hm3)c9K=!0<>Z!ud z@D%Bi8GPd#uh;XJtQ3^1=L03b6**-;mLfR89^stOa&Yrkcx+#VaNzip=zx3@kxDii zm+KQy@JuH4i=B>V#!Y`yV>Ks^887)3u#)WS=n%4J^a!0uR|#xVGH^?6a-7RWYGXwL zPG4moBaob~xg?(M*GL@~Ef>^&>Z+2U9V<2s-|8PfZJ&>!m?$*Sv_;j;rgW@sz*MVX`?fW6B{1AU{GFP5qA!HB2<{m8$O_RNQhJci; z=O~7;oET;BF5z`QYwKE-FTrin@ANj?ioHhTPu>>RT#`wSs8+nZ>wGrD znK4FIsWIGYYb%jh7)NHrsnD}^SdPA2V=Jk?;+o@WPS?FsJi=|I|CnEi;JTYRcPS)Z z)GkwAVfbpshnDZAc!<<}O&cV(>greaJ;Q7m1X;0Ae_9-n6pEzzPaZhMVGehg%lLp@ zL{{lNcuz%g!|>!w^k5OnSOBOjCRN^4X7fzsdh+aFzH~miI{fgJ4WGTF0Z>r#GZv#I zug}KX54N&Z-kpu%-B=0*H(WQ@4KRO~%~7J&mz|xNI_KqR!6}+phsQILu$1jz&M2UY znVaiXDe1+Zews~ZbY`(pE}iEzdiYSTr808zfQ#{Uh-N+IIB2&=yo(J9(d8AEvqRIp z4JYy54v|ZCG8ZQ=qES8Hd~2aG_SyQnLi^16A@%&tGI;Et2oyA*;0M(VK9Lo`6ELW2 z5cAUZ_xq(+hpgnc7C}Jt{jCVc4=8QS5Iy9jD6HQv+BvJ{SGIj2O?fC$N_S57SYPu{ zpJIFz`609-+B_VSQ?`&z`>}Y{n)c$ZirrDbbet%O{8yRB!o4|J-^9CW@|DvS#z(46?Mbhv|$PROwBK4UV4AtstqT|0$FL5d`HtQsv@h?%#pL z-L;U9XJLx?IpGNDLHsJlHi$*oE6jJMglw=F`2_kq*&rzh6(KbeAvNL?($lYr?Xk(P zW9av04Go~sD$7>}q0zspG+|AZppeUWx%MfGmZTDUf%RXEb9`XNIe7|C{?x^*09L@g!1R@SV0^&XcP4>Z%Yl{_Pfko+@HTL ze*p&&L-0;1Yfu05Fv5}nefKpUi|$YSV-QRi;o&!=zelpjkK#b9KXE@+ME(WvfW1-* zEDx8_^5UnJ^7l)NKL@S8YcC0uAHVmwFnCo=Y44vV{6D`4vVe`mc9`75KW^s(V~oVy zKlrmpzk^mknx;(_{QWWH7}DTX|2shc9U%VyLst-_>JEz*@$>G(P-uy*ag6kZeg4g4 zPz@WjH_dE%JyNsAuJr><2Nx6J(ToRY9DbX< zfy)M5OfC!aJNVGrkIR#a_$JAJd{)45*2nlMWuf;on^vqwU)^thlR@A84r;2S#@yQx zX%ZY=4Jx{i>r#AOpXz9DOjH5tgRW261%bjhk39Yp~x0H^G(cN+9?U#98Qc#$w z7WrbJ8vZtJqR5%tJT0N7B$*@S?GpkEtuu z^56>lCH`T#QP{JkqEjRtC#zmV#Bbu`r>xfnH0dBdg(zjhvj*8z04pNXi3DSYe^He zH%!*;`jkJPfplYL>~rsYc7-E(83&k#Ldid@%o;SwKvMrUjbDb&^hi0TteB%*A zDs{aj4Dqiiux)ql-+CKP7glD^7yB-dmyf5+-^!I{r+xUOytMB^vGPl7#iS?CbxFHM ziaa8VM~S0#j4Mk~sZzEET~sSb#QnO4M3l)NS{Z=Ac1{C7Afv!f;>S$)g)$n_mio+y zzFrC{R@Tdegan6D=rdbaa-rcG5=~k3Wajr5%$X#yy!9!l?rcEwjTn|VY>S8Dy7l_pXp&*d$h+FSQwPlH z_9m28oaIRqC69Z%!h0W}(y7?BbFG)8D6pGE4;7UAuH)k%GAJ%HNup7mG19Dil~@i3 zB){*jI->cl{{V-8v51nn2vx+(jI4UGs%7JK>dX+fTftn>H}vQngjkNMU|}^@3G<_; zc3+L4nVRQ56z;Mb@yTOqqBAmKvZ+_ci%D-OBRY$|9^<3Lt%_-?=+YX!A8bM-&gjuF z?$*o=A!Lm7REx~&7MD{q-AUMw?S>|sv45Ls8-*9D=JObOQ z!2P;9_T3|%#*fR?L!g{dVRoPGU{m0VAMk&8;?i$nVHkRJtNRFj-DcBKT2MalDG zWeSaEs(cDQUhjCWeYliM)z%FCyqDu01znx@mk8`6`kz&}dmHh}$>)p&7>dWM>2J?{{v4I%aMg&>B~sZc}v;>|cLy6}(uu z`}^cY-o%(#y21}ze6^G%WZ!3MIg-34@id%Ru^A$^ZSvMu)6X;VPG5=aOcogrjAGAIRBh7MWy`3tSWX1akaFB--RDDM|vebXxHxgB44dAM(MojqcA3_ zO;y50=vFRRjisz1&8tfz34dNlYE|}H( zLYQVBFVFuYOv=6VHkWecyKVExH%wd^L+O6+I!=P$z-j%quE;-p!1poc2)(?oi?H%U zja;ZZOJ2yX8v%+!`VmviV|L%{t@b#DM^IA&XIf4RZD~uc8-1zw`9|v3EP@~t^GOA^Lx?`M5VCGmf14@UfHq^>CeC< z8y1+1uKj!I%#%OQJ&#}&Ow+hD|D}Q{vcWFt?_+lhk_K})Rm}YN;-9mBRu>IY1mRW4 zy3M~<7j1U_Gx;0>D_^P*|L^5X9nk-nzWfTX!1up{@XzFFzW3ijfGs@o|C?7rDc0+9 zqc762yxq!$GMz@jX|WA%t~r3)PO-Kw?fG-g@D}6}k0x51`*n?tr|ad~Kop1jMDm4d zZiF;2hvh5z63ea{JJ!1y^zr12qbuI@5q#~!G=pl%^!DaK6slg&@vU^p@G>T(dXsdi z$j=0eiF>a$SG2G9yAz%JI+d%fL@v%_$+qTH5Ap;(_wAY;Gh6HO9T>96+dOB?t=v&# zx2~O?rXWZ*KI0ja_ka1e1B$^JUeD`dtMK}p@AFX*J7|6ax`E62Bu7MvUA!%KH9at% zK4NA(?X3h-f@x3XYz0K_iymy|zMdbshR|8umF+R^^RuLn_j3V+3Mxtu69ZUu7FZ1k z?u>@Yychx@!}No*gGA+0(Q-{}-~rslo@SNjyhhzqKLVu9jd4RMY89Use^mldGWg8G_5dfowqgrx^m)Uop#uj{C9+9ea6 z%$jRctFI|vAnobsH(fdOi7b4Li=sztzxigYv^`xpMfm$F=V-~dgyW`qj+mN$8=n27 zxFMXgrMZiFDJk3Lq#psCpqzEEJIAg6d?Mr?Anr3n$@e2tpHCk(-ZQA2-SfFRzIdJc zy7*G&fceRTJqiYf-p{!7c+c1lBB2$gr3>Gz?F3>&x5T#DGB?)YbAbdiIJP)$MEzn! zRwmFoGrs07=cKv8#ybuMYF^HKDF;7KSMKuCkjGMbs_}6nl-*y1dpZJ5y>=*==ka-& zE*d1e@j0NW18JTH z@Q{A{OqEAw>>>F(>k2>3>1(M45SdEVLOT64C7#q!EySu}{9!G_;LVkJZGmcp9ze?| z4y1eE2Zf+izIOYW4H6&?)mI`75F?(5g80{~@@iiU)VW*^CX{_C2|1TyG# zR{TP+_RD4E{Fz5efv45z6@*+jl^t`ey36H@Kkra#@MAmcX+}{ZJ!P#M5?;43&Kvp$ zg57!ET`uYC34&d%0giI(mEK1sM$&|S<9%HbiwQya%mB@nT%9aNJH2JT;Ck-%D~H2j z{72%Dyc?Go5BH>=CYuY>4qyA!FY}|Ow-={J@kQK50G#3EC{rrYv~un|+rxcl45~iD zP3SYvJE7r}WS#irCJE-&;W2k6{F#rndo@6)U?dW{jlT3&feDLQp04~gL(MY{O1-!PH=6_ zK{WF90v|XxYG)0P_^_!$faMKgBJ&VdbQI# zAdBsYkZP!5DtaQA4$qJ7Sh+yW@|1i3`!&2{A(a{4k-TEDoM8$d#c{J3;I_w-4sk7Q z23g963h;kP$qv3azYekCQPqdo(^>-1nA8+6y4r_W_)lndN$fsa7o^NSo~{oFmgAky z^5V{|ta)RBI+LY6c#VcYh~}I99e4n&>cK?-foiH@-2UkcC-X&82hTIVy8YSfxQFlb zrYaUvE~7}Gbd&b`u~XS(9OD2_=2CbR>1S4d1iA^L;d+CeG_PR8dD8{&_{@)Yrq6o= zHszqlNta2b+8%^BYFbXT_4e!%$96r^%4b%X0DGX=w(z76;gtCNdZ0nD3FEf@YKz1p zsoWEo&`KY`_ZBOEE{c6Bgxh+8!EZPB6#EneG@|xTBj<|%j}=7|bvr2SG2Vgs$MI=e zHm#+YiJ}l5d~7tPjgwanPl`^zBXBp}uv#_jPh53kZ(V+Fa67H2zt-C4uOOMdM>ptt|GrQM zzb-m303npV?y%mYFq&&Z(4sk zy#1z5oZNoqfx5K^_+*mNDqQ>4_fYu@Pym9y%I=Z0>ZdDrUTaE+RIRKsBtk5_Q-K=m z0fakJp=JZKB5G`9WS|}&%|OF(J_p{!DKqoMc(*K=X!=Z%*zIa1--W@dDRsgrC9uZTdZImS_>2Vh;Cdv3bW1h+ISo*Xh!meU(~e5PY$5~<-M z@rWz{A!^-lP^IbCR&7=NM6DHX!t||U&4_;f-iX9A>dE_;;M1)T+a_Wp zYOlkdqRrQB8=%nJ*W)`6XHbZFug<9P@~dYd$#&!Z_0Iy#NZt^RzpGpLI(+^m_y*ix z7x2QXmI`d9goV5ELlQ{D-^g zY1tK0c`e)lZ-&jvgJjdnZBUJ`$58oL>(Xj+z?~7yvEhDzuhfGiGFrFMKT`-2tcpIu z+iwxQg2kYE;cu~JTnv4DCs%-=;MLeN*)XC`z0s`g`6%idZV4qRyBu39zP>KW=^4e( zA~McOcmdan4Zk5K=63eFB^;_4Es*dK#e_|il+B{B87H`F*h4xG7L*@n%l0HJI+jNy z&t@}F!MwwM1FDkqht)Nz!-XcziCE=4%lVbgDI6@3;@UTE#~MBbwuf%+o}q2W4d6 zp$P*#XZIK$$HWomJnC<|TQ!SRPwcc!7SE#}{IhBo z3(!?ha{>_PN+Ro~%R7r>y(sweevlQa`*n|Q-d=R1xZkwFwULPjn|Q9?uegx9)+a%a z-Eu9dVzck1Aw0i`|5!<~Rx5|p~qM&WF>ke0YRVL4mbp5 zQ&y#L)|NzZ zfx5b?d-ChUMw$oY=e`+~a5#W8mKBgFjCvD@s?DN{jQbM^f5c2xWBKALq2Je3=}AeH zRLPsAt%>D5&nV3HfuJx?+oh2XxdivYz@9U=C~3Up1^)hEG&JjI4Y$j zj`>=wFNja zG3X#uxzO|i^iL*;IN--}41yyprM?oPY{LLfx3+uN>NwiNxX-SOhxy@A`SpHlw(1T& z8&vE*Iudia8|d_WGv=6%yn6*ZA!gQsEsulgZ`=5QOunna1ba_y95z=&Akc9Y=ou~) z_i$koGIAV3QhXLe%`d&MBButPenKM`bAN3Er8~9+XFJh>_mtjx3j|_dAL&RKS9hpX zj67PTV|!yP>oxnbX{)otawd|%MpRB2g$$h*sup0<3ane00W}ZuwUc4Kx%mV&&#~4G z;m@mgdZYbWX|o;fSs$xRf1t>4Z10L-85XTmOQK<{dY^ zOr%9gJ6r>M;E`hwW&!(D<*-VrK{biunv4UUdx=YuCSDM5)tZo_oajWqsrh7E*bC;> zAB=b0IIR|?1WRh7BZ8`B^@O6_ICj<`of%cSyqDY;X_m9GJgd-Y@K(Vox6HIERLdBu z_3102mR-j;!V)V^+v;sC=qM><$7f)|X?TN)>Oqpn4Axu@^k|*_u%iIl9iJNgxC9r; z9X>_;?Kw;YLk>Zi-SpceMY1#PJEm^HG@#Qdb)1aqezOU$K`ZQs`^Q{w_BAfJ(ORbzovA>rj{I0_VnKQjl3Yw(R6Vjr<6jpqmw##ax58@5=bjl> zaWB(2tsw1%drryL!|rn@r)Q96GRer#{65E-mjv@HwMfERDp99POUN#&A%uG;{-Q2b z*B4LZD=4f-ee_QQ`@fmqtA z_c|tU4fFv+Z%V89`yu7A%Z8Fi(kRsu41gH_lz665+6QufqN#COo##h#Lass)-2pV( zcNaDsxLe;YwmjJG%F;gdOk3Q&t%fE%tqH}d$hs%|SZc({WW2m2`DY;|5og5#EyX+C z$~oA26_2~1oIB73I%%~7isIg1EUTC$1MS@QZl(Sluz&pnu_exz-01KPFq8`zc+NJc z7xX0JM;RIw=S-NF$k=8uwRs^>=VY_z&?!6I$sA*i9Y2v>yNTQF5TF(?Y(`Z1++c9R zDt3apbmr;Nf9WB70QWS!#?Y6Gg{kYcn>9E+grhZbTdr^BS?8c^+?>X68#K9&zR(E; z2ue(_cs~UaEsJyw){pt{;dMyIzbmcBnqT%a4O-)ZX3XOydF1{IwpsWYGO}%%xsDtA z;&yX;bdjr4^#|Y&)%XgKBUc31T34_t)vaopu}pK&%`~?yZC?YB{=;m-!o%2fhtG)z z)IwJQ6+7RA%iQ8{zFM&1mVD`tKp;SN_`oZJWDO+Dnc1c1U$D{Z|&1k6+t#ij|J%i zJ_!EErRHBXA!6rl28wEN?-8U56kwEYbz^U9JFNCpKOtr6AxtAbMaQKnsi9*CkG~L| zu`j+&;A+gbn0HQb4w)sc*XMWKK9=k0ncy8)P*IT2*DAROSye)z_wNf+l2 z?EVugH3=m`A)qZKNZG&&4}QKH6yxH|X`!3)hD9gvzZO!Ufb9n5ja&csD_z|@ls64u ze3QmDXkpG{N9)LQgKd5Jwm$>lr@RpY;-V1Zp*TK~!(_AI|4JTszM|mk`TokGn|(3u zP4O(K#1S^dX0h7IOH<1mXWOmu`Nq^fv!_kqza;`-J9Ag8Rhq~M3*@6ie5cl@!B$=r z-el&T?A7@;BG9b#?`Fr3BY<2OlQ8uUFEbz& z(<%;}J%M!U-vu*IzXNCTvN59n+ZDRY-aMuNGDtRF2F(9DBFg|ITF~0#>i)Ak`STNB z!d*!wYIxtjk2C=tBb3jL;s179wz*@BP>8Yq+oAb?zYuUE{-3%-Pro$gDw=N(G~AR_ z+u^AJe|)+7<0}V&X5<)M0{TB$L{fI7fNHFZ@5#qqPA^6Y{shti#f__PnRmiEw94ad z`!V0XGoPNc+I6bFTVrG(tA|<@pEuDi^#&zV4Y9Ag0ADDJ?$J2=(J*Ayz8_;abv2{E zt3f>x?h02u<;q_F$*p!`c}|r<)r)3G?nL$}!2C^%6>TkBB|aP z&)ccJ{mcyRe6Mp0SE^BXE6ZKucL z(tg7GU9=~SlReA<#Bp({VNZ?HvoV1q@D1MAhRP5gVm&jt;ZDm2AP16q-h?xD3TERu zr0)n$G$CZOEM+p3xLj<1s9Z$u!g_oJII@^s6T1!F5VLi`XB@0u&c{wI&#)R)?V$U^ z)O#}yE$$VgLGc1T$TK9Dr$U#E?G8_fU@VEd4;6dk= zb=rTG{O~QKMD`Bk_9n1*bVtz}pTNeui{lmZCME;c^755-2$XX4d@zo%*L>=Gv$YHA zHAZvfndNeYx&Im+QharW6w*mn0M4=EHP+q>){gvm^TeSvVH`Y*$tNb0rJ%gIp-UTe zh8z6 zJXT|zmZ~o``O-5m9d%QJE-drM3Ki#&#jYg&blH%4A|A4gx^G5RPPN6%ZtqI;4t(kq z^t;jdahi8oEbU!tI%4E1C~$5Y+RX8ZNm&czg$^JB54qp!Cupx9+!S4m6AW;>6>*Q;S`qH|)>SZqBDgPFd)#kK zCcN|t(1Wj_+YviS^Aj_G`L;DQaimYFNOcQJt@5!}$i`)@tscJ7QaKg)fVfy1urKM>7K-sMod)A;v=3IHeg$&t*e-B-DSes$`X zN_b{Lj2&+C73LGe{XAQU)O%{VR#T;9^Y^_+@)O`flaU%#U&Rpab%tBD0v#;Q&%Bo#5vi<}7c{)mv#;?*fUq1%HUw zE)ndq8gQH8oO9FhxZ0ekc*!#M!4|cClw#b2K_-6fvfZBD!h?G4q9Zpu{@V}T8y4qU z%lYy)mM{xrO-=IseV!sUtF{0|c;^cJW{x)e<;3ct*U^WP?kI~2Oev@9FU!kTDm>zxfV{AP>O3gHuZB|w8MM0^KLA5lfj;28aQm~P z29}FK2Ol#!QbxD-{KVXRD}syOeC49(ow>rOMrh1Oawd3uk6=~Glh?_()LInn4;RW@I znmsY93oRV25J9XdhpfUTcYgQZ4H=-ramb}W*IE;o2AX-Z zG11I2y#3a<2Nc>RO@$=67iGD;1>xF34n6aOE8!TI3pJqlElEHYm7YL#E;~;#jE33P2Q;| zbgD7F+VXrt!X1S3$gGf?f~5}<7@75rFpjb=H&wX?T})BDr$kxxpSv;#xMeQJ-)g&F zgy)FU{Z<=24X`I?z@)Offt3#*9kRXgssYA01-vW8db`G)4g;uZb&BJLk$VQzt0NY? zXqQQVWtk?0yTTv=hl-SsQw$QE70i*>qGe@;n-Gvh3vaa@V$RCGo0^OfT00Hig}qw~ z=X7~HhdxnusQi2Nd7_kODSOCjY-&T&KT;^~rAOmxdoT~X$(#+zjQ2(Fr!5AA2R`gL z7&v?DZZGffnv!zv0}Qs6GZC*TIbCh_F17|_zsf%1;N2O|*Hpvxo0d?Vhjhqd?EC1$ zwSYBbjmo2A$#CG2VF<4aNcBriXeLrS;MYm?J3>xi^Wo%GR z(FVl&v{D{Ilz3y<sGCmIiEC2N_d@J#QEgeh&4pah>gOS(tSQby z`cDmh&Zgn!2Zs=k+S6UatCFZsP@xW|V>!Pw`nMBWZl1iX2>40DH5UB--27oeq{zx`B9D7~tmY`uKXK~QAv zO^ks&?R)2iBX4x_D-*Zf9cyZ(Lih-aHrt27s*6W1gWxZtr(ruj=Y5k@&;%sGte(;MUMVQMSzf;-99g!1W(RhDM;$Y~}9 z=MvKIH3=e1x}a{fF$t@|>buo)NhM+3_KBH4(SF(-qKY>L3po5~K9;gQ(ng4y0HxsV>^LQanRfR{cjHAI~e@ptnhpM^7#x0FNL zy>d#DzG06igyO9Bso67|*%H60XEBK@>SC=Q#W72AUq1@cj&b~%LH!aYLK*j7T}cKsY(Nv<%( ziH`<(x4Waz{w;yPIS&~bm$NXuZMO+Mp#m*x1xjP(8jkFq!T_~|?5M2p_&)?5F(FR` zRHKc?s7ii3=vR%$X)W*+p?imof&=GPqy$z{`gPPfN};KoDw!%J%bYAAg}jgyZ?>-* z)n?%2+RvMZvL13s_@j6V(wuf5C1U1>78Eq46*TfBwIi(s$xy5|su4&o3ql;07$c|m|p z?wR07-(#fr%?*SmzzTC|X5eJ4bBhu2xkWHNAzL^j!0T0*Fni;1`ZeV}Y*o7IGpUh~ zb>&=zmx95MXkBv5H*-kbLS(sH>>P!xB#&6ayL>TotU5=(`;USx=eWA^&GRbkwi*4V zt3uyof_2Ys%-p3bc{IMzaa#m9)g&Eg^nDSS50=+WIwkD#=Pu{F;wGFKw2 z&^A0`?h2+$`~Gz$(K$yg zb+%gRBRg8&QG^qf7-Pu-d7uaP12%pqinbCP|EmZ1O|A&|o`}EM4*rzI>867BM?a9j z*iLI{T9P7z)bS30(x6lRM{9LwjVI`Rl2aZFbp@H1I(vKJ0k8+!?60k=4(?A-fMZB# z$!uqGzwTN|*}VRq?U9eI-~KU}`{J>D#XhGq?>dep6-CFI@`6>J)n3ddtmHUCQC|*)f;TUBv0@5^-U}z%N_UdKvBm9f64vM4N()h`C;>^~t zlhD1}90~O-D=ih0I|DJ#f{Be}sfX<;7^iqHi@{0j(Ds z#KZhsJ*LD!Xw#tnvV%`*zq6FB*ck9EZ;qjGj0qEQwZgueF*Uh6irNT*Do0uAbEvdh zo{^Cc9=7^^rV?+^J}kqU$B}I)Y;>(&rp8mY3A2^2cU2`B9JJ}trZxCmHs-Es?oAC} zGtlTs6maqHW>-CwrzZX1Ti+X){ae550#M7Z;|7R9|74H@?fZau=0%Yx_}|^hci)yY z?#=}4Xexd8pDNu`en7qx-p{b>{O6H3cVsOC9+%O-<=lX~?fHsQmWemS>Ey>rg`RLg zfqL?fWQgv}pZACQ^Z6Va7C4_sDE+iOms-b75_eso5Rv-4eq zH>vr8C)jcE1ilhq6WRuIHN$$*@})>qeTeCsigZX88^u9#<>c39-~LjK{zn$o1r*d~2FHK)7u-Yezr$)B z3_M}^FFeI>@!6BXGhBDT>A&8>7mQe8DOm=D%G1#WGrhyMoNWj#DF{f9RbZCUuG`hh*YE)AMa|i)G!{)JCa^K;ETv&^KTKS0_ZsC zivEW5N0k9S1QU*I;P)4m?VT2ablFRlQBz!*e}V^pU_?pD#{Q@0I<)S~o?7^|9wY6O z0n4^>LEK+0++t>)-WWz1KYvaEejOID(HzDlAcAe9Z_sNCpo!52n?-3G0en?eI-CJ~ zpr)v zh}F*rz_IqLVWMgP2Dd;s5El-xVW9@hade#4^IX~;`N1zoqGJELoA`*!CvnNT>2bAH z$HS640n~+^29F~C60wR9Q1N>m0necVi72W}rKf;JvYb{3W9A9qo8$sH8CTa=W6kqn zwV2eQNciS@x8#);&0-E2~ znQs?y`5-PC!d-^@=c#IyBwg~tN7Hcyz~1&tK6pUAGqDMpg%B62 z;4`dKSgHUIC?Vy!<5O<~XDYRvnf;`z8VNAO#{e_F9jIBu(&ZKKv3Bm9?E#Ct34l{B z3_Q-3xay29z%REL&6a}$$7iCHwM_fs*(w3=vC&bg42!8!IDiHB9#7{IG-^g-_Qk;0 zgXP-vvqR5FkZ=IvG!BQv+Q?vAEdmBr&EiDqlJFLZP3sdLN7-syLy`mlIck^j z8INlKxf-|j1{fPVz~4$n{dSe}!?io&c$xeM_O{CBs0EMVK!YSOsxCmy^v7})ukHRs-e35( z5t@u^$5C#3Jpik-D+lzs*lex38UVB13#|))I~BxJqq)uk@axPyLZFn}w)5o;xrjlK z`|Y)Z$Afgh2m3}uboHtkesRi69_Rk5hax$s_p|e=ZSC*Hf>ixJ-ivQ8=f=(X8rCD= z3^8-y#{DoC534X4N-M`ElgQvc9u!R7!6f0)*i0RsO^g~W2MnHDWL(bIVy?@1+%7Vr z-pZ5rAw9m@0%X?AYI;2PxXqC)zj1VrWduxjcZNQ)9Vt70?{|3bQOSQ+)4w%s3&fLg z0q(cpNOSUbNe8iMA(H4>hE#H%)^5MdG~fVw?K)xEx;F#9+AmV{AX-^$`pTTYhrsE6 z0r0Syq@aJIohj7SwK8^ys?cKj5_ZQ(h}SXruo{dkI4>&}FLPD~HL zq~BbA=UE68U@w??nW^;r2ugnv!ePX1J(v=`Q)zv1T9&rh$oNY@06NkI+|sC~vdjx~ zt}jlGw8@Ws1jK8Og-OMda_HWerRBVM$}cz4zn^CKDoeQjkv2~m6gHolCMVt;SmS_r z)SR_d?L`C&4_B2N8A%~2ur+&UGS~>+lw}&Aqtn4rJ@(1Yc3tx4ve)|UEmBO4*bIJ<`3}*@+tG8I$Viu z{Q3{&(4p`+5%rM2XdcCaq-VVgjASci+dM@ln*40)k+ocu+HNONSYC)lEWNcrzbW7W z!4p^IMJSv@=~&WW?w^|S(DQrR=XG|ayA8uF5;l2kD!Mz_r2;lBrZvHp#^)hnd%zTO z8hGE9=o>lN6o3|Q-$fQP3HTKBu0>6n8iX(paE$=7jS=7rdD@a;_7t0J^t+Nq(j(rP zwYhy%(WtAf@{tcm1r(o+MKqNoJvFplM+?ZxYytlN%$?y=d>h*nA2vpZzV;bJ{W4UJQic}!&R=@_ zuqzZ@$do5fd>7Z1hZz~Xz8>F0$XhnWmG;ps0-D=Z*ur0w9ZftTOxpF33UMU%k%~ZT^mS2p4Yee`nvUr%bntni3?WzQ5L=lr=;-2 z>*q+;Mt5y78p7j}Rp<21YsVe1-PZj)JUT7ZeJrP^L7X*{tt*pMN|Zz(W+!f_99zHC z-A4tQDJR29IdgIowN!(!k~O=;Nd;%nNIZBZE3m!ZnuL#h1UTW@d6cLoRsmkL7k{xY z_;!()E_(+o%u8IgIt~-xlvz?-m+S4KEQ8dgX3~D|W*?{XHGgLIFR7>b59%lsFj0|g z-ODrJs*ED#QuyU6MoNOTe2N+w5@j&*pNPbtLbgT$wal?R`_s(+j6|(qhRCmjs8ql< zm|q5C?0?Wd*qSMh2YO2N7H?xndfk5ZO3Stsq=UeimVtjZx%mjmhXNe>V7EqVZL`{@yn9Yq(?Ip@;>NaH;<7iLMIteRfLtZvN+U|M@92 z6xdl~AC}9${hzJ%uh0be=XWIWtUCrA8HuU76Y}IV9bown2Vx_tJh%U;i$s(CzlSX;0Cq~Xueay8O;TxU8cdjPUyutl zs#Vuo1c3fjPm$sw)I=1Z1A%XkYT~q_U5QVtHV_2)djubIziC^tQ&caD~-_@qfo$np7!P&&}#&fe=trE#zvReSz&z-EqRIA-gujp@7Nd zE_4l-A=Unh-_^k%^xt(`zoHn@As}2b7D*#{ck*vW)ao;!;kOnV{NtY%RI+b?DEDdC zNI(BSkA&6&Hz53UR?hC9Hy|Jbh)G^KO|zT)^GNuehtOdXCs5V%XW#rMEaMBib3u9| z!-@QN>!hpXx}z_4X=lr4oX*hfVV6D9I&pb98d5J5Tv<7}$D5=#Pxys|goXH@-WL{r za(`2-XgK3^K6pL^s5W=EvzSE}r$ff0tG@D;v0~#aD`Q@ep6s%ocM(K*^SBC;(g<<4 zPQOR|3*ayG_ZKN8s%$Sx_e}qXhDM6vN+FKk?{BP{W`r@_`SC8DYZM>@BVeld#H$X_XF@fUG^qz|8>gy z*eDVRPno?AE6PUxeaip+qQ5Tn|K8ENVf_Eu(0zl}tyMNsBBC=luI@E4J)^Fmk!gbP zHm@jpV1MPAd5Y?jUr*AP2}Jt@4$6@Vdgir~5CuxX52mtJxl=zLTnQo&qkM8*x&Nr_ zZU$(SLGczc3D~KiQ7LXzsQ$Fn{9O4Oh$dUlUL-wcLllvzdYOJ~=#MwKycA;KPgtNZ zn3Da3?bJ`1444Ewb>1*ob}+>`t9O3dy~Uw2dPk|CNcxFyR_E1yWyJUOHo`s~zfN+C za%KQ~@#-OB5D=`iRdoRUdC})bP#4gAy_?@EV6PR7$68@d<6q}h z^S`8cj(*fu!aqt z$nGQLn7vMqDSohchz@6n)8ces;gq+@|6q2=IleT=9?jO`zi{0ztjZl3IiFt#JLY_S z!DFjY|9n!uJNhl|jw!@}Bs3~-LUKGm?x#|p#87mI>HRH!-YR2k{ivl)R~57JJqPIo zWTd2iUE)8JYHQ>d&CYKhvWvZgHVPSC`mxU)8yRBS)apl7w1A$e7^f09h8k#1o;|sE zf=YKJps$`fs(;M-@N7mp0DKXBT_yr2L5X1c87MLI3Q4N&`GRi3X^TU$Sbgp3fS2z| zyb7cs|J&V^vy1N87`gqdulD@*{kQCoZt=3+Cb!0|-82B6+ zAsG^hOlmJ5C{E;P3JVC1h%E^?^+jonZKk5~^i0>dRc@-cq5X7yWz+~pT=q8f(FGxX zz4r#9j@q4)zZSgg8VsVV{4?`^qDQ2ez^)1xf(l@3*4uIJ=NIMR;K2>JFLydz!FxM) zL_4i-+S>wS48|G=4cBrphru0LOxs&L^=8xD6P(sfyi5-BOitHeqeqM@M=}c$I21Aq z$}b-fEuF0=SyNEot#_W65{vcU@cZc~978^{Sy8SFUF-YfE9OPwWM9}R&K3)y=3zwM zkVz`_z!P1_AT=fcq(~SIxA!$r3>O(PmWHr7eX=#IZLA67Rg<@ccGKb9Ud+TA+Ha1k z`MMsZH-0{f6A8)H2^)w^X4S8^m@Jky<_r*zMrJ}a613lA*LjFl2;=&+{|(s6%LChO zTF{mP3&>)+RuJfVrrsR!>n1EnX6xAYP|DY!N5?C8EY}hWwNek7JSquc>bW^r{*c6# zzDp6e);Hy6#KF#aO2hexbbay8#0A`U83L3zo!X~nfB zTQVuts;w(_o9NZP2*GY%mEjk5C&*q%h^P>qrQC$;=iO?I?_*(e{ zq%f$b3Rv>>`)4-t-^&sYTt3>-w&776FPwSBY)l&|#esh~O)V{bbAE)k8n3J0>kg^Z zj#kL|7z^E7{+VasSMz~upHIZ;BFB$R6i$kX4uo+n?Gxds_@hJGO6zW!$8 za&oNUVD)%IW~uu6%Skrcz$Ufb{m7}`78L_ohY z30Cg7&;C;_3c1e_^_i+0jRHdvJF6j#3y_$$6l3&+U(>#o-QBJ};wUK>7`L9KdMp1X zMh#2R{yRlJM?z6h35GYu8!3jw_cm(trkABxHy!U@cj{~-P|Ihqn6qt78YjMBcNRcf z?I8wJAwY&zEGL?S2DrK?V1dnRYgxT3~OR!z9e+BQ0 zg-M-HF?ZJy!TZZV8wLvAx39VmoF&K)!FmR*LX(q_Js{ieAr?+9{fY?m$&+MhKzMxR}1#Y?YHd`9{b|J&FCGpCiXqjb-HuF0ERrghUJ#6+UxD zOoL*ASnf^SV`e(-YP0z)>G8}bbCb1BNhG`v)0l`=rwC5A{jLh%ZhKB8Wi?y%vhN40Y>9rzXBalS zmVic~aG-J*y*`EHZ3qV;V>7`Psc+lT>kcUl`tNc^8>^jo$-?lLTvuM7H%14(_W|=e zSqz<4v?()g=ZvLRsByAW?+&=qVh;Z&dXHkhqo@`u4oB8N0<+hnRt%|oZj6o@q_|=P zL|HWBC4HZXTCVmrJzjs%!A72tjAN?C@8KtHTJ8O|blu1PIA(lHNa65l*J_+^h)8wj ziSG(wAmXnX@$q{^ja#aqHn_T;kK)>$iJX0j87d+M;-wINk6H^A)YM$nuyOi+8D2EV z6Z8W5==u9u6ny%+K`|pKA~Nf`bFcH4w=-2a;k+Jn_{c}iO3K-du5FZ!Pjc6S-g`A+%*uu;!CDA%<}D>LkJjPI zdmtl(uioTABy2lYKY6MFL8uZh46rxNQxtxNe{!A0bW>@KIPqn_^wWXF(c<3d5{o>s z75RpG@C((ojS`%0NU8tM!DW%)DlL%?sjdiWj@Z(b$mln^{T#5GKYQ0EmJth$GENqa ze&5oj2K3NX=1&xIDsgZ3O-s`D_Q9G2qD}p-J=iK+`L>OcUMj_)KY?E&lG4H}tVpeH zD8ZLxRcsv5mxcJe%Gx-N!73Z$Dg%NaqVusi=|ir1TM;j2_`t(s2HwUHlYAN##YTaa zF}peULa>J>1Rr~nSkVYbhws}Ziz>`sjZoZ@ zCUVvrc?Y{+Hahw zx%%l16B_(R;?9PPt0de%akF^s@FHQ+$m@oaLd6whcyZg5C25MD*FBZ7uRaQQfS0V} z9mCe-Le>w|Qp zxcNuZjJJ-$CI}Y^OAv!fX%?5oY~utw4`o?eBDL(E;_-d7z`!wcR*9S1>e1Pwa)XgL z-&ewiqB#gWg;kHRiARgMJTE)H$*mw7ySAFV=TF$mr}0EAcc7E& zLtZBT8@}e%=630szV{gw9|#uD(Rw7RDweD3PvMRR=K)|d%j)rj2k2iDIZuU4YQ5DT z=0D!2%3b-|2TKcBTqu5V!rHWR64s&45s*%_Gw=MiI~FMdFJ!F9uv@3LT$@%iOouk0 z5sFEiN4v1`ekuP$qYie5gb5CLSm+O!H#*IG``u~l`4*Oks5opY&mO(?57w3SV3f0C`5&xMX28a} z<71pwmasb5h!+_G@8-j+&@VD=7?3q28U|cgc!5}PcX4>xnlET}4tG7&vFf#3M%hD0 zRn$TXhGeNsEP55T#=2JLP~G!!gmXJ};ks$PVmWo>*B&1d-o~2R^j2guJdW_@OMT3| zSmY$3uR*HH%nEmA$mWAEo_%o%i2AruPiEApnPnbwzf|pkOA{I5g9j+DmFhvkNA|t+ z5eBOpyi$$wy@RCv52Ia!Oq;(FH+w^n>$5I)*I&q-Foyh@!TCrl^z^IJ<0u>+Rr0?h zan26Mz`uy_S4FyyFtCDc_Uy~#^Wyp9a2ETfOIyRh_?DQlXX6sjAu5|%(Yk&}2;^3W zIq~Q;%96Qj-?*DD?eO(R_6D2z^THf<$5BCG$$={F}` zTI9g@T8?wWuGCXSmPCP8F6-OuqE9#lTTi>g$s)S8=GUZGB)E?De3%4jKO9`ZA=-wW zF(hLB393X;m+7Umb{wMhFd&%x;(@)N6YEJQI9S}#^Qrw_*aO2_>1f4=-LI{Dq854m zySyzk&T&`~rv&xSQK{(7%|#~2||PgS+Yt)0rdqG@6b`%C@`d}pq` zet$L4tSI^N&!+jYJc0ub;R6Jea5gLQq-mTVtU;FELaTqV0G?nzZZIDWS&^3O2?7?` z@1hKK){0O_<;@IxEaHT4A*m8f}U?w9R2(>kE;SkYb{wIsvX*FELHEx!?(xr z*M;yrW={&T;i#yRt8!}!A7W_ZyjNw5V~^5HgxjzWkBx) zsjAokBYB7#9rADMg46G-8#`=I0^;RU0uy;g=bGUY4j+zf-#uu%Uq634oFi{6H8>DRz^e~W__-c?(t+j`z^c!JgUH-= z4{f<$I|7R0rFYE*r_ZaJ(knikCglE(zaxhEew|Kt9bxy)J_*R4q6s^{5WBnihyJI5 zTcbpcs1?RPGFcTNf|3P>^#EAi*73Dbc2Xg48U^9TYPWLTBAFN-NbD3 zIAvoWQVDl^%)F|!ZYT=!vDmu>$M~6v)KH36f2#+c$T*aRJE8K+EzYOwyjhuct4|96p9;D?vsD}B<%Fl5C_KrL7-8=jjuTpo4;JG?kb-htGSJ^h}+uB zj&5iY$9xpKS<{O*KT1PYLB%Nv=AGvswSA)6k-r1kD}Rddh+(8y_JJDri4Zpk)n6kO z$*@=o{{lChv^5so+}uncr3zZ)zx_04W_#T(jUz`i{=#y>d8oHuXLD+gg>)jK5?N=Q zy=#o*Ie7+U4i{}bNk-s!2(oH9&S13mAe_CPC|X_e$N5|;)bGqMyyIlQtUV-GHXF+~ zAScLY8nV>no=E5Hn7Qga7#;~HedDQ`bQ1u7h9f|<;Km~HtXRTlt-V>8nk=jxou8%@ zTCObyXe&{t?{<}H2FnlgK1Az)qnlyFXp(3UQtY42Gu8~mZ$G|IM%`flP#~6A;Kb

F54j_w{h~q+v98ue1v@r%G)zEY&x$9%@b0i~8F&7bc*Xc38I}O>W3B zx)dYmi$FZ1nuo?|22Ll2N;$(%FcwTMQYqt@R1|G2AIByNBMu6&Z)eskSsgm*)W)C0 zOb}b4(pBAPqA-ZxNcdxq5f2vdmcQRC5m_k{L)BuLyGCp}GoJ{iMhumqsiKcA&|n*- zm~mxtWe0n2kTflGcQFkkmceGphx7xtT7R}a_O+~{qR%vV5h|35b9}p_RABsSHU@p# zuyAv!x4-RpWx@N`oG=Fk z(o_`)T8Qtw;;$ftJ#{^pqai)WmxwLL(67#oP*tgm7>8-j=YOLql+gg z%$9ZYRHUbkxtJcYn>Fk6kC5BFbQ?L4qPDPcGuI%AGnQ?T=(U+`)c=&#il$WGett>$ z%fSSlpk64}M{GYBh(P^!SQx*eRrA&mLkZ6l0!1LJd&(~kol_x>-9lvP?Zye@)f0NW$d7N%QWB?2avF2%%`8Nsqe{j2B!ayxo zdmO)mAw-Wb#ARyQ_;)Zw{}G1#??M0nQ={ltm0!DM(_%5M-;Q`o{n@-*h*60MV<;5V zdyC6-WpLf0P8Up;evGqD@JBN^ja&weHBoTV6|kg&RCP{P7o3Rq{Vt zU7IC@OBw->ojN+X%+pVPFx~jK96xtfon+uV8V0e(ds7>XtQe|>uX{r7UUcF7>OgJJ zz@>1P>)&lzmy<{#S1iRlgs-7i0|OcQ=E>sQ$h7({N|l&D<01@V~nCpZ!}5qzVUg(*({zub6)U z%SZ6TMYudRA$5@OHIEVv-AfK?u4qcgYQAYM#RVV!k`_3JRyc+XO+1=PNd80E{I#{k z48y;>))4`O7Z9&*Vsm;WP^uMqtC#pnI3!n+I40_X`2I9hPf|a;ZBT=#VL4K>{*~R4 zX#j~hE+L8`9Q~?Du~xvd#~s7pzxcRFmRa>-gu<#;&|+AWLJX0@gL7v{(QSypqG{f% z8WkVrnQ?DI7|l4{Ry0YK2f_y+1yXN12|lI~%B3FTUl( zrA_ez&E!0{33RU!92VbSl?0K>S2WqY;M9iByaz4fdDzm_tm!cwsqk3+Pga*XyV)uA$G}W1kFvJFpHU4N@WpHgokds(arSP3I zpJ@F&i9}!mk)~LKM8!d)0>tgbJAycmjSclB6i9cyFIf#4my4!+6aZ0wEQ&cHY+h6} zM$cnj5sEH6xXpIIcyl+z2gMww14O*7A>5Hc>? zIsPC09tQB*WYygs*TKY&4v#=n=2!-ej?^-^8#BzT3&HmJ%T{PkihkuMTnQS_R zXk=zo?cy6p(Puiy_%v#jh6z&|tq!92$ZeHb`x<2uz7Vcjn@flO%XH2MM6OqP#_0I? zG=eSIgrOMZF+i4qkXc`e1{%lm?7G~?P&)x8>&dbus>rD_Ea`%tJyHAuYD=rC7KiQ1 zGr6yMV$psl-*Oz+%X%3Nm+t*Xb8Z^tKR7)(-5ELdEZYe$9l2{!L8S!hfOe+JBtb-W zDq^%L)O#?oynJo+qn>4N2DN=0*Y1-R%IGERUAUjI-dd;xsyUL7cPo|%%7{;_uUuX^ zpNwN;-=3SguCL(4y!_g%L8d-sexz#o`CaJGv6T*vuiWLjSKW^dXA-mfXtsqok{$m! zcWAS6S7?&2+NL6ffPNX4vm8b-)ui<_)gAAB=9{@1!MD$-i>vTi!w}!uI|B9s@e>cF zjKK;YWJpn^b+^H6mkZUM_ofIIP@i1vEzrJyZ$_%s@LJ&_bE62Fh7OQ3Cs3gnCM>vL z^eV_svbu6Q9VB?)tC3R3lOz@@QT8r*565DuGkxX2c<~)E4Y1Wg?v11OA1~7p1=ucG zIr5c#`_lrA5BUS>wLNec!U$LnR;8{4`IE@Bt@BdmlOOGF+}sT}3agz%uqS&}O10y8 zyJQo9_;NBsAi`#C1gNGP72?R&Ok)0-1{6yyl%a1dh2`r zF~E?Oh}XDW{c)G3Sfu_{ZfG_cFecP&@et;4GBpSw)O;wZ(K?r`S7^;Dy)jLHw|}@s z*6Tl8vp?tD`!%OKSF?UpzD7!1p)=LJ+VzyhJ~Ea>oCsy2_|;6M5&c&CmoF2|bjjNH zzGC2nklE0kh>|1a0Z8lh7z{S>=k3vmiFEduwM*Evjs5yRX3iKeWwy|MhrMa>?diPC z+cFbQAPOpby@xzzB5dng z7A{mfS4QLogx;ipjFf zJloYTgjcZ;J2QySKuH_|C|e8=%5kh4KA5kU^}59_ZJEn^{kiERyQW#OfJhmm?oo8` zI9S}sfMn*SO0|K#Hb?|M0VboEp}6mL{?`5__9VT^V^)LMy@%`iFz<(NKATY#@|A}4 zX7?UzoNvh`OIyjT$+B5NIRwK~XwrF&-3zd()tiSqc$bx-v4PsM z=0PRj`{IjY==cQ`GK+Y%IBFf?uz^@nW2Is5df`X*i@OkdJBc}emiLyX#G{MNu(=9b z+Fehet=Mgdee3)k4(46QY9@-Nb{bKy^haI?r^@TPK=W+{W!n2Sll=15kV>cBz04Y1Ut zop2NUvfUvX(ZA&{BDN-S&U~S4Qt!5r;xS@Ue*aK*?~xLL&rR4N8Wul`qLgq?Abj6L zaK7ep<$j_67jx^bnd$YNf14D^ zP>SwQ5@>`)!7kxnJ?Y)bY%!_%Hnq|bJ zgl`=Ys-QTbQwn_TaDaB-OH_I)!VV33$c;?%OFuMTuJo~LNzSW{spCrB75P)Qd^t$7 z*>$sLS}Sz!2X887=RP-&YUlb>_iM zVdLe7dP^soPrQ=&fNY)o-8<|-(!lvv?*auMDfa3WW*9!Z(CAL_a8-CFQw7^(@rsY-zu zEhb?N&twhqluOLJh=_d~rhLGuBy`0`rPs7TzIuUgHynIwN7GRH6FNiDC810Dl{g9^ zr8I{#7;;gVl`$_2GAL`#TI=B99y83W+uZFa*MmObDNL zzxPfhefee0i`L{owppxns`E!?9b5b2uL>yrW7h)hr?|(o*B1v_Yd&I>!M9g-+w6xQ zHfk zPN%&I@i06FtGy|6{^Y*6-ZTn-!1ZQk@1evpAWAPi^19Y?j@o{cCLT*eNIkKxIO&hD zURyBKs?flZp0~atvsaSy!C4KUWEiSrD}IfL09AHdm+4%At;?;ehCWT}A>a+y@itra zt3X7DFf%69JXh4kJ|`$V({(gjCAY_W1K>&q#dNyidZcyEZ4;2T+);Lhk@Me#SKyi-hex-k97b;)%NSkA=8b!IFmKi0cV#LHy@FnozrSD8g5 zRFoB~JqO&dxcVXo^X$0aiK+HJRs>KfpYb}2s+w*BGLvN-KZ5(I@xmOT7(fP^Os(026X-~^!C;_7<(svPoUruZTzAU4lEO<^gyp!RKu zO0$JS1xUW5Vj`iZTdWBlTTUsNa(lg4*J=kQF*qbmQcV{LaBhi)*MnzFK|i{{d^!rR zE@k@IG;RVdoe+$>cHJf+42gbcy-VknDfs~x`zaa;mBm2w0xLkHLpr^FIyr-NT>s&^Ckbt^hY9L2Y7uE2S3;y zzN~KR;7Ar4XqyMN{31YxL_ZgTg318Gy}j*sA%2s^Wvq`X3J%VYBY6p~Rr7`doBdj4 zCW~KWi&iz;wK^hGCA~KPXaqeAu9x+3Q2vWH z@=f{bbhAloy>cB41~dlLih~n(#gKgqFB>vqTt{#u&iik}p$d){)Ricc?4>nzQ>0dn zW6KS2__NpH$T$xBItGsDFTO)eRU=~Cu-ZnvUn#Vlr2pGiiSV&IU4Fi6mjH}D8xNz_ z`%}j_o*E%yp>XwI>~Vi%i}1;G|BfF6a9+s+%^Ag8 z&ec`n2aOtd-^#M`+|SZ#u@a*(!r?UG`kR{==NYd1Y~Cd1!L<=>u;(YeOgp~05{K1J zGYmwi!~Qs$eEu5AK6_~#Hf`G0%diGJ5g6>+p_MQk*Jspjw#oeJ|lhFa>tVb8wOmd%#Ql>HoHBB@$sY@Q5*HM??F8IrO09cVK0Kr zS~!{AjlSB<3g)%Z=}lyfM3Yi3aEBkNl?Oad94Llhy5b?}DKcDESZc*C(jOw!guN%mzAx}5Lah1L(LSBvp4E8NVU04Wpk zEY^+*HTwRGV9XMQ$)zup%wINNepDD`@iTH8ed)~S&>N?k*IXH%u=^p0Oi>6J

U8<0%j8P@)Ht49nN0MdfQ#&J;z2WYb)h|D#H7-+0+OcH8q`^= z<`3#L0TqhjI|M8YvOxy@_DRdeT!pDfyw99f=0{elu~gbkeP|z_@{4>$aZdq6itsoH z{Q8qi?;J==s~b2}gx%357G_gGOC^7cWfiYN2X=K)GE+F$FF*rvFzyDQ{Hyps|sw1^}yjo;7_8<1u- z6iO!PCy#$ar-J3f%m$)1=&FuQOI5MRP^G%X+Yn%Am?q^bFIK-UAiArm+@Mm(&=V2kgO)><1(q zE5{+ap(+;WU`22F+I#{#0m*|X3=*ytRPuYl>!j1K2b+L0Y0RNONi{lGHd9%>Wm+}E z^mX_8_g!AaHUGfA)G}7q!(&)}Zf^osC9g{wyKG1Zkq7V&!y=fAPB0j7=?XuDd5P$9 zCTgfS|KNxu+g^;wsYxS!owp2D^w3wqkIiV65L|XR(PetUXInlk1UsvWbuWQL7KiAX z>pKS_W|wri;^``Yec+BTWiWLDi~v(VuG&4jIDxsm4>Ig*H1KZwbOCz zH2tN3a}+c=TINIw6$?P8o79ul^P-Y>q81j<2peAY$ft7`kd^K1kkgB!K0hL!W9Nsn zIrpEhPb*t`VA^!9l8_2r6~-%iuR0ZgI9#X{&B(*uP&*Z`k6&JSFioRVq23jdt{cJn zb;201>2napmK^w~^8G#M3B*;KaCoTOm3hGWAU?T>qHkD)CAn`FDe3?ujjU&FXBf7E z2u=|%7cUxX?_7WhO~4ZqM4?@ePK|cecC9Q6DNM~~w*^9E)vcM@a!m2OVH?TL@-009 zXxoC~3WP#0PQg>+@kt z(&L*>)&=2EXINwP5Zu#|=Z1j(w)(pHfW`ME0H3J=4Zkgu_uNH#!}^Sff!$jrK0uqi z)$@*)6F5I-6gxjxq>Z0XS|>lbYBMDkbyr!X!rC#P9Ipm`S*|mOAs6`X7pznl~iQqf9oz0P)vb z@+f5$8uy&@Q!l;x=X0NQOuxSNk2a3nH&-M06|ui$_GQChk=<1FNV+G zSEO{-$0t~d1T_rmXht*)$ph;sz0KMGXGHIhzj?gMvJ8anj{O$9w0Pnt`tCRd)K`cK2AouctTOaYa&+`U&_YbA~KT6@Tbvyvz z{^-HI6Z5yvGY#;<^3TgOzb%Ld46*foGJIZJ8JTaC0uS_m;=9WTzK{U1d?_>1sun+X zJb;W2rPa4ph|+n(O*=o9M+hl|OHICHqC};UG=U^@Wy&-OD*Ag07RpaMeo?k}*H7%% z1O)_&JN|0@mp)+lTbG2HY_{21&zMHMZQ8P84NwR?dQ?dt?+pqYe0S!p2?F$!hsG-& zdq!Vj7+8#Z=Z+boAI0x`Dc*)-x^nfR7#>Hp9c-3KLE}f*?NT1I7MyY>f?fxmQMj&0nZ`3-CBr2ZFc?XrC5;`sM=^!OUi)1E{| zeJT(jG5E&){oS)DA01R5)Wp}+j4|7kOpYO%O}G^10r{B3=9j|6GjRX8B{~RO8e`o} zj=f9jdPm8rgTbfhx|h?M=popD!B)FJVJp{LY=MM-NJ4zGh{`Q*ctpKx52wjv$!O^g zU+^eNB4G8c^-#)Rwt9Adc4@-c(uWBML%mBRwB*VkD2?{P0QXoN4hnuwNUMT*EyupH zq5(v_!N`vKtxrjuO9$ke%|pQspi}>Vy7&B9O1q0zFZ4rkE+BGRoOKqpX?XU!3zER6 z(0>qm6avxXeC4S}lFvU!7^W1;a-e zrkFNK6C$* zx%3LltiKNlfipYb;bbt_)T}i+FoBt6v>jz~E!z@3(aZF$H2um;LmLS$U53IF4GD`} zKM=Y78RZ5!4v*7G)P0s!&^rp)XeK7Aw@?Fl7)d9vD0m4gOLs39+|Qyb3?AZu)W(!G zL@a8?jTB~U>Z<#U!^(sH#4;cjkE3+z)b81K2L_;r4?`b8cKc4HJ%GhKvBi|7LsMjU zI*`G*pu7g)Sx66pqvjt7-S<)eltj&Re`z07tkKG>Y_$O_Aq_`$sy4d9d*H!T;!9QQ zwOK3|S9&#M2c+DdAXYBcaJ?24AYxZuSH@o4dfF-XX4u-lPE6m4i1FC)` zRWnt6=$c8d+9B#M2)AbO=Z!L#ANg(dlhI0BH}>2fHQLU}mW(EX-uNoI+oKa}($jJWn%ei_&e!Hz79d13!1qDI)>*%+*_pi(MpdnNsa);a`<8d6 z#xnRRrMjvKx7Bkj%qYUTCY>XmkI6R=veUPSW3E-l+d+_Ny2`mVASgfH zVOv0Y#yg=5v#xC&@En1~PB!|U;dwG1doH~gk>0qG>8&jO_GxdP`GmyD_odVIKuqaR zL!DiB5LMw7fIjsZP zdlI_rwkz$>1rMfL-L|T3K+R2`QOITYL}C|{KBnbP6e>H!0Vi1wClQyIew%(Djs~*1 ztDSY4pxuzU^J_TBair-B!{MH6!ehQxan1jV;penJ=gkLj4hyK#qFLU!dbjhG@j|6R zj){uEI$w7rtOQZ~Qc}Q2&Tiec3Nji(07eKg1S=s+4<5V6p4>3YOBGzF4yr$_?oQif zOeKNvk#jZ@`aF|aWdORoJcrXZ`NQsvObh;XEKg$xK$=%ijCVIVYz5Z^WJPM>7Y$tfBHzr@at;4vF6b% z<*@Mf=J@uhBUQOpgR|$Dt;gke1Jb;djpmW2_v|%5isF^ofDm5dn~Biau+iM(wG*4> zol5-;j;qyv0;%Mw#cwo^s$nPV*1eCgoLUXu`o#?BWKtl>#F7MA-fb&Q$;GcNNCdO8 zz|hekgE{~tebGw3OXLtMO3aLxcqS=Y0I3|td&ecWNqZ?u4Q>5Rf@xzTd~&eKX*WzB zd+C>as?C!KmE4N#+Ff1|Hbl-Z&zHOisfZzN+m+KR$Z=o-I1c$~46hFU)#)$=M;5!` z+c+vUsTAI&%ZSz9m|fbzIruHYl56LZTe=;ryqgcnFn-)frwq!vpR6(lqx0B2Z!g( z5U^0s<6h*Rw+k`p`32<(X=p69P73X2a>e&rIJZ^CxwUR`GuYrG|hkM z;=9qE(BA-(=9Cx;qYM^a*z>b`qmxTe70Bl^)dLPcOtzA`6ZH1RhRf``8F}MPxilWZ zTZ0-@1iRdD@ZunH*$lv|%)Q69dL-1$&qoi7X-^=C)T*usV+q!S_Q&QEgbJrSGl8#_ zB77qNdQI|X&8=Ya1&;UjQS{o$RTkQ4ot$TQ^MqQdc0C!v88($oy$~?Y2Ots9E1MTV z3qC|PBpKv*;nI2!Yg3hddPCH#2WzwP6mjKh8ey-% zlf1N|s7&v>{xh_xowI|Ylf#tolYQsbMY#yrUyGf#Ot{Y1@*(N@9s3I8s7(_8N2| zH7{II&9^q`U-?rmryL5DOR^nyjuKoSx-VOqoVp2&AC^DUrDLnT$`M75{=~6+`euz> zdM}vSg5|l&^QUg_zf^HBK6O<7lD4;rvV*Kb5cDC#V?Y`{I@nw}dMky+ZapU)ux*Q8 zdPpJxT%G7KF?t44&cU(o##9X!z}|&H?Px>7l)v;P6=w~1_Js<1_9|fvd{M%lrx+i^ zp*Yf@nU}-yt^ItDLh$-Eo+^G7fn9wjuQ$Hg=sLxk@#y-@hr^ft?l3UYnVu3R)qP9R zyz(XNi)M4`uL>*>(1mge#*F(ZOH!8PSQ;RIfL$Z4`t-U&$R${mgOO61l^^*iM-~vu zV6Wk@@1KHwQX3=Bbt(~aey4p{8=F5khut4kY4r9*MtFvsYQ`iMdd60W_t#oySUlJ` zrtXs>MA5O$Kf$gt%74MGl$!PZKt`2N2{@zJO%3&+OLhnX2GAeqhKU}zuGdXN{rODF zUc@VV3!VUvFmVLT9(z%*O(|>=h5WM^CNp%=7G`{Yy))ZA>)4H0FReVqf}Sm#S{iGy zxr^qF!6|^MtRZJ}{oIHz)Bd2hi9>6_u3IwJl0it@VedK+s9N?=UvQ&6``J$x2`H{PBp(+@gp^(4wH6dUj?wOJ1i#A8l~ z`tlaj0oT7;XOW8?s+7=dG*`YhY!|0!wUuKmPqIkB2~+gyn-hSfX-OrYMlfW2RH;>W z`0z#DYkI}NPOXI7WLV?XyYYCK?XJNW<|TH5DmmhT_&XKlkzY0Ryy*3IOmPN!AE6AiGS_ij1Rf`$#iUh~C^H=CDqGt%MA@Pz4>Kf| zie$2D;cy1lzftVd-YA~t-YVoYITZ}b6-^R@W4(8oKH!O-)yPFnAND_OS8aS>B2R9h zBJ9+1y#&|TPP?zG_3%B0T*|;Ibq(?Logq?<*qg8K<`_&GofQV_obs8jx?Varr)g9k z)M(`B<2YRJiJn-Q_2Wuf$l!M85or&%PhV^brbLnd5MjOTLtVS}v{SG?)ey+HCW7o` z4+?7JIQF!`m>OK5_z7UW#Qy}aRI1`>LXNlI*3=K-3>We3wz$LeTWzV6><1^YB*(W% z6=hnET5FE%Q`XhzUT;>+{o|ChqYds1oavdran+f(;n12pxz`hOX7CSlElMIbE zom(F(UY+AD!abnAU}7m0L(}q0LQ7xv<%j{KX-mii)UA=JhV#4;W?=!_jK(jH!3AIf z{4>3=tplFKbxRFI1Ig_^Qcd6EfM2IF>Q6wgqkS_1$~ncN`r4+~kM}{b^fpT>nL{#x zMoUj$qHVBKqTGS+78VNj$rI_EsaB#)WL$lHHC3agnW2m-J`q#guqhpHapB-`GMIq> z2i$c)9*yKvTod4hUmf4C?p5AwF^O{Yv%CkcW};HgH}7n(6JCXvmMY9Egu%_!cYkNC`NcoXq3 z8(_fcd=NXR;iNwmZMA6E%0!7ULymzAL%( z4E-z0w;BZo6$YLe&Qg@1Yq6BcaFi)d zlU>pk{Zf@E>=;dFX%d@lA+CZ7Y;O0?)CBm5mFxa_kB9w82SHsK0F%4n$co0Bp|&&% ztQoYJCtD0KJdm^HiD+b={I`^ehjxHrVvnxzt zH&Mfn)aa{mliT@yXIix~wLI$O_HXBJ<^e2R$g}3CCr$VZxJX3x?M9;A22h&$4dC4=sZ};V3XWjNOdJqB} zZ+NyXOV5yo9rm1E#$P{Jybfmb)_8gtXP6?|_SA+Z_Fvs}R!4r6p+4oZ& zUJR3=A&KC6ts>P3#@mYPnM$m}P|vGVodJgOLR4`;wcMs&joGqybfVIB&8d3>kg$R@ z6zh`c%o5aWEp}_PMgdpKO}Cd&@8JIdUMUG>x`V>!!jy9EX6|*okoQmZo>?K|Ov&!D z)s)u=Aw~21i>5dcJ>Rij%a_P8nM=Bu?zj78&0_Tr!usBMi^+)!b^4Q0Yuw9(IU{M+ zl=J1UaJ>l>oklH<{x*!CsTvxyG611DB?lJ9*0tyZn{wYblv9R0Nul2Mu<(U-^pEA8 z~@ROsGC%>b_7L^e$Xpx48&tOV3xfj=Oh~%{9-# z`x`kBUrjR0;WH{6tUBoiK8K@$i*aIw*AHymP~qNKQ4f|C5*wl-e9CkH!!-=-xIzTl z#!gu!KD%6YDJ-GASOt8X`hpv>yR*tfk|%^f5DoxPg*t(XARC-Dw>eM=kM|3NEhV|* z#miR?*&Q!D%YXVRNwmS)RUuPLO&aY_qAC`mZq_uN9jz7$1p%JmDtrxC8C1b)B; zQV@)=i0UPkOqA?)o)e3I^$beV7g+%-@j7yHQbE9QB|EPnMU2^1Nrg95ynPwUFWBA> z)h9WjPKG!9YM~fiA=^c++x(?+>T-LP`2@~sjp+A_2KfO< zsdMxAgO?aRur%iLWBn?`B-R&f^l=D=4sSRCu!IQlnQQrE+*xuUiQXs|t>pOj(<)hg zn@cw#mp$Q|I*b9rd;_W#8M2 z5CTzdomyy!Q@5i~srjS}FGp!P*P>t|#)1>8Pz)hoA;3;ax%g&lNQ0y|hKv~k8AcXJ za~XNn!Hk6upp`n#Uysn3WJ}B6a(GaBMD-(5?aN072msJ~?hwvu8WRsa=NUU;;iOB7 zl+!SJQMW@^)+iU3cIbEIluGE1?Bd@(rFrS{WlOPEX7F;pS#|pb&%^tIZEbW)IyLym z=(!8%Z&36bC%see%GcSnnu?FHI(qH;Pbb5RZ8MOLxBC5hIpGFLG z^E~{O#r7wBpeF_>XfC=rqMea=)@MFq6$d^#Au{xkGN_{~5rBd&9s?hn`CkeOX~P9f2pxGVxC6T_0-9~BYoE5lVw$K0a-B)0Fllp7ktx#eE2LFggF<(Ea zD&)pNMf#r~|MSJYM4NRd5}3g2k)|2JfyfpcE!(s9Jh-n)3c`s-CPcnIBw0mg;-e(d znfplZk>geH0LARP;~&A=ZXb6BZZmL{}N066V!=;Vtj_VE(8@rfPWy9 zKX8QajS$$d7MHg_v+W*Qv2(`VkE<`C!CjaX9ri4`5At9z0%vVf21lmlXW1Tp4`Kcl zHsSjOMK|64lb~*o=B-W>t6KBi{4nX{0qJsU9DC@U@Inx}`Fj}i*xq)sv%jaM;_v+l zi-1kfGABg2gilm7d&n20k-#kb%>n2LZjbMB27`|UgUSST^d>MWn%d$zYug^=IQ{`h z#P!wvBVp^GPX^)dGdwQ^k#qCr2j2R1e?I}_V@6aK8jw+I>KwNJ8mr z&%Y@Ta2+U|$Gljl?rH5mit7&m`N)*)9`j;vA=?gqm&W_Q4+V+{NLc>AFJ51vmNzyo zmqs(q-#@0Yxyq2VC#vW#kYqs#2r(E*QC^)IM~@f8V*D6G{!y=dT%-U5?Zxu+kE-yP zaH5cZ8NA+;At!JaOojn}83V@C8{96_SA!RvYZuu5l*t1=)$!l8#D|N1l$=yy)u9b+ z<*L^QqUn(vyCq?Xef@)F`U=KYoaGAW&!6EJ|$@ayswZi5FvQ zcfNjZKtADK#iCBvJt=S`u&vtW(Tc%nbYG;#7ftpzLH8R}&jKOpR36{dJIDK5=o!G%PAZ8>5^!3J4QxjHm?PU-wjZ3m z=e~-U2l^xY`{y_Tba#Lyf1b8iRV==Dj@`bFF?#4DJ}>O%2!WfZS-vCf#bUVkFa+)~%hJ*$rAOJEpu98czOlqgVr|H+jd+3tsK>>m~31LYwE zdif=cbZ0XP*x(hYA19EbJ+DU zirM_f77x}{R`FDp>c=%Amts{mdp%&XBo7Gg)GEx=-z>GL0LF^~9F8v10Fxv$@Jc2j zmr09>IBePZxD^WHxY3Sp-j}oJv$0du8A0F!z-X zv86kT;SdO$A-4(-?O8Aj!nDW3e)r~O;lzveZhDM$Al54{9vI=gWJU_)zlGW%FA8>|<{RhdS;gATa=Hb+P>E3}Jh$?XS$mJ^8(1`& zF^;>nY&5*CJDOMat5Rm?b_UO$;q;XmkaM1B?(-o{*ITsWaypF~>eSmQVHQL|5Pp^b zxXt56rVkKG#tg%rMWNoYuBT?=ZmcBG%R(m}Xf4H!=Dn4802kZy0&82OL-B%q8L(0?`<3M$BbZr|Ctp;TV*GQ&3XT zRCVQ6)8s!$m<1r=4#&}_>-kvVsZ3$28u9g%%VVZa>*G~f!+MQsjRG;30kI6O0`C63 z!v%M-n!{f?jj)YSP1cP*&vtKwDHcrR%u zcfMVE-K5Gt(`59aO`q64AIVOpgnId2cZ2vq=-#7#V7rIc_T-aNe5m+}%bM{A#a^Nv zHX;VV!*pk}VySamwfv}6NkkX=_@=JlWFnEkv?;8K!Ltj3*h+OmtI0)N1ptGnFP7Ei zMM?;Z9W>`mNY_bKETZBlVl{%Z7X*;lKhRL9CX;H^z(SSMHBJcR@%eID4G*T0cjM7B z?gdsE4Hh4BN+1ZKY#HiovT!U8ZJlucX4&P#_xj5KoBd{5SNt@g&XXNd>z2j&rl5}@ zKJo0B+l9n{GBhTRA|{nD;U(vBS?fldZ%2eI0#rQ3*k*6dzB`mHp;suGagd|_ohU&J zZ7U8%wYjog2#GR&z}oC|N%kY@tY`z1ry5#r=e`n`4IXf8kaAucyxY|} zhT}%_fpssI&b@8`kT&GrRHWWmRkwB;Ik)iqNli?7;RtfQu3;Sycv9j}6)NsSgw`>{Q<*#@$4^W}5JyeKtx zcu%6v9?mp~OP?xQyp?Hi6PJ?rgM!bMJw#@3y!Loz)t)PS`aychKt9-hCR-T6R4NAZ z_2>#{xyiV$$*3mSlFm}%!gZU?q=+#dOIBZ z=RKio7|~Fl_RidODw9k)@0a2Y#dka*wOtj0AOzKn0*6Ws#uPf~L9HTEagaqkOxCrK zNW_h(+Nw^yIag;jyHwH2_6zbT;M7~7 zQk%l6GucJ8S)NOXXDzk=lYJZLhu;98vAbIlf@`WMv8g`!0EBjvL9U2w*XMm zcTjVu%^CpxUqRvO6JMY5fe_YD2GeM&K5dnR23=<~!<{jO6fxwCn0PdZoy#C)K6bnH zI$-?$N-6pFxgs99uvs!1`LyeQ)_`@iP!R2ap;^>X$GbKhVl(+E0hp9jLQm7;Y7V8s zr}E{x8LCB*|1kyu7C1g-aGlyCusYRI=f71hM*Y92(`>VyFG@R~r z{~Jm2Dmi#&D0VVKe!QR_`5HO%MPC`Pt_~h1_>nmL_jN9yuqIh%q$l=Xq^h*+CS-T{ zMncWBx@FRR=mz}`*tH+kcWg!eX4me84i`GIUQ`+wtOHmDMD~ToZjEnss;KBSlh~yC zG$a5JML+~NTq!j0KN>_(#-lMKnrw1~#(x*G!2j5awV7Cv*-n#dr~Kz{A6GQ^kBjd} zYnsL%qR4+;;y4;ud|$e#%#iuE&>~l@|Z{z{ej^2>>N)NThST=byoszxsu*ixjZW;A*Mg!}-nN+$s9F&sfvC z^LBT}w^UJD0>Ay<)r3R>&g3Ix1_~3<1>7AaAQ=LfNCbofa2(-76cYopC;bpGqxktT zpXKU*EqwZp;Vr0#3yzF|!U!Qp5Xuh;{&Q1Pg?nZc*2r^wLe|}uJ05rH9{0m}_n|9K zukV>RTJDEAWDrnrs31NcFz_EQUYGmOgW-Q1_fl`NdogMvaVSuDctKCpDhiB}H>VAeW!W()6EqYBx(WZeIN-~=hYG+xpTck!`eVKDt0@-?@g-HD;|BkuuzbLLuQ5=K$8}`q(SEKj z{#-qjql4>pN!Z~2Yb=1;kb z6O*kMUfv~3M<@N>Z@UQ|ESoM@+tqdYuHgT+km1Wh_1$zUF*vmiw{1tGu2|Ga2!8&Z zXBtE2+Rdb?yu4Q1y3y*u0x+nxZBJ~)|9*e{{@cz@;eo}1qewS7a^|zc8Osk1^}~(- zS8-P!m1MfcZ#CtVnRYELH#F4ADKl~{QEW9MWUL%_F&Ra|4Gq^6o$idL0+mfxC}t{F zCgzemI*kHan1Z=0l%J-#U@j>H=rI4>6P^42{r-B-ci!{7=Xu^|`91IUh}K%{L}E*z zTk-r32pSSRI+CMn^j}64jnpr@AHP0aSZp$uh4uz_am8O&?SUtlMD*ecqN0m|Sg3FH z9uvCGJVx=3)m5=Fhko%w4aaH#Y|L~i1HzSmZXF=(*1-n%AhWwYNx;DgZxvYJld zt0MZqHQ$r6%gGUhGD(-3%nOv`yHfRI`#p%<0sr<^+H%s5rcB%kSx*U>q)HTLHy=jx z9>G|w9DjX99a?ILiy42sW0)gqL@)%|tvBHoji&TD2NPPNh*c*iH=;)g&YWbaD@m=7 zh!e&WR~t*l?)pr&wNjuvBS4MG=c&g`*yPc7)|`lDLJT)gdMfn!%X@J`*sMNU&=4-f z!@izmh4gLr{giW=J@P}sKE$E3RS+F?Nuv(>O_BpI?+7V6`8o7ndn&6Id4)tcW7}2^ z65T*tcvvBIMf6tQQDsbJsP*I09b&^XG8rQBr1rRm@z}}vFh+3vxFLFE;CH*30V5vu z!mWDbGJDx-2F*@<0Caa*+=%bmKI;T1N@qWD+*IXQH;;2v^$D$T$(6jYpdSwT$j@6@ zF~Lu9DC9{R5n>uz6%YNq90B}J6{Sm-@-weH9tO*$9PuEbR&l5wri)yQ@h32vu1)j} zC+}TP5_q87Z}!EFbqHB7Q2e#(66R4GgVmK?aU;8PPSVLr zVNA2+s0lT^h)CO|+Z@L1AIV248=@2OyXmM+-LPUqU{>{5p~-3Ul52EphAh}8_v$6w zZ0=vAAatIa8vb+H=z_%Z*x2K2`==U@EQ9nDi=4m|T*N#hIC9*{n4)iLReWCszD^^q zbB)Y-Jw3W0hhxn3J7n>I_T5YU_P?w*aAOzER}-P1x(h4%yjwl&q?iA)@oBU1iSW;x z`Au7^?JYCrhUU8bv7P(?r;S*gQcz!il+n00Szh0Fn@kq-)Zb)eT0re<@}8fD%DEum zy%i2j>FKhwh}s|3cb~(uZNUd_gOf=)D1W`2b@5O$Ktho4g8Gs+Y>9#XByDNJDwBSo zS)K=S=g2AFSdd$4gZx7>OKlXNw9S}~z-H*zhGn>D>Ri0X(}Bsb9=URuUvK42)$-|# z*pi!LV5v2SjisO70qZk(apxU-&|%?;*UrZCp-=CY%I4aN3)qB@xe|g;M8opx>f8$} zS^K>Ah(MQGOmbHF5(2k0)jAmW^h#AX zj9A&eBfBQEukX%x#gKT;9N>Yy$b&(xVKqZn6bFala5hD_-$ob;OpEPnhpfWIgOc8^ zcz`EG-8YGH@n%$pZrAP8iUuVG4wkQ(eC?PvY>YVj@K9@($Ir)4(F*YRAxrRj4yf}B z3GfEwiME{8Lo?)B5;onE9FDNux=%!`{=q_OcPVAmJ{hCR=0!QLh*90HP&5eug1Zfp>p2pBucYqw9&Bv`> z_DZ=;vCt*PP2UfKv15kA_n!18ylLK){7s0GYbd-f@MlW|xmEoNxt!MT)%moYAcKT` zkoXQs1Gx=wOaOPF%xp1siUJzmsqP@qL|}hqIW}55WBM1Jz!ugWM(oQfRvhnET|Pg% zI5B+uA#lH%hY{oeb?Z~-E%)3#H<4uJ?>V6U;ux``25aWB!}1MurV&5wvaUlS!7ZSW|9bG!qi>#74an zju_&fG3~vb9dXUVX7s9WQ!Lv663lJDw%o1}^R+2csz(oivxrU=oi}TEitnO!ejG)*?q_?VbL1rb8S?ZmZEz}$ZH9i3%zD^uU6-XWR~Y9cF}@$%NULHBOun=W<$_I%U4&W~Hc z2wrZm-}r7-TiGLfSLq7>;d?%=vDCy^Wv)k0#g$UG?>9~4n;DWD?sKoA9AC%T9cNa~ zA+0-*r@TJ#7rk_a%x9(Bj??9S7YWd$oN}98@(;glvTtwioeVO_hkeoPeU?5LEh?iO z;^)#C

Ayf`heFgDcFXwE*mt4>Oj0>qv|?;F<)x-5-rc%qJ zgVU7YOv;}bn|1hwE;+IcrmR*w1RXX7;Go{cHptkMp1UJj0KOa>4 zVD+^a2lQ5%uMOe+=jXdhn0Dt3z|Le(Z2ZvxPkrF?%1cj79OF4{AvF)DIRB{TbFHH@(dqVX+ER^Bqo_C4` zsSN_BTI4rms0uRA3BJs4Mom#HYi)_!H0t;bnb3{a>Xte>TU4-!X+7hZQrXt`Rj;lJ z&VEHTHT9qZ=%cBfSCVfud@4VkchZ|$$YfR>nl7!S{_nJ)=<@oL>wqf8d|D6k$Xs#t z5-N85LlGbwe*s-rQv5CX{{VioY#nqTw{jE77sZGsPzu7zAk}3iwEHdH+esdgOIca7 zxBMz8-v}7_u)vmN?Y7bxoiO$Y*D%&x?@$rU@Em@+Xs|aP>q5KbmT3s|#FnmmVdCah9V(w28}362YpS-up6n!L|_F?SxOv#ukl!2@jq$#rJpkD+ptl-OCxw$ g^VRGB!vJEUyKZ68Hg-JwUy9G=wCgFxiGW}K1{+6ZA^-pY literal 0 HcmV?d00001 From 5f5666dba9e792c610d1ef9abe96c395981b1db2 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Wed, 6 Aug 2025 21:37:44 -0700 Subject: [PATCH 412/438] update front matter --- .../destinations/catalog/actions-nextdoor-capi/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-nextdoor-capi/index.md b/src/connections/destinations/catalog/actions-nextdoor-capi/index.md index 9996dbaf67..6d0fe4b922 100644 --- a/src/connections/destinations/catalog/actions-nextdoor-capi/index.md +++ b/src/connections/destinations/catalog/actions-nextdoor-capi/index.md @@ -1,5 +1,7 @@ --- title: Nextdoor Conversions API Destination +id: 66cc76e29693c9e5591bf029 +beta: true --- {% include content/plan-grid.md name="actions" %} @@ -23,4 +25,3 @@ This destination is maintained by Nextdoor. For any issues with the destination, ## Nextdoor Browser Plugin Action When the **Nextdoor Conversions API** destination receives website data from a Segment JavaScript source, the **Nextdoor Browser Plugin** automatically grabs the **Nextdoor click ID** / **ndclid** from the querystirng in the page URL, and passes it to the **Send Conversion** Action. Supplying the **ndclid** boosts attribution accuracy and is strongly recommended for website tracking. The plugin is enabled by default as soon as the destination is created. - From 9608a594ade0281d3100fed32fdfb086cdf4e167 Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 6 Aug 2025 21:59:13 -0700 Subject: [PATCH 413/438] move screenshots to right folder [netlify-build] --- .../{ => images}/signals_identify_event.png | Bin .../{ => images}/signals_track_event.png | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename src/connections/auto-instrumentation/{ => images}/signals_identify_event.png (100%) rename src/connections/auto-instrumentation/{ => images}/signals_track_event.png (100%) diff --git a/src/connections/auto-instrumentation/signals_identify_event.png b/src/connections/auto-instrumentation/images/signals_identify_event.png similarity index 100% rename from src/connections/auto-instrumentation/signals_identify_event.png rename to src/connections/auto-instrumentation/images/signals_identify_event.png diff --git a/src/connections/auto-instrumentation/signals_track_event.png b/src/connections/auto-instrumentation/images/signals_track_event.png similarity index 100% rename from src/connections/auto-instrumentation/signals_track_event.png rename to src/connections/auto-instrumentation/images/signals_track_event.png From fae3f4766788235aba7dbe78dc5549385a8a8416 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 7 Aug 2025 14:23:28 +0100 Subject: [PATCH 414/438] Update src/connections/destinations/catalog/optimizely-web/index.md Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com> --- src/connections/destinations/catalog/optimizely-web/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/optimizely-web/index.md b/src/connections/destinations/catalog/optimizely-web/index.md index fadb1ba94e..8525f4e1a6 100644 --- a/src/connections/destinations/catalog/optimizely-web/index.md +++ b/src/connections/destinations/catalog/optimizely-web/index.md @@ -64,7 +64,9 @@ Segment also handles the following mapping: ### Page -Segment maps `page` calls to its own `track` events. When you call `analytics.page('')`, Segment automatically converts it into a track call with the formatted event name `Viewed Page`. For example, `analytics.page('Home');` becomes `analytics.track('Viewed Home Page');`. This event is then forwarded to Optimizely as a custom event named `Viewed Home Page`. +Segment maps Page calls to it `track` events. When you call `analytics.page('')`, Segment automatically converts it into a Track call with the formatted event name `Viewed Page`. For example, `analytics.page('Home');` becomes `analytics.track('Viewed Home Page');`. + +This event is then forwarded to Optimizely as a custom event named `Viewed Home Page`. To capture this event in Optimizely, you’ll need to define a Custom Event with the matching API name. Segment maps the `page` event to other downstream destinations like a regular Segment `page` event. From aa5d6e3e70ae1efbe83527e59588856be8d45259 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 7 Aug 2025 14:24:36 +0100 Subject: [PATCH 415/438] Got rid of last sentence --- src/connections/destinations/catalog/optimizely-web/index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/connections/destinations/catalog/optimizely-web/index.md b/src/connections/destinations/catalog/optimizely-web/index.md index 8525f4e1a6..c203028a89 100644 --- a/src/connections/destinations/catalog/optimizely-web/index.md +++ b/src/connections/destinations/catalog/optimizely-web/index.md @@ -64,12 +64,10 @@ Segment also handles the following mapping: ### Page -Segment maps Page calls to it `track` events. When you call `analytics.page('')`, Segment automatically converts it into a Track call with the formatted event name `Viewed Page`. For example, `analytics.page('Home');` becomes `analytics.track('Viewed Home Page');`. +Segment maps Page calls to its `track` events. When you call `analytics.page('')`, Segment automatically converts it into a Track call with the formatted event name `Viewed Page`. For example, `analytics.page('Home');` becomes `analytics.track('Viewed Home Page');`. This event is then forwarded to Optimizely as a custom event named `Viewed Home Page`. To capture this event in Optimizely, you’ll need to define a Custom Event with the matching API name. -Segment maps the `page` event to other downstream destinations like a regular Segment `page` event. - ### Experiment Listeners Upon activation of an Optimizely experiment, an “Experiment Viewed” Track event is sent to Segment. The event includes Optimizely experiment metadata which is sent whenever the Optimizely [`campaignDecided` listener](https://docs.developers.optimizely.com/web/docs/add-listener#section-campaign-decided){:target="_blank"} is activated. From 8d31d996992a4f76f7da7b13c0eebbddb5bd9a81 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 7 Aug 2025 15:29:21 +0100 Subject: [PATCH 416/438] Amazon S3 not supported by Segment --- .../sources/catalog/cloud-apps/amazon-s3/index.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md index 846e474a20..3f394b0556 100644 --- a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md +++ b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md @@ -5,7 +5,7 @@ id: GNLT5OQ45P --- {% include content/source-region-unsupported.md %} -This document contains a procedure that enables you to upload a CSV file containing data to Amazon S3, where it uses Lambda to automatically parse, format, and upload the data to Segment. +This document contains a procedure that enables you to upload a CSV file containing data to [Amazon S3](https://aws.amazon.com/s3/){:target="_blank”}, where it uses [Lambda](https://aws.amazon.com/lambda/){:target="_blank”} to automatically parse, format, and upload the data to Segment. You might have sources of data where you can't instrument Segment's SDKs, including other SaaS tools for which a Segment integration is not yet available. In many of these cases, you can extract data from these sources in CSV format, and then use Segment's server-side SDKs or HTTP tracking API to push the data to Segment. @@ -17,10 +17,11 @@ The goal of this walkthrough is to make this process easier by providing an auto - an AWS IAM execution role that grants the permissions your Lambda function needs through the permissions policy associated with this role - an AWS S3 source bucket with a notification configuration that invokes the Lambda function +This source is maintained by Amazon. For any issues with the source, contact [the Amazon S3 Support team](https://aws.amazon.com/contact-us/sales-support-s3/){:target="_blank"}. ## Prerequisites -This tutorial assumes that you have some basic understanding of S3, Lambda and the `aws cli` tool. If you haven't already, follow the instructions in [Getting Started with AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html){:target="_blank"} to create your first Lambda function. If you're unfamiliar with `aws cli`, follow the instructions in [Setting up the AWS Command Line Interface](https://docs.aws.amazon.com/polly/latest/dg/setup-aws-cli.html){:target="_blank"} before you proceed. +This tutorial assumes that you have some basic understanding of S3, Lambda and the `aws cli` tool. If you haven't already, follow the instructions in [Getting Started with AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html){:target="_blank"} to create your first Lambda function. If you're unfamiliar with `aws cli`, follow the instructions in [Setting up the AWS Command Line Interface](https://docs.aws.amazon.com/polly/latest/dg/setup-aws-cli.html){:target="_blank"} before you proceed. This tutorial uses a command line terminal or shell to run commands. Commands appear preceded by a prompt symbol (`$`) and the name of the current directory, when appropriate. @@ -35,11 +36,11 @@ Remember the write key for this source, you'll need it in a later step. ### 2. Create the Execution Role -Create the [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html){:target="_blank"} that gives your function permission to access AWS resources. +Create the [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html){:target="_blank"} that gives your function permission to access AWS resources. **To create an execution role** -1. Open the [roles page](https://console.aws.amazon.com/iam/home#/roles){:target="_blank"} in the IAM console. +1. Open the [roles page](https://console.aws.amazon.com/iam/home#/roles){:target="_blank"} in the IAM console. 2. Choose **Create role**. 3. Create a role with the following properties: - Set the **Trusted entity** to **AWS Lambda**. From f2d6f8d012427032c62f91ee34b7f3882036c017 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 7 Aug 2025 15:38:45 +0100 Subject: [PATCH 417/438] Rewording [netlify-build] --- src/connections/sources/catalog/cloud-apps/amazon-s3/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md index 3f394b0556..7c109ee719 100644 --- a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md +++ b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md @@ -5,11 +5,11 @@ id: GNLT5OQ45P --- {% include content/source-region-unsupported.md %} -This document contains a procedure that enables you to upload a CSV file containing data to [Amazon S3](https://aws.amazon.com/s3/){:target="_blank”}, where it uses [Lambda](https://aws.amazon.com/lambda/){:target="_blank”} to automatically parse, format, and upload the data to Segment. +This document outlines how to upload a CSV file containing data to [Amazon S3](https://aws.amazon.com/s3/){:target="_blank”}, which uses [Lambda](https://aws.amazon.com/lambda/){:target="_blank”} to automatically parse, format, and upload the data to Segment. You might have sources of data where you can't instrument Segment's SDKs, including other SaaS tools for which a Segment integration is not yet available. In many of these cases, you can extract data from these sources in CSV format, and then use Segment's server-side SDKs or HTTP tracking API to push the data to Segment. -The goal of this walkthrough is to make this process easier by providing an automated process that ingests this data. Once you complete this walkthrough, you will have the following Segment, Amazon S3, Lambda, and IAM resources deployed: +The goal of this walkthrough is to make this process easier by providing an automated process that ingests this data. Once you complete this walkthrough, you will have the following Segment, Amazon S3, Lambda, and [IAM](https://aws.amazon.com/iam/){:target="_blank"} resources deployed: - a Segment S3 source - an AWS Lambda function From 80450a35ec657e710059fa3f74a4b9f0e0a29fc1 Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Thu, 7 Aug 2025 12:50:58 -0500 Subject: [PATCH 418/438] update web setup --- .../auto-instrumentation/web-setup.md | 268 ++++++++++++++---- 1 file changed, 218 insertions(+), 50 deletions(-) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index 9367132762..d006b98f42 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -5,39 +5,151 @@ hidden: true This guide outlines the steps required to set up the Signals SDK in your JavaScript website. -You'll learn how to add Auto-Instrumentation sources, integrate dependencies, and ensure that your setup captures and processes data as intended. +You'll learn how to add Auto-Instrumentation sources, integrate dependencies, and ensure that your setup captures and processes data as intended. > info "Auto-Instrumentation Private Beta" -> Auto-Instrumentation is currently in Private Beta and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. Segment is actively iterating on and improving the Auto-Instrumentation user experience. +> Auto-Instrumentation is currently in Private Beta and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="\_blank"}. Segment is actively iterating on and improving the Auto-Instrumentation user experience. > success "Enable Auto-Instrumentation" > To enable Auto-Instrumentation in your Segment workspace, reach out to your dedicated account manager. ## Step 1: Add a source and get its write key -You'll first need to add a source and copy its write key: +You'll first need to add a source and copy its write key: 1. In your Segment workspace, navigate to **Connections > Auto-Instrumentation** and click **Add source**. 2. Select a source, give the source a name, and click **Save**. -3. Return to **Connections > Sources** to view your sources. +3. Return to **Connections > Sources** to view your sources. 4. In the **My sources** table, find and click the new source you just set up. -5. In the **Initialize the Client** section, look for and copy the `writeKey` displayed in the code block. +5. In the **Initialize the Client** section, look for and copy the `writeKey` displayed in the code block. ## Step 2: Add dependencies and initialization code -Next, you'll need to add the Signals SDKs to your web environment. +Next, you'll need to add the Signals SDKs to your web environment. + +Choose one of the following installation methods based on your setup: + +### Option A: Snippet Users (HTML) + +For websites using the Segment snippet, add the SignalsPlugin using a CDN: + +```html + + My Website + + + + + + + + +``` -Follow these steps to integrate the Signals SDK into your website: +### Option B: NPM Users -1. Add the Signals SDK to your project: +1. Add the Signals SDK to your project: ```bash - # npm - npm install @segment/analytics-signals - # yarn - yarn add @segment/analytics-signals - # pnpm - pnpm install @segment/analytics-signals +# npm +npm install @segment/analytics-signals +# yarn +yarn add @segment/analytics-signals +# pnpm +pnpm install @segment/analytics-signals ``` 2. Add the initialization code and configuration options: @@ -47,21 +159,23 @@ Follow these steps to integrate the Signals SDK into your website: ```ts // analytics.js/ts -import { AnalyticsBrowser } from '@segment/analytics-next' -import { SignalsPlugin } from '@segment/analytics-signals' +import { AnalyticsBrowser } from "@segment/analytics-next"; +import { SignalsPlugin } from "@segment/analytics-signals"; + +export const analytics = new AnalyticsBrowser(); -const analytics = new AnalyticsBrowser() -const signalsPlugin = new SignalsPlugin() -analytics.register(signalsPlugin) +const signalsPlugin = new SignalsPlugin(); + +analytics.register(signalsPlugin); analytics.load({ - writeKey: '' -}) + writeKey: "", +}); ``` -Verify that you replaced `` with the actual write key you copied in Step 1. +Verify that you replaced `` with the actual write key you copied in Step 1. -4. Build and run your app. +3. Build and run your app. ## Step 3: Verify and deploy events @@ -92,48 +206,102 @@ https://my-website.com?segment_signals_debug=false ### Advanced -#### Emitting custom signals +#### Emitting custom signals + If you need to listen for data that is unavailable to the Signals plugin by default, you can create and emit a custom signal: ```ts -import { signalsPlugin } from './analytics' // assuming you exported your plugin instance. +var signalsPlugin = new SignalsPlugin(); // or use the global variable if you registered it globally +signalsPlugin.addSignal({ someData: 'foo' }) -signalsPlugin.addSignal({ - type: 'userDefined', - data: { foo: 'bar' } -}) + +// emits a signal with the following shape +{ + type: 'userDefined' + data: { someData: 'foo', ... } +} ``` #### Listening to signals + ```ts -const signalsPlugin = new SignalsPlugin() -signalsPlugin.onSignal((signal) => console.log(signal)) +const signalsPlugin = new SignalsPlugin(); +signalsPlugin.onSignal((signal) => console.log(signal)); ``` -### Emitting Signals +#### Middleware / Plugins + +You can drop or modify signals using middleware: + +```ts +import { SignalsPlugin, SignalsMiddleware } from "@segment/analytics-signals"; + +class MyMiddleware implements SignalsMiddleware { + process(signal: Signal) { + // drop all instrumentation signals + if (signal.type === "instrumentation") { + return null; + } else { + return signal; + } + } +} + +const signalsPlugin = new SignalsPlugin({ + middleware: [new MyMiddleware()], +}); +analytics.register(signalsPlugin); +``` + +#### Sandbox Strategies + +If getting CSP errors, you can use the experimental 'global' sandbox strategy: + ```ts -const signalsPlugin = new SignalsPlugin() -signalsPlugin.addSignal({ - type: 'userDefined', - data: { foo: 'bar' } -}) +new SignalsPlugin({ sandboxStrategy: "global" }); ``` ## Configuration Options -Using the Signals Configuration object, you can control the destination, frequency, and types of signals that Segment automatically tracks within your application. The following table details the configuration options for Signals-Kotlin. - -| `Option` | Required | Value | Description | -| ------------------- | -------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `writeKey` | Yes | string | Source write key | -| `maxBufferSize` | No | number | The number of signals to be kept for JavaScript inspection. This buffer is first-in, first-out. Default is `1000`. | -| `processSignal` | No | string | Override the default signal processing function from the edge function. If this is set, the edge function will not be used. -| `enableDebugLogging` | No | boolean | Enable debug logs. -| `disableSignalRedaction` | No | boolean | Disable default Signal data redaction. -| `apiHost` | No | string | Override the default signals API host. Default is `signals.segment.io/v1`. -| `functionHost` | No | string | Override the default edge host. Default is `cdn.edgefn.segment.com` -| `flushAt` | No | number | How many signals to flush at once when sending to the signals API. Default is `5` . | -| `flushInterval` | No | number | How many ms to wait before flushing signals to the API. The default is `2000`. | +Using the Signals Configuration object, you can control the destination, frequency, and types of signals that Segment automatically tracks within your application. The following table details the configuration options for Signals Web. + +| `Option` | Required | Value | Description | +| ------------------------ | -------- | -------------------- | ------------------------------------------------------------------------------------------------------------------ | +| `maxBufferSize` | No | number | The number of signals to be kept for JavaScript inspection. This buffer is first-in, first-out. Default is `1000`. | +| `enableDebugLogging` | No | boolean | Enable debug logs. | +| `disableSignalRedaction` | No | boolean | Disable default Signal data redaction. | +| `apiHost` | No | string | Override the default signals API host. Default is `signals.segment.io/v1`. | +| `functionHost` | No | string | Override the default edge host. Default is `cdn.edgefn.segment.com` | +| `flushAt` | No | number | How many signals to flush at once when sending to the signals API. Default is `5` . | +| `flushInterval` | No | number | How many ms to wait before flushing signals to the API. The default is `2000`. | +| `middleware` | No | SignalsMiddleware[] | Array of middleware to process signals before they are sent. | +| `sandboxStrategy` | No | 'global' \| 'iframe' | Sandbox strategy for signal collection. Use 'global' if getting CSP errors. Default is 'iframe'. | + +## Core Signal Types + +Auto-Instrumentation collects different types of signals automatically: + +### `interaction` + +Interaction signals emit in response to a user interaction (clicks, form submissions, etc.) + +### `instrumentation` + +Instrumentation signals emit whenever a Segment event is emitted. + +### `navigation` + +Navigation signals emit whenever the URL changes. + +> Note: you can also rely on the initial analytics.page() call, which you can access as an Instrumentation signal. + +### `network` + +Network signals emit when an HTTP Request is made, or an HTTP Response is received. To emit a network signal, the network activity must have the following requirements: + +- Initiated using the `fetch` API +- First party domain (e.g if on `foo.com`, then `foo.com/api/products`, but not `bar.com/api/products`) +- Contains the content-type: `application/json` ## Next steps From 34409dbd2211cf1bc13c024cab0a2b7fa81289da Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Thu, 7 Aug 2025 13:24:07 -0500 Subject: [PATCH 419/438] wip --- .../auto-instrumentation/web-setup.md | 59 +++++++++++-------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index d006b98f42..6728812cfb 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -31,14 +31,16 @@ Choose one of the following installation methods based on your setup: ### Option A: Snippet Users (HTML) -For websites using the Segment snippet, add the SignalsPlugin using a CDN: +For websites using the Segment snippet, please REPLACE the regular Segment snippet with the following code, which includes the Signals SDK: + +> warning "" +> If you are currently using Segment, replace the existing Segment snippet that loads analytics.js with the modified code below. You should not have two segment snippets that call analytics.load() in your html. ```html My Website - - - - - - - ``` @@ -183,23 +188,31 @@ After integrating the SDK and running your app, verify that Segment is collectin 1. In your Segment workspace, return to **Connections > Sources**, then select the source you created for Auto-Instrumentation. 2. In the source overview, look for the **Event Builder** tab. If the tab doesn’t appear: - - Make sure you've installed the SDK correctly. - - Reach out to your Segment CSM to confirm that your workspace has the necessary feature flags enabled. + +- Make sure you've installed the SDK correctly. +- Reach out to your Segment CSM to confirm that your workspace has the necessary feature flags enabled. ![The Event Builder tab shown in the navigation bar between Debugger and Schema in a Segment Source](images/event_builder_tab.png) -3. Open the **Event Builder** and follow the on-screen instructions to start signal detection. - - To collect signals in the UI, visit your site in a browser using the query string:`?segment_signals_debug=true` + +3. Open the **Event Builder** and follow the on-screen instructions to start signal detection. + +- To collect signals in the UI, visit your site in a browser using the query string:`?segment_signals_debug=true` + 4. Interact with your app to trigger signals: click buttons, navigate pages, submit forms, and so on. Segment collects and displays these as signals in real time. 5. From the signals list, click **Configure event** to define a new event based on one or more signals. After configuring the event, click **Publish event rules**. - ### Debugging + #### Enable debug mode + Values sent to the signals API are redacted by default. -This adds a local storage key. To disable redaction, add a magic query string: +This adds a local storage key. To disable redaction, add a magic query string: + ``` https://my-website.com?segment_signals_debug=true ``` -You can *turn off debugging* by doing: + +You can _turn off debugging_ by doing: + ``` https://my-website.com?segment_signals_debug=false ``` @@ -305,4 +318,4 @@ Network signals emit when an HTTP Request is made, or an HTTP Response is receiv ## Next steps -This guide walked you through initial Signals SDK/Auto-Instrumentation setup. Next, read the [Auto-Instrumentation Signals Implementation Guide](/docs/connections/auto-instrumentation/configuration/), which dives deeper into Signals and offers example rules. +This guide walked you through initial Signals SDK/Auto-Instrumentation setup. Next, read the [Auto-Instrumentation Signals Implementation Guide](/docs/connections/auto-instrumentation/configuration/), which dives deeper into Signals and offers example rules. From d4fd0de26e0054018d5997a3d43befbb1297b78a Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 7 Aug 2025 12:08:58 -0700 Subject: [PATCH 420/438] catalog update + script fixes 7 august 2025 --- scripts/catalog/updateSources.js | 2 +- scripts/catalog/utilities.js | 14 +- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 636 +++++++++---------- src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 2 +- 7 files changed, 316 insertions(+), 344 deletions(-) diff --git a/scripts/catalog/updateSources.js b/scripts/catalog/updateSources.js index f873d19274..73ad28293d 100644 --- a/scripts/catalog/updateSources.js +++ b/scripts/catalog/updateSources.js @@ -33,7 +33,7 @@ const updateSources = async () => { while (nextPageToken !== undefined) { const res = await getCatalog(`${PAPI_URL}/catalog/sources/`, nextPageToken); sources = sources.concat(res.data.sourcesCatalog); - nextPageToken = res.data.pagination.next; + nextPageToken = res.data.pagination?.next; } // Sort the sources alphabetically diff --git a/scripts/catalog/utilities.js b/scripts/catalog/utilities.js index dd24bcd0ff..56cac1cb89 100644 --- a/scripts/catalog/utilities.js +++ b/scripts/catalog/utilities.js @@ -47,17 +47,19 @@ const getCatalog = async (url, page_token = "MA==") => { 'Content-Type': 'application/json', 'Authorization': `Bearer ${process.env.PAPI_TOKEN}` }, - data: { - "pagination": { - "count": 200, - "cursor": page_token - } + params: { + "pagination.count": 200, + "pagination.cursor": page_token } }); return res.data; } catch (error) { - console.log("Something went wrong with the request to the Public API.\nIf you're updating a private destination, ensure the ID is correct."); + console.log("Something went wrong with the request to the Public API."); + console.log("Error:", error.message); + console.log("Status:", error.response?.status); + console.log("Data:", error.response?.data); + throw error; } }; diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 22e3877200..7409d6643e 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 2025-07-31 +# destination categories last updated 2025-08-07 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 9b363008b5..abca4d3216 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 2025-07-31 +# destination data last updated 2025-08-07 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -25626,7 +25626,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: fDR8sk8ZPuCEHpjDyFgozW + - id: d6U9V5NCdv8jAFPguJ2JDx sortOrder: 0 fieldKey: external_id label: External User ID @@ -25640,7 +25640,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5RJmpB58hzw4um4jgjHR1B + - id: bV1e7HbkD1hANYUwZuaPbV sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -25654,7 +25654,7 @@ items: choices: null dynamic: false allowNull: false - - id: cu5jYWXnPpw6FiZ9wX1cFP + - id: 2rZPnRtmYHYV7qnCYq8vZ1 sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -25668,7 +25668,7 @@ items: choices: null dynamic: false allowNull: true - - id: jwzZpd94LxxvwoYokBJ5x + - id: 8ZzHLWwzdSLf7ztL7od2tv sortOrder: 3 fieldKey: country label: Country @@ -25682,7 +25682,7 @@ items: choices: null dynamic: false allowNull: true - - id: kpYhLzP5v48mSmtJ8YJZcb + - id: tLGkmSJM5c3i1rLwGPKRow sortOrder: 4 fieldKey: current_location label: Current Location @@ -25699,7 +25699,7 @@ items: choices: null dynamic: false allowNull: true - - id: p8XB3sFptXjrWBJ3QQJ44m + - id: o7WkwA172aBrkAtUFHfo5g sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -25711,7 +25711,7 @@ items: choices: null dynamic: false allowNull: true - - id: tfTrTjru2F4uY8XdjzMwiW + - id: 2rYh1yA9KRY9jtDjForngD sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -25723,7 +25723,7 @@ items: choices: null dynamic: false allowNull: true - - id: ga1WyMfE8dhXFBZGD4wJ8q + - id: wqrUAkfTUqSV5YpwTWmhQm sortOrder: 7 fieldKey: dob label: Date of Birth @@ -25735,7 +25735,7 @@ items: choices: null dynamic: false allowNull: true - - id: 9vFRhBFwWjtTe686tvTTye + - id: jgZb4hQWWbs8VuqJNJuu5Z sortOrder: 8 fieldKey: email label: Email @@ -25749,7 +25749,7 @@ items: choices: null dynamic: false allowNull: true - - id: uwHYEgL4SZvo2bh4pUv5N + - id: 7Dr7SqHTiXF3q1pBgdmmJL sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -25764,7 +25764,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5KRPPZ1zFq7TWQvW22PDNX + - id: dAJqmfsKyiD4YCNde5HA4R sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -25778,7 +25778,7 @@ items: choices: null dynamic: false allowNull: false - - id: gqeqcDr1ZMLFbKo6PvsdTD + - id: ez85vajfsoTFSbz1JUP6kN sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -25792,7 +25792,7 @@ items: choices: null dynamic: false allowNull: false - - id: dWbRdjBmHuQahVfpp2kbU1 + - id: e9d46hJuTpwUXV9YC1xVjU sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -25806,7 +25806,7 @@ items: choices: null dynamic: false allowNull: false - - id: djKX1f82FMmWQmVP6QmXeg + - id: JvrMWrPRySguU9t7BybrK sortOrder: 13 fieldKey: first_name label: First Name @@ -25820,7 +25820,7 @@ items: choices: null dynamic: false allowNull: true - - id: 4eGUV9jTtwD6BjU4qGytBu + - id: b1z5yryqMTcgeQzDpJKnfr sortOrder: 14 fieldKey: gender label: Gender @@ -25836,7 +25836,7 @@ items: choices: null dynamic: false allowNull: true - - id: 57daPPzryAhNN7cB1u5SAY + - id: 6wyeaPKXa2HQzG7tkY5p8V sortOrder: 15 fieldKey: home_city label: Home City @@ -25850,7 +25850,7 @@ items: choices: null dynamic: false allowNull: true - - id: rAQMHaiMEZwqML5uLic2hY + - id: k1x7wpDEsBAniDvabnkse2 sortOrder: 16 fieldKey: image_url label: Image URL @@ -25864,7 +25864,7 @@ items: choices: null dynamic: false allowNull: true - - id: cnPSX6jz1RWzazXFcwEufd + - id: 7bAVx4SQPsGke2xYaaNx2o sortOrder: 17 fieldKey: language label: Language @@ -25876,7 +25876,7 @@ items: choices: null dynamic: false allowNull: true - - id: gE2RcHsq5GBtDzAobjWzic + - id: nY2Gc9jCCzhcQJcr76Vdgz sortOrder: 18 fieldKey: last_name label: Last Name @@ -25890,7 +25890,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4SjCpfFqvTcPcgP1ADvB4L + - id: pzosm73dVCe5Kzw2SEv4xy sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -25902,7 +25902,7 @@ items: choices: null dynamic: false allowNull: true - - id: mKzJu2395MQjio8deZxU2W + - id: vbiMQx2wHq7bMMyFFp2sHh sortOrder: 20 fieldKey: phone label: Phone Number @@ -25916,7 +25916,7 @@ items: choices: null dynamic: false allowNull: true - - id: hHdCpmvY8TpYt2Tr61yd2q + - id: vezYSDUs6gw6yvXkpp8CMb sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -25931,7 +25931,7 @@ items: choices: null dynamic: false allowNull: false - - id: xiDqAeeRr1LqYabp17WciD + - id: f1PzdBqhkfrqtfszB6CZmk sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -25948,7 +25948,7 @@ items: choices: null dynamic: false allowNull: false - - id: 939rX9rNsPzToLou8v32Fi + - id: 9VYsVJLuNHXWfGxwx6rBwE sortOrder: 23 fieldKey: time_zone label: Time zone @@ -25963,7 +25963,7 @@ items: choices: null dynamic: false allowNull: false - - id: d63HrHJUBm5ANC1W8x7qPD + - id: 94v1ahzVgXfUbv9AFQBH8S sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -25978,7 +25978,7 @@ items: choices: null dynamic: false allowNull: false - - id: aW3XkeWTRZx5VippFvdnRk + - id: kN39V8o8wr72JsRVLVaoPu sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -25992,7 +25992,7 @@ items: choices: null dynamic: false allowNull: false - - id: pEtpN2Hb2vkA8Q8xRZ1BEP + - id: vvZq7hgFqoNZYb9E4Brbcc sortOrder: 26 fieldKey: _update_existing_only label: Update Existing Only @@ -26007,7 +26007,7 @@ items: choices: null dynamic: false allowNull: false - - id: deNbLhqaVWQ3a5ekv2Dgjr + - id: uPNDHHnwLN8SHiqB1QX8Ja sortOrder: 27 fieldKey: enable_batching label: Batch Data to Braze @@ -26030,7 +26030,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: hrPz9vH7A3YkY4MRK8BZVJ + - id: idN8BsUUQpAsPMeik6Qo82 sortOrder: 0 fieldKey: external_id label: External User ID @@ -26044,7 +26044,7 @@ items: choices: null dynamic: false allowNull: false - - id: pkkSSueQLUhwMNeKHJyqWm + - id: 24HWtfrrPYB6ZZun6jLH3b sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -26058,7 +26058,7 @@ items: choices: null dynamic: false allowNull: false - - id: vBJnn5mz3hNu55TfrA5FVw + - id: ehoVCzYtQWaaPDwxaXeCVZ sortOrder: 2 fieldKey: email label: Email @@ -26078,7 +26078,7 @@ items: choices: null dynamic: false allowNull: false - - id: fh8McJPhdVkZ7M1GjPQnjq + - id: ww3z1tqiauUyFEGXigGTQ7 sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -26092,7 +26092,7 @@ items: choices: null dynamic: false allowNull: true - - id: mvefY6PdaWM3CrxHwZkuR6 + - id: bfSZdcMpNftETUKPp9pmcF sortOrder: 4 fieldKey: name label: Event Name @@ -26106,7 +26106,7 @@ items: choices: null dynamic: false allowNull: false - - id: jFGB75TdxH1midEQnvCNtB + - id: oUxzSYWEHAdAipLXaDnJpU sortOrder: 5 fieldKey: time label: Time @@ -26120,7 +26120,7 @@ items: choices: null dynamic: false allowNull: false - - id: qy1WJxzc3uSCPUiDrMMwZS + - id: 9WPvGDKLhKMLU4VGEx5Umi sortOrder: 6 fieldKey: properties label: Event Properties @@ -26134,7 +26134,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2kskmcKBRxNct89Nr21iZA + - id: pUiv8Kv5orKaqXDuXmgLbM sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -26149,7 +26149,7 @@ items: choices: null dynamic: false allowNull: false - - id: r1qeUDq9S5yQv8Bq3raCyt + - id: oQLxQU8Mo7rtKygwJ8HxHe sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -26172,7 +26172,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: 6dz2NH94u6YHzeqgdnYfKf + - id: hLbB39Duo6LaXwfZxyjaGn sortOrder: 0 fieldKey: external_id label: External User ID @@ -26186,7 +26186,7 @@ items: choices: null dynamic: false allowNull: false - - id: ogekSoMUqWKsis21mVdSwG + - id: n9Hhv3SXjQXpcU8K1gNiia sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -26200,7 +26200,7 @@ items: choices: null dynamic: false allowNull: false - - id: cZn4F9NYmrHKW8dezN41Rd + - id: soQABmoy5PfkpVSMowdxQu sortOrder: 2 fieldKey: email label: Email @@ -26214,7 +26214,7 @@ items: choices: null dynamic: false allowNull: false - - id: oSYr6JRDq8Lzbh8cbezbso + - id: uXxxYK3WayNvCyYEv2Q6wX sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -26228,7 +26228,7 @@ items: choices: null dynamic: false allowNull: true - - id: tzcURC4EbRDPsK2V6U8s5R + - id: 9b5knhrzhnDo1CqSYDLUjQ sortOrder: 4 fieldKey: time label: Time @@ -26242,7 +26242,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8G7P2UkSm2HNmyMyeGWV4k + - id: fXrm6134DMqhCk2FnoHPL6 sortOrder: 5 fieldKey: products label: Products @@ -26256,7 +26256,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9i4fK4YwETdw9pd9nGRw36 + - id: 33vVRBawSmNvJkBQk6fcDr sortOrder: 6 fieldKey: properties label: Event Properties @@ -26270,7 +26270,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6ETQi1B982NFyz9T3D58Bd + - id: rJAx1FYFhqYQ54azvswWdc sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -26285,7 +26285,7 @@ items: choices: null dynamic: false allowNull: false - - id: gtNdLnuNQVuqRfeeuvwb83 + - id: 78161xeH8FqDD8opHQrvf6 sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -26322,7 +26322,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 4yze3B4RebQRNy5t249sdN + - id: 3cb7MT8xNiV1z5hf9gNHFw sortOrder: 0 fieldKey: external_id label: External ID @@ -26334,7 +26334,7 @@ items: choices: null dynamic: false allowNull: false - - id: khtVtUBsXZ3dXD7uNAdyT9 + - id: 2RTduyrFf1V7x5pQUe7ikT sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -26348,7 +26348,7 @@ items: choices: null dynamic: false allowNull: false - - id: vzWebkoqo9wNospgS2ft3v + - id: gNXa6LNDdJHaSH3akcUEGC sortOrder: 2 fieldKey: merge_behavior label: Merge Behavior @@ -26377,7 +26377,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: iKDENKBGFN17vQk527V39 + - id: rUeLDv9qHRURadsrkd3Yk3 sortOrder: 0 fieldKey: external_id label: External ID @@ -26389,7 +26389,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8oXLyuZuAvbhFWC4FkQvT + - id: aERBzxvLdeaeQKHSMgJTPj sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -26401,7 +26401,7 @@ items: choices: null dynamic: false allowNull: false - - id: s1DvRj3mZTRTG9nnYbeCxk + - id: bkFACPB6x98Lie1Fda7fk6 sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -26421,7 +26421,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: oe3hf8kRGhTDXC51z8yFgG + - id: vYQhBQtBSRwjMrt29DoXgS sortOrder: 0 fieldKey: external_id label: External User ID @@ -26435,7 +26435,7 @@ items: choices: null dynamic: false allowNull: false - - id: 51NMeWJpAvs7eLZDk3vhLQ + - id: hkvGTFjZ6Bax9MAwPRYbGF sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -26449,7 +26449,7 @@ items: choices: null dynamic: false allowNull: false - - id: wJXPFHyq84k21N1SwV533x + - id: ozoRhdaKpah2RrU9PRn12z sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -26463,7 +26463,7 @@ items: choices: null dynamic: false allowNull: true - - id: hbgP26NkcwSYuR92ubBnnY + - id: aMXNyX7ZZErrD2hDjbP1eN sortOrder: 3 fieldKey: country label: Country @@ -26477,7 +26477,7 @@ items: choices: null dynamic: false allowNull: true - - id: uwhpBXucF3BZNN7UBu5o43 + - id: 7Ps9fwccW6fgrn18fQgnCJ sortOrder: 4 fieldKey: current_location label: Current Location @@ -26494,7 +26494,7 @@ items: choices: null dynamic: false allowNull: true - - id: oJ3EoesYT598C1ou5ndKpg + - id: nudus8SaESbh41c6tJF53K sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -26506,7 +26506,7 @@ items: choices: null dynamic: false allowNull: true - - id: v8pMqaaDuCwHyn94fvGK12 + - id: iSMvPjEud8TQPgUVPbJqBA sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -26518,7 +26518,7 @@ items: choices: null dynamic: false allowNull: true - - id: rXMEVupni5zC1VNz7JWwBf + - id: oSvGrukS5sZfPsAoagjN2u sortOrder: 7 fieldKey: dob label: Date of Birth @@ -26530,7 +26530,7 @@ items: choices: null dynamic: false allowNull: true - - id: kCpEhQzeXn4cDbdF9qZpML + - id: pLKmUGw3qQbqKhdrTonXXH sortOrder: 8 fieldKey: email label: Email @@ -26544,7 +26544,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8dbLLfLef3eJTjWF129SpW + - id: 5ygy8zE2bEWNr2UrDLYiQh sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -26559,7 +26559,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4iZ2iHgrchb8SEAin3ye2u + - id: qCwVXsMutPypW18TJg26u9 sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -26573,7 +26573,7 @@ items: choices: null dynamic: false allowNull: false - - id: btZsBGvZbSBXicy8iay7zs + - id: 2WrDnVmaisgqyvyibaxxEZ sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -26587,7 +26587,7 @@ items: choices: null dynamic: false allowNull: false - - id: wakkz6XuvZXPipP81QvPx4 + - id: kKjxKnHiJex9RWsaa9rXua sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -26601,7 +26601,7 @@ items: choices: null dynamic: false allowNull: false - - id: vTTP7xpe4T7rGhvCrXkTE7 + - id: en2thLvfPsCKwPbZJPdxpB sortOrder: 13 fieldKey: first_name label: First Name @@ -26615,7 +26615,7 @@ items: choices: null dynamic: false allowNull: true - - id: ssSsnHKuPSFuQFc1MV17ZD + - id: kwgxXaXX2pwZdNQfPStmdm sortOrder: 14 fieldKey: gender label: Gender @@ -26631,7 +26631,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8L9aku58jMfmPMGfHhbsFw + - id: cmRCpXwoX8vLLbyGteKRM5 sortOrder: 15 fieldKey: home_city label: Home City @@ -26645,7 +26645,7 @@ items: choices: null dynamic: false allowNull: true - - id: xiBU6eUE6uzLDrBZv2jhVB + - id: n5P4heq36hTpPLwXkhzVgN sortOrder: 16 fieldKey: image_url label: Image URL @@ -26659,7 +26659,7 @@ items: choices: null dynamic: false allowNull: true - - id: 3rP2hq85GNyU8U9XgoSZCY + - id: jffmLbBYKzecGNjZtjTE6C sortOrder: 17 fieldKey: language label: Language @@ -26671,7 +26671,7 @@ items: choices: null dynamic: false allowNull: true - - id: iQcmVPWnTKVzvsxAKYj9mj + - id: 4tNPdHXNSqBjqFgk3dFEzt sortOrder: 18 fieldKey: last_name label: Last Name @@ -26685,7 +26685,7 @@ items: choices: null dynamic: false allowNull: false - - id: t3g6HprsnqCh2M3fo9BXRM + - id: gg6m4B64jj32e9pw4J52dQ sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -26697,7 +26697,7 @@ items: choices: null dynamic: false allowNull: true - - id: xmeuVQp8uMCXZXZm9UXMxH + - id: qXu4FwGxWnj4U6hiqwWFsj sortOrder: 20 fieldKey: phone label: Phone Number @@ -26711,7 +26711,7 @@ items: choices: null dynamic: false allowNull: true - - id: rroMN2p5FLuExhzZWuHqtc + - id: gDWuyKzqznWybLTXWtmCHp sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -26726,7 +26726,7 @@ items: choices: null dynamic: false allowNull: false - - id: kEvbfkKEX1uqhzMWuNwmp2 + - id: phghTGF2vszJUHkcXW6Rsq sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -26743,7 +26743,7 @@ items: choices: null dynamic: false allowNull: false - - id: rjGXsxbfqWbr3ZeFHwz27z + - id: mXmb3BWpFxwwaiY4MjyrjV sortOrder: 23 fieldKey: time_zone label: Time zone @@ -26758,7 +26758,7 @@ items: choices: null dynamic: false allowNull: false - - id: u45mgdB6SJ8dqFavPgnbRT + - id: 7NFgwdC3prHZ3ug1ANE6LX sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -26773,7 +26773,7 @@ items: choices: null dynamic: false allowNull: false - - id: w5XpKj2h7c8cseVPiE2Kfr + - id: cYivVwQyyiSx8mYSPLpi4b sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -26787,7 +26787,7 @@ items: choices: null dynamic: false allowNull: false - - id: u5Xa38kWR8zMCfDEYn4inB + - id: qtceg6gCbWDQy5UC7EWwNo sortOrder: 26 fieldKey: enable_batching label: Batch Data to Braze @@ -26810,7 +26810,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: c5QwcdEX6QoGvfR68ZvJAK + - id: rthiwKzEQ7ARfu9x4U2wLK sortOrder: 0 fieldKey: external_id label: External User ID @@ -26824,7 +26824,7 @@ items: choices: null dynamic: false allowNull: false - - id: aV15trPsL3nD8meUQrZYcn + - id: YMoWgcoRgybj21SbzzYFk sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -26838,7 +26838,7 @@ items: choices: null dynamic: false allowNull: false - - id: yxSQtvpEpaBSuCNVCyaLx + - id: 4Cp7tPsoC7mGhq5B6499dY sortOrder: 2 fieldKey: email label: Email @@ -26858,7 +26858,7 @@ items: choices: null dynamic: false allowNull: false - - id: w3rt9rnM9RQLGbxwddWfpq + - id: ch7NvVYP796QrNzgoPy82F sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -26872,7 +26872,7 @@ items: choices: null dynamic: false allowNull: true - - id: 5dnLJugnsTMbysGFrvabaE + - id: w6xo2cAXhzHPrUZ9JVRrxv sortOrder: 4 fieldKey: name label: Event Name @@ -26886,7 +26886,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9ZM31KcgrubTvn73paBiEn + - id: iPimzrFeFt2Qoh25ryk8nv sortOrder: 5 fieldKey: time label: Time @@ -26900,7 +26900,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9BZDbkF514gUW1rFFpgwW7 + - id: 8Uddgxrzh722LQXiouCMqG sortOrder: 6 fieldKey: properties label: Event Properties @@ -26914,7 +26914,7 @@ items: choices: null dynamic: false allowNull: false - - id: r1YAg5cWiqtA5uEKuv9QFN + - id: k9a7HdNHDE5XNAWYCdgQtD sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -26939,7 +26939,7 @@ items: hidden: false defaultTrigger: null fields: - - id: pA9P84W33KWLVMeBaMrGvc + - id: f5goLMUFREmXWXhNvh5RSB sortOrder: 0 fieldKey: external_id label: External ID @@ -26951,7 +26951,7 @@ items: choices: null dynamic: false allowNull: false - - id: q2RV1ddCen5DeQrq2zM9CJ + - id: qVzGnW48Gmn1MKRPrXAVmb sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -26965,7 +26965,7 @@ items: choices: null dynamic: false allowNull: false - - id: uSSwiZtKntADfysMTHzLwT + - id: wQpWbuYRBdEzLUZAqkVdQ5 sortOrder: 2 fieldKey: email_to_identify label: Email to Identify @@ -26977,7 +26977,7 @@ items: choices: null dynamic: false allowNull: false - - id: w5gtkhWKoCxSfqngqoiNeG + - id: uPvXF5jWP8bE8gALBkYJcP sortOrder: 3 fieldKey: prioritization label: Prioritization @@ -26991,7 +26991,7 @@ items: choices: null dynamic: false allowNull: false - - id: 36vfotFjwJdrgsFqigq3s9 + - id: i6vzA1zw97cdG1zp8k78P sortOrder: 4 fieldKey: merge_behavior label: Merge Behavior @@ -27020,7 +27020,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: hn9sGteqXqBRngR2DLmBf6 + - id: dE5a3kB3ycWpojEr5hZcsv sortOrder: 0 fieldKey: external_id label: External ID @@ -27032,7 +27032,7 @@ items: choices: null dynamic: false allowNull: true - - id: nJsA2ACXiwnMj2EeV5yjG6 + - id: tL3uUBXRBatN3GJDESFRrd sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -27044,7 +27044,7 @@ items: choices: null dynamic: false allowNull: false - - id: f1GfS5BFT1scHVFbxhcjZL + - id: qK4jMUW9XPjb1mHBpvVGbX sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -27064,7 +27064,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: ixMtCebbqNKfv1aGCtME4K + - id: aFsksKW75QBQ9CWEGBi3rd sortOrder: 0 fieldKey: external_id label: External User ID @@ -27078,7 +27078,7 @@ items: choices: null dynamic: false allowNull: false - - id: ruCU35Wqs8T4PevS4ZmU5V + - id: rryo9XMY3fXDuNzmW9afWk sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -27092,7 +27092,7 @@ items: choices: null dynamic: false allowNull: false - - id: uzZDPa7uFWQpH1pLh3XsMz + - id: qSZi8KpozddwH6GURYKSu3 sortOrder: 2 fieldKey: email label: Email @@ -27106,7 +27106,7 @@ items: choices: null dynamic: false allowNull: false - - id: iEEVn7biQdecud9SGoYvhp + - id: 8r9JQ1a5WPe9qWSRCpL7Ne sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -27120,7 +27120,7 @@ items: choices: null dynamic: false allowNull: true - - id: cKNB3NGqDqEjnbSb8pP3Qy + - id: pxpZyTEJQNcsnH53o5m3ti sortOrder: 4 fieldKey: time label: Time @@ -27134,7 +27134,7 @@ items: choices: null dynamic: false allowNull: false - - id: mGzGN6fp6K2d46va9kBL + - id: qE31XkHNWKFhhk2Y2Q4arA sortOrder: 5 fieldKey: products label: Products @@ -27148,7 +27148,7 @@ items: choices: null dynamic: false allowNull: false - - id: WPEzRmRkZCNpmp6TdP8rf + - id: 4tDCwW3haMo5Hs6BiTUVDB sortOrder: 6 fieldKey: properties label: Event Properties @@ -27162,7 +27162,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4ah6KWaND1oo82BTLggE6z + - id: ppMvu9zhoYdzRxLyKbyWKo sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -27185,7 +27185,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: sPTCuHRcJCeAnecUuVqf2r + - id: oErXBStj5XSh4wqnfD2veM sortOrder: 0 fieldKey: campaign_id label: Campaign ID @@ -27199,7 +27199,7 @@ items: choices: null dynamic: true allowNull: false - - id: dEHae358DEQhGmePgivDR3 + - id: 7RRN8kdi2q5PiBaZbfrQgb sortOrder: 1 fieldKey: send_id label: Send ID @@ -27213,7 +27213,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5NhPCujCPP7txQ5WpPCFGS + - id: qa7eF838Acuj3Np8SKjsHm sortOrder: 2 fieldKey: trigger_properties label: Trigger Properties @@ -27230,7 +27230,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2oemWzNaa6oZaqVhxbPwPN + - id: 2VJW9dMurzseZkz2KCUAbX sortOrder: 3 fieldKey: broadcast label: Broadcast @@ -27245,7 +27245,7 @@ items: choices: null dynamic: false allowNull: false - - id: 84pncUPkpAegESBR3Em9nE + - id: ayF1yjAmCX6J1vq4cSpbko sortOrder: 4 fieldKey: attachments label: Attachments @@ -27257,7 +27257,7 @@ items: choices: null dynamic: false allowNull: false - - id: bddJKZzjdJz4tmW3bzVN3N + - id: pZtua926qke3JYoXrNxVeR sortOrder: 5 fieldKey: recipients label: Recipients @@ -27271,7 +27271,7 @@ items: choices: null dynamic: false allowNull: false - - id: ew1gYTSzqreFsASGNodNpo + - id: 4iFQKh3Vq1uSUR3rgxb1Uv sortOrder: 6 fieldKey: prioritization label: Prioritization @@ -27285,7 +27285,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9ULKQQi91KHGaDwAUjrcZn + - id: bii8tTP4Y3rYj43XSYwrxD sortOrder: 7 fieldKey: audience label: Audience @@ -27307,7 +27307,7 @@ items: hidden: false defaultTrigger: null fields: - - id: bPkKYCKGeSfiFSqPANm25m + - id: mgtEZymc551vRbskTtALxC sortOrder: 0 fieldKey: item label: Catalog item to upsert @@ -27322,7 +27322,7 @@ items: choices: null dynamic: true allowNull: false - - id: wD8HrbEBhG1oYSnAK17wpx + - id: vjdGoeS7pSAoDx7eGJ7nYH sortOrder: 1 fieldKey: item_id label: Item ID @@ -27336,7 +27336,7 @@ items: choices: null dynamic: false allowNull: false - - id: cSe2bHd9wSLF41wLBEWvAo + - id: 96qitbsPikhayWg5YcNsZR sortOrder: 2 fieldKey: enable_batching label: Batch Data to Braze? @@ -27349,7 +27349,7 @@ items: choices: null dynamic: false allowNull: false - - id: uKkyRXx83KMULmRcUA2JBU + - id: 9Ef1hYUCZpegvfWvEUFq1m sortOrder: 4 fieldKey: operation label: Operation @@ -27365,7 +27365,7 @@ items: value: select dynamic: false allowNull: false - - id: whMhv8Xne4y4MwRdzFs87E + - id: dByxzCbtHR7KFBwQUNYx99 sortOrder: 5 fieldKey: selected_catalog_name label: Catalog Name @@ -27377,7 +27377,7 @@ items: choices: null dynamic: true allowNull: false - - id: oopajGWsU8s53yYzVZ6ACF + - id: a3TRBGw1kYC3Teg5GMprQT sortOrder: 6 fieldKey: created_catalog_name label: Catalog Name @@ -27391,7 +27391,7 @@ items: choices: null dynamic: false allowNull: false - - id: hnB1vZZKnwRmmkuy5RSkEC + - id: qb19tg6p3NLAQH52h3azpP sortOrder: 7 fieldKey: description label: Catalog Description @@ -27403,7 +27403,7 @@ items: choices: null dynamic: false allowNull: false - - id: jUZc1QZuEQXLG5xWjkDFGP + - id: igpkUuGk6CSgYh4jf3ETmK sortOrder: 8 fieldKey: columns label: Catalog Fields @@ -27417,7 +27417,7 @@ items: choices: null dynamic: false allowNull: false - - id: cGqJWefruj1dQHLfZDjJpn + - id: gYfYKohnE3K3Tu6vWhRsEx sortOrder: 9 fieldKey: onMappingSave label: Select or Create a Catalog @@ -27440,7 +27440,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: oiGEFgrdhJA3v32F4zTkeK + - id: sANpexRqwJKtK5qrBJ89yK sortOrder: 0 fieldKey: canvas_id label: Canvas ID @@ -27454,7 +27454,7 @@ items: choices: null dynamic: true allowNull: false - - id: wxRm1RbcZysJpqUBF3C9zA + - id: n5r68PyiJbww5YkYvLCX9J sortOrder: 1 fieldKey: canvas_entry_properties label: Canvas Entry Properties @@ -27471,7 +27471,7 @@ items: choices: null dynamic: false allowNull: false - - id: bEuxY3oC6xbNHVeCdNXeYv + - id: hWGwLz1WZzrr656L1JxJky sortOrder: 2 fieldKey: broadcast label: Broadcast @@ -27485,7 +27485,7 @@ items: choices: null dynamic: false allowNull: false - - id: cn4tUKL6RL5DVizmrEL6Zy + - id: sxnHQfxhf83vXTu53hsQJq sortOrder: 3 fieldKey: recipients label: Recipients @@ -27499,7 +27499,7 @@ items: choices: null dynamic: false allowNull: false - - id: q6ZN3k9SeiLdRncgf15KCC + - id: qoNQUgA7i1cJEtgC8VT8yv sortOrder: 4 fieldKey: prioritization label: Prioritization @@ -27513,7 +27513,7 @@ items: choices: null dynamic: false allowNull: false - - id: oEKGVECL2P4CyyxwQiXAfb + - id: iJYrS4Ne2hEdr97t53L8ZX sortOrder: 5 fieldKey: audience label: Audience @@ -27528,6 +27528,25 @@ items: dynamic: false allowNull: false presets: + - actionId: vE7Gf9yobj2gTuMBhwmg7g + name: Order Completed Calls + fields: + external_id: + '@path': $.userId + email: + '@path': $.traits.email + braze_id: + '@path': $.properties.braze_id + time: + '@path': $.receivedAt + products: + '@path': $.properties.products + properties: + '@path': $.properties + _update_existing_only: false + enable_batching: true + batch_size: 75 + trigger: event = "Order Completed" - actionId: 2P24zUSAL8BUpyGYNGmD7M name: Identify Calls fields: @@ -27587,25 +27606,6 @@ items: enable_batching: true batch_size: 75 trigger: type = "track" and event != "Order Completed" - - actionId: vE7Gf9yobj2gTuMBhwmg7g - name: Order Completed Calls - fields: - external_id: - '@path': $.userId - email: - '@path': $.traits.email - braze_id: - '@path': $.properties.braze_id - time: - '@path': $.receivedAt - products: - '@path': $.properties.products - properties: - '@path': $.properties - _update_existing_only: false - enable_batching: true - batch_size: 75 - trigger: event = "Order Completed" partnerOwned: false - id: 63872c01c0c112b9b4d75412 display_name: Braze Cohorts @@ -36336,9 +36336,9 @@ items: - Email Marketing - Marketing Automation logo: - url: https://cdn-devcenter.segment.com/7746b31d-bf00-4b09-95a5-458a79412b96.svg + url: https://cdn-devcenter.segment.com/87486058-b0a1-4b93-9409-b861d1cc8bfc.svg mark: - url: https://cdn-devcenter.segment.com/8c6dbc6d-a068-470f-8dea-fbf5e018d664.svg + url: https://cdn-devcenter.segment.com/e60f5bb8-f7c4-4ccd-a3ed-c1f076790a99.svg methods: track: true identify: true @@ -78083,7 +78083,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: psH3mh5nGaAqwqWZiHoV2v + - id: jKha8vcFKRDa3n9zQi25Zi sortOrder: 0 fieldKey: email label: Email @@ -78099,7 +78099,7 @@ items: choices: null dynamic: false allowNull: false - - id: uNvP8gTtWLWVndf3QwQzMh + - id: eVj9ANPjfTjbcrbhSjJYEY sortOrder: 1 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -78111,7 +78111,7 @@ items: choices: null dynamic: false allowNull: false - - id: kxooop3Pg9YhLAVMPgYBvm + - id: uM85Hdwk5juCsGFkq2Yvvp sortOrder: 2 fieldKey: phone_number label: Phone Number @@ -78128,7 +78128,7 @@ items: choices: null dynamic: false allowNull: false - - id: 35q8tEiCNoBMvepabdEaVX + - id: rDBZEaRvguF28NHupzggwA sortOrder: 3 fieldKey: country_code label: Country Code @@ -78637,7 +78637,7 @@ items: value: ZW dynamic: false allowNull: false - - id: dk37MtDtFtWiNoggxk5Vc2 + - id: k5RCVGhmz9wtUNPPue3td6 sortOrder: 4 fieldKey: external_id label: External ID @@ -78652,7 +78652,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8gRvQcfxfzhnoZWShcA6yd + - id: 42Jphn41tdDvLxQiRWofrM sortOrder: 5 fieldKey: first_name label: First Name @@ -78666,7 +78666,7 @@ items: choices: null dynamic: false allowNull: false - - id: dCmEt1X7wMz2ukUna4KpEJ + - id: jjubA5imQBfP1GPYzGUgs8 sortOrder: 6 fieldKey: last_name label: Last Name @@ -78680,7 +78680,7 @@ items: choices: null dynamic: false allowNull: false - - id: Ro6yGr6wuKkdXqAEcWjvo + - id: wA5WHfF1Fc1oyn8WKW1GLu sortOrder: 7 fieldKey: organization label: Organization @@ -78696,7 +78696,7 @@ items: choices: null dynamic: false allowNull: false - - id: suMaaUMa4Kwm35RZWDvEwt + - id: RToTARLQ3t1chPyC9LaM9 sortOrder: 8 fieldKey: title label: Title @@ -78710,7 +78710,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7c5U6XkNRByVMVq33oZ2Gf + - id: kfNKgMBD9oeXpSJztd9Car sortOrder: 9 fieldKey: image label: Image @@ -78724,7 +78724,7 @@ items: choices: null dynamic: false allowNull: false - - id: tFRSoTGqf9TD1QuD5sF5sF + - id: do48pYZ88HqgEFseJ99TEq sortOrder: 10 fieldKey: location label: Location @@ -78747,7 +78747,7 @@ items: choices: null dynamic: false allowNull: false - - id: vjhd3L4RSTFFComPMh5VeY + - id: kYtihbzKHarCS9QNKpJepU sortOrder: 11 fieldKey: properties label: Properties @@ -78763,7 +78763,7 @@ items: choices: null dynamic: false allowNull: false - - id: uzgDUrkW7c9PMWwXcL6KBs + - id: qVxSUH2EK7P7Xpr9aCzw8A sortOrder: 12 fieldKey: list_id label: List @@ -78775,7 +78775,7 @@ items: choices: null dynamic: true allowNull: false - - id: tEmhC8a9Fr6oVACBFTLbzs + - id: a722YHhX8juoHuGSu15L5C sortOrder: 16 fieldKey: list_identifier label: Existing List ID @@ -78789,7 +78789,7 @@ items: choices: null dynamic: true allowNull: false - - id: nX89QpMzLSo88HHCv4Q2tw + - id: vUkG5NYrHA5uzhMRNEq7W3 sortOrder: 17 fieldKey: list_name label: Name of list to create @@ -78801,7 +78801,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3eaF1RdjF5s8R4sVfYDAkn + - id: kgUtwivBuvVEWaCA556yMK sortOrder: 18 fieldKey: retlOnMappingSave label: Connect to a static list in Klaviyo @@ -78824,7 +78824,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: 9moGkbvWYP5nGFkH1tjcic + - id: jzboicyJyfDdzFvP4a76UW sortOrder: 0 fieldKey: profile label: Profile @@ -78836,7 +78836,7 @@ items: choices: null dynamic: false allowNull: false - - id: bdjTtMLr7Cqkfm71NqTnzr + - id: uoaGhss7yL8arFZTZUQq5P sortOrder: 1 fieldKey: properties label: Properties @@ -78850,7 +78850,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4UkG5cGttRUPM2dH9Gh8U9 + - id: tdT7NBhxPkmSW4AKWq4mQh sortOrder: 2 fieldKey: time label: Time @@ -78869,7 +78869,7 @@ items: choices: null dynamic: false allowNull: false - - id: vLzteKEPs9rE1f583KKnjK + - id: 2GXC9cmfftBemffwB93vSd sortOrder: 3 fieldKey: value label: Value @@ -78883,7 +78883,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4b7a1uN2PZmpQV4pQ6jUoe + - id: picLsVjnYVVhV87iLC7tyu sortOrder: 4 fieldKey: unique_id label: Unique ID @@ -78903,7 +78903,7 @@ items: choices: null dynamic: false allowNull: false - - id: o6CeLsPKRN6msCYPEHcBh3 + - id: e8e4ewmWnX2D71v9uHbn7c sortOrder: 5 fieldKey: products label: Products @@ -78915,7 +78915,7 @@ items: choices: null dynamic: false allowNull: false - - id: t9X2DNPFnTMsoTVCkmfns9 + - id: fyB74sfELzhUdqDQjd2UEn sortOrder: 6 fieldKey: event_name label: Event Name @@ -78930,7 +78930,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4wcMU2stCNrszts8rftx2A + - id: fSomoGsssVnTEuFQ3vFdCq sortOrder: 7 fieldKey: product_event_name label: Product Event Name @@ -78954,7 +78954,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: sPYKJuaUJKEnY5uWVTWM6M + - id: hQRtitfxoKDSps5kfTvXeD sortOrder: 0 fieldKey: profile label: Profile @@ -78966,7 +78966,7 @@ items: choices: null dynamic: false allowNull: false - - id: jfrmdPFCKrfY9VErnzsKSU + - id: oF1pmSb1FEaq25odehpBLN sortOrder: 1 fieldKey: metric_name label: Metric Name @@ -78980,7 +78980,7 @@ items: choices: null dynamic: false allowNull: false - - id: njcSX553MqzbSY3J1Wueb9 + - id: nAWvCVjEb2rcw9E6zMhWv sortOrder: 2 fieldKey: properties label: Properties @@ -78994,7 +78994,7 @@ items: choices: null dynamic: false allowNull: false - - id: jUwNb8rpAat4XWgskYhep8 + - id: iPPQNuDhavA3gCixpuqn6c sortOrder: 3 fieldKey: time label: Time @@ -79013,7 +79013,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9fC4qD3zpm6fnfVnCWU3R5 + - id: icVF8Jy2iLVokVeHQWZMsu sortOrder: 4 fieldKey: value label: Value @@ -79027,7 +79027,7 @@ items: choices: null dynamic: false allowNull: false - - id: cnULPG6z3o4qKLCiFmxPrM + - id: kvuYYrR1PCo1EWzvBzhin5 sortOrder: 5 fieldKey: unique_id label: Unique ID @@ -79047,7 +79047,7 @@ items: choices: null dynamic: false allowNull: false - - id: siz1crCeGz2yg3twoA9MPx + - id: wM6FSo6466vTxDQzDtgbbu sortOrder: 6 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -79068,7 +79068,7 @@ items: hidden: false defaultTrigger: event = "Audience Exited" fields: - - id: x9fpYFcsF325YUEGYVoenV + - id: h7sZWgKBkZ9CBHonSDoD5H sortOrder: 0 fieldKey: email label: Email @@ -79082,7 +79082,7 @@ items: choices: null dynamic: false allowNull: false - - id: nXH8cyTuCZy534BuoD1n7A + - id: 6vNrzjwTGxbjFmfX7Pfppd sortOrder: 1 fieldKey: external_id label: External ID @@ -79096,7 +79096,7 @@ items: choices: null dynamic: false allowNull: false - - id: CvkstHgJ1iD1Y62ow9bzU + - id: nhFXvFsDFHAqvFmeAtsfFA sortOrder: 3 fieldKey: phone_number label: Phone Number @@ -79113,7 +79113,7 @@ items: choices: null dynamic: false allowNull: false - - id: inEA1R6m8UdPzCZACbeMP6 + - id: 6fuvuXhGHBkw2FPDuG8Xk3 sortOrder: 4 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -79126,7 +79126,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5mBQXywjGJL53bYubSdAqo + - id: nhCURcc4GfuBcMJxYxixuB sortOrder: 5 fieldKey: country_code label: Country Code @@ -79643,7 +79643,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: jyXQzqg1DVL5pEECEESdRA + - id: onU7GeoiNCd52UARGkDyDB sortOrder: 0 fieldKey: email label: Email @@ -79657,7 +79657,7 @@ items: choices: null dynamic: false allowNull: false - - id: gZWgAU6GaN9Fak1LgsMaJ2 + - id: tygpoevD79Se4ZbPbPNYcH sortOrder: 1 fieldKey: phone_number label: Phone Number @@ -79674,7 +79674,7 @@ items: choices: null dynamic: false allowNull: false - - id: gj3NwR52jCcsJDgRZ7aYsS + - id: 72gwqYNbjeJ1H5rtFaVuun sortOrder: 3 fieldKey: external_id label: External ID @@ -79688,7 +79688,7 @@ items: choices: null dynamic: false allowNull: false - - id: kyHGe67xXVg8EjoJ1QqBy4 + - id: 4wsCLSQDm2KgeE7VCF4tvo sortOrder: 4 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -79701,7 +79701,7 @@ items: choices: null dynamic: false allowNull: false - - id: kMwDvyCVr3mu8UdrWaWtN5 + - id: rJy7boyHwXompfnZV8G9Hc sortOrder: 6 fieldKey: first_name label: First Name @@ -79715,7 +79715,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6WwCmmoDfoMQuzMfWKc5RW + - id: 7dPy7P4Tcin6V89hs2gdTK sortOrder: 7 fieldKey: last_name label: Last Name @@ -79729,7 +79729,7 @@ items: choices: null dynamic: false allowNull: false - - id: hKNGiEHVhRfrco66unJd4P + - id: wgYifTnXFQ52cTn8bopDg4 sortOrder: 8 fieldKey: image label: Image @@ -79743,7 +79743,7 @@ items: choices: null dynamic: false allowNull: false - - id: veBjTr3FuQBsvhfDxewYbG + - id: qbfRewkzR8WaNsuMVSNBDt sortOrder: 9 fieldKey: title label: Title @@ -79757,7 +79757,7 @@ items: choices: null dynamic: false allowNull: false - - id: rp9tx4jTiQNekY7CFhbb2T + - id: 9tevcp8Cyg58PPQWgLg4eD sortOrder: 10 fieldKey: organization label: Organization @@ -79773,7 +79773,7 @@ items: choices: null dynamic: false allowNull: false - - id: xqvi4yshvVuB6heW1JsTPB + - id: pv6WUuiZ8dFk4iSdMnKqaq sortOrder: 11 fieldKey: location label: Location @@ -79796,7 +79796,7 @@ items: choices: null dynamic: false allowNull: false - - id: fUoXCyhoNcxXusuRFP3eMG + - id: dEz5yjaHp3KmYyohguNSN sortOrder: 12 fieldKey: properties label: Properties @@ -79812,7 +79812,7 @@ items: choices: null dynamic: false allowNull: false - - id: bSXvNCrYBXPwwgTe3BCP52 + - id: fhjFshzF6BtBFhom9rh8EH sortOrder: 13 fieldKey: country_code label: Country Code @@ -80329,7 +80329,7 @@ items: hidden: false defaultTrigger: type = "Identify" fields: - - id: 4sWoGT8o1n4g77pcNpzpZP + - id: mueRLFHBZDCTiJQCuKhbTk sortOrder: 0 fieldKey: email label: Email @@ -80343,7 +80343,7 @@ items: choices: null dynamic: false allowNull: false - - id: vZ1aFhZvdxYuYZUmK8x4zv + - id: oPFrX45tL4gxjpe931epL5 sortOrder: 1 fieldKey: external_id label: External ID @@ -80358,7 +80358,7 @@ items: choices: null dynamic: false allowNull: false - - id: pv3rbsFAq7bizxS4VLcQ9Z + - id: 3CPn9s4EE8YAvXicVMrHwx sortOrder: 2 fieldKey: list_id label: List @@ -80370,7 +80370,7 @@ items: choices: null dynamic: true allowNull: false - - id: tJQMM3azsUayz6CrQRYdpr + - id: 74EWaMoEjoUG848uMJq5RS sortOrder: 3 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -80383,7 +80383,7 @@ items: choices: null dynamic: false allowNull: false - - id: g1sMigCrMJiF9vwf9358Ci + - id: vNopxHtN4798izPSemYMiA sortOrder: 5 fieldKey: phone_number label: Phone Number @@ -80400,7 +80400,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6zocEtQMgGMVLQHAovfxot + - id: 3LafQaH7znBAeNFekFPJmu sortOrder: 6 fieldKey: country_code label: Country Code @@ -80917,7 +80917,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "User Subscribed" fields: - - id: 7Lar8JXJ9pqGz1bqGnRuLP + - id: kshdhHhjf66iZw53JP4jCa sortOrder: 0 fieldKey: email label: Email @@ -80939,7 +80939,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5SCMBHSAC1qHbRrsZ3QoMz + - id: qST8R3nTF2imwr3M6V9bm5 sortOrder: 1 fieldKey: phone_number label: Phone Number @@ -80961,7 +80961,7 @@ items: choices: null dynamic: false allowNull: false - - id: vM25UXsXAbTxgZGCqFoMaE + - id: j2Ky8UfaGisDWjaEVRCNig sortOrder: 2 fieldKey: country_code label: Country Code @@ -81470,7 +81470,7 @@ items: value: ZW dynamic: false allowNull: false - - id: 8jeFGWenYFriWVqYQ8NwTL + - id: faYe8qvEVa8eyCJWJnZCvL sortOrder: 3 fieldKey: list_id label: List Id @@ -81485,7 +81485,7 @@ items: choices: null dynamic: true allowNull: false - - id: cHA3mg1dSX1i7fv83koNNV + - id: 3YGr8GYmsN5hQ4QZLyGM1j sortOrder: 4 fieldKey: custom_source label: Custom Source ($source) @@ -81502,8 +81502,24 @@ items: choices: null dynamic: false allowNull: false - - id: 8yQvzPCPXZyKqjxPGDGg31 + - id: v3aZwzQrSUh6r9hKQp5Kzo sortOrder: 5 + fieldKey: historical_import + label: Historical Import + type: BOOLEAN + description: >- + When set to true, the profile will be subscribed as a historical import. + This is useful for importing existing profiles into Klaviyo without + sending them an email or SMS. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qDpwA9fftnuZEfpy5JzhmK + sortOrder: 6 fieldKey: consented_at label: Consented At type: DATETIME @@ -81516,8 +81532,8 @@ items: choices: null dynamic: false allowNull: false - - id: jfASe8xP3kzqBAMhMs5pxo - sortOrder: 6 + - id: oKrpoLtsxh7mAGfiW8UKym + sortOrder: 7 fieldKey: enable_batching label: Batch Data to Klaviyo type: BOOLEAN @@ -81536,7 +81552,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "User Unsubscribed" fields: - - id: b16sEJ8ZsjUQvSiWSWp6yV + - id: tYGkLpEwhTPBWsJKNx8Su6 sortOrder: 0 fieldKey: email label: Email @@ -81558,7 +81574,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4EnwEPyEAGLgx7bKg3yVXY + - id: 5mFaagb3XRFKNr5pzcm2b4 sortOrder: 1 fieldKey: phone_number label: Phone Number @@ -81580,7 +81596,7 @@ items: choices: null dynamic: false allowNull: false - - id: r1DajHGgYEerWaEmrth9h4 + - id: krpYAFsuUWomwmc7RnqKNK sortOrder: 2 fieldKey: country_code label: Country Code @@ -82089,7 +82105,7 @@ items: value: ZW dynamic: false allowNull: false - - id: qFhhdiJNjbuB1UEAvLdFDK + - id: xzrkuef5bwxbyPG5RxLGgP sortOrder: 3 fieldKey: list_id label: List Id @@ -82103,7 +82119,7 @@ items: choices: null dynamic: true allowNull: false - - id: beWdRFWtxv4uapfJxwzMXb + - id: fCnmfYh5uz1FN8wpdaQSVd sortOrder: 4 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -84633,7 +84649,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: p4STQ2Bktmjj7oKxWteodJ + - id: bG7p4gBRVor9W2cpNgVo7Y sortOrder: 0 fieldKey: event_name label: Event Name @@ -84651,7 +84667,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fFnr29VLAnibybNLqyDRQd + - id: sTck5gv4rpr4Ytb54bsgcd sortOrder: 1 fieldKey: event_type label: Event Type @@ -84666,7 +84682,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2ihu6ZrRmBD9rumCBVyqA1 + - id: tPZqRnyrpcZCFam1fjAQK sortOrder: 2 fieldKey: segment_user_id label: User ID @@ -84681,7 +84697,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qbcYhPevV9fUPShAA7uTLL + - id: pXxJb1AjJcQshzJq1hLeXc sortOrder: 3 fieldKey: livelike_profile_id label: LiveLike User Profile ID @@ -84696,7 +84712,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8NkPzSCvjBdg41isbWZDb2 + - id: ssAmWCqsKUP7xQM9Wg4xFV sortOrder: 5 fieldKey: custom_id label: Custom ID @@ -84716,7 +84732,7 @@ items: dynamic: false allowNull: false hidden: false - - id: t8V2yA4ZcTaCMDpdwfY2sX + - id: mLpype1QecLqkwtAnoUyc4 sortOrder: 6 fieldKey: timestamp label: Timestamp @@ -84734,7 +84750,7 @@ items: dynamic: false allowNull: false hidden: false - - id: cLkyfDHuRpYuLpNrmHoKpP + - id: jE7VA9DydShkYwQPcC8SYg sortOrder: 7 fieldKey: properties label: Event Properties @@ -84759,7 +84775,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: ahGL5iZiqgyD8KVKQSk9AL + - id: 7CwiWQFxVRE4NtZPWPMxCi sortOrder: 0 fieldKey: audience_id label: Segment Audience ID @@ -84773,7 +84789,7 @@ items: choices: null dynamic: false allowNull: false - - id: amsVBCYihJQTusBp2pZscs + - id: hpRmg1vQNDkz9CdjT24Cx4 sortOrder: 1 fieldKey: audience_name label: Segment Audience Name @@ -84787,7 +84803,7 @@ items: choices: null dynamic: false allowNull: false - - id: u3KQPMHZrBmZGL3ePxEpS8 + - id: eo7oYaA4PuKtRpvZ44qBBm sortOrder: 2 fieldKey: action label: Action @@ -84802,7 +84818,7 @@ items: choices: null dynamic: false allowNull: false - - id: cDLfYtf62K1SKnQjzwqSKA + - id: dpPHyShfG1wdFitCfiMVH7 sortOrder: 3 fieldKey: timestamp label: Timestamp @@ -84816,29 +84832,36 @@ items: choices: null dynamic: false allowNull: false - - id: xu2Zi43oXiLq2hXTSerVDK - sortOrder: 5 - fieldKey: traits_or_properties_hidden - label: Traits or Properties hidden + - id: ikpcPk2Yd7Um1gGANMeywK + sortOrder: 4 + fieldKey: additional_user_traits + label: Additional user traits type: OBJECT - description: >- - Hidden field used to figure out if user is added or removed from an - Engage Audience + description: Used for trait values to send to Livelike. placeholder: '' defaultValue: - '@if': - exists: - '@path': $.traits - then: - '@path': $.traits - else: - '@path': $.properties + livelike_profile_id: + '@if': + exists: + '@path': $.traits.livelike_profile_id + then: + '@path': $.traits.livelike_profile_id + else: + '@path': $.properties.livelike_profile_id + email: + '@if': + exists: + '@path': $.traits.email + then: + '@path': $.traits.email + else: + '@path': $.properties.email required: false multiple: false choices: null dynamic: false allowNull: false - - id: rd3ND6ENeRQ58uDM5ZVgCi + - id: 4YHwpQJjX9dHU3RhYmXBAq sortOrder: 6 fieldKey: user_id label: User ID @@ -84852,26 +84875,29 @@ items: choices: null dynamic: false allowNull: false - - id: 92HbHyN84LBFpD6G7ekoYS + - id: xjXtFJhkSWunszHXcMUF3Q sortOrder: 7 - fieldKey: batch_size - label: Batch Size - type: NUMBER - description: The number of records to process in each batch. Default is 100. + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: >- + Enable batching for this action. If enabled, the action will process + records in batches. placeholder: '' - defaultValue: 100 + defaultValue: true required: false multiple: false choices: null dynamic: false allowNull: false - - id: nMtDZnTRVhjnBgyGLFo2t1 + - id: 8LgVSFPCm5NHonkJF3uSPH sortOrder: 8 - fieldKey: enable_batching - label: Enable Batching? - type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: The number of records to process in each batch. Default is 100. + placeholder: '' + defaultValue: 100 required: false multiple: false choices: null @@ -84879,7 +84905,7 @@ items: allowNull: false presets: - actionId: hi6egKehiHEcn789ZZvs18 - name: Screen Calls + name: Page Calls fields: event_name: '@if': @@ -84903,7 +84929,7 @@ items: '@path': $.timestamp properties: '@path': $.properties - trigger: type = "screen" + trigger: type = "page" - actionId: hi6egKehiHEcn789ZZvs18 name: Track User Actions fields: @@ -84925,7 +84951,7 @@ items: '@path': $.properties trigger: type = "track" - actionId: hi6egKehiHEcn789ZZvs18 - name: Page Calls + name: Screen Calls fields: event_name: '@if': @@ -84949,7 +84975,7 @@ items: '@path': $.timestamp properties: '@path': $.properties - trigger: type = "page" + trigger: type = "screen" partnerOwned: true - id: 644ad6c6c4a87a3290450602 display_name: LiveRamp Audiences @@ -85013,7 +85039,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: bcMzgzKBnTLzKgq78s4uCd + - id: k3mhDicSXuifyaW5XtxiTQ sortOrder: 0 fieldKey: sftp_username label: Username @@ -85026,7 +85052,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qicLr2aFxyGNGL9h6u4tva + - id: 6oUUAu7AFbrt9aafbsgGu4 sortOrder: 1 fieldKey: sftp_password label: Password @@ -85039,7 +85065,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fns8XJUPQ1w3YbwKxM9nFp + - id: mJ3cmGfEBmMr8rR42XD6FG sortOrder: 2 fieldKey: sftp_folder_path label: Folder Path @@ -85056,7 +85082,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jBusi4jwj3nQr95rXHqogQ + - id: t1ZZ7wxaWn5z7dzVfppPgy sortOrder: 3 fieldKey: audience_key label: LiveRamp Audience Key @@ -85075,7 +85101,7 @@ items: dynamic: false allowNull: false hidden: false - - id: n2etQ1gt5FdeJvncw7XSd3 + - id: twV2vtaLtG2niwaQv6UMsS sortOrder: 4 fieldKey: identifier_data label: Identifier Data @@ -85088,7 +85114,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jtdtwXHabf8WvHBup9fFTw + - id: jEiuGaTjfAZzCpiWVc83jY sortOrder: 5 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -85104,7 +85130,7 @@ items: dynamic: false allowNull: false hidden: false - - id: udMiBRFdqAEy7dwZ8jtNFD + - id: sRRXcW5KjridwppD1kHk6n sortOrder: 6 fieldKey: delimiter label: Delimeter @@ -85118,7 +85144,7 @@ items: dynamic: false allowNull: false hidden: false - - id: baKrghP4w9G4xYhtJ9sMuN + - id: 6JYHxJ7e176ZCaNQD3BsPT sortOrder: 7 fieldKey: filename label: Filename @@ -85143,7 +85169,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: jVyeyS3iBPaxuq6dErmaoB + - id: 2MUCKviAJMGWWS8k3kk2uJ sortOrder: 0 fieldKey: s3_aws_access_key label: AWS Access Key ID @@ -85156,7 +85182,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2tNwMzSiKWg8PjXshtPEuL + - id: 2WiwXFCGvuGAnL73BTWkbX sortOrder: 1 fieldKey: s3_aws_secret_key label: AWS Secret Access Key @@ -85169,7 +85195,7 @@ items: dynamic: false allowNull: false hidden: false - - id: giyTt6vJbq8PEKUD9Gq7dH + - id: 5dAHm9m3eu8WAHpqgUqEyX sortOrder: 2 fieldKey: s3_aws_bucket_name label: AWS Bucket Name @@ -85182,7 +85208,7 @@ items: dynamic: false allowNull: false hidden: false - - id: b1gMoLUqSYnP2hVbEKv1rw + - id: 8gCdxXCFkJ2gTrtQnvyvAP sortOrder: 3 fieldKey: s3_aws_region label: AWS Region (S3 only) @@ -85195,7 +85221,7 @@ items: dynamic: false allowNull: false hidden: false - - id: eSEWsjFxKDfhoiUwL1TQe4 + - id: vUjtXhYp55e7bd6qxkTg3p sortOrder: 4 fieldKey: audience_key label: LiveRamp Audience Key @@ -85214,7 +85240,7 @@ items: dynamic: false allowNull: false hidden: false - - id: isW2cPNRpVdij1ajDHjjpq + - id: wEpEMcgx6BEWNrSFYwfJZo sortOrder: 5 fieldKey: identifier_data label: Identifier Data @@ -85227,7 +85253,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 5zNgqeHT4164w5wsfBF9cj + - id: hhdh14b4ZFcbArNz5p9Pyi sortOrder: 6 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -85243,7 +85269,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pqSU2vN4u2yqrsQUF4tK5o + - id: qUnMU8eixADgi755nunvZe sortOrder: 7 fieldKey: delimiter label: Delimeter @@ -85257,7 +85283,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qtVPusxF4wmZCfBRFMBvXL + - id: ahneRYCYP7CEvm3v3UFyCu sortOrder: 8 fieldKey: filename label: Filename @@ -85274,7 +85300,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 3aaHsfmUByergYzSRd9CeY + - id: 4PLfCV1ZEbBaX2591KYqYq sortOrder: 11 fieldKey: s3_aws_bucket_path label: AWS Bucket Path [optional] @@ -125020,21 +125046,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: 2paiXUn1PV2MRu4qUrY1UD - sortOrder: 0 - fieldKey: external_id - label: External Audience ID - type: STRING - description: The CRM Data ID for The Trade Desk Segment. - placeholder: '' - defaultValue: - '@path': $.context.personas.external_audience_id - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: agE9DjGQKgQLy4L9imtVEc + - id: uukqUY4RBjHJe5fUF6KFvZ sortOrder: 1 fieldKey: pii_type label: PII Type @@ -125050,7 +125062,7 @@ items: value: EmailHashedUnifiedId2 dynamic: false allowNull: false - - id: pz8AT8GNgzPUtF3Jco9rQu + - id: 9eb2ZZXEU3AjyiWxVCF6jJ sortOrder: 2 fieldKey: email label: User Email @@ -125064,48 +125076,6 @@ items: choices: null dynamic: false allowNull: false - - id: fdvcMzzjcVgmq69uNY4AgG - sortOrder: 3 - fieldKey: enable_batching - label: Enable Batching - type: BOOLEAN - description: Enable batching of requests to The Trade Desk CRM Segment. - placeholder: '' - defaultValue: true - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: dAXAehsYk6RQk6QiADHbh5 - sortOrder: 4 - fieldKey: event_name - label: Event Name - type: STRING - description: The name of the current Segment event. - placeholder: '' - defaultValue: - '@path': $.event - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: cVTM3kQumtRnJhyd1adti7 - sortOrder: 5 - fieldKey: batch_size - label: Batch Size - type: NUMBER - description: >- - Maximum number of events to include in each batch. Actual batch sizes - may be lower. - placeholder: '' - defaultValue: 100000 - required: false - multiple: false - choices: null - dynamic: false - allowNull: false presets: [] partnerOwned: false - id: 63d2e550fb90f1632ed8820a diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 29047ce6b1..92373c66b0 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 2025-07-31 +# destination data last updated 2025-08-07 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 4037c85ab7..8cf1a9732d 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 2025-07-31 +# source categories last updated 2025-08-07 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 8bcc064b0d..cc64150a18 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 2025-07-31 +# sources last updated 2025-08-07 items: - id: 8HWbgPTt3k display_name: .NET From da376cb44389214606bdb4650bd960ba53d17f4b Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 8 Aug 2025 09:53:26 -0400 Subject: [PATCH 421/438] rm Amplitude (Actions) from the integrations object callout --- src/_includes/content/destination-dossier.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_includes/content/destination-dossier.html b/src/_includes/content/destination-dossier.html index 165ccb0cd0..9df9198684 100644 --- a/src/_includes/content/destination-dossier.html +++ b/src/_includes/content/destination-dossier.html @@ -49,7 +49,7 @@
Destination Info
    {% if destMethods.size > 0 %}{% unless page.id == '645d5fc12eb891cf0a93fe4b' %}
  • Accepts {% for method in destMethods%}{% if destMethods.size == 1 %}{{method}} calls.{% else %}{% unless forloop.last == true %}{{method}}, {% endunless %}{% if forloop.last == true%}and {{method}} calls{%endif%}{% endif %}{% endfor %}
  • {% endunless %}{% endif %} {% if previous_names.size == 1 or components.size == 0 %} -
  • Refer to it as {{previous_names | join: ', or ' }} in the Integrations object
  • +
  • Refer to it as {% if page.id == '5f7dd6d21ad74f3842b1fc47' %}Actions Amplitude {% else %}{{previous_names | join: ', or ' }}{% endif %} in the Integrations object
  • {% else %} {% if connectionModes.cloud.web == true or connectionModes.cloud.mobile == true or connectionModes.cloud.server == true %}
  • In Cloud-mode, refer to it as {{previous_names | join: ', or ' }} in the Integrations object
  • {%endif%} {% if connectionModes.device.web == true or connectionModes.device.mobile == true or connectionModes.device.server == true %}
  • In Device-mode, refer to it as {{previous_names | first}} in the Integrations object
  • {%endif%} From 0db2a839687c0e988b5e8a4daf3e33890b83df4a Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Fri, 8 Aug 2025 12:31:52 -0500 Subject: [PATCH 422/438] update snippet --- .../auto-instrumentation/web-setup.md | 196 +++++++++--------- 1 file changed, 99 insertions(+), 97 deletions(-) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index 6728812cfb..5b6a096214 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -41,105 +41,107 @@ For websites using the Segment snippet, please REPLACE the regular Segment snipp My Website ``` From b91a0bceef914759ae38d75f694995b6ae683cc1 Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Fri, 8 Aug 2025 12:39:59 -0500 Subject: [PATCH 423/438] wip --- src/connections/auto-instrumentation/web-setup.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index 5b6a096214..b253a56d27 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -8,7 +8,7 @@ This guide outlines the steps required to set up the Signals SDK in your JavaScr You'll learn how to add Auto-Instrumentation sources, integrate dependencies, and ensure that your setup captures and processes data as intended. > info "Auto-Instrumentation Private Beta" -> Auto-Instrumentation is currently in Private Beta and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="\_blank"}. Segment is actively iterating on and improving the Auto-Instrumentation user experience. +> Auto-Instrumentation is currently in Private Beta and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. Segment is actively iterating on and improving the Auto-Instrumentation user experience. > success "Enable Auto-Instrumentation" > To enable Auto-Instrumentation in your Segment workspace, reach out to your dedicated account manager. @@ -139,7 +139,6 @@ For websites using the Segment snippet, please REPLACE the regular Segment snipp analytics._writeKey = document.currentScript.getAttribute("data-segment-write-key"); analytics.load(analytics._writeKey) analytics.page() - analytics.SNIPPET_VERSION = "5.2.0"; } })(); From c53144bf0846774d7456ff1218c937c25753ff27 Mon Sep 17 00:00:00 2001 From: Seth Silesky <5115498+silesky@users.noreply.github.com> Date: Fri, 8 Aug 2025 13:35:45 -0500 Subject: [PATCH 424/438] wip --- .../auto-instrumentation/web-setup.md | 187 +++++++++--------- 1 file changed, 95 insertions(+), 92 deletions(-) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index b253a56d27..99e32b3565 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -41,106 +41,109 @@ For websites using the Segment snippet, please REPLACE the regular Segment snipp My Website ``` From 365a724b0be9952671d0931bf8ed972457d11f2d Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Mon, 11 Aug 2025 14:07:51 -0400 Subject: [PATCH 425/438] Update consent-in-unify.md --- src/privacy/consent-management/consent-in-unify.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/privacy/consent-management/consent-in-unify.md b/src/privacy/consent-management/consent-in-unify.md index 5ed25b9b31..a907bb9617 100644 --- a/src/privacy/consent-management/consent-in-unify.md +++ b/src/privacy/consent-management/consent-in-unify.md @@ -94,6 +94,17 @@ If you're using Consent Management and Profiles, you shouldn't give your custome > warning "Storing consent on the Profile is in private beta" > Reach out to your sales contact or [request a demo](https://segment.com/contact/demo){:target="_blank"} to participate in the private beta. +### Backfill consent preferences on your Profiles + +If you've stored end-user consent preferences in your warehouse and would like to make them available to your Profiles, you can use [Reverse ETL](/docs/privacy/consent-management/consent-in-retl/) and [Segment Profiles](/docs/connections/destinations/catalog/actions-segment-profiles/) to extract the consent information from your warehouse and load the information into Segment. + +If you want to use end-user consent coming directly from your single source of truth, you can generate an Identify, Track, or [Segment Consent Preferences Updated](/docs/privacy/consent-management/consent-in-unify/#segment-consent-preference-updated-event) Track event to add [consent information to the `context` object](/docs/privacy/consent-management/consent-in-segment-connections/#consent-object). For more information about the requirements for data collection, see the [Configure Consent Management](/docs/privacy/consent-management/configure-consent-management/#step-2-integrating-your-cmp-with-segment) documentation. + +## Consent preference conflicts + +When collecting end user consent, you can occasionally capture multiple consent preferences linked to the same user, for example, from a user's cell phone browser and the web browser on their laptop (called a [device-level conflict](#device-level-conflict)) or when two distinct Unify profiles are merged together (called a [profile-level conflict](#profile-level-conflict)). + + ### Device-level conflicts A device-level conflict occurs when conflicting consent preferences linked to one user ID are collected from two distinct devices. From c68403a15d31a5f52e42708ddb2661c3b42cab6b Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 12 Aug 2025 14:57:02 +0100 Subject: [PATCH 426/438] professional services contact info --- .../sources/catalog/cloud-apps/amazon-s3/index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md index 7c109ee719..d25fb1efdd 100644 --- a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md +++ b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md @@ -17,7 +17,10 @@ The goal of this walkthrough is to make this process easier by providing an auto - an AWS IAM execution role that grants the permissions your Lambda function needs through the permissions policy associated with this role - an AWS S3 source bucket with a notification configuration that invokes the Lambda function -This source is maintained by Amazon. For any issues with the source, contact [the Amazon S3 Support team](https://aws.amazon.com/contact-us/sales-support-s3/){:target="_blank"}. +> warning "" +> +> This source is not covered by Segment Support. For issues with the source, contact [Segment Professional Services](https://segment.com/services/){:target="_blank"}. + ## Prerequisites From 1b26af5fc4841f3866a41a563408a02756716d15 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Tue, 12 Aug 2025 16:16:06 -0700 Subject: [PATCH 427/438] [netlify-build] --- src/connections/auto-instrumentation/web-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index 99e32b3565..566fb1e409 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -31,7 +31,7 @@ Choose one of the following installation methods based on your setup: ### Option A: Snippet Users (HTML) -For websites using the Segment snippet, please REPLACE the regular Segment snippet with the following code, which includes the Signals SDK: +For websites using the Segment snippet, you'll need to replace the regular Segment snippet with the following code, which includes the Signals SDK: > warning "" > If you are currently using Segment, replace the existing Segment snippet that loads analytics.js with the modified code below. You should not have two segment snippets that call analytics.load() in your html. From c7aa390c3715227287f00025e412c3bb60569f8d Mon Sep 17 00:00:00 2001 From: pwseg Date: Tue, 12 Aug 2025 19:34:20 -0700 Subject: [PATCH 428/438] some minor rewording --- .../auto-instrumentation/web-setup.md | 60 ++++++++++--------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index 566fb1e409..22bec5a4dc 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -27,14 +27,17 @@ You'll first need to add a source and copy its write key: Next, you'll need to add the Signals SDKs to your web environment. -Choose one of the following installation methods based on your setup: +Choose the installation method that matches your setup: -### Option A: Snippet Users (HTML) +- **Option A:** For websites loading Segment through the HTML snippet. +- **Option B:** For projects using npm, yarn, or pnpm. -For websites using the Segment snippet, you'll need to replace the regular Segment snippet with the following code, which includes the Signals SDK: +### Option A: Websites using the Segment snippet (HTML) > warning "" -> If you are currently using Segment, replace the existing Segment snippet that loads analytics.js with the modified code below. You should not have two segment snippets that call analytics.load() in your html. +> Include only one Segment snippet per page. Replacing your existing snippet prevents duplicate `analytics.load()` calls. + +If your site uses the standard Segment snippet, **replace it** with the following version, which includes the Signals SDK: ```html @@ -148,41 +151,42 @@ For websites using the Segment snippet, you'll need to replace the regular Segme ``` -### Option B: NPM Users +Verify that you only have **one snippet** in your site, then move to -1. Add the Signals SDK to your project: +### Option B: Install with a package manager -```bash -# npm -npm install @segment/analytics-signals -# yarn -yarn add @segment/analytics-signals -# pnpm -pnpm install @segment/analytics-signals -``` +1. Add the Signals SDK to your project: + ```bash + # npm + npm install @segment/analytics-signals + # yarn + yarn add @segment/analytics-signals + # pnpm + pnpm install @segment/analytics-signals + ``` 2. Add the initialization code and configuration options: -> success "" -> see [configuration options](#configuration-options) for a complete list. + > success "" + > see [configuration options](#configuration-options) for a complete list. -```ts -// analytics.js/ts -import { AnalyticsBrowser } from "@segment/analytics-next"; -import { SignalsPlugin } from "@segment/analytics-signals"; + ```ts + // analytics.js/ts + import { AnalyticsBrowser } from "@segment/analytics-next"; + import { SignalsPlugin } from "@segment/analytics-signals"; -export const analytics = new AnalyticsBrowser(); + export const analytics = new AnalyticsBrowser(); -const signalsPlugin = new SignalsPlugin(); + const signalsPlugin = new SignalsPlugin(); -analytics.register(signalsPlugin); + analytics.register(signalsPlugin); -analytics.load({ - writeKey: "", -}); -``` + analytics.load({ + writeKey: "", + }); + ``` -Verify that you replaced `` with the actual write key you copied in Step 1. + Verify that you replaced `` with the actual write key you copied in Step 1. 3. Build and run your app. From 0f049fb53873a5e2fe92fdaf7073ce7369da7c25 Mon Sep 17 00:00:00 2001 From: pwseg Date: Tue, 12 Aug 2025 19:39:18 -0700 Subject: [PATCH 429/438] style guide + formatting fixes --- .../auto-instrumentation/web-setup.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index 22bec5a4dc..4a351f3f33 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -196,15 +196,12 @@ After integrating the SDK and running your app, verify that Segment is collectin 1. In your Segment workspace, return to **Connections > Sources**, then select the source you created for Auto-Instrumentation. 2. In the source overview, look for the **Event Builder** tab. If the tab doesn’t appear: - -- Make sure you've installed the SDK correctly. -- Reach out to your Segment CSM to confirm that your workspace has the necessary feature flags enabled. - ![The Event Builder tab shown in the navigation bar between Debugger and Schema in a Segment Source](images/event_builder_tab.png) + - Make sure you've installed the SDK correctly. + - Reach out to your Segment CSM to confirm that your workspace has the necessary feature flags enabled. + ![The Event Builder tab shown in the navigation bar between Debugger and Schema in a Segment Source](images/event_builder_tab.png) 3. Open the **Event Builder** and follow the on-screen instructions to start signal detection. - -- To collect signals in the UI, visit your site in a browser using the query string:`?segment_signals_debug=true` - + - To collect signals in the UI, visit your site in a browser using the query string:`?segment_signals_debug=true` 4. Interact with your app to trigger signals: click buttons, navigate pages, submit forms, and so on. Segment collects and displays these as signals in real time. 5. From the signals list, click **Configure event** to define a new event based on one or more signals. After configuring the event, click **Publish event rules**. @@ -276,7 +273,7 @@ analytics.register(signalsPlugin); #### Sandbox Strategies -If getting CSP errors, you can use the experimental 'global' sandbox strategy: +If you get CSP errors, you can use the experimental 'global' sandbox strategy: ```ts new SignalsPlugin({ sandboxStrategy: "global" }); @@ -304,7 +301,7 @@ Auto-Instrumentation collects different types of signals automatically: ### `interaction` -Interaction signals emit in response to a user interaction (clicks, form submissions, etc.) +Interaction signals emit in response to a user interaction (like clicks or form submissions) ### `instrumentation` @@ -321,7 +318,7 @@ Navigation signals emit whenever the URL changes. Network signals emit when an HTTP Request is made, or an HTTP Response is received. To emit a network signal, the network activity must have the following requirements: - Initiated using the `fetch` API -- First party domain (e.g if on `foo.com`, then `foo.com/api/products`, but not `bar.com/api/products`) +- First party domain (for example, if on `foo.com`, then `foo.com/api/products`, but not `bar.com/api/products`) - Contains the content-type: `application/json` ## Next steps From 7d8c76fd8e08f2504ea1a20937d79598cc07c758 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Tue, 12 Aug 2025 20:08:50 -0700 Subject: [PATCH 430/438] link fix --- src/connections/auto-instrumentation/web-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index 4a351f3f33..77285f0a59 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -151,7 +151,7 @@ If your site uses the standard Segment snippet, **replace it** with the followin ``` -Verify that you only have **one snippet** in your site, then move to +Verify that you only have **one snippet** in your site, then move to [Step 3: Verify and deploy events](#step-3-verify-and-deploy-events). ### Option B: Install with a package manager From 0f552ab3f3387cd9dbbb917977888fdb243eb287 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 13 Aug 2025 15:57:04 +0100 Subject: [PATCH 431/438] warning added --- src/connections/sources/catalog/cloud-apps/amazon-s3/index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md index d25fb1efdd..a97e8dc709 100644 --- a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md +++ b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md @@ -19,8 +19,7 @@ The goal of this walkthrough is to make this process easier by providing an auto > warning "" > -> This source is not covered by Segment Support. For issues with the source, contact [Segment Professional Services](https://segment.com/services/){:target="_blank"}. - +> Implementing a production-grade solution with this tutorial can be complex. Segment recommends you submit feature requests for Segment reverse ETL to have CSV support. ## Prerequisites From b1aba2917711c359fa1e1d50704eb1663a6b8145 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 13 Aug 2025 15:58:37 +0100 Subject: [PATCH 432/438] [netlify-build] --- src/connections/sources/catalog/cloud-apps/amazon-s3/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md index a97e8dc709..7dcad9a635 100644 --- a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md +++ b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md @@ -34,6 +34,7 @@ On Linux and macOS, use your preferred shell and package manager. On macOS, you ## Getting Started ### 1. Create an S3 source in Segment + Remember the write key for this source, you'll need it in a later step. ### 2. Create the Execution Role From 181a592dd879a3da47e6c5fc633f7508cc876faa Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 13 Aug 2025 16:13:06 +0100 Subject: [PATCH 433/438] titled warning box [netlify-build] --- src/connections/sources/catalog/cloud-apps/amazon-s3/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md index 7dcad9a635..faa4d90a9d 100644 --- a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md +++ b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md @@ -17,9 +17,9 @@ The goal of this walkthrough is to make this process easier by providing an auto - an AWS IAM execution role that grants the permissions your Lambda function needs through the permissions policy associated with this role - an AWS S3 source bucket with a notification configuration that invokes the Lambda function -> warning "" +> warning "CSV support recommendation" > -> Implementing a production-grade solution with this tutorial can be complex. Segment recommends you submit feature requests for Segment reverse ETL to have CSV support. +> Implementing a production-grade solution with this tutorial can be complex. Segment recommends that you submit feature requests for Segment reverse ETL for CSV support. ## Prerequisites From ed9a213cd8e94ef2f6c32c637d4afc19d3e7804d Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 13 Aug 2025 16:25:36 +0100 Subject: [PATCH 434/438] title casing + position of warning box fixed [netlify-build] --- .../catalog/cloud-apps/amazon-s3/index.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md index faa4d90a9d..21b64ad0c9 100644 --- a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md +++ b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md @@ -17,10 +17,6 @@ The goal of this walkthrough is to make this process easier by providing an auto - an AWS IAM execution role that grants the permissions your Lambda function needs through the permissions policy associated with this role - an AWS S3 source bucket with a notification configuration that invokes the Lambda function -> warning "CSV support recommendation" -> -> Implementing a production-grade solution with this tutorial can be complex. Segment recommends that you submit feature requests for Segment reverse ETL for CSV support. - ## Prerequisites This tutorial assumes that you have some basic understanding of S3, Lambda and the `aws cli` tool. If you haven't already, follow the instructions in [Getting Started with AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html){:target="_blank"} to create your first Lambda function. If you're unfamiliar with `aws cli`, follow the instructions in [Setting up the AWS Command Line Interface](https://docs.aws.amazon.com/polly/latest/dg/setup-aws-cli.html){:target="_blank"} before you proceed. @@ -31,13 +27,13 @@ On Linux and macOS, use your preferred shell and package manager. On macOS, you [Install NPM](https://www.npmjs.com/get-npm){:target="_blank"} to manage the function's dependencies. -## Getting Started +## Getting started ### 1. Create an S3 source in Segment Remember the write key for this source, you'll need it in a later step. -### 2. Create the Execution Role +### 2. Create the execution role Create the [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html){:target="_blank"} that gives your function permission to access AWS resources. @@ -57,7 +53,7 @@ Create the [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda- The **AWSLambdaExecute** policy has the permissions that the function needs to manage objects in Amazon S3, and write logs to CloudWatch Logs. -### 3. Create Local Files, an S3 Bucket and Upload a Sample Object +### 3. Create local files, an S3 bucket and upload a sample object Follow these steps to create your local files, S3 bucket and upload an object. @@ -77,7 +73,7 @@ Follow these steps to create your local files, S3 bucket and upload an object. 3. Create your bucket. **Record your bucket name** - you'll need it later! 4. In the source bucket, upload `track_1.csv`. -### 4. Create the Function +### 4. Create the function Next, create the Lambda function, install dependencies, and zip everything up so it can be deployed to AWS. @@ -264,11 +260,11 @@ The command above sets a 90-second timeout value as the function configuration. S3-Lambda-Segment$ aws lambda update-function-configuration --function-name --timeout 180 ``` -### 5. Test the Lambda Function +### 5. Test the lambda function In this step, you invoke the Lambda function manually using sample Amazon S3 event data. -**To test the Lambda function** +**To test the lambda function** 1. Create an empty file named `output.txt` in the `S3-Lambda-Segment` folder - the aws cli complains if it's not there. ```bash @@ -285,7 +281,7 @@ In this step, you invoke the Lambda function manually using sample Amazon S3 eve **Note**: Calls to Segment's Object API don't show up the Segment debugger. -### Configure Amazon S3 to Publish Events +### Configure Amazon S3 to publish events In this step, you add the remaining configuration so that Amazon S3 can publish object-created events to AWS Lambda and invoke your Lambda function. You'll do the following: @@ -352,11 +348,15 @@ Last, test your system to make sure it's working as expected: ### Timestamps This script automatically transforms all CSV timestamp columns named `createdAt` and `timestamp` to timestamp objects, regardless of nesting, preparation for Segment ingestion. If your timestamps have a different name, search the example `index.js` code for the `colParser` function, and add your column names there for automatic transformation. If you make this modification, re-zip the package (using `zip -r function.zip .`) and upload the new zip to Lambda. -## CSV Formats +## CSV formats Define your CSV file structure based on the method you want to execute. -#### Identify Structure +> warning "CSV support recommendation" +> +> Implementing a production-grade solution with this tutorial can be complex. Segment recommends that you submit feature requests for Segment reverse ETL for CSV support. + +#### Identify structure An `identify_XXXXX` .csv file uses the following field names: @@ -371,7 +371,7 @@ An `identify_XXXXX` .csv file uses the following field names: In the above structure, the `userId` is required, but all other items are optional. Start all traits with `traits.` and then the trait name, for example `traits.account_type`. Similarly, start context fields with `context.` followed by the canonical structure. The same structure applies to `integrations.` too. -#### Page/Screen Structure +#### Page/Screen structure For example a `screen_XXXXX` or `page_YYYY` file has the following field names: @@ -384,7 +384,7 @@ For example a `screen_XXXXX` or `page_YYYY` file has the following field names: 7. `timestamp` (Unix time) - Optional 8. `integrations.` - Optional -#### Track Structure +#### Track structure For example a `track_XXXXX` file has the following field names: @@ -413,7 +413,7 @@ For any of these methods, you might need to pass nested JSON to the tracking or The example `index.js` sample code above does not support ingestion of arrays. If you need this functionality you can modify the sample code as needed. -#### Object Structure +#### Object structure There are cases when Segment's tracking API is not suitable for datasets that you might want to move to a warehouse. This could be e-commerce product data, media content metadata, campaign performance, and so on. From 566326b888251e130960aec201695d31cc3be274 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 13 Aug 2025 16:33:39 +0100 Subject: [PATCH 435/438] Update index.md --- src/connections/sources/catalog/cloud-apps/amazon-s3/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md index 21b64ad0c9..857b2f0173 100644 --- a/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md +++ b/src/connections/sources/catalog/cloud-apps/amazon-s3/index.md @@ -28,7 +28,6 @@ On Linux and macOS, use your preferred shell and package manager. On macOS, you [Install NPM](https://www.npmjs.com/get-npm){:target="_blank"} to manage the function's dependencies. ## Getting started - ### 1. Create an S3 source in Segment Remember the write key for this source, you'll need it in a later step. From 077362f5f5b5d5b914fc972bdb905df38bdb29c9 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 13 Aug 2025 14:00:52 -0700 Subject: [PATCH 436/438] add Linked Audience Overview video --- src/engage/audiences/linked-audiences.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/engage/audiences/linked-audiences.md b/src/engage/audiences/linked-audiences.md index fb810e4aad..ded99e8ce7 100644 --- a/src/engage/audiences/linked-audiences.md +++ b/src/engage/audiences/linked-audiences.md @@ -29,6 +29,10 @@ Before you begin setting up your Linked Audience, ensure you have: - [Ensure someone has set up your data graph](/docs/unify/data-graph/data-graph/). - Workspace Owner or Unify Read-only, Engage User, Entities Read-only, and Source Admin [roles in Segment](/docs/segment-app/iam/roles/). +## Overview + + + ## Setting up Linked Audiences To set up your Linked Audience, complete the following steps: From 894a82334f374ba3cea8a293b8da341ddc85b787 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 14 Aug 2025 13:43:28 -0400 Subject: [PATCH 437/438] Apply suggestions from code review Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/privacy/consent-management/consent-in-unify.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/privacy/consent-management/consent-in-unify.md b/src/privacy/consent-management/consent-in-unify.md index a907bb9617..426576c265 100644 --- a/src/privacy/consent-management/consent-in-unify.md +++ b/src/privacy/consent-management/consent-in-unify.md @@ -96,13 +96,13 @@ If you're using Consent Management and Profiles, you shouldn't give your custome ### Backfill consent preferences on your Profiles -If you've stored end-user consent preferences in your warehouse and would like to make them available to your Profiles, you can use [Reverse ETL](/docs/privacy/consent-management/consent-in-retl/) and [Segment Profiles](/docs/connections/destinations/catalog/actions-segment-profiles/) to extract the consent information from your warehouse and load the information into Segment. +If you've stored end-user consent preferences in your warehouse and would like to make them available to your Profiles, use [Reverse ETL](/docs/privacy/consent-management/consent-in-retl/) and [Segment Profiles](/docs/connections/destinations/catalog/actions-segment-profiles/) to extract the consent information from your warehouse and load the information into Segment. If you want to use end-user consent coming directly from your single source of truth, you can generate an Identify, Track, or [Segment Consent Preferences Updated](/docs/privacy/consent-management/consent-in-unify/#segment-consent-preference-updated-event) Track event to add [consent information to the `context` object](/docs/privacy/consent-management/consent-in-segment-connections/#consent-object). For more information about the requirements for data collection, see the [Configure Consent Management](/docs/privacy/consent-management/configure-consent-management/#step-2-integrating-your-cmp-with-segment) documentation. ## Consent preference conflicts -When collecting end user consent, you can occasionally capture multiple consent preferences linked to the same user, for example, from a user's cell phone browser and the web browser on their laptop (called a [device-level conflict](#device-level-conflict)) or when two distinct Unify profiles are merged together (called a [profile-level conflict](#profile-level-conflict)). +When collecting end user consent, you can occasionally capture multiple consent preferences linked to the same user. For example, you might collect consent from a user's cell phone browser and the web browser on their laptop (called a [device-level conflict](#device-level-conflict)) or merge two distinct Unify profiles together (called a [profile-level conflict](#profile-level-conflict)). ### Device-level conflicts From b0faaed28b806b5175b8539e11e5c53d56f17f53 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 14 Aug 2025 13:49:14 -0400 Subject: [PATCH 438/438] make catalog --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 716 +++++++++++++------ src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 9 +- 5 files changed, 500 insertions(+), 231 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 7409d6643e..4b286f7fb3 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 2025-08-07 +# destination categories last updated 2025-08-14 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 abca4d3216..7331650c1e 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 2025-08-07 +# destination data last updated 2025-08-14 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -34237,7 +34237,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: dSMddz44cRYAfTguEpsubu + - id: urASrGuWKdBKhor3GKMS5f sortOrder: 0 fieldKey: id label: Person ID @@ -34260,7 +34260,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ruRbeNuuSKzcEDG7ZhANs8 + - id: n4ppyHuKYtzq7HDvCVvuZ sortOrder: 1 fieldKey: anonymous_id label: Anonymous ID @@ -34277,7 +34277,7 @@ items: dynamic: false allowNull: false hidden: false - - id: obyPhn7RE6oKv9WGamX4fH + - id: fCyoPShe2E3HnNinaqWPoz sortOrder: 2 fieldKey: email label: Email Address @@ -34292,7 +34292,7 @@ items: dynamic: false allowNull: false hidden: false - - id: d5DX9k8YiQfV3qeLpuYNxf + - id: biSQPNUXwFHRYHyjTzBpex sortOrder: 3 fieldKey: created_at label: Created At @@ -34313,7 +34313,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qp9WQp9Le7sJr3VayLdhLS + - id: SefneCJiVuyzZWVGJ8Psq sortOrder: 4 fieldKey: group_id label: Object ID @@ -34330,7 +34330,7 @@ items: dynamic: false allowNull: false hidden: false - - id: gLDbF2MCeicofXkcRAYwTF + - id: oKHKt1rTukRYhvnWSKPWv7 sortOrder: 5 fieldKey: custom_attributes label: Person Attributes @@ -34347,7 +34347,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8U8f2rQLDYCWaH8L8Lx6sW + - id: q8zbiZZqozkvfjBE5Dh6MC sortOrder: 6 fieldKey: relationship_attributes label: Relationship Attributes @@ -34364,7 +34364,7 @@ items: choices: null dynamic: false allowNull: false - - id: a4NPRn7BSgwVUdeyZ5fge + - id: 7ri16zTzMTHZnjPdyRbUJs sortOrder: 7 fieldKey: convert_timestamp label: Convert Timestamps @@ -34378,7 +34378,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9Mg4yhEzXYUrEYr7oWEPrE + - id: aWE8xgJEAxg2PexJYdCJGq sortOrder: 8 fieldKey: object_type_id label: Object Type Id @@ -34401,13 +34401,29 @@ items: dynamic: false allowNull: false hidden: false - - id: kP1K5TFsMM26qjfpa2kSgL + - id: th2waDbiaBpzcPpQqoVVgL sortOrder: 9 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: e4vevM9VBmfQxieLmWA9Hd + sortOrder: 10 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -34430,7 +34446,7 @@ items: and event != "Report Delivery Event" fields: - - id: 9vU7QPo8FSc6FGKj5URMxh + - id: gkTACr7Vt3yBw9YEwKFmJy sortOrder: 0 fieldKey: id label: Person ID @@ -34447,7 +34463,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qw5azQxm2cn5572FTcvm38 + - id: nCf3ensQx93Zh1jeJApLEK sortOrder: 1 fieldKey: anonymous_id label: Anonymous ID @@ -34464,7 +34480,7 @@ items: dynamic: false allowNull: false hidden: false - - id: h4L1V73cMLQMZy1EDSqNEF + - id: 2x3xCrLQWvtyau8qZR5ikg sortOrder: 2 fieldKey: name label: Event Name @@ -34479,7 +34495,7 @@ items: dynamic: false allowNull: false hidden: false - - id: esnogu4Yr4ADQip1TeKYFZ + - id: vstesAfUroeBLVM9kTi2U4 sortOrder: 3 fieldKey: event_id label: Event ID @@ -34496,7 +34512,7 @@ items: dynamic: false allowNull: false hidden: false - - id: rEFySoucVoafsK471XQnTx + - id: iokHVZJHc5xou38Lq5JBK8 sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -34513,7 +34529,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ceEb9eBM89Lk86VWA5Ey84 + - id: qzQpe4BDUXTc7sN7EwJhe1 sortOrder: 5 fieldKey: data label: Event Attributes @@ -34528,7 +34544,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fDArFWx1ESQW87VLungY3T + - id: 9NghLqWgHJrvAR98CiCS1X sortOrder: 6 fieldKey: convert_timestamp label: Convert Timestamps @@ -34542,13 +34558,29 @@ items: dynamic: false allowNull: false hidden: false - - id: rmGcB1g2Xzjhi4EGJ6jTCV + - id: vmeL1PCrhAdAWi1r27Y38L sortOrder: 7 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tKyhVFFMKcXXyhQbwFP4vZ + sortOrder: 8 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -34562,7 +34594,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Application Installed" fields: - - id: cLfsopdg7AZxpjMhRQ2Taw + - id: cebCq1WCCPY7pum3mnRvzo sortOrder: 0 fieldKey: person_id label: Person ID @@ -34577,7 +34609,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pinqKVxxR12pvWTruMDdF9 + - id: wR8NcXnvrGtPxNyL18bb9K sortOrder: 1 fieldKey: device_id label: Device ID @@ -34592,7 +34624,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pBWRqcwAg8FZWxmFyMkM3d + - id: 9gVRKjyZQXd2b1ibXGiVXJ sortOrder: 2 fieldKey: app_version label: App Version @@ -34606,7 +34638,7 @@ items: choices: null dynamic: false allowNull: false - - id: w9ejZTowSXB8W5XtGCzZoz + - id: 29qMsM5QCSqzrUihdcRjdd sortOrder: 3 fieldKey: platform label: Platform @@ -34621,7 +34653,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vQ19ihtFq7tfWYsGJXkNi1 + - id: 6MFJBmfMR7xvjKAEh8TsSJ sortOrder: 4 fieldKey: last_used label: Last Used @@ -34638,7 +34670,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vRLF4qiayiZ7EbiFnEx7Mo + - id: v4NqmAgt8SpmSLY5HVos8R sortOrder: 5 fieldKey: attributes label: Event Attributes @@ -34654,7 +34686,7 @@ items: choices: null dynamic: false allowNull: false - - id: r44pGngGJkRhF2fKZ5KwKK + - id: vwHwVHgXJt2zV4rG8ceHri sortOrder: 6 fieldKey: convert_timestamp label: Convert Timestamps @@ -34668,13 +34700,29 @@ items: dynamic: false allowNull: false hidden: false - - id: q2FGU24tj9np5M7aJdWfty + - id: uMKWEfiThtAr2C2SLmVvA8 sortOrder: 7 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bLyybMJUMjzkQNsvQAM8S1 + sortOrder: 8 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -34688,7 +34736,7 @@ items: hidden: false defaultTrigger: type = "page" fields: - - id: 3VkMmbg7R4wA45APog1BZW + - id: 5oTarA6c5k2HoyfSadzQwH sortOrder: 0 fieldKey: id label: Person ID @@ -34705,7 +34753,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6tdb2LC1sEgBWhNRUU9SZh + - id: 7TLUvNxj29eZmXksf1GeUE sortOrder: 1 fieldKey: anonymous_id label: Anonymous ID @@ -34722,7 +34770,7 @@ items: dynamic: false allowNull: false hidden: false - - id: rfcQ3m15ETa8QWyitLxphQ + - id: qKWZCtykVcEBEcy4REyo1W sortOrder: 2 fieldKey: event_id label: Event ID @@ -34738,7 +34786,7 @@ items: choices: null dynamic: false allowNull: false - - id: jqeYjqKnaPWHNVRyRXwo2M + - id: 6wCgjyKbxSYtgMwqZ2j11j sortOrder: 3 fieldKey: url label: Page URL @@ -34753,7 +34801,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mKopF1HGRE3Efc7wfi6Nhv + - id: rFfXT1fRAHGXFfN786ahRS sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -34770,7 +34818,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 27Kc4tjY3o468FEYiRrEaR + - id: iEehE2YzmRiM9s7YwUxYNE sortOrder: 5 fieldKey: data label: Event Attributes @@ -34785,7 +34833,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6WBSR1bf6etgyeCRM7r1qa + - id: 4UERbLnSnsr2LFNbvPW3sM sortOrder: 6 fieldKey: convert_timestamp label: Convert Timestamps @@ -34799,13 +34847,29 @@ items: dynamic: false allowNull: false hidden: false - - id: uJQ4nbZuifoaoW9NKD47Yr + - id: 94YCctmMRPRaL2LAzHoYPj sortOrder: 7 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kq7NEiXtuWXnWWcxtMMjEs + sortOrder: 8 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -34819,7 +34883,7 @@ items: hidden: false defaultTrigger: event = "Application Uninstalled" or event = "Device Deleted" fields: - - id: esyCNk6TRzxGXMfPeavgQf + - id: 8CiP2GLZtiJ9XXGP4NtVJJ sortOrder: 0 fieldKey: person_id label: Person ID @@ -34834,7 +34898,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 68sccAxURxJwQQUmPFtFCp + - id: U6K7atdk9a4shhyMEXMpk sortOrder: 1 fieldKey: device_id label: Device ID @@ -34849,13 +34913,29 @@ items: dynamic: false allowNull: false hidden: false - - id: vnfEHWkh6aN7G3XQ1r9iDp + - id: xD6nTtveaW3vb5zQQ2gcJ sortOrder: 2 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: goBrF3KeHmtwJVGax5C4TH + sortOrder: 3 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -34869,7 +34949,7 @@ items: hidden: false defaultTrigger: type = "screen" fields: - - id: 8biFFZiCHm7nfYGCJs2icm + - id: kvypjzBPSPbY1D6seDmJ7t sortOrder: 0 fieldKey: id label: Person ID @@ -34886,7 +34966,7 @@ items: dynamic: false allowNull: false hidden: false - - id: WApvHPahyo2WThDrdAkcB + - id: mz8QaE3EPAMdMXSiSKUJu5 sortOrder: 1 fieldKey: anonymous_id label: Anonymous ID @@ -34903,7 +34983,7 @@ items: dynamic: false allowNull: false hidden: false - - id: heBsZsrXPapgwqexwmq7oZ + - id: c7yUwF8aHDHtX3Kdo3BpJ5 sortOrder: 2 fieldKey: event_id label: Event ID @@ -34919,7 +34999,7 @@ items: choices: null dynamic: false allowNull: false - - id: sv5smFGgADQu8fnVPWwZ5h + - id: 8cdEd73KAPFjS9pTwCs4dA sortOrder: 3 fieldKey: name label: Screen name @@ -34934,7 +35014,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 5kUwHmh9RSSWm8JvfqwjpF + - id: 87xbaM83NXApuyhV9AvuSK sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -34951,7 +35031,7 @@ items: dynamic: false allowNull: false hidden: false - - id: cZ26WWMDSwAVSabWAXoqsk + - id: g6v9uM85DBX8XUMmWHfVX2 sortOrder: 5 fieldKey: data label: Event Attributes @@ -34966,7 +35046,7 @@ items: dynamic: false allowNull: false hidden: false - - id: eYX587LwYHNyjjY2bUQgzW + - id: x1hd5GP2zEpNtzkDi1Q1dg sortOrder: 6 fieldKey: convert_timestamp label: Convert Timestamps @@ -34980,13 +35060,29 @@ items: dynamic: false allowNull: false hidden: false - - id: kDCfP2PhnCyWvoMQBJBZ5G + - id: 3y3QyfzSXcyUTSyd63XJB1 sortOrder: 7 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: xANNkjVet2xUUqTLybeEr5 + sortOrder: 8 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -35000,7 +35096,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: wBtjtptscvuaJygcUfvBrY + - id: nj5FvozxcGXVZHENUrhGzQ sortOrder: 0 fieldKey: id label: Object ID @@ -35017,7 +35113,7 @@ items: dynamic: false allowNull: false hidden: false - - id: kZZPFmoohr544QmJRMmGr2 + - id: uxZznfhEWBMYPczr9gQxDR sortOrder: 1 fieldKey: created_at label: Created At @@ -35038,7 +35134,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sTa2RxLKrbVjd1CD5wHcQE + - id: nZEqUpUJL6kEn9PbV9UqUP sortOrder: 2 fieldKey: custom_attributes label: Object Attributes @@ -35055,7 +35151,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6Wg5wJMAJta2uwmLNXa4yK + - id: x4mAcTo6LT9nkJP21Poh78 sortOrder: 3 fieldKey: relationship_attributes label: Relationship Attributes @@ -35072,7 +35168,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7kXKTYLqSN1NCbQeKVvir4 + - id: t9yrLUavtiSk16wUpfGrpw sortOrder: 4 fieldKey: user_id label: User ID @@ -35089,7 +35185,7 @@ items: dynamic: false allowNull: false hidden: false - - id: a66doJCXBMijMdwtcfAN2v + - id: 6v5pFpuP1WRqsczekhG6cL sortOrder: 5 fieldKey: anonymous_id label: Anonymous ID @@ -35106,7 +35202,7 @@ items: dynamic: false allowNull: false hidden: false - - id: whWjZRXzxhQqRXt4gvbMKD + - id: nhPb3sJFqQWWm8DfrUyLrS sortOrder: 6 fieldKey: object_type_id label: Object Type Id @@ -35129,7 +35225,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mEhGDGzwij6SqKnWigKGz5 + - id: uNJ8TVRwgdg4XnVCAkVRtM sortOrder: 7 fieldKey: convert_timestamp label: Convert Timestamps @@ -35143,13 +35239,29 @@ items: dynamic: false allowNull: false hidden: false - - id: b7yVf7T776mACrkzHkBDJE + - id: oCREWKCuWC8FsgKyoA8wzg sortOrder: 8 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 5Vr7jPe8wBachT3yq5rLnt + sortOrder: 9 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -35163,7 +35275,7 @@ items: hidden: false defaultTrigger: event = "Relationship Deleted" fields: - - id: 9mFkiZumYvzUh8QWBqoVyG + - id: gNy5j8NUfGH4DP9dVcUhpp sortOrder: 0 fieldKey: person_id label: Person ID @@ -35177,7 +35289,7 @@ items: choices: null dynamic: false allowNull: false - - id: kDduMKTMsBnMdKPW3d9Fq7 + - id: hnF882oChreohBcUW8Dp9h sortOrder: 1 fieldKey: anonymous_id label: Anonymous ID @@ -35193,7 +35305,7 @@ items: choices: null dynamic: false allowNull: false - - id: qGStmWrNBYo2qdnvGMsNz1 + - id: afMedM98SfPsp286CWznD8 sortOrder: 2 fieldKey: object_id label: Object ID @@ -35207,7 +35319,7 @@ items: choices: null dynamic: false allowNull: false - - id: vfiXBhLyJxYe2Q3SAdAP8j + - id: m1gHRnvyzgCW7fPE6APrSy sortOrder: 3 fieldKey: object_type_id label: Object Type ID @@ -35227,13 +35339,29 @@ items: choices: null dynamic: false allowNull: false - - id: tguYXh32nYCknNrkeTMSyQ + - id: qBKsnAuyg8HMoohvaciVfp sortOrder: 4 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dr53RsQEjdwG1a1qqzKpwf + sortOrder: 5 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -35249,7 +35377,7 @@ items: hidden: false defaultTrigger: event = "User Unsuppressed" fields: - - id: vxv31Nsh4N32BKuzMQFoK4 + - id: vkuCxJbDtT1tJdXch1P416 sortOrder: 0 fieldKey: person_id label: Person ID @@ -35263,13 +35391,29 @@ items: choices: null dynamic: false allowNull: false - - id: oio9DS6hpnPKTD4STNU76x + - id: aVZUEUbugL4wjuzf5crMUY sortOrder: 1 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: iLrxejzkGHEH8eQVDGbUqK + sortOrder: 2 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -35283,7 +35427,7 @@ items: hidden: false defaultTrigger: type = "alias" fields: - - id: fevVxyBc5yeXHacezGeKxj + - id: kHoUceqN35ceyqQTjV2g5U sortOrder: 0 fieldKey: primary label: Primary User @@ -35300,7 +35444,7 @@ items: choices: null dynamic: false allowNull: false - - id: kTfmfJ4wgZdhVDuq5pvD29 + - id: mExc2oP4T6AxzuKLVsW8e1 sortOrder: 1 fieldKey: secondary label: Secondary User @@ -35317,13 +35461,29 @@ items: choices: null dynamic: false allowNull: false - - id: 5QUyxZtJCviWqaf4nKbeRk + - id: 3HYjHby78syDvhtsWXjSiZ sortOrder: 2 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: JhKTnw17NGC4pDtWAHMY8 + sortOrder: 3 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -35337,7 +35497,7 @@ items: hidden: false defaultTrigger: event = "Object Deleted" fields: - - id: mM71RTRFQx1C7iPdDw2bjS + - id: 4JntipU2mEQ5aYBXhpkeWX sortOrder: 0 fieldKey: object_id label: Object ID @@ -35351,7 +35511,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4nZMP9h6F2vcUPQXb96xp5 + - id: dDq8uC6muvg3rZSymL9seb sortOrder: 1 fieldKey: object_type_id label: Object Type ID @@ -35371,13 +35531,29 @@ items: choices: null dynamic: false allowNull: false - - id: jbE5AhdfpG4NMrzH9iqoEp + - id: xqRozAWWEU2DPamdqtwmhA sortOrder: 2 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: gaRUo6uVRCwu4fAeExVH99 + sortOrder: 3 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -35393,7 +35569,7 @@ items: hidden: false defaultTrigger: event = "User Suppressed" fields: - - id: izDycHqqktfBwH9uRdUzz7 + - id: hLdGre55Z6gQf6ca4Cx5Sp sortOrder: 0 fieldKey: person_id label: Person ID @@ -35407,13 +35583,29 @@ items: choices: null dynamic: false allowNull: false - - id: uGgVzTLUGDJD17HUru4Xox + - id: cbjitwrRmEFkRzfd5pKzyA sortOrder: 1 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: nZDdrmUUG2aCUQxehjDgWQ + sortOrder: 2 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -35427,7 +35619,7 @@ items: hidden: false defaultTrigger: event = "User Deleted" fields: - - id: cQ4tHRDETQev1mnjuYne3M + - id: g2kHWaMkqt5DXj2g5uZt9Y sortOrder: 0 fieldKey: person_id label: Person ID @@ -35441,13 +35633,29 @@ items: choices: null dynamic: false allowNull: false - - id: mxHyJiRXjWfnYLsDVsQqGj + - id: f7ZyK1RKrgFUpbwGUvvQSW sortOrder: 1 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bQcEhyLdsdqTBRDmAmBGWU + sortOrder: 2 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null @@ -35463,7 +35671,7 @@ items: hidden: false defaultTrigger: event = "Report Delivery Event" fields: - - id: tD9ogi4EJz7jpb8XkStHMX + - id: jNfRVkLCtFbfNu8MHdXCKK sortOrder: 0 fieldKey: delivery_id label: Delivery ID @@ -35479,7 +35687,7 @@ items: choices: null dynamic: false allowNull: false - - id: pSBxBnm1wtc2N1MCZAxtN6 + - id: 7vtYiUthGbxc2pB6du1SN5 sortOrder: 1 fieldKey: metric label: Metric @@ -35513,7 +35721,7 @@ items: value: deferred dynamic: false allowNull: false - - id: jdz6JRxddmwascmaHG8Srn + - id: uwb8MfhoUzeBwwK4uP5xm4 sortOrder: 2 fieldKey: recipient label: Recipient @@ -35530,7 +35738,7 @@ items: choices: null dynamic: false allowNull: false - - id: qbsCQrmGRkfnv6N3iknXaj + - id: j7hPNpYyxfmmyHR2aN556K sortOrder: 3 fieldKey: reason label: Reason @@ -35546,7 +35754,7 @@ items: choices: null dynamic: false allowNull: false - - id: djQ48PuQfEQWFfuT6JYAHw + - id: g8WSuXzMHCvAYtzrnEvNB6 sortOrder: 4 fieldKey: href label: Href @@ -35560,7 +35768,7 @@ items: choices: null dynamic: false allowNull: false - - id: nzmbG3hduxQMy9FPDLgJpt + - id: hRtVagLfz5ghSZDM5jMyMh sortOrder: 5 fieldKey: action_name label: Action Name @@ -35574,7 +35782,7 @@ items: choices: null dynamic: false allowNull: false - - id: rT6dTk8Gh2eQSehCyDCxQS + - id: 7oy1cGtD3iWeHweMxWVEdd sortOrder: 6 fieldKey: action_value label: Action Value @@ -35588,7 +35796,7 @@ items: choices: null dynamic: false allowNull: false - - id: dce25nYAYfhWQ3h22Spqfp + - id: 78AmwGduuuvYYkp6T6KVxV sortOrder: 7 fieldKey: timestamp label: Timestamp @@ -35604,6 +35812,34 @@ items: choices: null dynamic: false allowNull: false + - id: jP5oNedNMCTkfQ3mzJDgNX + sortOrder: 8 + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ka5HoAxxhs7ttDqfN98RDL + sortOrder: 9 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 + required: false + multiple: false + choices: null + dynamic: false + allowNull: false - id: gEdBnya7kEtPMikFwsdvV name: Report Content Event slug: reportContentEvent @@ -35612,7 +35848,7 @@ items: hidden: false defaultTrigger: event = "Report Content Event" fields: - - id: dQh6WwfRYvFis2gNY9bnjH + - id: nVb5Ayg6scVNyfrP1N3qsz sortOrder: 0 fieldKey: anonymous_id label: Anonymous ID @@ -35626,7 +35862,7 @@ items: choices: null dynamic: false allowNull: false - - id: fYX5tem289XPCHWwJwGPCj + - id: xySzQxewy7zSSzn7WqGpyW sortOrder: 1 fieldKey: actionType label: Action Type @@ -35644,7 +35880,7 @@ items: value: clicked_content dynamic: false allowNull: false - - id: gxHVMdH7ZfEyqvPyjTS4vi + - id: 5UDVjYXKoJf4YRkRSpHnU7 sortOrder: 2 fieldKey: timestamp label: Timestamp @@ -35660,7 +35896,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9dqwrWWLWUyLrHrmrixRJ8 + - id: 3JK74RQzQgbEVsb1smynGD sortOrder: 3 fieldKey: data label: Event Attributes @@ -35674,7 +35910,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3HoxSnsUKvfU5rDUYpF5c5 + - id: 43nhTLBG5f2HepBKFe6eVz sortOrder: 4 fieldKey: convert_timestamp label: Convert Timestamps @@ -35687,48 +35923,59 @@ items: choices: null dynamic: false allowNull: false - - id: aFUJEo3LwKBtMdfhSFHNBG + - id: o4bPwqakLigSnwhXmrHtbV sortOrder: 5 fieldKey: enable_batching - label: Enable Batching? + label: Enable Batching type: BOOLEAN - description: When enabled, Segment will send events in batches. - defaultValue: false + description: Set as true to ensure Segment sends data to Customer.io in batches. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: s26SyxHvoh9vZje6GF2X8o + sortOrder: 6 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 50 required: false multiple: false choices: null dynamic: false allowNull: false presets: - - actionId: ni61rg53jNVHceAAKpAMiU - name: Track Event + - actionId: vzu3gQU4FWnjjjwLrZ92v + name: Report Delivery Event fields: - id: - '@path': $.userId - anonymous_id: - '@path': $.anonymousId - name: - '@path': $.event - event_id: - '@path': $.messageId + delivery_id: + '@path': $.properties.deliveryId + metric: + '@path': $.properties.metric + recipient: + '@path': $.properties.recipient + reason: + '@path': $.properties.reason + href: + '@path': $.properties.href + action_name: + '@path': $.properties.actionName + action_value: + '@path': $.properties.actionValue timestamp: '@path': $.timestamp - data: - '@path': $.properties - convert_timestamp: true - trigger: |2- - - type = "track" - and event != "Relationship Deleted" - and event != "User Deleted" - and event != "User Suppressed" - and event != "User Unsuppressed" - and event != "Object Deleted" - and event != "Report Delivery Event" - and event != "Report Content Event" - - - actionId: sqJbxd67L97ZpX6N8wphL3 - name: Track Screen View + enable_batching: true + batch_size: 50 + trigger: event = "Report Delivery Event" + - actionId: bYpBhuXizNTPeBLwoJ1RxZ + name: Track Page View fields: id: '@path': $.userId @@ -35736,14 +35983,16 @@ items: '@path': $.anonymousId event_id: '@path': $.messageId - name: - '@path': $.name + url: + '@path': $.properties.url timestamp: '@path': $.timestamp data: '@path': $.properties convert_timestamp: true - trigger: type = "screen" + enable_batching: true + batch_size: 50 + trigger: type = "page" - actionId: s7FEfD963drbt4mBbnUxfR name: Create or Update Device fields: @@ -35760,12 +36009,39 @@ items: attributes: '@path': $.properties convert_timestamp: true + enable_batching: true + batch_size: 50 trigger: event = "Application Installed" or event = "Application Opened" - - actionId: tLbwUgCeC2qVhPm8ia7adn - name: Create or Update Object + - actionId: gEdBnya7kEtPMikFwsdvV + name: Report Content Event + fields: + anonymous_id: + '@path': $.anonymousId + actionType: + '@path': $.properties.actionType + timestamp: + '@path': $.timestamp + data: + '@path': $.properties + convert_timestamp: true + enable_batching: true + batch_size: 50 + trigger: event = "Report Content Event" + - actionId: k4Xb8oym74V59L3n6YmkQe + name: Create or Update Person fields: id: - '@path': $.groupId + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.traits.email + anonymous_id: + '@path': $.anonymousId + email: + '@template': '{{traits.email}}' created_at: '@if': exists: @@ -35774,14 +36050,13 @@ items: '@path': $.traits.created_at else: '@path': $.traits.createdAt + group_id: + '@path': $.traits.objectId custom_attributes: - '@path': $.traits.objectAttributes + '@path': $.traits relationship_attributes: '@path': $.traits.relationshipAttributes - user_id: - '@path': $.userId - anonymous_id: - '@path': $.anonymousId + convert_timestamp: true object_type_id: '@if': exists: @@ -35790,73 +36065,43 @@ items: '@path': $.traits.object_type_id else: '@path': $.traits.objectTypeId - convert_timestamp: true - trigger: type = "group" - - actionId: bYpBhuXizNTPeBLwoJ1RxZ - name: Track Page View + enable_batching: true + batch_size: 50 + trigger: type = "identify" + - actionId: ni61rg53jNVHceAAKpAMiU + name: Track Event fields: id: '@path': $.userId anonymous_id: '@path': $.anonymousId + name: + '@path': $.event event_id: '@path': $.messageId - url: - '@path': $.properties.url timestamp: '@path': $.timestamp data: '@path': $.properties convert_timestamp: true - trigger: type = "page" - - actionId: vzu3gQU4FWnjjjwLrZ92v - name: Report Delivery Event - fields: - delivery_id: - '@path': $.properties.deliveryId - metric: - '@path': $.properties.metric - recipient: - '@path': $.properties.recipient - reason: - '@path': $.properties.reason - href: - '@path': $.properties.href - action_name: - '@path': $.properties.actionName - action_value: - '@path': $.properties.actionValue - timestamp: - '@path': $.timestamp - trigger: event = "Report Delivery Event" - - actionId: gEdBnya7kEtPMikFwsdvV - name: Report Content Event - fields: - anonymous_id: - '@path': $.anonymousId - actionType: - '@path': $.properties.actionType - timestamp: - '@path': $.timestamp - data: - '@path': $.properties - convert_timestamp: true - trigger: event = "Report Content Event" - - actionId: k4Xb8oym74V59L3n6YmkQe - name: Create or Update Person + enable_batching: true + batch_size: 50 + trigger: |2- + + type = "track" + and event != "Relationship Deleted" + and event != "User Deleted" + and event != "User Suppressed" + and event != "User Unsuppressed" + and event != "Object Deleted" + and event != "Report Delivery Event" + and event != "Report Content Event" + + - actionId: tLbwUgCeC2qVhPm8ia7adn + name: Create or Update Object fields: id: - '@if': - exists: - '@path': $.userId - then: - '@path': $.userId - else: - '@path': $.traits.email - anonymous_id: - '@path': $.anonymousId - email: - '@template': '{{traits.email}}' + '@path': $.groupId created_at: '@if': exists: @@ -35865,13 +36110,14 @@ items: '@path': $.traits.created_at else: '@path': $.traits.createdAt - group_id: - '@path': $.traits.objectId custom_attributes: - '@path': $.traits + '@path': $.traits.objectAttributes relationship_attributes: '@path': $.traits.relationshipAttributes - convert_timestamp: true + user_id: + '@path': $.userId + anonymous_id: + '@path': $.anonymousId object_type_id: '@if': exists: @@ -35880,7 +36126,29 @@ items: '@path': $.traits.object_type_id else: '@path': $.traits.objectTypeId - trigger: type = "identify" + convert_timestamp: true + enable_batching: true + batch_size: 50 + trigger: type = "group" + - actionId: sqJbxd67L97ZpX6N8wphL3 + name: Track Screen View + fields: + id: + '@path': $.userId + anonymous_id: + '@path': $.anonymousId + event_id: + '@path': $.messageId + name: + '@path': $.name + timestamp: + '@path': $.timestamp + data: + '@path': $.properties + convert_timestamp: true + enable_batching: true + batch_size: 50 + trigger: type = "screen" partnerOwned: true - id: 5e1f879beef894b09f7a0ba9 display_name: Data Lakes @@ -138962,8 +139230,8 @@ items: website: https://www.getvero.com status: PUBLIC categories: - - Email Marketing - Marketing Automation + - Email Marketing logo: url: https://cdn-devcenter.segment.com/ecdb74d7-19f7-4c64-acbf-9552da63e447.svg mark: diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 92373c66b0..a2ca2cacf2 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 2025-08-07 +# destination data last updated 2025-08-14 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 8cf1a9732d..fa238ca0d4 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 2025-08-07 +# source categories last updated 2025-08-14 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 cc64150a18..d794611833 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 2025-08-07 +# sources last updated 2025-08-14 items: - id: 8HWbgPTt3k display_name: .NET @@ -2359,7 +2359,7 @@ items: url: https://cdn.filepicker.io/api/file/LC02PCIyQaR7Lpt0Ulk1 categories: - A/B Testing - status: PUBLIC_BETA + status: PUBLIC partnerOwned: true - id: 1bow82lmk display_name: Stripe @@ -2548,11 +2548,12 @@ items: source_type: cloud-app description: '' logo: - url: https://d3hotuclm6if1r.cloudfront.net/logos/vero-default.svg + url: >- + https://cdn-devcenter.segment.com/74267292-206c-47a3-927e-f0874c792038.svg categories: - Email Marketing status: PUBLIC - partnerOwned: true + partnerOwned: false - id: wFC7PGNwGR display_name: Voucherify isCloudEventSource: true
XMcH)zCh#8#Y1{oe3^ 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
  • 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 S7vTq(KM&OP?j!EmKL0-e3?X6w literal 0 HcmV?d00001 diff --git a/src/unify/images/relationships-tab-data-graph.png b/src/unify/images/relationships-tab-data-graph.png new file mode 100644 index 0000000000000000000000000000000000000000..295fa4900824238a6ff87de2231fb4e78914da67 GIT binary patch literal 395346 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

    v}$)7!I= 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 R%K2D6(2{oYzSIExi8unpVqaIY<-{{~i3HIU8 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

    j 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%0D**%y z!QuBSe;Fp=(t^T|el*pc!F`6bAVpsxN`{@+qgx(DAxT3>rucoEi9QHQW%jUua)R;< zKgl=5$)N>F3}>yPQSf$^wJ+Qn@|5Xl{Th9M8#cITe`5pC*hjOGj5YlD1|Xaxq7%Tk zZ{w|ujbrl)3-wt2B%rZ=i+;P$$FTn%((M?JQJn`q*dFSA0}wbG;{tOYA=p+963F_n zs9H*A&9v*2IQh{fUbBM-rGdE0!L4RvlxQ-`06nD8DA~2$DuG~l$)A~Hr2Cu+j*d49 zfxgDSDHLm~-!Kw08P`_atTAsMQ;YHlVDc|)ULA6ZWi#yfS9H3#M8m!y*Ev?K^9~?y z0pY;FaV@*NKqc_^Q%i9S%YmL6vhQy}9{VJ+Qgm#^tgO77j7{REj=RE>7sKc;3|WV3 zsjTgZ+Qk%}$QP|uxZNHWl)BnpXr|*+}HU91w zl85oK!oUV1FtDK#Qc;xX1SMS}pRJi75=~K1{6V;uuF~wNQhC6;j6vdJSvlm{t-?~HcSRm$>h=HaCK zwx8e>cePkWdw#rdxNPgJJKF8XsgHAr3sl5-d}(-vmmm%?EG?C?>V%DKY#z=S$JH62 zi?0gskp(}N;~Oe`b$9+MZE6^SIw@sUIJkEo<-}J&;_5C-Wv8c<&1?>sUK7a%DL*FO zn)IN#Nmv%9Oq@bBmP0C3Kb%%z#&j(dteGl!&=8Fc!ks{02Nzrlwk@UCuJn6?LLW4S z?mm7|4^|eibnfn~Mzg;@g}PUfutJLRQIfhjK<|Az0c3vjSn{E}d?owLigGkg(_e=@ zG{W60v)4{rlDsL9tSbt;Wr86EbYUBMw|N1_^OEPp7Q`qnYI;*R4Klo(VhylEvhF1& zqPx&Tp8oVIH(fnJS-cIk$&6~c0S(tN_w-*n@pyhHX2YF~HouZv%fIA`iv!l8X6~Hp zt3^2fNocwp^%V%joS+@Tor)&V07K77oHZsENq9MQFU-$7v z?~=u>0gLB>t9|Mv`xLx5mS;w%VS6f`KB1|PDr4Z5*B+;-K8|R-ER_#OcS0N6d!fOQ zmH_o1$)?KQ{3XLHIAiDW>D=JvMln1v{r#DsS2~+9H~x%EwQA9!X1DuCqr$Z#qagzR z&CJhgjAsFCIziB%c2`AJNeN;;ouggfvVSx~S@LyKI+uRo;vownFONZ1@PU!pFWVm+ zdJMRi;@)bFrlh1@-s@j&*>soQ=n$8&zwq_L4AJC{YKN%?*I^5uQ;UIRhjZsm&3P;x z(nT3>BW&O3Zh0cm&ok}OPi&7WrfMgP93m&lB7nbcXnIWW5zAk;lw8+T^(Z+e+1XtU zy*SmR5vQn@zg06Uxs_wo1lFn8u;w0!+uxa@f7@u#;PGSUE!r3I^mCURjZf42LXNb*KyU%N*lS_}){WvIJ3j`%3sG2AQ5Ak~%w(l5(~ySgM3c;@ZZ z+6SY+R~*fj;|Q}K0J*ZIkrI#fZ$&P8qHrzWht(32VS;5HA638Lu$lHplDEW-)`1TY;CtFAa3Z-W5Ch@F0jnLzvKa>x;x zplbfGFnk{>_>Qi`>Hd%tbW#=Y=nIsVL!w!`e{*cRrLh(}DWP*;DQjEOXtM?|5gIZP zk^&oR7@5lZr=2@oyx`^|ryC&y3D^CetOwoGZktF5xd6UDaa2r3<_4C(^mLbHR8g?C z1xj=<>iaFDT&E6kZ;67f0aMeknF93chX^~7K*^klt2`B3XBFiO<}j}%{4$qCfjgj* zJxITjkI^cGIZ5QFOhk=d0A2LfOW!=(#HCPw>dDCv-DnB0bb?Oj&ImX znHUK%#oJGM_>cM(nKmD-Tu913Q=Il>WrDJRoA>hMG^2c(qK~swW~x6o`xkW)j$D5b zu)qBzUSQcTQ-x;&_-YA?RZhn);tC+q11YLtYjzqV3`>v?|My{tNYF6#&YY&U75wh@=c8GN3>@(L zyf!;))0sq2bWt(bw7ohm%aKye-ZX*X1=uPLJDKYlgEOfG>+&ie-NLD`MT~Pm(Lvx}@$oGe+h+t@E}lh1VN#92I1 z5(){fKIbv?@@L+kx3|?>bGo%(y7Awi=x26u=JpefW*PH7jeo4-Lhx^4Z*<-@%l+5# zT#cUuH&==^Z~S$+zfzL_+T!nD4F&CzP@f3mNVU5Ck5l|>V)OU=UjJsY*Yssz-cx14 z|G^o59X*KuLjBEYe&4Udw*Q2V{D+hM%ko@}-_lIv>;LYGgNSGD-A7Ny#fepXE-dEy zk;z+_K5%eo!O;(Z?&lyc?sLw+ZmXfnWA0ItZtMyHr+{`MtWL<9S8am-^xBE!mbL(fbF8OGFqRtZ)+8wo8o?m7JKke}G>w z-Hqe$>HPzS!RIt1s^7hfd@vqN^`o@+cI{otX;?6{vxI^4iwpnQ#4=`zcHYX=0YwSw z*t*E7nVQ!50MV$D_qy)d9T4zslkKXdR#P7Us_y%+?bWtVKx>%QZ};UD6?yXWAgr-c z=|6z|L#MJWq59xrSCMFMMNP>W1~qJ@HC9f?n9?YX=r<|?W}2j`cy=057P8a4IXS~V z)jWIld1WRZ#R2RbCN1E>&CUI(#?a7kC3uc&5AdFNlaEB~o$4ZF$52G75@}>aQMZV_ z7os#UFtE~jaui*JBs#>)l|dYF9mJsx>1sd+_DwY$g`)c`yA=c4Wrg)uQ2dK$-g9uJ ztui#fk|!-?X>s|mtKso{;?PVRXe^jBUU!tS2*Q2$s9wG9sSits;`Nd%sLS$Tx6;zm zPc`SxK~}!LdkW?9)Qc0Mw8dLU8UxbbxsXn7z(;)%h)m@ zx_-3Bq4-P5XBT;=Pl+wsS^F>C19F1x`vhc;Am?#%h+?{g#+)56oiH=Enr))|zy-gK zcDoj7FqX01XmE_nY(%CJ^r}=s!+msh)xLOfY&peH+5X}y>Em`UUX7rO0%w-qIkrsA zga!vhRgJIz5yNpoaNqHn<6Azh10>BbE)CcyMt* z`MgLrdn8&PYObdyC-=}5pRa&fA1224QeuR&<8v}kEBk(sP{0)Mk18rK4GG0_n}&wH z2xUAl$K63;Z_cwF>wNEV(0fhiDF!t~^)#onghY&JHap5iS5+i?Fu_8u)=Ys}<>!1^ zBpY=yS;AWnxi)FLF*F?-O{Ly!I}J*d{#_2WbClv|dp$rK>pEDj()M1igNLaKJX1p- z+|v*q9<2_idkrE^;zbN|%KV(y^9T5-)C)Vd7s#$>j&0kh>mgZ;OmD)SMjNqcFTx!W zvg{P^+#fB~-x>xbgA#!7`Fv=nF zbw$A-XDqc^VesqFiQL(;yRks`?FUwO*RNiAp|&>@Qjk6}GV)EXoK#+ZwGil=qqxPF zmZx#(K*r+IlIu3zoL%}&^r;h*^}OO@z}-`WgCWH7Zam`)jaO=9Na@0KI$CmDTm>g z1p>CTVdthkq|;<^MTL|@df3%JXYBDdg~I%lSFc*{F5wE?Zv%&f;*W6;Mc854QoxE~ z6BZEBnX{SU_;r~ZQVa26scrtcbC^jB9i=Q*XG}=U*~)IeB4tChcQ!kbO_^d}%KCT|Zfg`{A&jX@D>F@Z`I zehQc-`xw!Xk(7d%-qE7WmoiB&fxBe9;Gts-01ZoG%<;%y5QFoJ`kQyC&jq6k`g|j7 zQ*fK;RpOi8!G8Jk)%VblKchq5^p5_Y>b^9tscT=mb!bnEh;0=_rlJBe-+&|rLa+pdy2eB0>Ox5Fms(YJms{2mu0Nh%y>tKp+GN(_OJW=kz_- zdwWmc5AW~gLw-Q^-fQo**YNzG=UM+1AgHZ<&`}p|XTx4vp8b%Z5+@@k`}nOtg3xs>)FWnlE1a{kB$8gA2)Yt4Sfxx7Dl_;+gWuQPTrMBJR;P+9=Lo@ zne@+08ip(=4W_41c-EZuTz;)~$_W{$ow?DVKui~2^D(p=8= z#TAA|2%oDOaOD>c_+6p+iY=rJk}gyC;o5TIO-nYI-_qh?x53T&z&_tL_G>#ld1mUJ zn&FsVOe#=mh2<9PxKrp)-`U~!X)W($=E>-sH+?Up)OU1DAJk2t=RrT#Wa-zJdd#62 z+i||jr}yuInm(%2-EL>AExh)W+36w-ng`o1Rd_DMKZqi~}xeS@w&l%y_IfuI3 z`?VFhp*Idu_cgT>Kc~YVcD5MgT>MQ%xKg>J?g({pL4}%LRFE#_Ia+e0`?m&jK5zHH z=EhmKdvndr&8Mh@3aX16t9{F`K{zxD-|N48_$YslUH0}3iZ=D&S+S!oE_bHrUT?4m z_j5k}>vyOPukE~LS`bcNYxj*#@w0o5&(FtZc3IcArzQ0A`4?YBnrr@3)5Et02kWcbNH=%pX<*=MedPLP(I|f)Tu=8u6M*j0^AI$T%$ps#*Th=(M8y$ zJ^`?+@1Bf~A|@=uVHEURt*x$?wN;8gE`^*KGpv8^_!0frnD4H7?YWk$Y=^!bePoN&j4h0bk4QQJ)Pa%uIt+`SPVgkj}KyK+96SW z+fgy;sMQafY~D|MP)<=O)b#i6fl52l&{?$PsllwOxtsT`Yz0D_4%8 zEe;eE6pW0FWET0kvaT16y?WP+hd7@pPUh@*q0e zm{8qpdFoWFlS=YlTXTXoDoEWUa%6a&1Gm25-t3KcS!b71sP)^H{NY!N~(sN=y}c=ec_9ZrH=JaJG6ssk&495GdG9ISR+Fe-Dpk8e(TIFrZEAj3 zO9V#_I>{q%WyoKn`56?YM>;keIxL(` z?mlokCiv`9OW9#Ck}7<2RyJ#S^E8uYB!ZOfrFN++h}`A$GfIvPTy^VIAEGIiF7f#A zl#LDB&@#Y#(GQM$mcc6UBHr9I9a%cszlb5_<=0s^cFZ%osV`6svXB-ucXGZ*7g`h+ z(DEer@mgtGSU5+z+JGzz-XMNx8hxDVAtiyg_rKuG z$%pn;j2%m@Brf+N9)#hZQdln@`gH43^Sw;~J?K8oo~pH9;z6*nUEP-5^zJS}P?GV0 zRB7Fj08TPAWWF&(NhHQjakXPRD%^7{Co<5lJ6k^&GgVg?F}k(6p49TJMa8>3>dKX) zMUExevYeIpU@0jnCy+Iyr+D_m7aQkWyj=nri-tN@d8wa8et|XuoGp=@acB;zSZ&E=f)H%E!f4yb2 z#o&~IzW#(%C1iNv{riCWL#zjC2VFPg7~79e5-Egkxo#|DyQa$@+XSiIz7gT<>^!Qg zvlulHJp%T~$-vl2tUzJWT;i(l7(AznwM zESOMZO(fXa`t^*b0o-}!N=nM~8}bwHN-B{xJm1J4S;nzB+(0q?jq4PmGx5ygN|o!Q zo~gvmtdKcPP)zZ6Heg335dHAI;&v5AU*G=X*{`|i!ttAjoT;DX z<>xC{_Xn+dyU+@Yi))gq87zZ0{5jF#m1`?C41+}nyQlL|RZGjQU*tx&23c26uR2)j z1v8vO>TcZ{_swIHs`-2A` zufx3@kWlY~jm?*_lDog;s_eryDs%E$nYZGi7eaKW*7qswst<`7CZYU^9JHLQitQry zC*m+gGg5t-&#U`V&Qi~I#04AcvfZUOe~jPThPh0uGFTRE8HR|aykyVSi(+GuX*TD) z>QeT9hsF~GcO~WC4>3t7szv7yN-ZeeoRv9IT4){8WknG43&XM(-!?`&n%m1Vc+jko z8*27LFi417B-Zojl&^VdBJB(VZ+^!@Q2$I#aWmjjj&M{f>zPeHY;2O|emcHU5Pb`# z|Lw^1_~UVstd(3ZgEc?bIOAuemtrC?HboTtXto)X4}>BX7Uqu@ z?N0<-cB;y{cDP(kQING731)4^MaR=5({I`$LK)6)gTX!~Ou<=1fwToG1$r^^xWTGh z9Iec+@*@by~RCcKVh& zbokt1i90l&JPfQnk~B2ld4`PiBQ;|N8Z5bk4c$ZFm_^qX3Ypw8L9#daQ1IN#RBdFm ze`1!kDmX7^8B2S>xOK*rb-q_AMzBw``qUIpG@$_5d|56P>}4;KNNAqsnb(i`#L^| z8)1L)LAg5H__ni48J12c7JFE6ir2C}?+$NNH1aMEQhK&=vxur$p&HqsbNl#e+~Qg7 z&Itf!o^^?T!2D!7*E(X2@eA6*N2yADFY#zRFuY@Ma-fYpOvJm!ES{O-IYe5vXSz&a zK;VzikWQk92;kyYYVT=^$xoxl!90Mwc45S374-fyC|6EQ_2uG zM?8&rzXo!Fh(?RtQ^zE&g@scsZmjv2!YtK%vM^z9p0EEBsOHt_@8vXj!h%@a`vI|O zsYP>t$m)&xl00@P)ivT97041VeYn5DrV#8uRY_0?#f!Hps!zN)$4Q9P^R(yWua)Y} z?;*n4r#7VHyBQ@*j>|Zi7!Mq$*MmCtl34py@&*Fi4y6Y9HlDkbjqB>Bi)GBPL%7AT zPCDm={XqEC47(K2Gh#hXSBqxYv{Oo(F}Eu?Ww2tjnTIWZiE+PqN+i+f%P>`amxEQu zHtLhd^yUwI8iqnGzMnC8nbdDb6J)%+blxUp#}l8-XT{IoCq#I;c!_*Hf(-mDvz9W& zu6!Po-y3zwSj30tPu{*_YBTi(^~Uhx_a6$XE3P-m8!ns;_yrQBJCnkDYtzL^I8kuS z|K=h;OmsY#8>rS%p(Hi($l56(ra1Df^%PaqaN%{h$lZ<#s?Yx4@2g$0eA@6rBQx0f zrqkU9?2fq?dgHF2M9!Z=)BpTmHU3%MN|tBt+yFeb!Rjwu0P1j(b`mKq3Htc$Ff^~(MUeCo3j^qap{CEAz|I2 zDHmczr$4VN&Z`5u*+9hK4shf7ZI%~~s+y9RAwj|Qs&-7ZjBA>RsAnEp56_Q2f9@8- zf4_EK-{wT*YFb8CmgqoMX67}bwB9#>dRMZ@48~w4p4S0xd+yEiBSMyZYr~kq81^q- z2bA)E^mE?5yT;|p6x1=NdwVU*h4D+oa)12a>2x7=tl9yVzzNy-1v^yT?c2A{kJb*= zP7Z#lDgZKo^Oc=Djh+{S2u6Q<#1x$Nn#r64%iPR@a>4{~tH$hXWS|~@JU(V*+`R^b z6p~BaK}kACi96V5T|QUkPs7V%6+i&hl?}gmnbym$idfj~s29xcJ-`_C@TO%8Zk39$ z=Vq^_YEshqZA`qVXhKckMOPi)rI+{YMqa%#D=%Y`Fs;bRzBanwwQFiM=46a!xS|<%Og&Osmf|2+cq<(vyn>xBN5?MaC zTGJ?F6+sXHb4NeNu^mn|0HM{r#7s5gxdGw!dqKE&2-1U{U+!HG_JN>nW=LHZO?#Fh za7jPfe%QOZ%Kgr?x@-_V4T@+=|INl!)-ED1m}cqDgpfaS>Ou{ibrF>#BK(T_XiMI@ zAkrZ4)xkt%aa#j%m07WVO@}jp#suu247r-=?$#n12QxIj8V?eA!6R2a2sOv7_q!^0 zRREGt91oz7vTW7;G$0u z?DVQ_0>ZuZZ1I^O7OVu4@I^7{!G=uW(%A#YZlC;7&$F9tkv;e-b1O0|K!Eo%O`6HZ z&4PCi0wj2vhff92j{__?gHLn_7WwVT^eFlTFg01u@J#fA3wZFxAfLs)Hf@D&cK5nd zr!Lg1^YbM*ww`^$%clZ->rZP3(U$w$+Qms;E2%9lb1Z%M-NvyX6cON?%KYX@9t4x* zs6e1pW2RoR6IV0Gw4jn1bVr&Z~|^ls+iA1eR_2*h|pKMR1aU8;BkQ92re6mpz1)OZ-wUz zJ`7HdWKOdamKVbNmuh`@P8WV3n!v+O(&ZFJm7G`cO9#{&`BQ&{nvx!d1 zTm;q$H$jqW{J~?GqX8F1l1;cqwf5 z1GYw3InzN&z=`mRetL?B!mEh6iPsOa0kEyeA$D;ctWF$H?$gKZaxrPq7s%PzWxOZ*MSTL!obk`mC*~Xt~0@F zE0?b_xgbA&&sh^DgcXCXF5=tLw6CcbaR-n?W%<3s9nR~1q(pDpMwnbp%4Df`Tfo>; z8B@W&U&%);xORn;i8C5NvN;5g7VP6zE<5x_94BM88d8BOa+$YDVXoh8>@tPhzwgIS zVRjhFxg)a4Nb&Mk%36)!K^<8er!o;Zf}z{ylT zq9tB8TRb8HF+F^WYM#`nqgYsS{lIv}9^&~t1;PBaHBL$%Fh56r(#+2m)LmmYtV}U{C z45rExSiX0@a-T+51KfX!W;nCSy-&|*Rm4VIWE;6J?n?-CY^Av`w!hd&@$l(o#x%EJ z?uF&M;hw&R-uh_m;~Kq(H-<&NqL9}@OF~^98f4d-VeCCR*vT;uvJ5bJA=@|VuI)5aDF{Nb&)vWB?d@kt(oX0<2G<407E zoP-8fI7$)Y(+HZGN95O!2CJ;qT)~ytubnJB)>PT)Z#>Ndfx=N)?dj_#C}NPrEo8GU zC5G{P73#NLee)5a)>8`z5eNtS{Mv>jIuvN$t&xj$OSq{(={Z=SK(H8xOoUN~;Ml(KBi@MM zAm&Gq@d*jx&uZzj8#W^Ml$4arRRFQ>2Z(p; zkjt0b)z#H^a|-BQFqobMK*hjEp^?$~1xL8eaGZ-H@CsLHGL=m4-78V^(B=Z|JtL=b zsQZ;!y_1H-NWPgOrkVk<+&tShl`_KPT@!jBUTiebarSZjI5)Q*b+rfl28(>lG2GZ9 zGzrU615=1lKUk@?Da&sj8^p64DhCO4Nf_*+ci`fT&|=`U9>&7wo6&IEL(IX5n0GBDm;*NOg94$AuRR%aTTZhh+(B)}SvD9T$`VoR~9> zjWSCMX>i3f2n{m;(wSmvQ}!p?6Z0#E*3rLOwtpkiLH|~S!%TY!659a2{x)r#NwRb` zjVmo>^iDHVkBDnDHkRd^VEnA`-X;rmCX_R<>Mhf}aB42d^Wsfw zhajtE0>jCej0})5mk2W;C%243o6ip78OkMy_GEVAUk#8x>2W?YK z_QatI3t72C(!s!OUr+};QXXFix6+hGTjEpAhY^9(Hden9TF(Wk8xu=c_Njb5Qe}~H zIPdulH&dI78`MaChE&60E|$kRIV;cn;F%eR;UU;grPEr`sloH@{#m{U%Uj`dy{N*38y z<8K-Je1|*+-<~z5L%Y{77bJN$GglTT?ZNrL;wAL)lzlspcN!1Gs-L^onwoG{qefr4 zLi?qp4+e0#{9rQ~i$XIqvzmAbcP8md?}-_SDf?kkM=G&~L|S+~%!}X9noGtg{jzMG zTUkjH<%y-u%AUB=Z0&#k{A+*8u=UDdhmyIR^+6e#5U^hf#CNGr*-@{++lUdHf0Uah zFMsxA_(n~snAZw6mMo(e`7#(FC(hg)`Tc#p+4X(Sgj_9Mt!W3xQtV56gA+1aCu4Rn z>|7i7hqEWI_E+wz3m;7j_GxC~!$5DZ2W|X!vwq8=M8Mas`6$;R)l4QDaz^Mu7nSSq zLHaRq_Z?c`zz!w!N2LvuaKHv1YQ`;Pj-Hj2%J{H=_6DOtjbQh(SgsaFLOw^|+nd(+ zyFCind}j!YUzn2ktU7!NseF77uzA!NFU03(o<(@BK5{dYdtBoipp{v!y4U(2#wbO9 zyev*ZsPJ7a7kp!SPOZc@CJs2MxG9ejC&A2pY5XNnz+6dHm_yGDuuLFy{T|1aaM5;l z6b`IaNXv%JPEYe@Ota}v#U!PGFlB-ezbBNeevR>&P(BCW>`*e}qJ2=*@_lng1%!*^ z?rugX;^!|woFAi+IJp3@QDb9%H~WBg$`N5;MHC>P^uad|VD!Xu=);R=ywv~+sw!J) z*4#S7d%JtWM9y70qiUL$KB#dT74_j!sf?7g8Wv?Rz9c*}74&@C{zPSouanau0MC>!DynPP(NAy=pXu_Q;XtUG27!{Gqr^oQ0hf!M z?+f`w>wK#Yi#B&4-Re~7npdyqYCnq+;gDg2h;9zKsZ)3Yc$ik?Q zuu)SEoZPnoKfL6aj!^~=8#-uN0^fZ3A-0?Ci%9~2)tN4^Z_Z_01Qpl_A@a&EpM@lTth3n}ziOExNRTF4mLW zDmb=DMuhePTvi8nDa*=E$}@|l8~IW^(Rhm2BuaTj_g;7e7Gccr(lMk?x+53}No^a5 zMs=_*W7p12VdM$05c=Kt?qMfVP~$lOmZ~sK>Y~XtV66oaR?+F-GRd3GP@78gr}1z? zcxsUK3M@KsTV9yyNrnK+;YSrdrb^pkF{cnl3a?CE<(Qm?N@8NoJ|J4Ta z=hzIU4y?8r1rxXbLgDY7J{LbcKZ5Db{%9@w^TPgE#uYkX1)IEdvt$4L+kVz{pm6Tp z!NJ;yzf|<~XXal4D|UwagvlT8=zm$|?|p8>DYynhKacq6OZ;D+^^eLS0XsO{_Kx5$ zl>Gf0K*5^)y9ItM=>LX-{eJ>TLCXr<`;SWdH!AC76^Iq`+Cq2yl|ZF@-^0Lv#t#3+ rZ;yf7UD~|$yFUfmpFs9+ws#JWMSWQ`+HLn4_%SgC+uIwS|M@=wzJR^o literal 0 HcmV?d00001 From 04819ed128f1c83abb3b040f2ccf28bf4aabaa20 Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Thu, 12 Jun 2025 07:36:02 +0100 Subject: [PATCH 064/438] Update src/connections/destinations/catalog/dotdigital/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../destinations/catalog/dotdigital/index.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index eb78fe0a57..ea382e82a2 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -21,17 +21,14 @@ This destination is maintained by Dotdigital. For any issues with the destinatio {% include components/actions-fields.html %} -## Action notes +## Additional context ### Add Contact to List +Before using the Add Context to List Action, complete the following prerequisites: -_Lists_ -- [Create a contact list in Dotdigital](https://support.dotdigital.com/en/articles/8198769-create-a-contact-list). -- Select your list from the dropdown in the Segment event mapping. +- **Lists**: [Create a contact list in Dotdigital](https://support.dotdigital.com/en/articles/8198769-create-a-contact-list). After you've created a list in Dotdigital, return to the Segment app and select your list from the dropdown in the Segment event mapping. +- Data Fields: [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields), then return to the Segment app, open the event mapping, and map Segment properties to Dotdigital data fields. -_Data Fields_ -- [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields). -- Map Segment properties to Dotdigital data fields in the Segment event mapping. +### Enroll Contact to Program +When you use the Enroll Contact to Program action, Dotdigital creates a contact for the identifier you provide, if they don't exist already. -### Enrol Contact to Program -- The action will create a contact in Dotdigital for the identifier you provide, if they don't exist already. From e410ad3657d51f597ad27ca373f38b4cf65dbfe3 Mon Sep 17 00:00:00 2001 From: piyush-nudge Date: Thu, 12 Jun 2025 16:45:42 +0530 Subject: [PATCH 065/438] fix: fixed readme manifest --- .../destinations/catalog/actions-nudge/index.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/connections/destinations/catalog/actions-nudge/index.md b/src/connections/destinations/catalog/actions-nudge/index.md index b4005e5ad1..4c626e7551 100644 --- a/src/connections/destinations/catalog/actions-nudge/index.md +++ b/src/connections/destinations/catalog/actions-nudge/index.md @@ -1,4 +1,6 @@ -Nudge (Actions) Destination +--- +title: Nudge (Actions) Destination +id: --- {% include content/plan-grid.md name="actions" %} @@ -30,8 +32,7 @@ The Identify method lets you create or update a user in Nudge’s backend. Every ```js analytics.identify('user123', { - firstName: 'Alice', - lastName: 'Smith', + name: 'Alice Smith', email: 'alice.smith@example.com', company: 'Acme Corp', employees: 150 @@ -93,4 +94,4 @@ If requests continue to fail after checking your API key and payload: --- -*If you still encounter issues, please reach out to the Nudge Developer Team or email [support@nudgenow.com](mailto:support@nudgenow.com).* \ No newline at end of file +*If you still encounter issues, please reach out to the Nudge Developer Team or email [support@nudgenow.com](mailto:support@nudgenow.com).* From ae95ff58efb500b9a3ae24a3fe5e1a7775f43cc3 Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Thu, 12 Jun 2025 19:57:05 +0530 Subject: [PATCH 066/438] Update tables.md --- src/unify/profiles-sync/tables.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index 29ca239bf0..b96ac9aa56 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -107,7 +107,7 @@ With raw tables, you have full control over the materialization of Profiles in y Raw tables contain complete historical data when using historical backfill. -Note: `Timestamp` column will be empty for backfilled data. This is because we reverse engineer historical profile changes from the current state of the profile, and do not refer to the actual change history. +Note: `Timestamp` column will be empty for backfilled data. This is because we infer historical profile changes from the current state of the profile, and do not refer to the actual change history. ### The id_graph_updates table @@ -298,7 +298,7 @@ If you're not using materialized views for Profile Sync and would like to switch 2. **Request a Full Profiles and Events Backfill** - After enabling the materialized views, you'll need to ensure historical data is populated in the materialized tables. - Write to [friends@segment.com](mailto:friends@segment.com) and request: - - A full **Profiles Backfill** to populate historical profiles data. Materialized views will have null `Timestamp` for the same reason as in Profile events table, discussed above. + - A full **Profiles Backfill** to populate historical profiles data. - An **Events Backfill** to include any relevant historical events, including a date range for Segment to pull data in for the events backfill. 3. **Verify Your Data** From 8e8f01c5173bf935b9b88efd1b024120310164aa Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Thu, 12 Jun 2025 19:58:52 +0530 Subject: [PATCH 067/438] Update tables.md --- src/unify/profiles-sync/tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index b96ac9aa56..c667834d2e 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -107,7 +107,7 @@ With raw tables, you have full control over the materialization of Profiles in y Raw tables contain complete historical data when using historical backfill. -Note: `Timestamp` column will be empty for backfilled data. This is because we infer historical profile changes from the current state of the profile, and do not refer to the actual change history. +Note: `Timestamp` column will be empty for backfilled data. This is because during backfill, we infer historical profile changes from the current state of the profile, and do not refer to the actual change history. ### The id_graph_updates table From 6369fa838c4409e25aecd9b7d1d8cfd6fbec4f56 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Thu, 12 Jun 2025 11:54:34 -0700 Subject: [PATCH 068/438] edits --- src/unify/data-graph/index.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md index dd3327e2cb..d9aaf00797 100644 --- a/src/unify/data-graph/index.md +++ b/src/unify/data-graph/index.md @@ -6,7 +6,7 @@ redirect_from: - '/unify/data-graph/data-graph' --- -The Data Graph acts as a semantic layer that enables businesses to define relationships between various entity datasets in the warehouse — such as accounts, subscriptions, households, and products — with the Segment Profile. It makes these relational datasets accessible to business teams for targeted and personalized customer engagements. The Data Graph powers both Linked Audiences and Linked Events. +The Data Graph acts as a semantic layer that enables businesses to define relationships between the Segment Profile and various entity datasets in the warehouse — such as accounts, subscriptions, households, and products. It makes these relational warehouse datasets accessible to business teams for targeted and personalized customer engagements. The Data Graph powers both Linked Audiences and Linked Events. - **[Linked Audiences](/docs/engage/audiences/linked-audiences/)**: Empowers marketers to effortlessly create targeted audiences by combining behavioral data from the Segment Profile and warehouse entity data within a self-serve, no-code interface. This tool accelerates audience creation, enabling precise targeting, enhanced customer personalization, and optimized marketing spend without the need for constant data team support. The Data Graph is used in Linked Audiences for defining relationships between warehouse tables and views, which are then used to build audiences of Segment Profiles. - **[Linked Events](/docs/unify/data-graph/linked-events/)**: Enables data teams to enrich event streams in real time using datasets from data warehouses or lakes, and send these enriched events to any destination. Linked Events is available for both Destination Actions and Functions. The Data Graph is used in Linked Events to specify which tables to use in enrichments. @@ -60,7 +60,7 @@ Segment recommends you to use the visual builder for most use cases because it h Follow these key steps to build your Data Graph: 1. Define your entities. An entity corresponds to a table, view, or materialized view in your warehouse. If you're only using Linked Events, this is the only step you need to do. If you're using Linked Audiences, you'll need to perform steps 2 and 3 as well. -2. Define the profile. This is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, and so on. Based on your Profiles Sync settings, the Data Graph attempts to define the profile block. +2. Define the profile. This is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, and so on. Based on your Profiles Sync settings, the Data Graph automatically attempts to define the profile block. 3. Define how your datasets are related to each other. The Data Graph preserves these relationships and carries this rich context to the destinations to unlock personalization. **Defining Relationships** @@ -68,7 +68,7 @@ Follow these key steps to build your Data Graph: Similar to the concept of [cardinality in data modeling](https://w.wiki/Ay$u){:target="\_blank"}, the Data Graph supports 3 types of relationships: - **Profile-to-entity relationship:** This is the first level of relationship, and is the relationship between your entity table and the Segment Profiles tables. This relationship is required for Linked Audiences because it connects Segment Profiles data with all the entity data you have in your warehouse. -- **1:many relationship:** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. +- **1:many relationship:** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. A 1:many relationship can also be a 1:1 relationship. - **many:many relationship:** For example, a user can have many `carts`, and each `cart` can have many `products`. However, these `products` can also belong to many `carts`. The Data Graph supports 6 levels of depth (or nodes) starting from the profile. For example, relating the `profile` to the `accounts` table to the `carts` table is 3 levels of depth. There are no limits on the width of your Data Graph or the number of entities. Relationships are nested under the profile. Refer to the example below. @@ -222,7 +222,7 @@ Parameter | Defintion Now define the relationships between your entities. Similar to the concept of [cardinality in data modeling](), the Data Graph supports 3 types of relationships below. All relationship types require you to define the relationship slug, name, and related entity. Each type of relationship has unique join on conditions. - **[Profile-to-entity relationship](#define-profile-to-entity-relationship):** This is a relationship between your entity table and the Segment Profiles tables, and is the first level of relationship. -- **[1:many relationship](#define-a-1many-relationship):** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. +- **[1:many relationship](#define-a-1many-relationship):** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. A 1:many relationship can also be a 1:1 relationship. - **[many:many relationship](#define-manymany-relationship):** For example, a user can have many `carts`, and each `cart` can have many `products`. However, these `products` can also belong to many `carts`. * **Note:** To add many:many relationships, you need to use the [code editor](#using-the-code-editor). @@ -235,8 +235,8 @@ Parameter | Definition `Select related entity` | The left-hand-side entity represents the Segment profile. On the right-hand-side, you can select which entity to relate it to.

    Note: you can select the preview icon to preview both the Segment profile and the associated table or view representing the entity. `Relationship name` | A label displayed throughout your Segment space for Linked Audiences. This name can be modified at any time. `Description` (**Optional**) | An optional descriptor used to add additional context to the relationship. -`Join on external ID or trait` | The Segment external ID or trait you’ll use to join to your entity. To define a profile-to-entity relationship, reference your entity table. Depending on the column in it that you would like to link to your Segment profile, you can select either an [external identifier](/docs/unify/identity-resolution/externalids/) such as `user_id`, `email`, or `phone` or a [trait](/docs/unify/#enrich-profiles-with-traits) in your Unify Profiles. -`Join key` | The column on the entity table that matches the external ID or trait selected directly above. +`Join on external ID or trait` | The Segment external ID or trait you’ll use to join to your entity. To define a profile-to-entity relationship, reference your entity table or view. Depending on the column in it that you would like to link to your Segment profile, you can select either an [external identifier](/docs/unify/identity-resolution/externalids/) such as `user_id`, `email`, or `phone` or a [trait](/docs/unify/#enrich-profiles-with-traits) in your Unify Profiles. +`Join key` | The column on the entity table or view that matches the external ID or trait selected directly above. > info "" > Segment recommends using materialized views with Profiles Sync. However, Segment may still reference unmaterialized tables during setup for schema detection. @@ -250,7 +250,7 @@ For 1:many relationships, select the relationship node you’d like to add a new Parameters | Definition ---------- | ------------ `Select related entity` | The left-hand-side entity represents the entity referenced in the relationship you had previously defined. This is immutable. On the right-hand-side, you can select which entity to relate it to.

    Note: you can select the preview icon to preview both associated tables or views. -`Join keys` | Defines relationship between the two entity tables – i.e. how they should be joined together. +`Join keys` | Defines relationship between the two entity tables or views, in other words, how they should be joined together. `Relationship name` | A label displayed throughout your Segment space for Linked Audiences. This name can be modified at any time By selecting **Compute count**, you can check the number of rows returned when joining the two entity tables or views together based on the join keys you provided. This is a good way to ensure results are as expected. @@ -333,7 +333,7 @@ data_graph { Now define the relationships between your entities. Similar to the concept of [cardinality in data modeling](), the Data Graph supports 3 types of relationships below. All relationship types require you to define the relationship slug, name, and related entity. Each type of relationship has unique join on conditions. - **[Profile-to-entity relationship](#define-profile-to-entity-relationship):** This is a relationship between your entity table and the Segment Profiles tables, and is the first level of relationship. -- **[1:many relationship](#define-a-1many-relationship):** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. +- **[1:many relationship](#define-a-1many-relationship):** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`. A 1:many relationship can also be a 1:1 relationship. - **[many:many relationship](#define-manymany-relationship):** For example, a user can have many `carts`, and each `cart` can have many `products`. However, these `products` can also belong to many `carts`. * **Note:** To add many:many relationships, you need to use the [code editor](#using-the-code-editor). @@ -349,9 +349,9 @@ Parameter | Definition To define a profile-to-entity relationship, reference your entity table and depending on your table columns, choose to join on one of the following: -* **Option 1 - Join on an external ID (*most common*):** Use the `external_id` block to join the profile entity with an entity table using external IDs from your [Unify ID resolution](/docs/unify/identity-resolution/externalids/) settings. Typically these identifiers are `user_id`, `email`, or `phone` depending on the structure of your entity table. +* **Option 1 - Join on an external ID (*most common*):** Use the `external_id` block to join the profile entity with an entity table or view using external IDs from your [Unify ID resolution](/docs/unify/identity-resolution/externalids/) settings. Typically these identifiers are `user_id`, `email`, or `phone` depending on the structure of your entity table. - `type`: Represents the [external ID type](/docs/unify/identity-resolution/externalids/#default-externalids) (`email`, `phone`, `user_id`) in your ID resolution settings. - - This maps to the `type` column in the `user_identifiers` table when using materialized views. + - This maps to the `type` column in the `user_identifiers` table when using Profiles Sync materialized views. - `join_key`: The column on the entity table that matches the external ID. > info "" @@ -359,7 +359,7 @@ To define a profile-to-entity relationship, reference your entity table and depe * **Option 2 - Join on a profile trait:** Use the `trait` block to join the profile entity with an entity table using [Profile Traits](/docs/unify/#enrich-profiles-with-traits). - - `name`: Represents a trait name in your Unify profiles. This maps to the `name` column in the `user_traits` table when using materialized views. + - `name`: Represents a trait name in your Unify profiles. This maps to the `name` column in the `user_traits` table when using Profiles Sync materialized views. - `join_key`: The column on the entity table that you're matching to the trait. **Example:** @@ -403,7 +403,7 @@ data_graph { Select a Data Graph node to see an overview of the relationship and to also confirm what data is in your entity tables or views by previewing the first 10 rows. -Click **Compute count** to check the number of rows returned when joining the profile and entity together based on the join keys you provide. This enables you to make sure that entity joins occur correctly while setting up the Data Graph by returning the number of rows produced when joining two associated tables or view. +Click **Compute count** to check the number of rows returned when joining the profile and entity together based on the join keys you provide. This enables you to make sure that entity joins occur correctly while setting up the Data Graph. ##### Define 1:many relationship Define the join between the two entity tables using the spec below. @@ -451,7 +451,7 @@ data_graph { Select a Data Graph node to see an overview of the relationship and to also confirm what data is in your entity tables or views by previewing the first 10 rows. -Click **Compute count** to check the number of rows returned when joining the profile and entity together based on the join keys you provide. This enables you to make sure that entity joins occur correctly while you’re setting up the Data Graph by returning the number of rows produced when joining two associated tables or view. +Click **Compute count** to check the number of rows returned when joining 2 entities together based on the join keys you provide. This enables you to make sure that entity joins occur correctly while you’re setting up the Data Graph. ##### Define many:many relationship @@ -476,8 +476,8 @@ Parameter | Definition --------- | ----------- `table_ref` | Defines the fully qualified table reference to the join table: `[database name].[schema name].[table name]`. Segment flexibly supports tables, views and materialized views. `primary_key` | The unique identifier for the given table. Must be a column with unique values per row. -`left_join_on` | Defines the relationship between the left entity table and the junction table: `[left entity slug].[column name] = [junction table column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again. -`right_join_on` | Define the relationship between the junction table and the right entity table: `[junction table column name] = [right entity slug].[column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again. +`left_join_on` | Defines the relationship between the left entity table or view and the junction table: `[left entity slug].[column name] = [junction table column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again. +`right_join_on` | Define the relationship between the junction table and the right entity table or view: `[junction table column name] = [right entity slug].[column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again. When you define a many-to-many relationship using a junction table, `left_join_on` and `right_join_on` tell Data Graph how to connect each entity to the junction table: @@ -526,7 +526,7 @@ data_graph { Select a Data Graph node to see an overview of the entity and to also confirm what data is in your entity tables or views by previewing the first 10 rows. -Click **Compute count** to check the number of rows returned when joining the profile and entity together based on the join keys you provide. This enables you to make sure that entity joins occur correctly while you’re setting up the Data Graph by returning the number of rows produced when joining two associated tables or view. +Click **Compute count** to check the number of rows returned when joining when joining 2 entities together based on the join keys you provide. This enables you to make sure that entity joins occur correctly while you’re setting up the Data Graph. ## Step 4: Validate your Data Graph From f31b8c6990775ff307ee5c2aebb22d6b1969d2c4 Mon Sep 17 00:00:00 2001 From: ksaha873 Date: Fri, 13 Jun 2025 15:45:48 +0530 Subject: [PATCH 069/438] Update src/unify/profiles-sync/tables.md Co-authored-by: Sharon Adewusi --- src/unify/profiles-sync/tables.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/profiles-sync/tables.md b/src/unify/profiles-sync/tables.md index c667834d2e..379cdb140b 100644 --- a/src/unify/profiles-sync/tables.md +++ b/src/unify/profiles-sync/tables.md @@ -107,7 +107,7 @@ With raw tables, you have full control over the materialization of Profiles in y Raw tables contain complete historical data when using historical backfill. -Note: `Timestamp` column will be empty for backfilled data. This is because during backfill, we infer historical profile changes from the current state of the profile, and do not refer to the actual change history. +The `Timestamp` column will be empty for backfilled data because, during backfill, historical profile changes are inferred from the current state of the profile and do not reflect the actual change history. ### The id_graph_updates table From b114a9720d261d15031df5885dac449360a3adff Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Fri, 13 Jun 2025 10:09:11 -0700 Subject: [PATCH 070/438] Identity edits --- .../libraries/website/javascript/identity.md | 54 ++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/identity.md b/src/connections/sources/catalog/libraries/website/javascript/identity.md index 7f57aa9c60..b3c58d0f9e 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/identity.md +++ b/src/connections/sources/catalog/libraries/website/javascript/identity.md @@ -3,11 +3,11 @@ title: Managing identity in Analytics.js strat: ajs --- -This page explains how Analytics.js identifies users, and passes userID and anonymousID data, and how to override and change this information. +This page explains how Analytics.js identifies users, passes `userID` and `anonymousID` data, and how to override and change this information. -## Segment ID Persistence +## Segment ID persistence -To ensure high fidelity, first-party customer data, Segment writes the user's IDs to the user's local storage, and uses that as the Segment ID on the cookie whenever possible. Local Storage is meant for storing this type of first-party customer information. +To ensure high fidelity, first-party customer data, Segment writes the user's IDs to the user's local storage, and uses that as the Segment ID on the cookie whenever possible. Local storage is meant for storing this type of first-party customer information. If a user returns to your site after the cookie expires, Analytics.js looks for an old ID in the user's `localStorage`, and if one is found, sets it as the user's ID again in the new cookie. If a user clears their cookies _and_ `localstorage`, all of the IDs are removed, and the user gets a completely new `anonymousID` when they next visit the page. @@ -30,8 +30,8 @@ Example: ajs_anonymous_id=%2239ee7ea5-b6d8-4174-b612-04e1ef3fa952 ``` -You can override the default-generated anonymousID in code using the methods described below: -- [Set anonymousId from the Segment snippet](#override-the-anonymous-id-from-the-segment-snippet) (before the `ready` method returns) +You can override the default-generated `anonymousID` in code using the methods described below: +- [Set anonymousId from the Segment snippet](#override-the-anonymous-id-from-the-segment-snippet) (before the Ready method returns) - [Use a call to override the anonymousID](#override-the-default-anonymous-id-with-a-call) - [Set `anonymousId` in the `options` object of a call](#override-the-anonymous-id-using-the-options-object) @@ -43,9 +43,9 @@ You can get the user's current `anonymousId` using the following call: analytics.user().anonymousId(); ``` -If the user's `anonymousId` is `null` (meaning not set) when you call this function, Analytics.js automatically generated and sets a new `anonymousId` for the user. +If the user's `anonymousId` is `null` (meaning not set) when you call this function, Analytics.js automatically generates and sets a new `anonymousId` for the user. -If you are using the npm library, the previous call returns a promise for `user()`. As a workaround, you'll need to grab the user's current `anonymousId` in the following way: +If you're using the npm library, the previous call returns a promise for `user()`. As a workaround, you'll need to grab the user's current `anonymousId` in the following way: ```js analytics.instance?.user().anonymousId() @@ -57,13 +57,13 @@ A user's `anonymousId` changes when any of the following conditions are met. - The user clears their cookies _and_ `localstorage`. - Your site or app calls [`analytics.reset()`](/docs/connections/sources/catalog/libraries/website/javascript/#reset-or-logout) during in the user's browser session. -- Your site or app calls `analytics.identify()` with a userId that is different from the current userId. -- Your site or app is setting `ajs_user_id` to an empty string or calling `analytics.user().id('')` before calling `analytics.identify()`. This sequence of events will result in a new anonymousId being set when `analytics.identify()` is called. +- Your site or app calls `analytics.identify()` with a `userId` that is different from the current `userId`. +- Your site or app is setting `ajs_user_id` to an empty string or calling `analytics.user().id('')` before calling `analytics.identify()`. This sequence of events will result in a new `anonymousId` being set when `analytics.identify()` is called. ### Override the Anonymous ID from the Segment snippet -You can also set the `anonymousId` immediately inside your Segment snippet, even before the `ready` method returns. +You can also set the `anonymousId` immediately inside your Segment snippet, even before the Ready method returns. ```js analytics.load('writekey'); @@ -71,14 +71,14 @@ You can also set the `anonymousId` immediately inside your Segment snippet, even analytics.setAnonymousId('ABC-123-XYZ'); ``` -Use this method if you are queueing calls before `ready` returns and they require a custom `anonymousId`. Keep in mind that setting the `anonymousId` in Analytics.js does not overwrite the anonymous tracking IDs for any destinations you're using. +Use this method if you are queueing calls before Ready returns and they require a custom `anonymousId`. Keep in mind that setting the `anonymousId` in Analytics.js does not overwrite the anonymous tracking IDs for any destinations you're using. > info "" -> Device-mode destinations that load their code on your site _might_ also set their own anonymous ID for the user that is separate and different from the Segment generated one. Some destinations use the Segment `anonymousId`. Read the documentation for each Destination to find out if a Destination sets its own ID. +> Device-mode destinations that load their code on your site _might_ also set their own anonymous ID for the user that is separate and different from the Segment generated one. Some destinations use the Segment `anonymousId`. Read the documentation for each destination to find out if a destination sets its own ID. ### Override the default Anonymous ID with a call -If the default generated UUID does not meet your needs, you can override it `anonymousId` for the current user using either of the following methods. +If the default generated UUID does not meet your needs, you can override the `anonymousId` for the current user with either of the following methods: ```js analytics.user().anonymousId('ABC-123-XYZ'); @@ -92,17 +92,19 @@ These methods behave exactly the same. ### Override the Anonymous ID using the options object -Or in the `options` object of [`identify`](/docs/connections/spec/identify/), [`page`](/docs/connections/spec/page/), or [`track`](/docs/connections/spec/track/) calls, like this: +You can override the `anonymousID` in the `options` object of [Identify](/docs/connections/spec/identify/), [Page](/docs/connections/spec/page/), or [Track](/docs/connections/spec/track/) calls, like this: -Set the anonymousId in the Options object using the format in the following examples. +Set the `anonymousId` in the `options` object using the format in the following examples. -The custom anonymousId persists when you use these methods, even if you do not explicitly specify the anonymousId in the calls. +The custom `anonymousId` persists when you use these methods, even if you do not explicitly specify the `anonymousId` in the calls. -For example, after the Track call below sets the anonId, any later track calls from this user will have the anonymousId of `ABC-123-XYZ`, even if it is not explicitly specified in the track call. +For example, after a Track call sets the `anonymousID` to `ABC-123-XYZ`, any additional Track calls from this user will have the same `anonymousId`, even if it's not explicitly specified in the Track call. #### Override anonymousId in an Identify call +You can override an `anonymousID` with an Identify call. For example: + ```js analytics.identify('user_123', { name: 'Jane Kim' @@ -113,12 +115,16 @@ analytics.identify('user_123', { #### Override anonymousId on a Page call +You can override an `anonymousID` with a Page call. For example: + ```js analytics.page({}, { anonymousId: 'ABC-123-XYZ' }); ``` #### Override anonymousId on a Track call +You can override an `anonymousID` with a Track call. For example: + ```js analytics.track('Email Clicked', { callToAction: 'Signup' @@ -146,7 +152,7 @@ Consider this Identify event: ```js analytics.identify('12091906-01011992', { plan_id: 'Paid, Tier 2', - email: 'grace@usnavy.gov' + email: 'grace@example.com' }); ``` @@ -166,7 +172,7 @@ analytics.track('Clicked Email', { ); ``` -This appends the `plan_id` trait to this Track event. This does _not_ add the name or email, since those traits were not added to the `context` object. You must do this for every following event you want these traits to appear on, as the `traits` object does not persist between calls. +This appends the `plan_id` trait to the Track event. This does _not_ add the name or email, since those traits were not added to the `context` object. You must do this for every following event you want these traits to appear on, as the `traits` object does not persist between calls. By default, non-Identify events (like Track or Page) **don't automatically collect user traits** from previous Identify calls. To include traits from an `identify()` event in later events, you'll need to add them manually to the `context.traits` object within the `options` parameter. @@ -180,9 +186,9 @@ Each Analytics.js method has an `options` parameter where you can pass the `cont Adding traits to events is especially useful if you're using [Actions destinations](/docs/connections/destinations/actions/), since it makes those traits available for mapping in the destination’s configuration. -## Clearing Traits +## Clearing traits -You can pass an empty object to the `traits` object to clear _all_ cached traits for a User or Group. +You can pass an empty object to the `traits` object to clear _all_ cached traits for a user or group. Traits are cached by default when you call the Identify and Group methods. You can clear the `traits` object for the user or group by passing `traits` an empty object: @@ -195,13 +201,13 @@ analytics.group().traits({}); ## Using analytics.user() and analytics.group() -You can use the `user` or `group` method as soon as the Analytics.js library loads, to return information about the currently identified user or group. This information is retrieved from the user's cookie. +You can use the User or Group method as soon as the Analytics.js library loads, to return information about the currently identified user or group. This information is retrieved from the user's cookie. > success "" -> **Tip:** You can wrap any reference to `user()` or `group()` in a [ready function block](/docs/connections/sources/catalog/libraries/website/javascript#ready) to ensure that Analytics.js has fully loaded so these methods are available. +> You can wrap any reference to `user()` or `group()` in a [ready function block](/docs/connections/sources/catalog/libraries/website/javascript#ready) to ensure that Analytics.js has fully loaded so these methods are available. Examples: @@ -228,7 +234,7 @@ analytics.ready(function() { ## Anonymizing IP -Segment automatically collects the user's IP address for device-based (iOS, Android, Analytics.js and Xamarin) events. +Segment automatically collects the user's IP address for device-based (iOS, Android, Analytics.js, and Xamarin) events. > info "IPv6" > At the moment, Segment doesn't support automatically collecting IPv6 addresses. From ea72d84965d649ea65f7165440833ca4b2f00b1a Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Fri, 13 Jun 2025 10:09:29 -0700 Subject: [PATCH 071/438] Middleware edits --- .../website/javascript/middleware.md | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/middleware.md b/src/connections/sources/catalog/libraries/website/javascript/middleware.md index 340ada5a66..9be9c62b4c 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/middleware.md +++ b/src/connections/sources/catalog/libraries/website/javascript/middleware.md @@ -4,21 +4,21 @@ strat: ajs --- -Middlewares allow developers to extend Analytics.js with custom code which runs on every event. This code has full access to the DOM and Browser API, and helps customers enrich and transform event payloads. Source Middlewares and Destination Middlewares are available on the Analytics.js snippet version `4.12.0` and later. +Middlewares allow developers to extend Analytics.js with custom code that runs on every event. This code has full access to the DOM and Browser API, and helps customers enrich and transform event payloads. Source and destination middlewares are available on the Analytics.js snippet version `4.12.0` and later. -Analytics.js can be extended using two functions: +Analytics.js can be extended using 2 functions: ```js addSourceMiddleware(middleware) addDestinationMiddleware(targetIntegration, middleware1, middleware2, ...) ``` -The first function (Source Middleware) allows you to manipulate the payload and filter events on a per-source basis, while the second function (Destination Middleware) allows this on a per destination basis. Middlewares run in the browser. +The first function (source middleware) allows you to manipulate the payload and filter events on a per-source basis, while the second function (destination middleware) allows this on a per destination basis. Middlewares run in the browser. > info "" -> **Note**: Destination-middleware only act on [data sent to destinations in device-mode](/docs/connections/destinations#connection-modes). Since the destination middleware code exists in your app or project, it cannot transform the data sent from the Segment servers to the destination endpoint. +> Destination-middleware only act on [data sent to destinations in device-mode](/docs/connections/destinations#connection-modes). Since the destination middleware code exists in your app or project, it cannot transform the data sent from the Segment servers to the destination endpoint. -## Using Source Middlewares +## Using source middlewares To add source middleware, use the following API: @@ -26,12 +26,11 @@ To add source middleware, use the following API: analytics.addSourceMiddleware(({ payload, next, integrations }) => .... ) ``` -- `payload` represents the event payload sent by Analytics.js. To change the value of the `payload`, mutate the `payload.obj` object. (See the example below.) +- `payload` represents the event payload sent by Analytics.js. To change the value of the `payload`, mutate the `payload.obj` object, as in the example below. - `next` represents the next function to be called in the source middleware chain. If the middleware provided does not call this function, the event is dropped on the client and is not delivered to Segment or any destinations. -- `integrations` is an array of objects representing all the integrations that the payload is sent to. If an integration in this array is set to a ‘falsey' value then the event is not be sent to the Integration. +- `integrations` is an array of objects representing all the integrations that the payload is sent to. If an integration in this array is set to a falsy value, then the event is not sent to the integration. -### Examples -#### Modifying an event +#### Example: Modifying an event ```js analytics.addSourceMiddleware(({ payload, next }) => { const { event } = payload.obj.context @@ -42,7 +41,7 @@ analytics.addSourceMiddleware(({ payload, next }) => { }); ``` -#### Dropping an event +#### Example: Dropping an event ```js analytics.addSourceMiddleware(({ payload, next }) => { const { event } = payload.obj.context @@ -53,7 +52,7 @@ analytics.addSourceMiddleware(({ payload, next }) => { }); ``` -## Using Destination Middlewares +## Using destination middlewares To add destination middleware, use the following API: @@ -62,7 +61,7 @@ To add destination middleware, use the following API: analytics.addDestinationMiddleware('integrationA', ({ payload, next, integration }) => .... ) ``` -- `payload` represents the event payload sent by Analytics.js. To change the value of the `payload`, mutate the `payload.obj` object. (See the example below.) +- `payload` represents the event payload sent by Analytics.js. To change the value of the `payload`, mutate the `payload.obj` object, as in the example below. - `next` represents the next function to be called in the destination middleware chain. If the middleware provided does not call this function, then the event is dropped completely for the given destination. - `integration` is a string value representing the integration that this middleware is applied to. To apply middleware to all destinations (excluding Segment.io), you can use the `*` value. @@ -87,11 +86,11 @@ analytics.addDestinationMiddleware('integrationA', ({ payload, next, integration > info "" -> **Note**: Destination-middleware only act on [data sent to destinations in device-mode](/docs/connections/destinations#connection-modes). Since the destination middleware code exists in your app or project, it cannot transform the data sent from the Segment servers to the destination endpoint. +> Destination middleware only act on [data sent to destinations in device-mode](/docs/connections/destinations#connection-modes). Since the destination middleware code exists in your app or project, it cannot transform the data sent from the Segment servers to the destination endpoint. ## Adding middlewares to Analytics.js -The above defined Source & Destination Middleware can be added to the Analytics.js execution chain as: +The above defined source and destination middleware can be added to the Analytics.js execution chain as: ```js analytics.addSourceMiddleware(() => ...); @@ -99,17 +98,17 @@ analytics.addDestinationMiddleware('integrationA', () => ...); ``` -You can call the `.addSourceMiddleware(fn)` multiple times, and the order of operations reflects the order in which you register your Source Middleware. +You can call the `.addSourceMiddleware(fn)` multiple times, and the order of operations reflects the order in which you register your source middleware. Both `.addSourceMiddleware(fn)` and `.addDestinationMiddleware('integration', fn, ...)` can be called before [`.load()`](/docs/connections/sources/catalog/libraries/website/javascript/#load-options). -## Braze Middleware +## Braze middleware -If you use the Braze (Appboy) destination in either [cloud or device mode](/docs/connections/destinations/#connection-modes) you can save Braze costs by "debouncing" duplicate `identify()` calls from Segment by adding our [open-source Middleware tool](https://github.com/segmentio/segment-braze-mobile-middleware) to your implementation. +If you use the Braze (Appboy) destination in either [cloud or device mode](/docs/connections/destinations/#connection-modes) you can reduce Braze costs by debouncing duplicate Identify calls from Segment. You can achieve this by adding Segment's [open-source middleware tool](https://github.com/segmentio/segment-braze-mobile-middleware){:target="_blank"} to your implementation. This optional middleware is disabled by default. When enabled, it ensures that only events where at least one changed trait value are sent to Braze, and events with duplicate traits are not sent. -To enable this Middleware for a JavaScript or Project source, go to `Analytics.js` in your source settings. +To enable this middleware for a JavaScript or Project source, go to **Analytics.js** in your source settings. ![BrazeMiddleware](images/sources_ajs_brazemiddleware.png) -More information about this tool and how it works [is available in the project's README](https://github.com/segmentio/segment-braze-mobile-middleware/blob/master/README.md#how-does-this-work). +More information about this tool and how it works is available in the project's [README](https://github.com/segmentio/segment-braze-mobile-middleware/blob/master/README.md#how-does-this-work){:target="_blank"}. From 7eaea947292ac97269cbc16a0eab43b1c52d745a Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Fri, 13 Jun 2025 10:25:42 -0700 Subject: [PATCH 072/438] Querystring edits --- .../libraries/website/javascript/querystring.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/querystring.md b/src/connections/sources/catalog/libraries/website/javascript/querystring.md index f105be3f82..ee30e56cc8 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/querystring.md +++ b/src/connections/sources/catalog/libraries/website/javascript/querystring.md @@ -15,13 +15,12 @@ Here are the *optional* query parameters to use: | `ajs_prop_` | A property to pass to the Track call. | This won't implicitly trigger an event and is dependent on you also passing `ajs_event`. This property is included in the resulting Track call. | | `ajs_trait_` | A trait to pass to the Identify call. | This won't implicitly trigger any call and is dependent on you also passing `ajs_uid`. This trait is included in the resulting Identify call. | -For example, this URL: +For example, this URL would create the following events on the page: ```text http://segment.com/?ajs_uid=123456789abcd&ajs_event=Clicked%20Email&ajs_aid=abc123&ajs_prop_emailCampaign=First+Touch&ajs_trait_name=Karl+Jr. ``` - -would create the following events on the page. +Each trigger parameter is optional. You can pass up to **1 of each trigger parameter**, as shown in the following example: ```js analytics.identify('123456789abcd', { name: 'Karl Jr.' }); @@ -29,7 +28,7 @@ analytics.track('Clicked Email', { 'emailCampaign': 'First Touch' }); analytics.user().anonymousId('abc123'); ``` -Each trigger parameter is optional. You can pass up to **one of each trigger parameter** as shown in the example above. + ## How can I control query string processing? @@ -47,13 +46,13 @@ You can also keep query string processing on, but enforce validation rules. For ```js analytics.load('', { useQueryString: { - // set a pattern for anonymous id + // set a pattern for anonymousId aid: /([A-Z]{10})/, - // set a pattern for user id + // set a pattern for userId uid: /([A-Z]{6})/ } }) ``` > info "" -> The `useQueryString` option is **only** available when you load analytics.js through the [NPM package](https://www.npmjs.com/package/@segment/analytics-next){:target="_blank"}. +> The `useQueryString` option is **only** available when you load Analytics.js through the [npm package](https://www.npmjs.com/package/@segment/analytics-next){:target="_blank"}. From 4176a8c6d13af4cc7afe187c98a61d18024b2785 Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Fri, 13 Jun 2025 11:15:56 -0700 Subject: [PATCH 073/438] SPA cleanup --- .../website/javascript/single-page-apps.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/single-page-apps.md b/src/connections/sources/catalog/libraries/website/javascript/single-page-apps.md index 42a8fbd546..5339bba4c2 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/single-page-apps.md +++ b/src/connections/sources/catalog/libraries/website/javascript/single-page-apps.md @@ -3,13 +3,13 @@ title: Single Page Applications strat: ajs --- -While Single Page Apps (SPAs) are great for many reasons, they do require some extra consideration in order to set up client-side tracking than with a traditional webpage. +While Single Page Apps (SPAs) offer many benefits, setting up client-side tracking requires extra consideration compared to traditional web pages. -By default, the Segment analytics.js library doesn’t generate or store the referrer value. Instead, the referrer value you see in the payload is the value returned by `document.referrer` directly from the browser, and the URL value is the canonical URL on the page. +By default, the Segment Analytics.js library doesn’t generate or store the referrer value. Instead, the `referrer` value you see in the payload is the value returned by `document.referrer` directly from the browser, and the `url` value is the canonical URL on the page. -When a user navigates between pages on an SPA website, there won’t be a referrer because there is no concept of a new page since it’s all a single page load. This means that the referrer will always be the same as it was on the first page call where someone was first directed to your site. However, in order to circumvent this, you can manually set the referrer and URL in your Segment calls by updating the context object. +When a user navigates between pages on an SPA website, there won’t be a referrer because there is no concept of a new page since it’s all a single page load. This means that the referrer will always be the same as it was on the first page call where someone was first directed to your site. However, in order to circumvent this, you can manually set the `referrer` and `url` values in your Segment calls by updating the context object. -For example, a Page call with the referrer and URL manually set looks like this: +For example, a Page call with the `referrer` and `url` manually set looks like this: ```js analytics.page({ @@ -29,20 +29,20 @@ analytics.track('Example Event', {}, {page: { ## Tracking emulated page views -Your application should update the URL in the address bar to emulate traditional webpage navigation. Full page requests aren't made in most of these instances since the resources are loaded on initial page load. This means that the Page call in the traditional analytics.js snippet won't fire again as a user navigates around your site. +Your application should update the URL in the address bar to emulate traditional webpage navigation. Full page requests aren't made in most of these instances since the resources are loaded on initial page load. This means that the Page call in the traditional Analytics.js snippet won't fire again as a user navigates around your site. -You should still place the snippet in the head of your site, but you should remove the Page call and fire it whenever you're emulating a page load. Segment recommends that you call [Page](/docs/connections/sources/catalog/libraries/website/javascript/#page) from the same block of logic that updates the view and URL path like below: +You should still place the snippet in the `` of your site, but you should remove the Page call and fire it whenever you're emulating a page load. Segment recommends that you call [Page](/docs/connections/sources/catalog/libraries/website/javascript/#page) from the same block of logic that updates the view and URL path, as shown below: ```js // The new view has been called to render analytics.page("Home") ``` -To track more than the page field, pass those fields in as additional properties. Segment recommends that you use variables to set information about page properties, rather than hard-coding. In most SPA frameworks, you can automate this by attaching the Page call to the routing service. +To track more than the page field, pass those fields in as additional properties. Segment recommends that you use variables to set information about page properties, rather than hardcoding them. In most SPA frameworks, you can automate this by attaching the Page call to the routing service. ## What to do with code that lives in the analytics.ready() function? -Analytics.js ships with a function called analytics.ready() which lets you make calls to the native integrations that Segment loads for you before they actually initialize. For instance, this is where you could choose to load a live chat widget only for users that you haven't yet identified with a userId. +Analytics.js ships with a function called `analytics.ready()` which lets you make calls to the native integrations that Segment loads for you before they actually initialize. For instance, this is where you could choose to load a live chat widget only for users that you haven't yet identified with a `userId`. Since the code in the head of your website is executed only on initial page load or a refresh, you can still make calls to those native tools, but they won't run on each emulated page view. From eee78c436d9b9ea9b8aa20b0048052e5b4c5363f Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Fri, 13 Jun 2025 15:48:08 -0700 Subject: [PATCH 074/438] Add redirects [netlify-build] --- .../destinations/catalog/actions-reddit-audiences/index.md | 1 + .../destinations/catalog/actions-reddit-conversions-api/index.md | 1 + 2 files changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/actions-reddit-audiences/index.md b/src/connections/destinations/catalog/actions-reddit-audiences/index.md index 3ba2f1f0d2..a12eac4470 100644 --- a/src/connections/destinations/catalog/actions-reddit-audiences/index.md +++ b/src/connections/destinations/catalog/actions-reddit-audiences/index.md @@ -1,6 +1,7 @@ --- title: Reddit Audiences id: 66f2b0f961bb2128729079bb +redirect_from: '/connections/destinations/catalog/reddit-audiences/' --- {% include content/plan-grid.md name="actions" %} diff --git a/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md b/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md index 0d3af5d7b1..b645afe69d 100644 --- a/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md @@ -1,6 +1,7 @@ --- title: Reddit Conversions API id: 66cc766ef4b1c152177239a0 +redirect_from: '/connections/destinations/catalog/reddit-conversions-api/' --- {% include content/plan-grid.md name="actions" %} From c27127dad09c986fe8885570743d1a7ba631daa2 Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Mon, 16 Jun 2025 09:46:39 -0700 Subject: [PATCH 075/438] FAQ cleanup --- .../libraries/website/javascript/faq.md | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/faq.md b/src/connections/sources/catalog/libraries/website/javascript/faq.md index 412e13a699..7b98e57b3d 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/faq.md +++ b/src/connections/sources/catalog/libraries/website/javascript/faq.md @@ -9,16 +9,16 @@ Analytics.js doesn't automatically collect IPv6 addresses. If IPv6 is available ## Is there a size limit on requests? -Yes, the limit is 32KB per event message. Events with a payload larger than 32KB are not accepted by Analytics.js. Segment servers return a 400 response with the error message: `Exceed payload limit`. +Yes, the limit is 32 KB per event message. Events with a payload larger than 32 KB are not accepted by Analytics.js. Segment servers return a 400 response with the error message: `Exceed payload limit`. ## If Analytics.js fails to load, are callbacks not fired? -In the event that Analytics.js does not load, callbacks passed into your API calls do not fire. This is as designed, because the purpose of callbacks are to provide an estimate that the event was delivered and if the library never loads, the events won't be delivered. +In the event that Analytics.js does not load, callbacks passed into your API calls do not fire. This is by design, because the purpose of a callback is to provide an indication that the event was delivered. If the library never loads, the events won't be delivered. ## Is there an updated version of the Segment snippet? Segment released an updated version of the Analytics.js snippet, which introduces several enhancements and fixes that might improve your setup. For a full list of version updates, see the Analytics.js snippet's [Releases](https://github.com/segmentio/snippet/releases){:target="_blank”}. -You can find the latest version of the Segment snippet in your JavaScript source's Overview tab or in the [Quickstart: Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2a-add-the-segment-snippet) documentation. +You can find the latest version of the Segment snippet in your JavaScript source's **Overview** tab or in the [Quickstart: Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2a-add-the-segment-snippet) documentation. While there is no deadline to upgrade your snippet to the latest version, upgrading lets you use the latest improvements in the Segment library. @@ -27,16 +27,16 @@ While there is no deadline to upgrade your snippet to the latest version, upgrad In May 2018, Segment began collecting client-side performance metrics in Analytics.js. This includes metrics like: -- When client side integrations are initialized and when they fail -- When messages are sent to client side integrations and when they fail +- When client-side integrations are initialized and when they fail +- When messages are sent to client-side integrations and when they fail -Segment added these metrics to proactively identify and resolve issues with individual client-side integrations. These metrics are connected to alerts that notify Segment's on-call engineers to take action on these quickly. +Segment added these metrics to proactively identify and resolve issues with individual client-side integrations. These metrics trigger alerts that notify Segment's on-call engineers to take action promptly. There should be no noticeable impact to your data flow. You may notice Analytics.js make an extra network request in the network tab to carry the metrics data to Segment's servers. This extra network request is not made frequently, since the data is sampled and batched every 30 seconds. ## How are properties with `null` and `undefined` values treated? -Segment treats property values set to `null` as null values and drops events set to`undefined`. +Segment treats property values set to `null` as null values and drops events set to `undefined`. For example: @@ -48,6 +48,7 @@ console.log(JSON.stringify({ x: undefined, y: 6 })); // expected output: "{"y":6}" ``` Segment uses the [`JSON.stringify()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify){:target="blank"} method under the hood. + ## Can I overwrite the context fields? Yes. This can be useful if some of these fields contain information you don't want to collect. @@ -65,7 +66,7 @@ analytics.track("Receipt Viewed", {}, { ``` This works for any [context field](/docs/connections/spec/common/#context) that Segment automatically collects. -When working with Page calls, you can overwrite context fields by following the above instructions. However, because the `context.page` fields are also available in the `properties` parameter for page calls, you must also prevent the same fields in the `properties` parameter from being included in your Page call. Use the code in the following example to overwrite `url` available in context field `page.url` and properties parameter: +When working with Page calls, you can overwrite context fields by following the above instructions. However, because the `context.page` fields are also available in the `properties` parameter for Page calls, you must also prevent the same fields in the `properties` parameter from being included in your Page call. Use the code in the following example to overwrite `url` available in context field `page.url` and properties parameter: ```js analytics.page("Receipt Page", { @@ -79,7 +80,7 @@ analytics.page("Receipt Page", { ## Can I add context fields that do not already exist? -Yes. You can add context fields by passing them into the options object as the third argument of the event call. For example, the analytics.js library does not automatically collect location information, but you can add it to the context object. To add location information into the context object, pass it into the third argument as in the following example: +Yes. You can add context fields by passing them into the options object as the third argument of the event call. For example, the Analytics.js library does not automatically collect location information, but you can add it to the context object. To add location information into the context object, pass it into the third argument as in the following example: ```js analytics.track("Order Completed", {}, { @@ -97,7 +98,7 @@ Some destinations accept properties only. As a result, custom context fields you ## What is the impact of exposing the source's write keys? -Segment's library architecture requires you to expose the write key for client-side tracking to work. Other major tools, like Google Analytics, Mixpanel, Kissmetrics, Hubspot, and Marketo, also require you to expose your write key. +Segment's library architecture requires you to expose the write key for client-side tracking to work. Other major tools, like Google Analytics, Mixpanel, Kissmetrics, HubSpot, and Marketo, also require you to expose your write key. If you see any unusual behavior associated with your write key, generate a new key immediately. To generate a new key, navigate to **Connections > Sources** and select your source. On the **Settings** tab, go to the **API Keys** section and click **Generate New Key**. @@ -126,7 +127,7 @@ You'll also need to modify the Segment script with your `nonce` tag, which shoul ## How is the referrer value set? -The Analytics.js library sets the `context.page.referrer` value from the [`window.document.referrer` property](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer){:target="_blank"} set in the browser. If you notice unexpected referrer values reaching Segment, check how this value is being set on your website. +The Analytics.js library sets the `context.page.referrer` value from the [`window.document.referrer` property](https://developer.mozilla.org/en-US/docs/Web/API/Document/referrer){:target="_blank"} set in the browser. If you notice unexpected referrer values reaching Segment, check how this value is set on your website. ## Are there any rate limits in place for the CDN settings endpoint? @@ -142,4 +143,4 @@ If you need this functionality, you have a couple of options: **Use a third-party API**: Alternatively, you can use third-party services like Geolocation API to convert IP addresses to geolocation data. Afterward, you can pass this information as a trait in Identify calls or as a property in Track calls to Segment. This allows you to manage geolocation data according to your specific needs, though it will likely require engineering resources. ## Why is my payload populating incorrectly? -Payload parameters aren't populated in a guaranteed order. Your payload should still be ingested as long as all necessary parameters are included. +Payload parameters aren't populated in a guaranteed order. Your payload will still be ingested as long as all necessary parameters are included. From 5fedad750b6e10bca6975530e52d07d5101e68b8 Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Mon, 16 Jun 2025 10:49:47 -0700 Subject: [PATCH 076/438] Troubleshooting cleanup --- .../website/javascript/troubleshooting.md | 62 ++++++++++--------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md b/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md index d78145e23f..1f5673bd62 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md +++ b/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md @@ -3,26 +3,28 @@ title: Troubleshooting Analytics.js strat: ajs --- -The console reveals all. [Learn how to access the JavaScript console in each browser](#how-do-i-open-the-javascript-console-in-your-debugger). -Any Analytics.js methods may be executed manually. Use the Network tab to inspect requests. +To help you troubleshoot common issues when implementing Analytics.js, this page covers steps to verify your implementation, resolve errors, and ensure that data correctly flows to your destinations. + +> info "" +> You can manually execute any Analytics.js methods. Use the **Network** tab to inspect requests. [Learn how to access the JavaScript console in each browser](#how-do-i-open-the-javascript-console-in-your-debugger). ## Are you loading Analytics.js? -Open the JavaScript console and enter `analytics`. Does it return an object, as seen below? +Open the JavaScript console and enter `analytics`. If it returns an object, as shown below, then you're successfully loading Analytics.js onto your website. ![Returning analytics object](images/VOsmoAB.gif) -The object means that you are successfully loading Analytics.js onto your website. If you get an `undefined` error, Analytics.js is not loading successfully: +If you get an `undefined` error, Analytics.js is not loading successfully: ![Returning analytics object error](images/CFsktto.gif) Segment also provides a Chrome web extension, [Segment Inspector](/docs/connections/sources/catalog/libraries/website/javascript/index.html#segment-inspector), which you can use to validate that you're successfully loading Analytics.js. -Solution: [Follow the Analytics.js Quickstart Guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/) +To learn more, follow the [Analytics.js Quickstart Guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/). ## Are you loading two instances of Analytics.js? -Note that you *cannot* load Analytics.js twice on the same page, even if you're using different write keys. You might encounter `Uncaught RangeError: Maximum call stack size exceeded`. You can conditionally set the write key based on an environment variable. +Note that you *cannot* load Analytics.js twice on the same page, even if you're using different write keys. If you do, you might encounter `Uncaught RangeError: Maximum call stack size exceeded`. Instead, you can conditionally set the write key based on an environment variable. Example: ```js @@ -34,27 +36,27 @@ ENV === 'production' ? writeKey = 'A' : writeKey = 'B'; The error can occur for different reasons: -* Snippet syntax: Ensure you correctly added the Segment snippet to the page. Check for any missing or extra characters. Follow [this guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2-install-segment-to-your-site). +- Snippet syntax: Ensure you correctly added the Segment snippet to the page. Check for any missing or extra characters. Follow [this guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2-install-segment-to-your-site). -* NPM package: If you're using Segment through NPM, refer to [this guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2b-install-segment-as-a-npm-package). +- npm package: If you're using Segment through npm, refer to [this guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2b-install-segment-as-a-npm-package). -* Browser cache: Clear the browser cache, as this is a common cause for `ChunkLoadError`. +- Browser cache: Clear the browser cache, as this is a common cause for `ChunkLoadError`. -* Cloudflare caching: If you use Cloudflare to proxy Segment, disable caching for the Segment JS file. +- Cloudflare caching: If you use Cloudflare to proxy Segment, disable caching for the Segment JS file. ## Do you see events appear in your debugger? -When you reload the page, does your debugger show a new [`page`](/docs/connections/spec/page)? You can also check the JavaScript console in the browser and manually fire an event, like an Identify call, which would show up in the debugger. +When you reload the page, does your debugger show a new [Page call](/docs/connections/spec/page)? You can also check the JavaScript console in the browser and manually fire an event, like an Identify call, which would show up in the debugger. -- You can also use [Segment's Chrome extension](/docs/connections/sources/catalog/libraries/website/javascript/index.html#segment-inspector)to inspect events. +- You can use [Segment's Chrome extension](/docs/connections/sources/catalog/libraries/website/javascript/index.html#segment-inspector) to inspect events. -![Making an identify call](images/7Ymnh2S.gif) +![Making an Identify call](images/7Ymnh2S.gif) -If the call doesn't appear in the debugger, open up the JavaScript console and check the Network tab to see if the outbound web services requests are being initiated: +If the call doesn't appear in the debugger, open the JavaScript console and check the **Network** tab to see if the outbound web services requests are being initiated: ![Checking for calls in the network tab](images/d8CmIY2.png) -In the above, the `p` is a [`page`](/docs/connections/spec/page) call and the `i` is an [`identify`](/docs/connections/spec/identify) call. If you don't at least see the `p`, then check if you are loading Analytics.js correctly. +In the above, the `p` is a [Page](/docs/connections/spec/page) call and the `i` is an [Identify](/docs/connections/spec/identify) call. If you don't at least see the `p`, verify that you are loading Analytics.js correctly. ## Using the Segment Chrome extension to validate your implementation @@ -65,18 +67,18 @@ The [Segment Inspector](/docs/connections/sources/catalog/libraries/website/java Some destinations send data directly from the website to their servers. You can check the Network tab in your JavaScript console to see the outbound web services requests being initiated. -In the image below, with Google Analytics as an example, the `page` call forms an outbound request that looks like this: +Using Google Analytics as an example, the Page call forms an outbound request that looks like this: ![Google Analytics outbound request](images/CBdS5dO.png) -If this outbound request is not showing up in the network when you fire an `identify` call, then check the following: +If this outbound request is not showing up in the network when you fire an Identify call, then view the following sections for more troubleshooting steps. -## Is your web site deployed under a domain on the Public Suffix List? +## Is your website deployed under a domain on the Public Suffix List? The [Public Suffix List](https://publicsuffix.org/list/){:target="blank"} is a catalog of certain Internet effective top-level domains, enumerating all domain suffixes controlled by registrars. -The implications of these domain suffixes is that first party cookies cannot be set on them. Meaning, `foo.example.co.uk` can share cookie access with `bar.example.co.uk`, but `example.co.uk` should be walled off from cookies at `example2.co.uk`. The latter two domains could be registered by different owners. +The implications of these domain suffixes are that first party cookies cannot be set on them. Meaning, `foo.example.co.uk` can share cookie access with `bar.example.co.uk`, but `example.co.uk` should be walled off from cookies at `example2.co.uk`. The latter two domains could be registered by different owners. Examples of domains on the Public Suffix List that are common in troubleshooting include: @@ -97,13 +99,13 @@ The JavaScript console reveals all requests, outbound and inbound, to your brows Alternatively, Segment provides the [Segment Inspector](/docs/connections/sources/catalog/libraries/website/javascript/index.html#segment-inspector), a Chrome web extension designed to enable debugging of your Segment integration in web applications that are instrumented with Analytics.js. -## Analytics.js failing to load due to Ad Blockers or Browser Privacy Settings +## Analytics.js failing to load due to ad blockers or browser privacy settings Segment advises against circumventing tracking blockers or browser privacy settings for client-side tracking. The user has ultimate control as to what gets loaded on the page. Segment acknowledges that this can result in some data loss in client-side tracking and suggests [workarounds](/docs/connections/sources/catalog/libraries/website/javascript/index.html#tracking-blockers-and-browser-privacy-settings) to address this issue. -## Analytics.js and Destinations not tracking query string parameters on certain Safari iOS and MacOS Versions +## Analytics.js and destinations not tracking query string parameters on certain Safari iOS and macOS versions -Due to updates in certain Safari iOS and MacOS versions, Segment's Analytics.js and Destinations tools might experience limitations in capturing query string parameters. As a result, you may notice some events missing campaign information. +Due to updates in certain Safari iOS and macOS versions, Segment's Analytics.js and destinations tools might experience limitations in capturing query string parameters. As a result, you may notice some events missing campaign information. ## Why am I seeing a "SameSite" warning? @@ -111,18 +113,18 @@ Due to updates in certain Safari iOS and MacOS versions, Segment's Analytics.js If you see a warning like the following, it could have one of several causes: "A cookie associated with a cross-site resource at http://segment.com/ was set without the `SameSite` attribute [...]" -Segment correctly sets cookies with the 'SameSite' attribute with Analytics.js. +Segment correctly sets cookies with the `SameSite` attribute with Analytics.js. -If you see this warning, it is because you previously visited http://segment.com, and are getting the warning due to unrelated cookies. To verify that this is the issue, visit your page in Incognito Mode and confirm that the warning no longer occurs. Your users won't see this warning unless they _also_ visited http://segment.com. +If you see this warning, it's because you previously visited http://segment.com, and are getting the warning due to unrelated cookies. To verify that this is the issue, visit your page in Incognito Mode and confirm that the warning no longer occurs. Your users won't see this warning unless they _also_ visited http://segment.com. ## Why am I seeing additional cookies on my website? -The AJS cookies being set under segment.com are first-party cookies. They are part of Segment's own implementation as well as the destination Segment uses. These cookies are not related to your implementation of Segment, and you only see them because you've visited Segment's domain using the same browser. They are sent to the writekey connected to Segment's own workspace, and are associated with the events Segment tracks when you visit segment.com. +The Analytics.js cookies being set under segment.com are first-party cookies. They are part of Segment's own implementation as well as the destination Segment uses. These cookies are not related to your implementation of Segment, and you only see them because you've visited Segment's domain using the same browser. They are sent to the writekey connected to Segment's own workspace, and are associated with the events Segment tracks when you visit segment.com. -### Known Incompatibilities with Prototype.js +### Known incompatibilities with Prototype.js -If you're having issues with your destinations loading with Prototype.js, there is a [known issue that was reported](https://github.com/prototypejs/prototype/issues/338){:target="_blank"} regarding this. In order to prevent the issues, you can preserve the original `Array.from` method without letting the prototype override it. +If you're having issues with your destinations loading with Prototype.js, there is a [known issue that was reported](https://github.com/prototypejs/prototype/issues/338){:target="_blank"} regarding this. In order to prevent the issue, you can preserve the original `Array.from` method without letting the prototype override it. ## Why am I getting an empty campaign object in my event payload? @@ -133,6 +135,8 @@ Analytics.js generates a campaign object inside the context object whenever the You may see events with timestamp discrepancies due to manual overriding of the timestamp value, mobile apps closed or set in the background, traffic from bots, or inaccurate device or browser time. For more information, see Segment's [Common Fields Spec](/docs/connections/spec/common/#why-are-events-received-with-timestamps-set-in-the-past-or-future). -## Known issues: +## View additional known issues + +You can review other known issues in [GitHub](https://github.com/segmentio/analytics.js/issues). + -[Review and contribute to these on GitHub](https://github.com/segmentio/analytics.js/issues). From b3ba611025e22961de85466c23393e9156aa6e79 Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Mon, 16 Jun 2025 11:08:59 -0700 Subject: [PATCH 077/438] make private and beta --- .../catalog/actions-amazon-conversions-api/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md index 5732f46bfb..89d415803d 100644 --- a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md @@ -4,8 +4,9 @@ id: 683ef14a3f9aac157e3a3446 hide-personas-partial: true hide-boilerplate: false hide-dossier: true -private: false -hidden: false +private: true +hidden: true +beta: true --- The Amazon Conversions API (Actions) destination is a server-to-server integration with the Amazon Events API. This destination allows advertisers to send real-time or offline conversion events data from Segment directly to Amazon without needing Amazon Ad Tag (AAT) setup. From 1da06f47dde48d737891176659b1644282e9a418 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 17 Jun 2025 15:43:04 +0100 Subject: [PATCH 078/438] Added steps on sending in-app events to Segment [DOC-1131] --- src/connections/destinations/catalog/adjust/index.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/connections/destinations/catalog/adjust/index.md b/src/connections/destinations/catalog/adjust/index.md index f01340d82f..4a799461bb 100644 --- a/src/connections/destinations/catalog/adjust/index.md +++ b/src/connections/destinations/catalog/adjust/index.md @@ -231,6 +231,14 @@ The destination will automatically recognize the spec'd `orderId` property, and If you're using Adjust's iOS SDK, it will automatically takes care of duplicate purchase events. Segment uses Adjust's default deduplication (using `transactionId`) when you send an `orderId` (see the [ecommerce spec](/docs/connections/spec/ecommerce/v2/#order-completed)). +### Sending in-app events from Adjust to Segment + +Customers can forward in-app events from Adjust to Segment by following the steps below: + +1. Navigate to the Segment module within the Adjust dashboard. +2. Go to the **Data sharing** section. +3. Use the **Map your events** option to select and map the in-app events you'd like to forward to Segment. + ### In-app purchase receipts The destination does not currently support in-app purchase receipts. If this is important to you, [reach out to support](https://segment.com/help/contact/){:target="_blank”}. @@ -246,3 +254,4 @@ By default, our destination enables event buffering for Adjust. This saves your ### Deep linking The destination does not automatically support deep linking out of the box (you'd need to write code here regardless). This means you can use [Adjust's deep-linking](https://github.com/adjust/ios_sdk#7-set-up-deep-link-reattributions){:target="_blank"} by accessing [the Adjust SDK directly](/docs/connections/sources/catalog/libraries/mobile/ios/#faq). + From 76ee1a60d1f96759711f5aba25ec58577adc32f7 Mon Sep 17 00:00:00 2001 From: pwseg Date: Tue, 17 Jun 2025 15:11:25 -0500 Subject: [PATCH 079/438] Hide Attentive Actions doc --- src/connections/destinations/catalog/actions-attentive/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/actions-attentive/index.md b/src/connections/destinations/catalog/actions-attentive/index.md index e954a5639e..7d053f518d 100644 --- a/src/connections/destinations/catalog/actions-attentive/index.md +++ b/src/connections/destinations/catalog/actions-attentive/index.md @@ -1,6 +1,8 @@ --- title: Attentive (Actions) Destination id: 674f2453916dadbd36d899dc +beta: true +hidden: true --- [Attentive](https://www.attentive.com/?utm_source=partner-generated&utm_medium=partner-marketing-&utm_campaign=partner-generated-4.15.22-segment.io){:target="_blank"} with Segment makes it easy to sync customer and event data from Segment to Attentive so that you can send highly personalized and timely messages. From 8297530208c9950dad4ffd475cb559bbcb2be378 Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Tue, 17 Jun 2025 16:06:01 -0700 Subject: [PATCH 080/438] quick fixes --- .../catalog/libraries/website/javascript/identity.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/identity.md b/src/connections/sources/catalog/libraries/website/javascript/identity.md index b3c58d0f9e..884cb96b3e 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/identity.md +++ b/src/connections/sources/catalog/libraries/website/javascript/identity.md @@ -103,7 +103,7 @@ For example, after a Track call sets the `anonymousID` to `ABC-123-XYZ`, any add #### Override anonymousId in an Identify call -You can override an `anonymousID` with an Identify call. For example: +You can override `anonymousID` with an Identify call. For example: ```js analytics.identify('user_123', { @@ -115,7 +115,7 @@ analytics.identify('user_123', { #### Override anonymousId on a Page call -You can override an `anonymousID` with a Page call. For example: +You can override `anonymousID` with a Page call. For example: ```js analytics.page({}, { anonymousId: 'ABC-123-XYZ' }); @@ -123,7 +123,7 @@ analytics.page({}, { anonymousId: 'ABC-123-XYZ' }); #### Override anonymousId on a Track call -You can override an `anonymousID` with a Track call. For example: +You can override `anonymousID` with a Track call. For example: ```js analytics.track('Email Clicked', { From 595c37e14f44a89582bef156fd91fe2a9852eb25 Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Wed, 18 Jun 2025 09:54:30 +0100 Subject: [PATCH 081/438] Update src/connections/destinations/catalog/dotdigital/index.md Add the integration ID Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/dotdigital/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index ea382e82a2..0eccb6c119 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -1,6 +1,6 @@ --- title: Dotdigital Destination -id: +id: 68370e58cb330586908573b7 beta: true --- {% include content/plan-grid.md name="actions" %} From 366018aa7784498d581420e25ed3d0230b9365fb Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Wed, 18 Jun 2025 09:54:55 +0100 Subject: [PATCH 082/438] Update src/connections/destinations/catalog/dotdigital/index.md Wording update Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/dotdigital/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index 0eccb6c119..2eafca29da 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -30,5 +30,5 @@ Before using the Add Context to List Action, complete the following prerequisite - Data Fields: [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields), then return to the Segment app, open the event mapping, and map Segment properties to Dotdigital data fields. ### Enroll Contact to Program -When you use the Enroll Contact to Program action, Dotdigital creates a contact for the identifier you provide, if they don't exist already. +When you use the Enroll Contact to Program action, Dotdigital creates a contact for the identifier you provide, if the contact doesn't already exist. From dc19d0f2d2b65b4acecc9b767c39b2903a02d823 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 18 Jun 2025 10:04:05 -0400 Subject: [PATCH 083/438] Update user-deletion-and-suppression.md --- src/privacy/user-deletion-and-suppression.md | 42 +++++++++++++++----- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/src/privacy/user-deletion-and-suppression.md b/src/privacy/user-deletion-and-suppression.md index 9ca47c665a..dd1f7f6e41 100644 --- a/src/privacy/user-deletion-and-suppression.md +++ b/src/privacy/user-deletion-and-suppression.md @@ -14,22 +14,32 @@ All deletion and suppression actions in Segment are asynchronous and categorized - Your Segment Workspace (Settings > End User Privacy) - [Segment's Public API](https://docs.segmentapis.com/tag/Deletion-and-Suppression){:target="_blank"}. You can delete up to 5000 `userId`s per call using the Public API. -With Regulations, you can issue a single request to delete and suppress data about a user by `userId`. Segment scopes Regulations to all sources in your workspace. +With Regulations, you can issue a single request to delete and suppress data about a user by `userId`. Segment scopes Regulations to all sources in your workspace. > warning "Data sent to device-mode destinations cannot be suppressed" -> Destinations set up in device mode are sent directly to destinations and bypass the point in the pipeline where Segment suppresses events. +> Destinations set up in device mode are sent directly to destinations and bypass the point in the pipeline where Segment suppresses events. -The following regulation types are available: +Segment has 2 types of Regulations - Segment-only Regulations, or those that only impact data from Segment systems, and Segment & destination Regulations, or Regulations that Segment completes on internal systems and then forwards to your connected destinations. + +While both Regulation types are limited to 110,000 users every calendar month, you can temporarily increase your rate limit for Segment-only regulations. + +To send more than 110,000 Segment-only Regulations over a 30 day period, [contact Segment Support](https://segment.com/help/contact/){:target="_blank"}. + +### Segment-only Regulations +The following Segment-only Regulation types are available: - **SUPPRESS_WITH_DELETE_INTERNAL*:** Suppress new data and delete from Segment internal systems only - **DELETE_INTERNAL*:** Delete data from Segment internal systems only - **SUPPRESS_ONLY***: Suppress new data without deleting existing data - **UNSUPPRESS*:** Stop an ongoing suppression + +### Segment & destination Regulations + +The following Segment & destination Regulations are available: + - **SUPPRESS_WITH_DELETE:** Suppress new data and delete existing data - **DELETE_ONLY:** Delete existing data without suppressing any new data -> info "All regulations are rate limited to 110,000 users within a 30-day period" -> To send more than 110,000 `SUPPRESS_ONLY`, `UNSUPRESS`, `DELETE_INTERNAL` and/or `SUPPRESS_WITH_DELETE_INTERNAL` Regulations over a 30 day period, [contact Segment Support](https://segment.com/help/contact/){:target="_blank"}. ## Deletion Support @@ -47,13 +57,23 @@ Warehouse deletions occur using a DML run against your cluster or instance. Segm -#### Deletion requests tab +### Deletion requests tab + +The deletion requests tab shows a 30-day overview of your deletions pipeline, including a regulations usage tracker and a deletion requests status table. + +To navigate to the deletion requests tab, open the Segment app and navigate to **Settings** > **End-user Privacy** > **Deletion Requests**. + +#### Regulations usage tracker + +The usage tracker on the deletion requests tab shows you how many Segment & destination regulations and how many Segment-only regulations you have remaining for the calendar month. + +#### Deletion requests status -The deletion requests tab shows a log of all regulations and their status. +The deletion requests status table allows you to see the status of each of the regulations that you've submitted, including if the regulation was forwarded to your destinations, the deletion type, the date the regulation was received, and the date the regulation was completed. -In the Segment App (Settings > End User Privacy > Deletion Requests), you can click a `userId` to view its status in Segment internal systems and in the connected destinations. +If you need to verify that a information about a specific user was deleted or suppressed, you can search for a `userId` to view its status in Segment internal systems and in the connected destinations. -The deletion request can have one of the following statuses: +A deletion request can have one of the following statuses: 1. `INITIALIZED` 2. `INVALID` @@ -65,9 +85,9 @@ The deletion request can have one of the following statuses: When checking the status of deletion requests using Segment's API, the deletion will report an overall status of all of the deletion processes. As a result, Segment returns a `FAILED` status because of a failure on an unsupported destination, even if the deletion from the Segment Internal Systems and supported destinations were completed successfully. -#### Deletion request SLA +### Deletion request SLA -Segment has a 30-day SLA for completing deletion requests in Segment's internal stores for deletion requests of fewer than 110,000 users made over 30 days. Your requests will be rate limited if you submit more than 110,000 deletion requests within 30 days. +Segment has a 30-day SLA for completing deletion requests in Segment's internal stores for deletion requests of fewer than 110,000 users made over a calendar month. Your requests will be rate limited if you submit more than 110,000 deletion requests in a calendar month. > warning "This 30-day SLA is limited to only Segment's internal stores" > Segment cannot guarantee that deletions in your Amazon S3 instance, your connected data warehouse, or other third-party destinations will be completed during that 30-day period. From 82edc4160c607c8de0d6a33edc9abf70655053b6 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 18 Jun 2025 15:29:49 +0100 Subject: [PATCH 084/438] Source Insert Functions doc added to Functions --- .../functions/source-insert-functions | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 src/connections/functions/source-insert-functions diff --git a/src/connections/functions/source-insert-functions b/src/connections/functions/source-insert-functions new file mode 100644 index 0000000000..7ed4981200 --- /dev/null +++ b/src/connections/functions/source-insert-functions @@ -0,0 +1,102 @@ +--- +title: Source Insert Functions +--- + +> info "Source Insert Function is in Public Beta" +> Source Insert Function is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. + +## Create source insert functions + +There are two ways you can access source insert functions from your Segment workspace: +- From the [Connections catalog](#using-the-catalog). +- From the [Sources tab](#using-the-sources-tab). + +### Using the catalog + +To create a source insert function from Segment’s catalog: + +1. Navigate to **Connections** > **Catalog** > **Functions** and click **New Function**. + +2. In the Select Function Type screen, select **Source Insert** and click **Next: Build Function**. + +3. Write and test your function code. Enter a sample event and click **Run** to test the function. + +4. Click **Next: Configure & Create** to add a function name, description (optional), and function logo (optional). + +5. Click **Create Function** to save your insert function. The new source insert function will be displayed in the Functions tab. + +#### Coding the source insert function + +Insert functions can define handlers for the following message types: +- `onIdentity` +- `onTrack` +- `onPage` +- `onScreen` +- `onGroup` +- `onAlias` +- `onDelete` + +The default source code template includes handlers for all event types. Just implement the types you need and skip the ones you don’t. For event types you want to send through, return the event in the respective event handler. + +### Using the Sources tab + +You can also create a source insert function from Sources. + +1. Navigate to **Connections** > **Sources**. +2. Select your source and go to the **Functions** tab. +3. Click **Create insert function** to create your insert function from scratch. + +### Connecting a source insert function to a source + +For data to flow downstream after transformation, you need to connect your source insert function to a source. To do this, follow the steps below: + +1. Select the insert function you want to connect to the source. You can edit, delete, and connect the insert function in the side pane. +2. Click *Connect a source**. +3. Select the source you want to connect from the dropdown and click **Connect to Source** to connect. + +### Errors and error handling + +Segment considers a function’s execution successful if it completes without error. You can `throw` an error to create a failure on purpose. Use these errors to validate event data before processing to make sure the function works as expected. + +You can `throw` the following pre-defined error types to indicate that the function ran successfully, but the data was not deliverable: + +- `EventNotSupported` +- `InvalidEventPayload` +- `ValidationError` +- `RetryError` +- `DropEvent` + +This is similar to Source, Destination, and Insert Functions. + +The errors listed are all permanent errors, except `RetryError`. When a `RetryError` is thrown, Segment will reattempt to run the function a set number of times before permanently erroring out. + +### Source insert functions FAQs + +**The Delivery Overview tab does not display any errors that occur within the source insert function.** +If errors arise or events are dropped, they will appear as if the events never flowed from the source. + +**Can I test the function with different event types?** +You can test the function with different event types from the **Test** tab in the code editor, similar to other functions. + +**Can I use source insert functions for all types of Source?** +Source insert functions only work for event sources, not object sources or rETL. + +**What is the expected latency for a source insert function?** +Typically, it takes a source insert function between 200 milliseconds to 5 seconds to complete, based on the complexity of the function. The default timeout is 5 seconds but can be increased to 60 seconds. + +**What is the runtime environment?** +Segment supports Node.js V18. The dependencies listed [here](https://segment.com/docs/connections/functions/insert-functions/#runtime-and-dependencies){:target=”_blank”} are installed in the function. The following dependencies are also installed: +- `@azure/identity` exposed as `azure.identity` +- `@azure/event-hubs` exposed as `azure.eventHubs` +- `@azure/synapse` exposed as `azure.synapse` +- `jsftp` exposed as `jsftp` +- `crypto-js` exposed as `cryptojslib.cryptojs` +- `akeyless` exposed as `akeylessLabs.akeyless` +- `akeyless-cloud-id` exposed as `akeylessLabs.akeylessCloudId` +- `@onesignal/node-onesignal` exposed as `oneSignal.oneSignal` +- `pg` exposed as `pg.pg` +- `snowflake-sdk` exposed as `snowflakesdk.snowflakesdk` +- `@clickhouse/client` exposed as `clickHouseClient.clickHouseClient` +- `aws4` exposed as `aws4.aws4` +- `@sentry/node` exposed as `sentrylib.sentry` + From 3a1c8507b4ca3da7aac7215a73882d5fe8bfce0a Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 18 Jun 2025 15:33:37 +0100 Subject: [PATCH 085/438] added whitespace for [netlify-build] --- src/connections/functions/source-insert-functions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions b/src/connections/functions/source-insert-functions index 7ed4981200..71bd46f043 100644 --- a/src/connections/functions/source-insert-functions +++ b/src/connections/functions/source-insert-functions @@ -5,7 +5,7 @@ title: Source Insert Functions > info "Source Insert Function is in Public Beta" > Source Insert Function is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. -## Create source insert functions +## Create source insert functions There are two ways you can access source insert functions from your Segment workspace: - From the [Connections catalog](#using-the-catalog). From 0d8bbf65d7bfcd5e1d261a5346c9dce1939f8eb0 Mon Sep 17 00:00:00 2001 From: sade-wusi Date: Wed, 18 Jun 2025 15:55:09 +0100 Subject: [PATCH 086/438] Added recipe pages for destination integrations with Extensible Webhooks --- .../amazon-ads-integration-recipe.md | 145 ++++++++++++++++ .../google-search-ads-integration-recipe.md | 113 +++++++++++++ .../microsoft-integration-recipe.md | 113 +++++++++++++ .../reddit-ads-audience-integration-recipe.md | 130 +++++++++++++++ ...t-ads-conversion-api-integration-recipe.md | 155 ++++++++++++++++++ 5 files changed, 656 insertions(+) create mode 100644 src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md create mode 100644 src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md create mode 100644 src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md create mode 100644 src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md create mode 100644 src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md new file mode 100644 index 0000000000..ba0a495407 --- /dev/null +++ b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md @@ -0,0 +1,145 @@ +--- +title: Amazon Ads Audience Sync Integration Recipe +--- + +This recipe will guide you through how to set up a custom destination for Amazon Ads using Twilio Segment's Extensible Webhooks feature and how to sync customer data into an Audience list. By following these steps, you can integrate your data source with Amazon Ads. + +## Prerequisites + +To integrate Amazon Ads with Segment, ensure you have the following: + +- A Segment Account: an account with the Extensible Webhooks feature enabled (private beta access). +- An Amazon Ads Account: an active account or API access to Amazon Ads. +- Authentication Credentials: the necessary credentials for authentication. These are OAuth endpoints, Client ID, Secret, Scopes. +- Data mapping information: Knowledge of the data fields required by Amazon Ads. + +## Getting started + +### 1. Set up the Extensible Webhook destination + +To set up your destination in Segment: + +1. In your Segment workspace go to **Catalog** > **Destinations**. +2. Search for Extensible Webhook and select **Add destination**. + +### 2. Select the data source + +1. Choose the source from which you want to send data to Amazon Ads. +2. Click **Next** to proceed. + +### 3. Specify the instance details + +1. Enter a recognizable name for your webhook instance (e.g., "Segment to Amazon Integration"). +2. (Optional) Add a brief description of the integration. + +### 4. Select the authentication type + +An Amazon Client Application has to be created which requires approval. For steps on how to complete Amazon API onboarding, see the [Amazon documentation](https://advertising.amazon.com/API/docs/en-us/guides/onboarding/overview){:target="_blank"}. + +The LwA (Login with Amazon) application that you create should have `advertising::audiences` as the scope. For Campaign management, like marking conversions, the scope should be `advertising::campaign_management`. + +Once a LwA app has been created, you will need to add the redirect URI “https://app.segment.com/oauth-service/webhook/callback” to the list of Allowed Return URLs. For more detail on this, see the [Amazon documentation](https://advertising.amazon.com/API/docs/en-us/guides/get-started/create-authorization-grant#allow-a-return-url){:target="_blank"}. + +Note down the Client ID and Secret, available in the Login with Amazon section on the [Amazon Developer site](https://developer.amazon.com/){:target="_blank"}. These will be used to set up authentication with Segment. + +#### Authentication + +To set up authentication: +1. Select OAuth 2.0 from the list of options and select **Authorization Code**. +2. Enter the following credential details as listed below or given in the web app: + - Client ID + - Client secret + - Authorize URL: https://www.amazon.com/ap/oa + - Token URL: https://api.amazon.com/auth/o2/token + - Refresh URL: https://api.amazon.com/auth/o2/token + - Scope: `advertising::audiences` + + The authorization URL can be found [here](https://advertising.amazon.com/API/docs/en-us/guides/get-started/create-authorization-grant#determine-the-url-prefix-for-your-region){:target="_blank"} and the access/refresh token URL can be found [here](https://advertising.amazon.com/API/docs/en-us/guides/get-started/retrieve-access-token#call-the-authorization-url-to-request-access-and-refresh-tokens){:target="_blank"}, depending on your region. + +3. Once you create the destination instance, you will then be redirected to the Settings section. Click **Connect** to set up the OAuth connection with Amazon Ads. +4. You will be redirected to Amazon Ads. Log in and click **Allow** to complete the authentication flow. + +Once done redirected back to the destination settings page, authentication is completed and you’re now ready to send events to Amazon Ads. + +### 5. Perform Data Mapping + +#### Data transformation + +Amazon Ads expects data to be in a certain format with nested fields. This format cannot be mapped with the mappings functionality and will need to be transformed within an insert function. + +You will need to write an insert function that appends a property, for example one called “body”, to the event which would then have nested fields. For the Amazon Ads Audience API, a sample expected payload is of the following structure: + +``` +{ + "records": [ + { + "hashedPII": [ + { + "firstname": "sdstdsdsaring", + "address": "scdcadscstring", + "phone": "sadtrdsaidng", + "city": "ssatring", + "state": "strccaing", + "postal": "staccaring", + "email": "stracaing", + "lastname": "stacaddacring" + } + ], + "externalUserId": "A12346sgd", + "action": "CREATE" + } + ], + "targetResource": { + "connectionId": "", + "targetTypes": [ + "DSP" + ] + }, + "audienceId": 371552318001631924 +} +``` + +The Amazon Ads Audience API's expected fields are: +- `Records` is an array of objects. For the beta, Segment doesn’t support batching to iterate over this object yet. The required parameters are: + - `hashedPII`: A list of SHA-256 hashed PII that will be matched with Amazon entities. + - `firstname` + - `lastname` + - `address` + - `phone` + - `city` + - `state` + - `postal` + - `email` + - `externalUserId`: The id used by external systems to identify customers. + - `action`: Can be “CREATE” or “DELETE” based on whether you want to add or remove the user from the list. +- `audienceID` is the ID of the Audience list to which the data should be either added or deleted. You can get the audienceID from within the Amazon Ads console or when creating an Audience from the API. + +#### Data Mapping + +1. Create a new Mapping in the Mappings tab and select the **Send** HTTP action. +2. Choose which events you want to send to Amazon Ads Audience API using the Event filters. +3. Fill out mapping fields: + - Specify the URL: + - The API endpoint is based on region. + - Include the suffix with the Audience API Endpoint: /amc/audiences/records + - Specify the headers: + - `Amazon-Advertising-API-ClientId`: The Client ID from Login with Amazon Account. +4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. +5. Turn off batching for this operation. + +### 6. Test the output and connection + +1. Click **Test Connection** to send a sample payload. +2. In Amazon Ads, verify that the test data has been received and processed correctly. + +#### Troubleshooting + +If the test fails: +- review the authentication details and data mappings. +- check for error messages in Segment and Amazon Ads. + +### 7. Save and enable the destination + +1. Once the test is successful, click **Save** to store your configuration. +2. Toggle the destination to Enable to start sending live data to Amazon Ads Audience API. +3. Monitor the data flow to ensure that events are being delivered as expected. diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md new file mode 100644 index 0000000000..e6872cd7a4 --- /dev/null +++ b/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md @@ -0,0 +1,113 @@ +--- +title: Google Search Ads 360 Conversion API Integration Recipe +--- + +This recipe will guide you through how to set up a custom destination for Google Search Ads 360 conversions using Twilio Segment’s Extensible Webhooks feature. + +## Prerequisites + +To integrate Search Ads 360 with Twilio Segment, ensure you have the following: + +- A Segment account: an account with the Extensible Webhooks feature enabled (private beta access). +- A Search Ads account: an active account and API access to Google Search Ads 360. +- Authentication credentials: necessary credentials for authentication, for example, API keys and tokens. +- Data mapping information: knowledge of the data fields required by Search Ads 360. + +## Getting started + +### 1. Configure Extensible Webhook as a destination + +1. In your Segment workspace, navigate to **Connections** > **Catalog** > **Destinations**. +2. Use the search bar to search for **Extensible Webhook** and select **Add destination**. + +### 2. Select the data source + +1. Choose the source that you want to send data from to Google Search Ads 360. +2. Click **Next** to proceed. +3. Give your destination a name and create your destination. + +### 3. Specify the instance details + +1. Enter a recognizable name for your webhook instance, for example, Segment to Search Ads Integration. +2. (Optional) Add a brief description of the integration. + +### 4. Select the authentication type + +As a prerequisite to authenticate APIs, you need to create OAuth credentials. Once generated, note down the Client ID and Secret. They are required to set up authentication between Segment and Google Search Ads. + +You will also need to add the following redirect URI to the list of allowed return URLs: https://app.segment.com/oauth-service/webhook/callback. + +#### Authentication + +1. Select OAuth 2.0 and select Authorization Code. +2. Enter the following credentials details from your project: + - Client ID + - Client secret + - Authorize URL: https://accounts.google.com/o/oauth2/v2/auth + - Token URL: https://oauth2.googleapis.com/token + - Refresh URL: https://oauth2.googleapis.com/token + - Scope: https://www.googleapis.com/auth/doubleclicksearch +3. Once you have created the destination instance, you will be redirected to the Settings section. Click **Connect** to set up the OAuth connection with Google Search Ads 360. +4. Log in to your Google Search Ads account and click **Allow** to complete authentication. + +If authentication is completed successfully, you will be redirected to the destination settings page. At this point, you are ready to send events to Google Search Ads. + +### 5. Data mapping + +#### Data transformation + +Google Search Ads 360 expects data to be in a certain format with nested fields. This format cannot be mapped with the mappings functionality and will need to be transformed within an insert function. + +You will need to write an insert function that appends a property, for example one called “body”, to the event which would then have nested fields. For the Google Search Ads 360 Conversion API, an expected sample payload is of the following structure: + +``` +{ + "kind": "doubleclicksearch#conversionList", + "conversion" : [{ + "clickId" : "COiYmPDTv7kCFcP0KgodOzQAAA", // Replace with a click ID from your site + "conversionId" : "test_20130906_04", + "conversionTimestamp" : "1378710000000", + "segmentationType" : "FLOODLIGHT", + "segmentationName" : "Test", + "type": "TRANSACTION", + "revenueMicros": "10000000", // 10 million revenueMicros is equivalent to $10 of revenue + "currencyCode": "USD" + }] + } +``` + +The Google Search Ads 360 Conversion API's required fields are: +- `kind` which is "doubleclicksearch#conversionList". Conversion is an array. For the beta, Segment doesn’t support batching to iterate over this. +- `clickId` which is the ID of a specific click on an ad that the customer clicked on. +- `conversionId` is a unique ID that tracks the particular conversion. +- `conversionTimestamp` is date and time in epoch milliseconds on when the conversion took place. +- `segmentationType` should be floodlight. +- `segmentationName` is the floodlight activity to report this conversion to. +- `type` which can be `Action` or `Transaction` to indicate whether the conversion had a monetary value or not. + +#### Data mapping + +1. Create a new Mapping in the Mappings tab and select the **Send** HTTP action. +2. Choose which events you want to send to Google Search Ads 360 API using the Event filters. +3. Fill out mapping fields: + - Specify the URL: https://www.googleapis.com/doubleclicksearch/v2/conversion +4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. +5. Turn off batching for this operation. + +### 6. Test the output and connection + +1. Click **Test Connection** to send a sample payload. +2. In Google Search Ads 360 Conversion, verify that the test data has been received and processed correctly. + +#### Troubleshooting + +If the test fails: +- review the authentication details and data mappings. +- check for error messages in Segment and Search Ads. + +### 7. Save and enable the destination + +1. Once the test is successful, click **Save** to store your configuration. +2. Toggle the destination to Enable to start sending live data to Google Search Ads 360 Conversion API. +3. Monitor the data flow to ensure that events are being delivered as expected. + diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md new file mode 100644 index 0000000000..b04ee6b7aa --- /dev/null +++ b/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md @@ -0,0 +1,113 @@ +--- +title: Microsoft Dynamics 365 (Sales Hub) Integration Recipe +--- + +This recipe will guide you through how to set up a custom destination for Microsoft Dynamics 365 (Sales) using Twilio Segment’s Extensible Webhook feature. + +## Prerequisites + +To integrate Microsoft Dynamics 365 with Twilio Segment, ensure you have the following: + +- A Segment account: an account with the Extensible Webhooks feature enabled (private beta access). +- An Azure application: an Azure application is required for authentication. +- Authentication credentials: necessary credentials for authentication, for example, endpoints and scopes. +- Data mapping information: knowledge of the data fields required by Microsoft Dynamics 365. + +## Getting started + +### 1. Configure Extensible Webhook as a destination + +1. In your Segment workspace, navigate to **Connections** > **Catalog** > **Destinations**. +2. Use the search bar to search for "Extensible Webhook" and select **Add destination**. + +### 2. Select the data source + +1. Choose the source that you want to send data from to Microsoft Dynamics 365.. +2. Click **Next** to proceed. +3. Give your destination a name and create your destination. + +### 3. Specify the instance details + +1. Enter a recognizable name for your webhook instance, for example, Segment to Microsoft Dynamics Integration. +2. (Optional) Add a brief description of the integration. + +### 4. Select the authentication type + +For authentication, you need to first create an Azure application that can authenticate users to provide access to Microsoft Dynamics API. See [Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app?tabs=client-secret){:target="_blank"} for details on how to create an application and how to get the client secret that will later be used for authentication. + +The redirect URI for your application is https://app.segment.com/oauth-service/webhook/callback. + +To connect the Azure app with the Dynamics instance, go to the Power Platform Admin Center. +Here you will need to create new app users associated with a business unit, and provide security roles. + +Once you have successfully created an Azure web application and associated it with a Dynamics environment, you can proceed to authentication in Segment. + +1. Navigate to the settings page of the webhook destination in Segment. +2. Select OAuth 2.0 and select Authorization Code. +3. Enter the following credential details from your web app or as listed below: + - Client ID + - Client secret + - Access Token URL: https://login.microsoftonline.com//oauth2/v2.0/token + - Scope: https:///.default +4. Click **Connect** to set up the OAuth connection with Microsoft. + +Authentication will take place if the configurations are correct and the access token will automatically be generated without the need for user login. + +### 5. Data mapping + +#### Data transformation (optional) + +Microsoft Dynamics 365 can create and update multiple entities all at once with a nested object structure. For example, with a single API call to the `accounts` entity, you can create a new account, contact and a related opportunity in a single shot. + +You will need to write an insert function that appends a property, for example one called “body”, to the event which would then have nested fields. For the Create New Account API, an expected sample payload is of the following structure: + +``` +{ + "name": "Sample Account", + "primarycontactid": + { + "firstname": "John", + "lastname": "Smith" + }, + "opportunity_customer_accounts": + [ + { + "name": "Opportunity associated to Sample Account", + "Opportunity_Tasks": + [ + { "subject": "Task associated to opportunity" } + ] + } + ] +} +``` + +The Create New Account API’s expected fields are listed in [Microsoft's documentation](https://learn.microsoft.com/en-us/power-apps/developer/data-platform/webapi/reference/account?view=dataverse-latest){:target="_blank"}. + +To create or update the Account entity only, you can skip this step and directly use mappings to map properties and keys. + +#### Data mapping + +1. Create a new Mapping in the Mappings tab and select the **Send** HTTP action. +2. Choose which events you want to send to Google Search Ads 360 API using the Event filters. +3. Fill out mapping fields: + - Specify the URL: [Organization URI]/api/data/v9.2/accounts (this is for creating new accounts) +4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. +5. Turn off batching for this operation. + +### 6. Test the output and connection + +1. Click **Test Connection** to send a sample payload. +2. In Microsoft Dynamics 365, verify that the test data has been received and processed correctly. + +#### Troubleshooting + +If the test fails: +- review the authentication details and data mappings. +- check for error messages in Segment and Search Ads. + +### 7. Save and enable the destination + +1. Once the test is successful, click **Save** to store your configuration. +2. Toggle the destination to Enable to start sending live data to Microsoft Dynamics 365. +3. Monitor the data flow to ensure that events are being delivered as expected. \ No newline at end of file diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md new file mode 100644 index 0000000000..98e4b6435b --- /dev/null +++ b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md @@ -0,0 +1,130 @@ +--- +title: Reddit Ads (Audience) Integration Recipe +--- + +This recipe will guide you through setting up a custom destination for Reddit Ads (Audiences) using Twilio Segment's Extensible Webhooks feature. By following these steps, you will be able to integrate your data source with Reddit Ads (Audiences). + +## Prerequisites + +To integrate Reddit Ads with Segment, ensure you have the following: + +A Segment account: an account with the Extensible Webhooks feature enabled (private beta access). +A Reddit Ads (Audiences) account: an active account or API access to Reddit Ads (Audiences). +Authentication credentials: necessary credentials for authentication, for example, API keys and tokens. +Data mapping information: knowledge of the data fields required by Reddit Ads (Audiences). + +## Getting started + +### 1. Configure Extensible Webhook as a destination + +1. In your Segment workspace, navigate to **Connections** > **Catalog** > **Destinations**. +2. Use the search bar to search for **Extensible Webhook** and select **Add destination**. + +### 2. Select the data source + +1. Choose the source that you want to send data from to Reddit Ads (Audiences). +2. Click **Next** to proceed. +3. Give your destination a name and create your destination. + +### 3. Specify the instance details + +In Reddit Ads, create an app. For steps on how to do this, see the [Reddit documentation](https://ads-api.reddit.com/docs/v3/#create-a-developer-application){:target="_blank"}. + +When creating your app, specify the following details: + +- Name: Give your webhook instance a recognizable name. +- Description (optional): Add a brief description of the integration. +- Endpoint URL: Provide the webhook URL or endpoint provided by Reddit Ads (Audiences). + +> info: Redirect URI +The redirect URI used when creating a Reddit web app is “https://app.segment.com/oauth-service/webhook/callback”. + +### 4. Select the authentication type + +Reddit provides developers with an option to create a web application to set up OAuth 2.0 for the Ads API to be authenticated. Once a web app has been created, you will need to note down the Client ID and Secret provided by Reddit. These will be used to set up authentication on Segment. + +To set up OAuth: + +1. Go to **Authentication Method** and select **OAuth 2.0**. +2. Enter the following credentials as required: + - Client ID: provided by the Reddit web app + - Secret: provided by the Reddit web app + - Authorize URL: https://www.reddit.com/api/v1/authorize + - Token URL: https://www.reddit.com/api/v1/access_token + - Refresh URL: https://www.reddit.com/api/v1/access_token + - Scope: To update Audiences, you will need to add ‘adsedit’ as a scope. To add multiple scopes, separate the values by commas. + +You can also find the Authorize URL, Token URL, and Refresh URL in the [Reddit documentation](https://ads-api.reddit.com/docs/v3/operations/Update%20Custom%20Audience%20Users){:target="_blank"}. + +3. Once you create the destination instance, you will be redirected to Settings. Click on **Connect** to set up the OAuth connection with Reddit and you’ll be redirected to reddit. Click on “Allow” to complete the authentication flow. +4. Once you’re redirected back to the destination settings page, this means that authentication is completed and you’re now ready to send events to Reddit. + +### 5. Perform data mapping + +#### Data transformation + +The Reddit Custom Audience API expects data in a nested format. To format the payload correctly, you will have to write an insert function that appends a new property called “body” (for example). + +This will have the following structure: + +``` +{ + "data": { + "action_type": "ADD", + "column_order": [ + "EMAIL_SHA256", + "MAID_SHA256" + ], + "user_data": [ + [ + "d7ef2e7b2a3663c25284a3d6d13b1ca727fc8c659474b81afe0cec997a4737d2", + "510870d7b3e47a28a2b2f3aef27a4c81aab0b2eefda27dea50bc4c991d9e5435" + ] + ] + } +} +``` + +The required parameters are: + +- `action_type` which can take values “ADD” or “REMOVE” depending on whether a customer has to be added or removed from the list. +- `column_order` which can take two values, “EMAIL_SHA256” and “MAID_SHA256”. The order indicates the column order of the data being synced inside `user_data` +- `user_data` is an array of values which has hashed email id or MAID id or both. For the beta, Segment doesn’t support batching to iterate just over this array yet. + +#### Data mapping + +In this recipe, as an example, users are added to the existing audience but you can use one or multiple mappings to perform any `Put`, `Patch` or `Post` action types. + +1. Create a new mapping from the **Mappings** tab, click on **Add Mapping** and select the “Send” HTTP action. +2. Select events to send. Define the event triggers to send to Reddit Ads (Audiences) using the event filters. +3. Fill out mapping fields: + 1. Specify the URL and method. + - For example, using the following URL: https://ads-api.reddit.com/api/v3/custom_audiences/{audience_id}/users + 1. Replace `audience_id` with the actual audience ID you want to edit. You can find the iID below the name of the Audience List to be modified on Audience Manager. + 2. Select `PATCH` as the HTTP method. The API expects a Patch operation on the endpoint. +4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. +5. Turn off batching for this operation. + +Reddit supports three types of actions that can be performed via Extensible Webhook. + +- Audiences + - Manage Audiences: Create a new audience or manage existing ones. + - Manage Audience Users: PATCH users in existing audiences or create a new audience and add users to it. +- Campaigns + - Manage Campaigns: Create a new campaign or manage existing ones. + +### 6. Test the output and connection + +1. Click **Test Connection** to send a sample payload. +2. Verify in Reddit Ads (Audiences) that the test data has been received and processed correctly. + +Troubleshooting: + +- If the test fails, review the authentication details and data mappings. +- Check for error messages in Segment and Reddit Ads (Audiences). + +### 7. Save and enable the destination + +1. Once the test is successful, click **Save** to store your configuration. +2. Toggle the destination to Enabled to start sending live data. +3. Monitor the data flow to ensure events are being delivered as expected. diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md new file mode 100644 index 0000000000..f92a635228 --- /dev/null +++ b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md @@ -0,0 +1,155 @@ +--- +title: Reddit Ads Conversion API Integration Recipe +--- + +This recipe will guide you through setting up a custom destination for Reddit Ads Conversion API using Segment’s Extensible Webhooks feature. By following these steps, you can integrate your data source with Reddit Ads Conversion API without writing any code. + +## Prerequisites + +To integrate Reddit Ads Conversion with Segment, ensure you have the following: + +- A Segment account: an account with the Extensible Webhooks feature enabled. +- Reddit Ads Conversion API account: an active account or API access to Reddit Ads Conversion API. +- Authentication credentials: necessary credentials for authentication, for example, API keys and tokens. +- Data mapping information: knowledge of the data fields required by Reddit Ads Conversion API. + +## Getting started + +### 1. Navigate to the Extensible Webhook destination + +1. In your Segment workspace, go to **Catalog** > **Destinations**. +2. Use the search bar to search for **Extensible Webhook** and select **Add destination**. + +### 2. Select the data source + +1. Choose the source that you want to send data from to Reddit Ads Conversion API. +2. Click **Next** to proceed. +3. Give your destination a name and create your destination. + +### 3. Specify the instance details + +In Reddit Ads, create an app. For steps on how to do this, see the [Reddit documentation](https://business.reddithelp.com/s/article/Create-a-Reddit-Application){:target="_blank"}. + +When creating your app, specify the following details: + +- Name: Give your webhook instance a recognizable name. +- Description (optional): Add a brief description of the integration. +- Endpoint URL: Provide the webhook URL or endpoint provided by Reddit Ads Conversion API. + +### 4. Select the authentication type + +Reddit provides two methods for authentication: +- Creating an app. +- Using the conversion access token. + +The conversion access token provides a bearer token that can be added to the header. To get the conversion access token from Reddit Ads: + +1. In your Reddit Ads account and navigate to **Events Manager**. +2. Select **Conversions API**. +3. Click **Generate Access Token** to generate your token. Copy and make a note of it. + +Once you have the conversion token, go back to your destination in your Segment workspace. In **Settings**, go to **Authorization Settings** and select “No Auth” as the authentication method. + +### 5. Perform data mapping + +#### Data transformation + +The Reddit Conversion API expects data in a nested format. To format the payload correctly, you will need to write an insert function that appends a new property, for example `body`. + +This will have the following structure: + +``` +{ + "events": [ + { + "click_id": "3184742045291813272", + "event_at": "2018-01-01T00:00:00Z", + "event_at_ms": 1514764800000, + "event_type": { + "tracking_type": "Purchase", + "custom_event_name": "string" + }, + "event_metadata": { + "item_count": 5, + "currency": "USD", + "value": 1099, + "value_decimal": 10.99, + "conversion_id": "H72B9A4YXQ", + "products": [ + { + "id": "item-213", + "name": "Carne Asada Burrito", + "category": "Food Items" + } + ] + }, + "user": { + "email": "snoo@example.com", + "external_id": "7c73f2ae-a433-4d7b-9838-f467da98f48e", + "uuid": "1684189007728.7c73f2ae-a433-4d7b-9838-f467da98f48e", + "ip_address": "192.0.2.1", + "user_agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0", + "idfa": "EA7583CD-A667-48BC-B806-42ECB2B48606", + "aaid": "cdda802e-fb9c-47ad-9866-0794d394c912", + "opt_out": true, + "screen_dimensions": { + "width": 3440, + "height": 1440 + }, + "data_processing_options": { + "modes": [ + "LDU" + ], + "country": "US", + "region": "US-CA" + } + } + } + ] +} +``` + +The conversions payload consists of three core components: + +- `event_type`: This classifies the conversion event used for aggregating data in reporting. +- `event_metadata`: This contains information associated with specific actions or conversion events shared to Reddit. +- `user`: This includes attribution and advanced matching signals that improve conversion measurement. + +These components are separated into various parameters, some of which are required: +- `event_at` +- `tracking_type` +- `conversion_id` + +It’s also recommended that you include the `email`, `ip_address`, `uuid`, and `click_id` parameters. + +### Data mapping + +To map data from your destination to Reddit Ads: + +1. Create a new mapping in the **Mappings** tab, select the **Send** action. +2. Define the event trigger by selecting the events you want to send to Reddit Ads Conversion API using the Event name filters. +3. (Optional) Add enrichment entities as necessary. +4. Fill out mapping fields: + 1. To specify the URL, go to your Reddit Ads account, navigate to **Pixel configuration** to find your Pixel ID. The format of the URL should be https://ads-api.reddit.com/api/v2.0/conversions/events/{{YOURPICEL_ID}} + 2. Specify the headers. + - Set up Authorization using the Bearer Token generated in the previous step. + - Specify the Content Type that the Conversion API expects. +5. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. +6. Turn off batching for this operation. + +### 6. Test the output and connection + +1. Click **Test Connection** to send a sample payload. +2. In the Reddit Ads Conversion API, verify that the test data has been received and processed correctly. + +#### Troubleshooting + +If the test fails: +- Review the authentication details and data mappings. +- Check for error messages in Segment and the Reddit Ads Conversion API. + +### 7. Save and enable the destination + +1. Once the test is successful, click **Save** to store your configuration. +2. Toggle the destination to Enable to start sending live data to Reddit Ads Conversion API. +3. Monitor the data flow to ensure that events are being delivered as expected. From af8f48882679b23ea20052745c583690c95abe9f Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 18 Jun 2025 15:58:51 +0100 Subject: [PATCH 087/438] whitespace [netlify-build] --- .../actions-webhook-extensible/amazon-ads-integration-recipe.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md index ba0a495407..6e9a923e6f 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md @@ -1,5 +1,6 @@ --- title: Amazon Ads Audience Sync Integration Recipe + --- This recipe will guide you through how to set up a custom destination for Amazon Ads using Twilio Segment's Extensible Webhooks feature and how to sync customer data into an Audience list. By following these steps, you can integrate your data source with Amazon Ads. From 7f4b4e41444f19e01ea84aa6cdc19012d59501d3 Mon Sep 17 00:00:00 2001 From: rchinn1 <93161299+rchinn1@users.noreply.github.com> Date: Wed, 18 Jun 2025 08:20:47 -0700 Subject: [PATCH 088/438] Apply suggestions from code review Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../sources/catalog/libraries/website/javascript/querystring.md | 2 +- .../catalog/libraries/website/javascript/troubleshooting.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/querystring.md b/src/connections/sources/catalog/libraries/website/javascript/querystring.md index ee30e56cc8..445a787eff 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/querystring.md +++ b/src/connections/sources/catalog/libraries/website/javascript/querystring.md @@ -15,7 +15,7 @@ Here are the *optional* query parameters to use: | `ajs_prop_` | A property to pass to the Track call. | This won't implicitly trigger an event and is dependent on you also passing `ajs_event`. This property is included in the resulting Track call. | | `ajs_trait_` | A trait to pass to the Identify call. | This won't implicitly trigger any call and is dependent on you also passing `ajs_uid`. This trait is included in the resulting Identify call. | -For example, this URL would create the following events on the page: +For example, this URL creates the following events on the page: ```text http://segment.com/?ajs_uid=123456789abcd&ajs_event=Clicked%20Email&ajs_aid=abc123&ajs_prop_emailCampaign=First+Touch&ajs_trait_name=Karl+Jr. diff --git a/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md b/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md index 1f5673bd62..7cdf4f4312 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md +++ b/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md @@ -137,6 +137,6 @@ You may see events with timestamp discrepancies due to manual overriding of the ## View additional known issues -You can review other known issues in [GitHub](https://github.com/segmentio/analytics.js/issues). +You can review other known Analytics.js issues on [GitHub](https://github.com/segmentio/analytics.js/issues). From e0f2a2069fac0cf6fa2e8d78acd940334ff2f979 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 18 Jun 2025 16:25:02 +0100 Subject: [PATCH 089/438] Update source-insert-functions [netlify-build] --- src/connections/functions/source-insert-functions | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/connections/functions/source-insert-functions b/src/connections/functions/source-insert-functions index 71bd46f043..5ce79df4ac 100644 --- a/src/connections/functions/source-insert-functions +++ b/src/connections/functions/source-insert-functions @@ -1,5 +1,6 @@ --- title: Source Insert Functions + --- > info "Source Insert Function is in Public Beta" @@ -73,18 +74,23 @@ The errors listed are all permanent errors, except `RetryError`. When a `RetryEr ### Source insert functions FAQs **The Delivery Overview tab does not display any errors that occur within the source insert function.** + If errors arise or events are dropped, they will appear as if the events never flowed from the source. **Can I test the function with different event types?** + You can test the function with different event types from the **Test** tab in the code editor, similar to other functions. **Can I use source insert functions for all types of Source?** + Source insert functions only work for event sources, not object sources or rETL. **What is the expected latency for a source insert function?** + Typically, it takes a source insert function between 200 milliseconds to 5 seconds to complete, based on the complexity of the function. The default timeout is 5 seconds but can be increased to 60 seconds. **What is the runtime environment?** + Segment supports Node.js V18. The dependencies listed [here](https://segment.com/docs/connections/functions/insert-functions/#runtime-and-dependencies){:target=”_blank”} are installed in the function. The following dependencies are also installed: - `@azure/identity` exposed as `azure.identity` - `@azure/event-hubs` exposed as `azure.eventHubs` From 8d133a6c6f2e99fd7f73b0dca209942bd6ee4a86 Mon Sep 17 00:00:00 2001 From: rchinn1 <93161299+rchinn1@users.noreply.github.com> Date: Wed, 18 Jun 2025 08:27:57 -0700 Subject: [PATCH 090/438] Update src/connections/destinations/catalog/actions-intercom-cloud/index.md --- .../destinations/catalog/actions-intercom-cloud/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-intercom-cloud/index.md b/src/connections/destinations/catalog/actions-intercom-cloud/index.md index ba5510b643..6b69f194d0 100644 --- a/src/connections/destinations/catalog/actions-intercom-cloud/index.md +++ b/src/connections/destinations/catalog/actions-intercom-cloud/index.md @@ -51,4 +51,4 @@ When you use the Identify Company action, Segment creates or updates a company's ### Why do I get a 404 Not Found error when sending Track events to Intercom? A `404 Not Found` error typically occurs when attempting to update a user in Intercom who does not yet exist in the system. This can happen if an Identify event, which includes the corresponding `userId`, was not sent before the Track event that resulted in the `404` error. -To resolve this, ensure that Identify events are sent **before** Track events to guarantee proper processing and avoid errors. +To resolve this, ensure that Identify events are sent **before** Track events to ensure proper processing and avoid errors. From 44c6a6f8bc220b36cd8c797550f351b87ea2e69a Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 18 Jun 2025 16:35:32 +0100 Subject: [PATCH 091/438] Rename source-insert-functions to source-insert-functions.md --- .../{source-insert-functions => source-insert-functions.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/connections/functions/{source-insert-functions => source-insert-functions.md} (100%) diff --git a/src/connections/functions/source-insert-functions b/src/connections/functions/source-insert-functions.md similarity index 100% rename from src/connections/functions/source-insert-functions rename to src/connections/functions/source-insert-functions.md From ea6525899f521f201c47531accb2e40f01489d9f Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 18 Jun 2025 16:36:21 +0100 Subject: [PATCH 092/438] Update source-insert-functions.md [netlify-build] solving why build didn't work --- src/connections/functions/source-insert-functions.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 5ce79df4ac..3a82fbac69 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -1,6 +1,5 @@ --- title: Source Insert Functions - --- > info "Source Insert Function is in Public Beta" From 4606192f6fd5f4c6d6f57f04490191d177f43ead Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 18 Jun 2025 16:43:26 +0100 Subject: [PATCH 093/438] Insert functions now supported in event and mapping tester [DOC-1135] --- src/connections/functions/insert-functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/functions/insert-functions.md b/src/connections/functions/insert-functions.md index f40678d9df..a844fab14b 100644 --- a/src/connections/functions/insert-functions.md +++ b/src/connections/functions/insert-functions.md @@ -239,8 +239,8 @@ You can manually test your code from the functions editor: - Error messages display errors surfaced from your function. - Logs display any messages to console.log() from the function. -> warning "" -> The Event Tester and Mapping Tester don't support Insert Functions. They won't apply an Insert Function, show its impact on your data, or send data through the Insert Function pipeline. Use the Function Tester instead to evaluate how your Insert Function affects your data. +> info "" +> Insert Functions are supported in both the Event Tester and Mapping Tester. ## Save and deploy the destination insert function From 92b80f0fe5e9582f644bc6665b51365f5a877d08 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 18 Jun 2025 16:49:20 +0100 Subject: [PATCH 094/438] formatting --- src/connections/functions/source-insert-functions.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 3a82fbac69..4639cd59a5 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -72,23 +72,23 @@ The errors listed are all permanent errors, except `RetryError`. When a `RetryEr ### Source insert functions FAQs -**The Delivery Overview tab does not display any errors that occur within the source insert function.** +##### The Delivery Overview tab does not display any errors that occur within the source insert function. If errors arise or events are dropped, they will appear as if the events never flowed from the source. -**Can I test the function with different event types?** +##### Can I test the function with different event types? You can test the function with different event types from the **Test** tab in the code editor, similar to other functions. -**Can I use source insert functions for all types of Source?** +##### Can I use source insert functions for all types of Source? Source insert functions only work for event sources, not object sources or rETL. -**What is the expected latency for a source insert function?** +##### What is the expected latency for a source insert function? Typically, it takes a source insert function between 200 milliseconds to 5 seconds to complete, based on the complexity of the function. The default timeout is 5 seconds but can be increased to 60 seconds. -**What is the runtime environment?** +##### What is the runtime environment? Segment supports Node.js V18. The dependencies listed [here](https://segment.com/docs/connections/functions/insert-functions/#runtime-and-dependencies){:target=”_blank”} are installed in the function. The following dependencies are also installed: - `@azure/identity` exposed as `azure.identity` From fb00af280c2b05b1d760fdc0042442cb2226b395 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 18 Jun 2025 14:09:58 -0700 Subject: [PATCH 095/438] entity counts [netlify-build] --- src/engage/audiences/linked-audiences.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engage/audiences/linked-audiences.md b/src/engage/audiences/linked-audiences.md index 2b05ab718f..f7a6b57a08 100644 --- a/src/engage/audiences/linked-audiences.md +++ b/src/engage/audiences/linked-audiences.md @@ -53,6 +53,7 @@ To build a Linked Audience: **Note:** If you cannot select **Linked audience**, ensure you’ve [set up your Data Graph](/docs/unify/linked-profiles/data-graph/) in Unify. 4. Select the [conditions](#Linked-Audience-conditions) on which to build your audience. 5. Click **Preview** to view your audience selection and see a count and list of audience members who meet the criteria. +6. Select the **Entities** tab on the preview side sheet to select an entity tied to your audience definition. You can view a preview of the entity count and a sample list of the selected entity 6. When your audience is complete and accurate, click **Next**. 7. Enter an audience name and description to identify this configuration. Optionally, select a folder to add this audience. From e6c0564c9eab820204ded39ed31bc5af44156d22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Hern=C3=A1ndez?= Date: Wed, 18 Jun 2025 18:10:04 -0400 Subject: [PATCH 096/438] Add Eagle Eye (Actions) destination docs --- .../catalog/eagleeye-actions/index.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/connections/destinations/catalog/eagleeye-actions/index.md diff --git a/src/connections/destinations/catalog/eagleeye-actions/index.md b/src/connections/destinations/catalog/eagleeye-actions/index.md new file mode 100644 index 0000000000..a8172eda7d --- /dev/null +++ b/src/connections/destinations/catalog/eagleeye-actions/index.md @@ -0,0 +1,34 @@ +--- +title: Eagle Eye (Actions) Destination +--- + +{% include content/plan-grid.md name="actions" %} + +[Eagle Eye](https://eagleeye.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} delivers real-time loyalty and promotions solutions for enterprise brands, enabling seamless integration with leading customer data platforms and marketing activation tools. Their platform connects digital and in-store experiences, accelerating personalization and campaign delivery through extensible APIs and pre-built connectors. + +This destination is maintained by Eagle Eye. For any issues with the destination, [contact their Support team](mailto:platform-integrations@eagleeye.com). + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Eagle Eye". +2. Select "Eagle Eye (Actions)" and click **Add Destination**. +3. Select an existing Source to connect to Eagle Eye (Actions). +4. Set up your EE Connector for Segment by following the [CDP and MAP Connectors](https://developer.eagleeye.com/eagleeye-developer/docs/eagle-eye-connect-cdp-map) guide, along with the [Segment](https://developer.eagleeye.com/docs/segment) specific page for information that needs to be provided. +5. Enter the **Connector URL** and **Connector External Key** from the previous step in the "Eagle Eye (Actions)" destination settings in Segment. + +{% include components/actions-fields.html %} + +### Define mappings to trigger Behavioral Actions + +> This guide makes the assumption you're taking advantage of the Eagle Eye Connector for Segment as well to send events into Segment. Still, any event is valid as long as it contains properties to be used "User identity value" and (optionally, when needed) "Wallet transaction reference". + +> To set this up you must first [Set up Social Behavioral Action Triggers](https://developer.eagleeye.com/eagleeye-developer/docs/segment#set-up-social-behavioural-action-triggers) within the Eagle Eye AIR dashboard. You can find this under **Triggers** > **Search** / **Create Behavioral Action**. + +1. Within your new Eagle Eye (Actions) destination, head to the Mappings tab and click **New Mapping**. +2. From the action list, select **Trigger Behavioral Action**. +3. Define your event trigger conditions. E.g.: if a behavioral action should only trigger for customers who just joined the program, you could set "Event Type is Track" and "Event Name is EE Loyalty Program Joined" (or any other event that contains the information you need). +4. Under **Map fields**, ensure at least "User identity value" and "Behavioral Action trigger reference" are set. The trigger reference will be the same you set within the Eagle Eye AIR dashboard when creating your Behavioral Action. +5. (Optional) If your Behavioral Action requires a "Wallet transaction reference", populate it from one of the event fields as well. E.g.: an event property that may contain the transaction reference, such as `properties.order_id`. +6. Click on **Next**, type a name for your new mapping and hit **Save** or **Save and enable**. + +For more information on events sent through the Eagle Eye Connector for Segment and their properties, refer to the [Data Model](https://developer.eagleeye.com/eagleeye-developer/docs/segment#data-model) documentation. \ No newline at end of file From 2ae8872c9ebe5d57798a0969f577e606d339352f Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Wed, 18 Jun 2025 16:06:25 -0700 Subject: [PATCH 097/438] Update src/engage/audiences/linked-audiences.md --- src/engage/audiences/linked-audiences.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engage/audiences/linked-audiences.md b/src/engage/audiences/linked-audiences.md index f7a6b57a08..cc4fdd0ade 100644 --- a/src/engage/audiences/linked-audiences.md +++ b/src/engage/audiences/linked-audiences.md @@ -53,7 +53,7 @@ To build a Linked Audience: **Note:** If you cannot select **Linked audience**, ensure you’ve [set up your Data Graph](/docs/unify/linked-profiles/data-graph/) in Unify. 4. Select the [conditions](#Linked-Audience-conditions) on which to build your audience. 5. Click **Preview** to view your audience selection and see a count and list of audience members who meet the criteria. -6. Select the **Entities** tab on the preview side sheet to select an entity tied to your audience definition. You can view a preview of the entity count and a sample list of the selected entity +6. Select the **Entities** tab on the preview side sheet to select an entity tied to your audience definition. You can view a preview of the entity count and a sample list of the selected entity. 6. When your audience is complete and accurate, click **Next**. 7. Enter an audience name and description to identify this configuration. Optionally, select a folder to add this audience. From 752f94e740da613547629e7046b4cc622d9d8b1d Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 18 Jun 2025 15:30:13 -0400 Subject: [PATCH 098/438] init --- src/engage/audiences/index.md | 28 ++++++++++-- src/engage/audiences/linked-audiences.md | 55 ++++++++++++++++++++++++ 2 files changed, 80 insertions(+), 3 deletions(-) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 285032c5b4..7867685073 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -286,6 +286,9 @@ To access audience alerting, navigate to **Engage > Audiences**, select an audie On the **Alerts** tab, you can create new alerts and view all active alerts for this connection. You can only edit or delete the alerts that you create, unless you have the [Workspace Owner role](/docs/segment-app/iam/roles/). +> info "Deleting alerts created by other users requires Workspace Owner role" +> All users can delete alerts that they created, but only those with [Workspace Owner role](/docs/segment-app/iam/roles/) can delete alerts created by other users. + #### Activation event health spikes or drops You can create an Activation event health spikes or drops alert that notifies you when events sent from your audience to a downstream destination have failures to a destination above a certain threshold. For example, if you set a change percentage of 4% and your destination received 100 events from your audience over the first 24 hours, Segment would notify you the following day if your destination ingested fewer than 96 or more than 104 events. @@ -293,7 +296,7 @@ You can create an Activation event health spikes or drops alert that notifies yo To create an Activation event health spikes or drops alert: 1. From your Segment workspace's home page, navigate to **Engage > Audiences**. 2. Select the Audience you want to create an alert for, select the Alerts tab, and click **Create alert**. -3. On the Create alert sidesheet, select the destination for which you'd like to monitor event health. +3. On the Create alert sidesheet, select the **Activation event health spikes or drops** alert and pick a destination for which you'd like to monitor event health. 4. Enter a percentage threshold to trigger activation event health notifications. 5. Select one or more of the following alert channels: - **Email**: Select this to receive notifications at the provided email address. @@ -305,8 +308,27 @@ To make changes to an Activation event health spikes or drops alert, select the To delete a Activation event health spikes or drops alert, select the icon in the Actions column for the alert and click **Delete**. -> info "Deleting alerts created by other users requires Workspace Owner role" -> All users can delete alerts that they created, but only those with [Workspace Owner role](/docs/segment-app/iam/roles/) can delete alerts created by other users. +#### Audience size change + +You can create an Audience size change alert that notifies you when your audience increases or decreases by a certain threshold. For example, if you set a change percentage of 4% and your destination had 100 members over the first 24 hours, Segment would notify you the following day if your audience had fewer than 96 or more than 104 members. + +> info "Audience size change alerts are currently in Public Beta" +> Audience size change alerts are in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. During the public beta, Audience size change alerts only support Linked Audiences. + +To create an Audience size change alert: +1. From your Segment workspace's home page, navigate to **Engage > Audiences**. +2. Select the Linked Audience you want to create an alert for, select the Alerts tab, and click **Create alert**. +3. On the Create alert sidesheet, select the **Audience size change alert** and pick a destination for which you'd like to monitor event health. +4. Enter a percentage threshold to trigger audience size change notifications. +5. Select one or more of the following alert channels: + - **Email**: Select this to receive notifications at the provided email address. + - **Slack**: Select this to send alerts to one or more channels in your workspace. You can post messages to your channel with either a [webhook](https://api.slack.com/messaging/webhooks){:target="_blank”} or a [workflow](https://slack.com/help/articles/360041352714-Build-a-workflow--Create-a-workflow-that-starts-outside-of-Slack){:target="_blank”}. + - **In-app**: Select this to receive notifications in the Segment app. To view your notifications, select the bell next to your user icon in the Segment app. +6. Click **Save**. + +To make changes to an Audience size change alert, select the icon in the Actions column for the alert and click **Edit**. + +To delete a Audience size change alert, select the icon in the Actions column for the alert and click **Delete**. ## Access your Audiences using the Profiles API diff --git a/src/engage/audiences/linked-audiences.md b/src/engage/audiences/linked-audiences.md index 2b05ab718f..54baf1c245 100644 --- a/src/engage/audiences/linked-audiences.md +++ b/src/engage/audiences/linked-audiences.md @@ -260,6 +260,61 @@ Linked Audiences have the following steps in Delivery Overview's pipeline view: - **Failed delivery**: Events that Segment _attempted_ to deliver to your destination, but that ultimately _failed_ to be delivered. Failed delivery might indicate an issue with the destination, like invalid credentials, rate limits, or other error statuses received during delivery. - **Successful delivery**: Events that Segment successfully delivered to your destination. You’ll see these events in your downstream integrations. +## Linked Audience Alerts + +You can create alerts related to the performance and throughput of Linked Audience syncs and receive in-app, email, and Slack notifications when event volume fluctuations occur. + +> info "Generate a Slack webhook to receive Slack notifications" +> To receive an alert in a Slack channel, you must first create a Slack webhook. For more information about Slack webhooks, see Slack's [Sending messages using incoming webhooks](https://api.slack.com/messaging/webhooks){:target="_blank”} documentation. + +To access Linked Audience alerting, navigate to **Engage > Audiences**, select a Linked Audience, and click the **Alerts** tab. + +On the **Alerts** tab, you can create new alerts and view all active alerts for this connection. You can only edit or delete the alerts that you create, unless you have the [Workspace Owner role](/docs/segment-app/iam/roles/). + +> info "Deleting alerts created by other users requires Workspace Owner role" +> All users can delete alerts that they created, but only those with [Workspace Owner role](/docs/segment-app/iam/roles/) can delete alerts created by other users. + +#### Activation event health spikes or drops + +You can create an Activation event health spikes or drops alert that notifies you when events sent from your audience to a downstream destination have failures to a destination above a certain threshold. For example, if you set a change percentage of 4% and your destination received 100 events from your audience over the first 24 hours, Segment would notify you the following day if your destination ingested fewer than 96 or more than 104 events. + +To create an Activation event health spikes or drops alert: +1. From your Segment workspace's home page, navigate to **Engage > Audiences**. +2. Select the Audience you want to create an alert for, select the Alerts tab, and click **Create alert**. +3. On the Create alert sidesheet, select the **Activation event health spikes or drops** alert and pick a destination for which you'd like to monitor event health. +4. Enter a percentage threshold to trigger activation event health notifications. +5. Select one or more of the following alert channels: + - **Email**: Select this to receive notifications at the provided email address. + - **Slack**: Select this to send alerts to one or more channels in your workspace. You can post messages to your channel with either a [webhook](https://api.slack.com/messaging/webhooks){:target="_blank”} or a [workflow](https://slack.com/help/articles/360041352714-Build-a-workflow--Create-a-workflow-that-starts-outside-of-Slack){:target="_blank”}. + - **In-app**: Select this to receive notifications in the Segment app. To view your notifications, select the bell next to your user icon in the Segment app. +6. Click **Save**. + +To make changes to an Activation event health spikes or drops alert, select the icon in the Actions column for the alert and click **Edit**. + +To delete a Activation event health spikes or drops alert, select the icon in the Actions column for the alert and click **Delete**. + +#### Audience size change + +You can create an Audience size change alert that notifies you when your audience increases or decreases by a certain threshold. For example, if you set a change percentage of 4% and your destination had 100 members over the first 24 hours, Segment would notify you the following day if your audience had fewer than 96 or more than 104 members. + +> info "Audience size change alerts are currently in Public Beta" +> Audience size change alerts are in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. + +To create an Audience size change alert: +1. From your Segment workspace's home page, navigate to **Engage > Audiences**. +2. Select the Linked Audience you want to create an alert for, select the Alerts tab, and click **Create alert**. +3. On the Create alert sidesheet, select the **Audience size change alert** and pick a destination for which you'd like to monitor event health. +4. Enter a percentage threshold to trigger audience size change notifications. +5. Select one or more of the following alert channels: + - **Email**: Select this to receive notifications at the provided email address. + - **Slack**: Select this to send alerts to one or more channels in your workspace. You can post messages to your channel with either a [webhook](https://api.slack.com/messaging/webhooks){:target="_blank”} or a [workflow](https://slack.com/help/articles/360041352714-Build-a-workflow--Create-a-workflow-that-starts-outside-of-Slack){:target="_blank”}. + - **In-app**: Select this to receive notifications in the Segment app. To view your notifications, select the bell next to your user icon in the Segment app. +6. Click **Save**. + +To make changes to an Audience size change alert, select the icon in the Actions column for the alert and click **Edit**. + +To delete a Audience size change alert, select the icon in the Actions column for the alert and click **Delete**. + ## Maintaining Linked Audiences You can maintain your Linked Audience by accessing these tabs on the main page of your Linked Audience: From 48f40af0765ce853acefd3093fa186afdf72df6b Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 18 Jun 2025 16:07:12 -0400 Subject: [PATCH 099/438] add to default alerts page --- src/monitor/alerts/default-alerts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/monitor/alerts/default-alerts.md b/src/monitor/alerts/default-alerts.md index 5d4b7dca16..a652b58d84 100644 --- a/src/monitor/alerts/default-alerts.md +++ b/src/monitor/alerts/default-alerts.md @@ -117,7 +117,7 @@ your identity-resolved profiles to your data warehouse. - **Audience Run Failed**: Segment was unable to compute your Audience. To resolve this error, please [contact Segment support](https://segment.com/help/contact/){:target="_blank”}. > info "Custom Engage alerts" -> During the Monitor public beta, you can configure custom [Activation event health spikes or drops](/docs/engage/audiences/#activation-event-health-spikes-or-drops) alerts, but these alerts won't appear in the Monitor tab. +> During the Monitor public beta, you can configure custom [Activation event health spikes or drops](/docs/engage/audiences/#activation-event-health-spikes-or-drops) and [Audience size change alerts](/docs/engage/audiences/#audience-size-change) alerts, but these alerts won't appear in the Monitor tab. ## Users alerts - **Access Request Created**: A user in your workspace requested access to a resource that they don't currently have permission to view. For more information, see the [Request Access](/docs/segment-app/iam/membership/#request-access) documentation. From ab6edc90acc831cdc522265415599f2f2ce11c5d Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 18 Jun 2025 16:08:09 -0400 Subject: [PATCH 100/438] fix --- src/monitor/alerts/default-alerts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/monitor/alerts/default-alerts.md b/src/monitor/alerts/default-alerts.md index a652b58d84..5e4ca88392 100644 --- a/src/monitor/alerts/default-alerts.md +++ b/src/monitor/alerts/default-alerts.md @@ -117,7 +117,7 @@ your identity-resolved profiles to your data warehouse. - **Audience Run Failed**: Segment was unable to compute your Audience. To resolve this error, please [contact Segment support](https://segment.com/help/contact/){:target="_blank”}. > info "Custom Engage alerts" -> During the Monitor public beta, you can configure custom [Activation event health spikes or drops](/docs/engage/audiences/#activation-event-health-spikes-or-drops) and [Audience size change alerts](/docs/engage/audiences/#audience-size-change) alerts, but these alerts won't appear in the Monitor tab. +> During the Monitor public beta, you can configure custom [Activation event health spikes or drops](/docs/engage/audiences/#activation-event-health-spikes-or-drops) and [Audience size change](/docs/engage/audiences/#audience-size-change) alerts, but these alerts won't appear in the Monitor tab. ## Users alerts - **Access Request Created**: A user in your workspace requested access to a resource that they don't currently have permission to view. For more information, see the [Request Access](/docs/segment-app/iam/membership/#request-access) documentation. From 4cc95bb7e5daece9c648e533a3680e0bfbf68a52 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 18 Jun 2025 19:58:26 -0400 Subject: [PATCH 101/438] Update index.md --- src/engage/audiences/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 7867685073..86259525b9 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -312,8 +312,8 @@ To delete a Activation event health spikes or drops alert, select the icon in th You can create an Audience size change alert that notifies you when your audience increases or decreases by a certain threshold. For example, if you set a change percentage of 4% and your destination had 100 members over the first 24 hours, Segment would notify you the following day if your audience had fewer than 96 or more than 104 members. -> info "Audience size change alerts are currently in Public Beta" -> Audience size change alerts are in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. During the public beta, Audience size change alerts only support Linked Audiences. +> info "Audience size change alerts currently only support Linked Audiences" +> Audience size change alerts are in public beta, and Segment is actively working on this feature. During the public beta, Audience size change alerts only support Linked Audiences. Some functionality may change before it becomes generally available. To create an Audience size change alert: 1. From your Segment workspace's home page, navigate to **Engage > Audiences**. From 9c68ba16f5713c7dee3ed25bd1e3960ac2947b81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Hern=C3=A1ndez?= Date: Thu, 19 Jun 2025 16:44:09 -0400 Subject: [PATCH 102/438] Update contact email --- src/connections/destinations/catalog/eagleeye-actions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/eagleeye-actions/index.md b/src/connections/destinations/catalog/eagleeye-actions/index.md index a8172eda7d..b2deee9e5a 100644 --- a/src/connections/destinations/catalog/eagleeye-actions/index.md +++ b/src/connections/destinations/catalog/eagleeye-actions/index.md @@ -6,7 +6,7 @@ title: Eagle Eye (Actions) Destination [Eagle Eye](https://eagleeye.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} delivers real-time loyalty and promotions solutions for enterprise brands, enabling seamless integration with leading customer data platforms and marketing activation tools. Their platform connects digital and in-store experiences, accelerating personalization and campaign delivery through extensible APIs and pre-built connectors. -This destination is maintained by Eagle Eye. For any issues with the destination, [contact their Support team](mailto:platform-integrations@eagleeye.com). +This destination is maintained by Eagle Eye. For any issues with the destination, [contact their Support team](mailto:support@eagleeye.com). ## Getting started From 90eb4b8e025922117865079e171d30bf4f8fc10f Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 19 Jun 2025 22:37:55 +0100 Subject: [PATCH 103/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 4639cd59a5..a32b6d92ac 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -23,7 +23,7 @@ To create a source insert function from Segment’s catalog: 4. Click **Next: Configure & Create** to add a function name, description (optional), and function logo (optional). -5. Click **Create Function** to save your insert function. The new source insert function will be displayed in the Functions tab. +5. Click **Create Function** to save your insert function. The new source insert function displays in the Functions tab. #### Coding the source insert function From d10eb7e15b68959605faa6486e029a7140f57e18 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 19 Jun 2025 22:38:03 +0100 Subject: [PATCH 104/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index a32b6d92ac..0ca7c543d9 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -36,7 +36,7 @@ Insert functions can define handlers for the following message types: - `onAlias` - `onDelete` -The default source code template includes handlers for all event types. Just implement the types you need and skip the ones you don’t. For event types you want to send through, return the event in the respective event handler. +The default source code template includes handlers for all event types. Implement the types you need. For event types you want to send through, return the event in the respective event handler. ### Using the Sources tab From 3e252044dd9cd7269290bb9341c92a1e4ff521de Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 19 Jun 2025 22:40:12 +0100 Subject: [PATCH 105/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 0ca7c543d9..300b07790f 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -86,7 +86,7 @@ Source insert functions only work for event sources, not object sources or rETL. ##### What is the expected latency for a source insert function? -Typically, it takes a source insert function between 200 milliseconds to 5 seconds to complete, based on the complexity of the function. The default timeout is 5 seconds but can be increased to 60 seconds. +The source insert function typically completes in 200 milliseconds to 5 seconds, depending on its complexity. The default timeout is 5 seconds but can be increased to 60 seconds. ##### What is the runtime environment? From 629b0ee1c2136b1e8f373f09486f905424ef2b08 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 19 Jun 2025 22:40:34 +0100 Subject: [PATCH 106/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 300b07790f..3a1f2e0fc4 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -90,7 +90,7 @@ The source insert function typically completes in 200 milliseconds to 5 seconds, ##### What is the runtime environment? -Segment supports Node.js V18. The dependencies listed [here](https://segment.com/docs/connections/functions/insert-functions/#runtime-and-dependencies){:target=”_blank”} are installed in the function. The following dependencies are also installed: +Segment supports Node.js V18 and installs the dependencies listed [here](https://segment.com/docs/connections/functions/insert-functions/#runtime-and-dependencies){:target=”_blank”} in the function. Segment also installs the following dependencies: - `@azure/identity` exposed as `azure.identity` - `@azure/event-hubs` exposed as `azure.eventHubs` - `@azure/synapse` exposed as `azure.synapse` From 4b86de0a2dd68bd502d500987208fac7a93a3cd2 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 19 Jun 2025 22:40:44 +0100 Subject: [PATCH 107/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 3a1f2e0fc4..02c9e6ffe8 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -80,7 +80,7 @@ If errors arise or events are dropped, they will appear as if the events never f You can test the function with different event types from the **Test** tab in the code editor, similar to other functions. -##### Can I use source insert functions for all types of Source? +##### Can I use source insert functions for all types of sources? Source insert functions only work for event sources, not object sources or rETL. From a39114d9b18d8301704bf6067126cd624e5bbcdf Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 19 Jun 2025 22:53:21 +0100 Subject: [PATCH 108/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 02c9e6ffe8..278e32e5f2 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -72,7 +72,7 @@ The errors listed are all permanent errors, except `RetryError`. When a `RetryEr ### Source insert functions FAQs -##### The Delivery Overview tab does not display any errors that occur within the source insert function. +##### Why does the Delivery Overview tab not display any errors that occur within the source insert function? If errors arise or events are dropped, they will appear as if the events never flowed from the source. From 628241a624c6f4cb358587226fb4ce8d0416c91c Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 19 Jun 2025 22:53:28 +0100 Subject: [PATCH 109/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 278e32e5f2..0c37f99ea1 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -74,7 +74,7 @@ The errors listed are all permanent errors, except `RetryError`. When a `RetryEr ##### Why does the Delivery Overview tab not display any errors that occur within the source insert function? -If errors arise or events are dropped, they will appear as if the events never flowed from the source. +If errors arise or events are dropped, they appear as if the events never flowed from the source. ##### Can I test the function with different event types? From 35332e075f5ead947a9866df8de3763837c9cbaf Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 19 Jun 2025 22:54:13 +0100 Subject: [PATCH 110/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 0c37f99ea1..9ec3953b92 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -70,7 +70,7 @@ This is similar to Source, Destination, and Insert Functions. The errors listed are all permanent errors, except `RetryError`. When a `RetryError` is thrown, Segment will reattempt to run the function a set number of times before permanently erroring out. -### Source insert functions FAQs +### FAQs ##### Why does the Delivery Overview tab not display any errors that occur within the source insert function? From 4a813e20bc9a2d525a3e50035f4f2d9ad154772d Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 20 Jun 2025 11:33:04 +0100 Subject: [PATCH 111/438] Update source-insert-functions to include review fixes.md --- .../functions/source-insert-functions.md | 32 ++++++++----------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 9ec3953b92..f2726fdc6a 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -2,16 +2,16 @@ title: Source Insert Functions --- -> info "Source Insert Function is in Public Beta" -> Source Insert Function is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. +Use Source Insert Functions to enrich, transform, or filter your data before it flows downstream to destinations. -## Create source insert functions +> info "Source Insert Function is in public beta" +> Source Insert Function is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. There are two ways you can access source insert functions from your Segment workspace: -- From the [Connections catalog](#using-the-catalog). -- From the [Sources tab](#using-the-sources-tab). +- From the Connections catalog. +- From the Sources tab. -### Using the catalog +## Creating a Source Insert Function To create a source insert function from Segment’s catalog: @@ -23,9 +23,11 @@ To create a source insert function from Segment’s catalog: 4. Click **Next: Configure & Create** to add a function name, description (optional), and function logo (optional). -5. Click **Create Function** to save your insert function. The new source insert function displays in the Functions tab. +5. Click **Create Function** to save your insert function. The new source insert function displays in the Functions tab. + +You can also go to **Conections** > **Sources** to create a source insert function. -#### Coding the source insert function +### Coding the source insert function Insert functions can define handlers for the following message types: - `onIdentity` @@ -36,15 +38,7 @@ Insert functions can define handlers for the following message types: - `onAlias` - `onDelete` -The default source code template includes handlers for all event types. Implement the types you need. For event types you want to send through, return the event in the respective event handler. - -### Using the Sources tab - -You can also create a source insert function from Sources. - -1. Navigate to **Connections** > **Sources**. -2. Select your source and go to the **Functions** tab. -3. Click **Create insert function** to create your insert function from scratch. +The default source code template includes handlers for all event types. Implement the types you need. For event types you want to send through, return the event in the respective event handler. ### Connecting a source insert function to a source @@ -68,9 +62,9 @@ You can `throw` the following pre-defined error types to indicate that the funct This is similar to Source, Destination, and Insert Functions. -The errors listed are all permanent errors, except `RetryError`. When a `RetryError` is thrown, Segment will reattempt to run the function a set number of times before permanently erroring out. +The errors listed are all permanent errors, except `RetryError`. When a `RetryError` is thrown, Segment reattempts to run the function a set number of times before permanently erroring out. -### FAQs +## FAQs ##### Why does the Delivery Overview tab not display any errors that occur within the source insert function? From 6676e9f05e007c4e7100b0c037a6b1ed4cd3b7ea Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 20 Jun 2025 11:33:35 +0100 Subject: [PATCH 112/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index f2726fdc6a..6b4e89a252 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -42,7 +42,7 @@ The default source code template includes handlers for all event types. Implemen ### Connecting a source insert function to a source -For data to flow downstream after transformation, you need to connect your source insert function to a source. To do this, follow the steps below: +For data to flow downstream after transformation, connect your source insert function to a source. To do this: 1. Select the insert function you want to connect to the source. You can edit, delete, and connect the insert function in the side pane. 2. Click *Connect a source**. From d6c6cc3de955abd0fe8182b24840ee7c532ec225 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 20 Jun 2025 11:33:51 +0100 Subject: [PATCH 113/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 6b4e89a252..7fe3adafc1 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -44,7 +44,7 @@ The default source code template includes handlers for all event types. Implemen For data to flow downstream after transformation, connect your source insert function to a source. To do this: -1. Select the insert function you want to connect to the source. You can edit, delete, and connect the insert function in the side pane. +1. Select the insert function you want to connect to the source. You can edit, delete, and connect the insert function on the side pane. 2. Click *Connect a source**. 3. Select the source you want to connect from the dropdown and click **Connect to Source** to connect. From 6d86db6c820e4783861c987c8c64aa8dffa837fd Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 20 Jun 2025 11:34:06 +0100 Subject: [PATCH 114/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 7fe3adafc1..8e133484ec 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -46,7 +46,7 @@ For data to flow downstream after transformation, connect your source insert fun 1. Select the insert function you want to connect to the source. You can edit, delete, and connect the insert function on the side pane. 2. Click *Connect a source**. -3. Select the source you want to connect from the dropdown and click **Connect to Source** to connect. +3. Select the source you want to connect to and click **Connect to Source**. ### Errors and error handling From f4a974cdced1a3787f13a78788cf468029997f8c Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 20 Jun 2025 12:30:58 +0100 Subject: [PATCH 115/438] Added PM changes + settings + testing section --- .../functions/source-insert-functions.md | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 8e133484ec..fc289bde81 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -25,7 +25,7 @@ To create a source insert function from Segment’s catalog: 5. Click **Create Function** to save your insert function. The new source insert function displays in the Functions tab. -You can also go to **Conections** > **Sources** to create a source insert function. +You can also go to **Conections** > **Sources** to create a source insert function in the Sources tab. ### Coding the source insert function @@ -40,13 +40,33 @@ Insert functions can define handlers for the following message types: The default source code template includes handlers for all event types. Implement the types you need. For event types you want to send through, return the event in the respective event handler. +### Settings + +You can add and edit settings for source insert functions in the code editor. Settings allow you to configure the behavior of your source insert function, which changes how it is displayed to anyone using your function. To set up: + +1. Go to the **Settings** tab in the code editor and click **Add Setting**. +2. Add the details about this setting. +3. Click **Add Setting** to save the configuration. + +As you change values, such as **Label**, **Name**, **Type**, and **Description**, a preview updates showing how your setting will look and work. Once saved, the new setting appears in the **Settings** tab of the function. Here, you can edit or delete the setting. + +### Testing + +You can test your source insert function with sample events or a manual configuration in the code editor. This allows you to test the functions behavior with real incoming data. To do this: + +1. Go to the **Test** tab in the code editor and click **Use Sample Event** or **customize the event yourself** to set up your test data. +2. Click **Run** to execute the test. + +Test results appear under **Output**, showing whether the function ran successfully or failed. + + ### Connecting a source insert function to a source For data to flow downstream after transformation, connect your source insert function to a source. To do this: 1. Select the insert function you want to connect to the source. You can edit, delete, and connect the insert function on the side pane. -2. Click *Connect a source**. -3. Select the source you want to connect to and click **Connect to Source**. +2. Click **Connect a source**. +3. Select the source you want to connect to and click **Connect to Source**. ### Errors and error handling @@ -68,7 +88,7 @@ The errors listed are all permanent errors, except `RetryError`. When a `RetryEr ##### Why does the Delivery Overview tab not display any errors that occur within the source insert function? -If errors arise or events are dropped, they appear as if the events never flowed from the source. +Errors in the Delivery Overview tab are not yet visible and is a work in progress. ##### Can I test the function with different event types? From 010d8c93f51ad3a7c00397928d2e3261c3499fad Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 20 Jun 2025 14:29:57 +0100 Subject: [PATCH 116/438] Added Source Insert Functions page --- src/_data/sidenav/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 8fcf0bfa3e..dd6d1dae1e 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -223,6 +223,8 @@ sections: title: Functions Overview - path: /connections/functions/source-functions title: Source Functions + - path: /connections/functions/source-insert-functions + title: Source Insert Functions - path: /connections/functions/destination-functions title: Destination Functions - path: /connections/functions/insert-functions From dfafcd3af0be673488cb8b4389b8f2f034a0fa50 Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 13:54:29 -0500 Subject: [PATCH 117/438] init --- src/engage/journeys/limits.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/engage/journeys/limits.md diff --git a/src/engage/journeys/limits.md b/src/engage/journeys/limits.md new file mode 100644 index 0000000000..8efdc4b4e3 --- /dev/null +++ b/src/engage/journeys/limits.md @@ -0,0 +1,4 @@ +--- +title: Journeys Product Limits +plan: engage-foundations +--- \ No newline at end of file From baeee123e39a37030d4d2867c39b72ac6cb28c74 Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 14:00:47 -0500 Subject: [PATCH 118/438] add more sections --- src/engage/journeys/limits.md | 72 ++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/src/engage/journeys/limits.md b/src/engage/journeys/limits.md index 8efdc4b4e3..f2c6914ddc 100644 --- a/src/engage/journeys/limits.md +++ b/src/engage/journeys/limits.md @@ -1,4 +1,74 @@ --- title: Journeys Product Limits plan: engage-foundations ---- \ No newline at end of file +--- + +This page outlines the current limitations for Event-Triggered (V2) Journeys. + +## General limits + +| Name | Limit | Description | +| ------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| Steps | 25 | Maximum number of steps per journey. | +| Journey name | 73 characters | Maximum length for Journey names. Names must be unique. | +| Step name | 73 characters | Maximum length for step names. | +| Branch name | 73 characters | Maximum length for branch names within a split step. Branch names must be unique across the journey. | +| Additional branches | 5 | Maximum number of branches supported in a split or Hold Until step. | +| Delay duration | Minimum: 5 minutes
    Maximum: 6 months | Allowed time range for Delay and Hold Until steps. | +| Unique identifier | 500 characters | For “Re-enter every time event occurs” rules, you must define a unique identifier. The value is limited to 500 characters. | + + +## Throughput + +| Name | Limit | Description | +| ------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| Requests per second (RPS) | 25 events/sec/profile | Maximum events per second per Segment ID. Timer events are excluded. Excess events get dropped. | +| Instances per profile | 25 concurrent instances | Maximum concurrent Journey instances per profile. | +| Loop back branch | 100 instances | Maximum instances that can pass through a Wait Until loop-back. | + +## Journey context + +| Name | Limit | Description | +| ------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| Journey context object | No limit (subject to payload size) | No object limit in Journey context, but must remain within the 32 KB payload limit. | +| Event name conflicts | Must be unique unless aliased | Duplicate event names in the Journey context will overwrite each other unless aliased using `[event_name] + [branch_name]`. | + +## Send to destination + +| Name | Limit | Description | +|------|-------|-------------| +| Supported destinations | [Action Destinations only](https://segment.com/docs/connections/destinations/actions/) | Only Action Destinations are supported in Journeys 2.0. | +| Activations | 5 per Destination step | Maximum number of Activations supported per Destination step. | +| Destination key | 31 characters | Auto-generated and not editable. Based on `{Journey_Name} + {Destination_Step_Name} + {Unique_Step_State_Key}`. | +| Destination event name | 73 characters | Can be customized. Defaults to the destination step name. Event names do not need to be unique. Use the Sync Key for disambiguation. | +| Payload size | 32 KB (~700 lines) | Maximum allowed size of the payload sent to destinations. | +| Parameter mappings | 100 mappings | Maximum number of field mappings per Destination step. For more info, see [FAQs & Best Practices for Journeys 2.0](https://twilio-productivity.atlassian.net/wiki/spaces/MSRND/pages/772571588/FAQs+Best+Practices+for+Journeys+2.0#How-do-Journeys-affect-Destination-mapping-limits%3F). | + +--- + +## Analytics + +| Name | Limit | Description | +|------|-------|-------------| +| Journey instance data (in progress) | 365 days | Maximum duration an instance can remain active before expiring. | +| Journey instance data (completed) | 90 days | Data retention period after a profile completes or exits the Journey. | +| Analytics data | 3 years | Retention period for metrics data. | +| Observability data | 3 years | Retention period for step activity and timeline data. | +| Date range | 180 days | Maximum date range allowed for analytics queries. | +| Timeout limit | 10 seconds | Maximum time an analytics query will run. | +| Metric latency | 10 seconds | Expected delay before metrics update. Can increase with large volumes. 95% of events are targeted to appear in the UI within 30 minutes. | +| Update metrics | Manual browser refresh required | Analytics do not update dynamically. Refresh required to see updates. | + +--- + +## Privacy and compliance + +| Topic | Details | +|-------|---------| +| PII access | [Learn more](https://segment.com/docs/segment-app/iam/roles/#pii-access) | +| HIPAA eligibility | [HIPAA-Eligible Services](https://www.twilio.com/content/dam/twilio-com/global/en/other/hipaa/pdf/HIPAA-Eligible-Services.pdf) | +| GDPR & BCR | [Complying with the GDPR](https://segment.com/docs/privacy/complying-with-the-gdpr/) | + +Segment complies with GDPR through Binding Corporate Rules (BCR). When a customer churns, BCR-initiated deletion removes the customer’s workspace and data. Customers can request access to, correction of, or deletion of personal data. + +--- From 34ac294d4938e5a8b8b661d79209a30b441e7ad4 Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 14:10:03 -0500 Subject: [PATCH 119/438] cleanup --- src/engage/journeys/limits.md | 51 ++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/src/engage/journeys/limits.md b/src/engage/journeys/limits.md index f2c6914ddc..0779fdb368 100644 --- a/src/engage/journeys/limits.md +++ b/src/engage/journeys/limits.md @@ -35,39 +35,42 @@ This page outlines the current limitations for Event-Triggered (V2) Journeys. ## Send to destination -| Name | Limit | Description | -|------|-------|-------------| -| Supported destinations | [Action Destinations only](https://segment.com/docs/connections/destinations/actions/) | Only Action Destinations are supported in Journeys 2.0. | -| Activations | 5 per Destination step | Maximum number of Activations supported per Destination step. | -| Destination key | 31 characters | Auto-generated and not editable. Based on `{Journey_Name} + {Destination_Step_Name} + {Unique_Step_State_Key}`. | -| Destination event name | 73 characters | Can be customized. Defaults to the destination step name. Event names do not need to be unique. Use the Sync Key for disambiguation. | -| Payload size | 32 KB (~700 lines) | Maximum allowed size of the payload sent to destinations. | -| Parameter mappings | 100 mappings | Maximum number of field mappings per Destination step. For more info, see [FAQs & Best Practices for Journeys 2.0](https://twilio-productivity.atlassian.net/wiki/spaces/MSRND/pages/772571588/FAQs+Best+Practices+for+Journeys+2.0#How-do-Journeys-affect-Destination-mapping-limits%3F). | +| Name | Limit | Description | +| ---------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Supported destinations | [Action destinations only](/docs/connections/destinations/actions/) | Segment only supports Action Destinations, Action List destinations, and Destination Functions in Journeys 2.0. | +| Activations | 5 per destination step | Maximum number of Activations supported per destination step. | +| Destination key | 31 characters | Auto-generated and not editable. Based on `{Journey_Name} + {Destination_Step_Name} + {Unique_Step_State_Key}`. | +| Destination event name | 73 characters | Can be customized. Defaults to the destination step name. Event names do not need to be unique. Use the Sync Key (Computation Key) for disambiguation. | +| Payload size | 32 KB (~700 lines) | Maximum allowed size of the payload sent to destinations. | +| Parameter mappings | 100 mappings | Maximum number of field mappings per destination step. | ---- + +## Data retention + +| Name | Limit | Description | +| ----------------------------------------------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| Journey instance data (while in progress) | 365 days | Maximum duration an instance can remain active before expiring. | +| Journey instance data (after completed or exit) | 90 days | Data retention period after a profile completes or exits the journey. | +| Analytics data | 3 years | Retention period for metrics data. | +| Observability data | 3 years | Retention period for step activity and timeline data. | ## Analytics -| Name | Limit | Description | -|------|-------|-------------| -| Journey instance data (in progress) | 365 days | Maximum duration an instance can remain active before expiring. | -| Journey instance data (completed) | 90 days | Data retention period after a profile completes or exits the Journey. | -| Analytics data | 3 years | Retention period for metrics data. | -| Observability data | 3 years | Retention period for step activity and timeline data. | -| Date range | 180 days | Maximum date range allowed for analytics queries. | -| Timeout limit | 10 seconds | Maximum time an analytics query will run. | -| Metric latency | 10 seconds | Expected delay before metrics update. Can increase with large volumes. 95% of events are targeted to appear in the UI within 30 minutes. | -| Update metrics | Manual browser refresh required | Analytics do not update dynamically. Refresh required to see updates. | +| Name | Limit | Description | +| -------------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| Date range | 180 days | Maximum date range allowed for analytics queries. | +| Timeout limit | 10 seconds | Maximum time an analytics query will run. | +| Metric latency | 10 seconds | Expected delay before metrics update. Can increase with large volumes; 95% of events are targeted to appear in your workspace within 30 minutes. | +| Update metrics | Manual browser refresh required | Analytics don't update dynamically. You'll need to refresh to see updates. | ---- ## Privacy and compliance -| Topic | Details | -|-------|---------| -| PII access | [Learn more](https://segment.com/docs/segment-app/iam/roles/#pii-access) | +| Topic | Details | +| ----------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| PII access | See [PII access](docs/segment-app/iam/roles/#pii-access) for more information. | | HIPAA eligibility | [HIPAA-Eligible Services](https://www.twilio.com/content/dam/twilio-com/global/en/other/hipaa/pdf/HIPAA-Eligible-Services.pdf) | -| GDPR & BCR | [Complying with the GDPR](https://segment.com/docs/privacy/complying-with-the-gdpr/) | +| GDPR & BCR | [Complying with the GDPR](https://segment.com/docs/privacy/complying-with-the-gdpr/) | Segment complies with GDPR through Binding Corporate Rules (BCR). When a customer churns, BCR-initiated deletion removes the customer’s workspace and data. Customers can request access to, correction of, or deletion of personal data. From a0e2712905c1f757c802538a36c040474af036a3 Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 14:12:36 -0500 Subject: [PATCH 120/438] more cleanup [netlify-build] --- src/engage/journeys/limits.md | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/engage/journeys/limits.md b/src/engage/journeys/limits.md index 0779fdb368..7a79a5d476 100644 --- a/src/engage/journeys/limits.md +++ b/src/engage/journeys/limits.md @@ -1,9 +1,9 @@ --- -title: Journeys Product Limits +title: Journeys (V2) Product Limits plan: engage-foundations --- -This page outlines the current limitations for Event-Triggered (V2) Journeys. +This page outlines product limitations for Event-Triggered (V2) Journeys. ## General limits @@ -66,12 +66,10 @@ This page outlines the current limitations for Event-Triggered (V2) Journeys. ## Privacy and compliance -| Topic | Details | -| ----------------- | ------------------------------------------------------------------------------------------------------------------------------ | -| PII access | See [PII access](docs/segment-app/iam/roles/#pii-access) for more information. | -| HIPAA eligibility | [HIPAA-Eligible Services](https://www.twilio.com/content/dam/twilio-com/global/en/other/hipaa/pdf/HIPAA-Eligible-Services.pdf) | -| GDPR & BCR | [Complying with the GDPR](https://segment.com/docs/privacy/complying-with-the-gdpr/) | +| Topic | Details | +| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| PII access | See [PII access](docs/segment-app/iam/roles/#pii-access) for more information. | +| HIPAA eligibility | [HIPAA-Eligible Services](https://www.twilio.com/content/dam/twilio-com/global/en/other/hipaa/pdf/HIPAA-Eligible-Services.pdf){:target="_blank"} | +| GDPR & BCR | See [Complying with the GDPR](/docs/privacy/complying-with-the-gdpr/) for more information. | -Segment complies with GDPR through Binding Corporate Rules (BCR). When a customer churns, BCR-initiated deletion removes the customer’s workspace and data. Customers can request access to, correction of, or deletion of personal data. - ---- +Segment complies with GDPR through Binding Corporate Rules (BCR). When a customer churns, BCR-initiated deletion removes the customer’s workspace and data. To request access to, correction of, or deletion of personal data, reach out to [Segment support](mailto:friends@segment.com). \ No newline at end of file From d89fd439c4015df5e2a597f5357425e1ab0c263f Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 14:21:55 -0500 Subject: [PATCH 121/438] delete beta callouts --- src/engage/journeys/event-triggered-journeys-steps.md | 3 --- src/engage/journeys/event-triggered-journeys.md | 3 --- src/engage/journeys/exit-rules.md | 3 --- src/engage/journeys/journey-context.md | 3 --- 4 files changed, 12 deletions(-) diff --git a/src/engage/journeys/event-triggered-journeys-steps.md b/src/engage/journeys/event-triggered-journeys-steps.md index d517d36128..1aa5799f03 100644 --- a/src/engage/journeys/event-triggered-journeys-steps.md +++ b/src/engage/journeys/event-triggered-journeys-steps.md @@ -7,9 +7,6 @@ plan: engage-foundations Steps are the building blocks of a journey. This page explains the **Hold Until**, **Send to Destination**, and **Data split** steps, which enable precise control over journey progression and data delivery. -> info "Public Beta" -> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. - ## Hold Until: smart pauses in journeys The **Hold Until** step adds a deliberate pause in a journey, waiting for specific user actions or a predefined time limit before progressing. This lets you create highly personalized experiences by responding to user behavior (or the lack thereof) at the right moment. diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/event-triggered-journeys.md index 94d1e5f579..5bd05e6576 100644 --- a/src/engage/journeys/event-triggered-journeys.md +++ b/src/engage/journeys/event-triggered-journeys.md @@ -9,9 +9,6 @@ Unlike traditional audience-based journeys that rely on pre-defined user segment On this page, you'll learn how to create an event-triggered journey, configure entry conditions, and work with published event-triggered journeys. -> info "Public Beta" -> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. - ## Overview Event-triggered journeys help you create a responsive approach for time-sensitive use cases, like cart abandonment campaigns and transactional messages. diff --git a/src/engage/journeys/exit-rules.md b/src/engage/journeys/exit-rules.md index 5b2d21158c..0a12787ddf 100644 --- a/src/engage/journeys/exit-rules.md +++ b/src/engage/journeys/exit-rules.md @@ -7,9 +7,6 @@ Journey exit rules automatically remove users from a journey when they meet spec This page explains how exit rules work, how to configure them, when to use them, and how to track exits in your journey analytics. You'll also find example use cases, best practices, and key behavior notes to help you get started. -> info "Public Beta" -> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. - ## How exit rules work Segment continuously evaluates exit rules as users move through a journey. If a user performs an event that matches one of the configured rules, they exit immediately from their current step. diff --git a/src/engage/journeys/journey-context.md b/src/engage/journeys/journey-context.md index e0443833db..2cb17457a0 100644 --- a/src/engage/journeys/journey-context.md +++ b/src/engage/journeys/journey-context.md @@ -7,9 +7,6 @@ plan: engage-foundations This page explains Journey context, which can help you dynamically adapt each journey to individual user interactions, creating highly relevant, real-time workflows. -> info "Public Beta" -> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. - ## Overview Unlike traditional audience-based journeys, which rely solely on user progress through predefined steps, event-triggered journeys capture and store the details of user-triggered events. This shift allows you to access the data that caused users to reach a specific step and use it to make more precise decisions throughout the journey. From 7a508901686f9f8e2af2980cdfae28cdcfcdf05e Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 14:31:18 -0500 Subject: [PATCH 122/438] more cleanup sigh [netlify-build] --- src/engage/journeys/limits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engage/journeys/limits.md b/src/engage/journeys/limits.md index 7a79a5d476..ac298de5c5 100644 --- a/src/engage/journeys/limits.md +++ b/src/engage/journeys/limits.md @@ -39,7 +39,7 @@ This page outlines product limitations for Event-Triggered (V2) Journeys. | ---------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | Supported destinations | [Action destinations only](/docs/connections/destinations/actions/) | Segment only supports Action Destinations, Action List destinations, and Destination Functions in Journeys 2.0. | | Activations | 5 per destination step | Maximum number of Activations supported per destination step. | -| Destination key | 31 characters | Auto-generated and not editable. Based on `{Journey_Name} + {Destination_Step_Name} + {Unique_Step_State_Key}`. | +| Destination key | 31 characters | Segment auto-generates destination keys; they're not editable. | | Destination event name | 73 characters | Can be customized. Defaults to the destination step name. Event names do not need to be unique. Use the Sync Key (Computation Key) for disambiguation. | | Payload size | 32 KB (~700 lines) | Maximum allowed size of the payload sent to destinations. | | Parameter mappings | 100 mappings | Maximum number of field mappings per destination step. | From c2b532dd6988cf552a2b895928699367f0dd8c31 Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 14:32:27 -0500 Subject: [PATCH 123/438] move to v2 directory [netlify-build] --- src/engage/journeys/{ => v2}/limits.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/engage/journeys/{ => v2}/limits.md (100%) diff --git a/src/engage/journeys/limits.md b/src/engage/journeys/v2/limits.md similarity index 100% rename from src/engage/journeys/limits.md rename to src/engage/journeys/v2/limits.md From 40061df7bae28e610c881f51b33fb1a08b1f081b Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 14:42:09 -0500 Subject: [PATCH 124/438] catalog update --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 636 +++++-------------- src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 2 +- 5 files changed, 172 insertions(+), 472 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 13ef5c53d1..c35eb9430f 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 2025-06-12 +# destination categories last updated 2025-06-20 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 a218cd389d..49a555327e 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 2025-06-12 +# destination data last updated 2025-06-20 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -24664,7 +24664,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: MYWx7cbqiDEtU3oMu4uZp + - id: mrKbuMgfWN8UEpJ2qcde2H sortOrder: 0 fieldKey: external_id label: External User ID @@ -24683,7 +24683,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dmoSCo2UqPKRx6eqY7J4mn + - id: gfvJ2HNHnRiAJhXYp6Jzdi sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24700,7 +24700,7 @@ items: dynamic: false allowNull: false hidden: false - - id: rzBuJ21aYq1uQdKZCoizBH + - id: m6feT5HWsrNtuELUTP3GRM sortOrder: 2 fieldKey: device_id label: Device ID @@ -24716,7 +24716,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vnSpRMiHSMieY4V19FQ3dP + - id: 9kfD74Zpu2MdUBWmdp3K7q sortOrder: 5 fieldKey: enable_batching label: Enable Batching @@ -24730,7 +24730,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 37hRwjbqcqtLa8ZiUAvPhE + - id: tYsBaXcfg6WnEBmKpP2ksC sortOrder: 6 fieldKey: personas_audience_key label: Segment Engage Audience Key @@ -42953,321 +42953,6 @@ items: actions: [] presets: [] partnerOwned: false -- id: 6683e1d5e37fd84efcf3bbef - display_name: First Party Dv360 - name: First Party Dv360 - slug: first-party-dv360 - hidden: false - endpoints: - - US - regions: - - us-west-2 - - eu-west-1 - url: connections/destinations/catalog/first-party-dv360 - previous_names: - - First Party Dv360 - website: http://www.segment.com - status: PUBLIC_BETA - categories: [] - logo: - url: https://cdn-devcenter.segment.com/da053d87-a568-4bae-827f-857f7f4b2aba.svg - mark: - url: https://cdn-devcenter.segment.com/31811060-3f10-46b0-94de-bf299beb94a4.svg - methods: - track: true - identify: false - group: false - alias: false - screen: false - page: false - platforms: - browser: true - mobile: false - server: true - warehouse: false - cloudAppObject: false - linkedAudiences: 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: [] - actions: - - id: pMRu4ozQwh3SzjYycCzDfn - name: Add to List - slug: addToList - description: Adds to list - platform: CLOUD - hidden: true - defaultTrigger: null - fields: [] - - id: kjEdc2dNCshXomx9VDnp9 - name: Remove Customer Match Members - Mobile Device Id List - slug: removeFromAudMobileDeviceId - description: >- - Remove customer match members in Google Display & Video 360 Mobile Device - Id List Audience. - platform: CLOUD - hidden: false - defaultTrigger: event = "Audience Entered" - fields: - - id: uT3Uxyik2BSKqGb1QuTPoj - sortOrder: 0 - fieldKey: mobileDeviceIds - label: Mobile Device IDs - type: STRING - description: >- - A list of mobile device IDs defining Customer Match audience members. - The size of mobileDeviceIds mustn't be greater than 500,000. - placeholder: '' - defaultValue: - '@path': $.context.traits.mobileDeviceIds - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: texVBBbJ5ZvG5eBR49wLoL - name: Edit Customer Match Members - Mobile Device Id List - slug: addToAudMobileDeviceId - description: >- - Add or update customer match members in Google Display & Video 360 Mobile - Device Id List Audience. - platform: CLOUD - hidden: false - defaultTrigger: event = "Audience Entered" - fields: - - id: dzEWPLsY9RCMeZXPs84FcJ - sortOrder: 0 - fieldKey: mobileDeviceIds - label: Mobile Device IDs - type: STRING - description: >- - A list of mobile device IDs defining Customer Match audience members. - The size of mobileDeviceIds mustn't be greater than 500,000. - placeholder: '' - defaultValue: - '@path': $.context.traits.mobileDeviceIds - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: u4XdrL4XCgThQLiwKZKC7e - name: Edit Customer Match Members - Contact Info List - slug: addToAudContactInfo - description: >- - Add or update customer match members in Google Display & Video 360 Contact - Info List Audience. - platform: CLOUD - hidden: false - defaultTrigger: event = "Audience Entered" - fields: - - id: 9v6BVoLkJsYA7WBp7CFv1 - sortOrder: 0 - fieldKey: emails - label: Emails - type: STRING - description: >- - A list of the user's emails. If not already hashed, the system will hash - them before use. If not hashed, Segment will hash this value. - placeholder: '' - defaultValue: - '@path': $.context.traits.emails - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: nRkBkcGCPh3CkMhXRfpUo9 - sortOrder: 1 - fieldKey: phoneNumbers - label: Phone Numbers - type: STRING - description: >- - A list of the user's phone numbers. If not already hashed, the system - will hash them before use. If not hashed, Segment will hash this value. - placeholder: '' - defaultValue: - '@path': $.context.traits.phoneNumbers - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: iKhX1uinTtH1h3U4Dm4gaq - sortOrder: 2 - fieldKey: zipCodes - label: ZIP Codes - type: STRING - description: A list of the user's zip codes. - placeholder: '' - defaultValue: - '@path': $.context.traits.zipCodes - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: mUVtit9CqM9CjbQBnEUuze - sortOrder: 3 - fieldKey: firstName - label: First Name - type: STRING - description: >- - The user's first name. If not already hashed, the system will hash it - before use. If not hashed, Segment will hash this value. - placeholder: '' - defaultValue: - '@path': $.context.traits.firstName - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: m6UJjUoLKDQK9CgLw8boAR - sortOrder: 4 - fieldKey: lastName - label: Last Name - type: STRING - description: >- - The user's last name. If not already hashed, the system will hash it - before use. If not hashed, Segment will hash this value. - placeholder: '' - defaultValue: - '@path': $.context.traits.lastName - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: hDb93iDZswBJELhLyvyd4W - sortOrder: 5 - fieldKey: countryCode - label: Country Code - type: STRING - description: The country code of the user. - placeholder: '' - defaultValue: - '@path': $.context.traits..countryCode - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: vykfWPGTjXpdHZiaaSUYRC - name: Remove Customer Match Members - Contact Info List - slug: removeFromAudContactInfo - description: >- - Remove customer match members in Google Display & Video 360 Contact Info - List Audience. - platform: CLOUD - hidden: false - defaultTrigger: event = "Audience Exited" - fields: - - id: 8a2YMuRfDVjc7pM2PtNk6B - sortOrder: 0 - fieldKey: emails - label: Emails - type: STRING - description: >- - A list of the user's emails. If not already hashed, the system will hash - them before use. If not hashed, Segment will hash this value. - placeholder: '' - defaultValue: - '@path': $.context.traits.emails - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: bwznBSaBAELeAituYtxp18 - sortOrder: 1 - fieldKey: phoneNumbers - label: Phone Numbers - type: STRING - description: >- - A list of the user's phone numbers. If not already hashed, the system - will hash them before use. If not hashed, Segment will hash this value. - placeholder: '' - defaultValue: - '@path': $.context.traits.phoneNumbers - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: xk7JHGRNKm8MWqg5L3TFF1 - sortOrder: 2 - fieldKey: zipCodes - label: ZIP Codes - type: STRING - description: A list of the user's zip codes. - placeholder: '' - defaultValue: - '@path': $.context.traits.zipCodes - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: htaHz7759wvmzUeg4L7KjZ - sortOrder: 3 - fieldKey: firstName - label: First Name - type: STRING - description: >- - The user's first name. If not already hashed, the system will hash it - before use. If not hashed, Segment will hash this value. - placeholder: '' - defaultValue: - '@path': $.context.traits.firstName - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: 9y9rrfjVMxHdPAkQbmGCd9 - sortOrder: 4 - fieldKey: lastName - label: Last Name - type: STRING - description: >- - The user's last name. If not already hashed, the system will hash it - before use. If not hashed, Segment will hash this value. - placeholder: '' - defaultValue: - '@path': $.context.traits.lastName - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: s9oBRJpFD1EC1LpoZSC7NS - sortOrder: 5 - fieldKey: countryCode - label: Country Code - type: STRING - description: The country code of the user. - placeholder: '' - defaultValue: - '@path': $.context.traits..countryCode - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - presets: [] - partnerOwned: false - id: 66048cbafa5a03fc49b153d3 display_name: FL0 name: FL0 @@ -49696,7 +49381,7 @@ items: hidden: true defaultTrigger: null fields: - - id: boXEDaqxqjojtojdJJCzj2 + - id: 3bZAgPB471jgRy2CjKKEQj sortOrder: 0 fieldKey: conversion_label label: Conversion Label @@ -49713,7 +49398,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qdTy6rP4SwaUC1mc5eVZgZ + - id: qHu13sQLr2yjQ5wTKs87Gp sortOrder: 1 fieldKey: email label: Email @@ -49734,7 +49419,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9Dtxqt121c55ms1t6AB6Ux + - id: tVz2QxtywA1k4dhVDABsv3 sortOrder: 2 fieldKey: transaction_id label: Order ID @@ -49753,7 +49438,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fzro6dcZuWNzViG1xes3La + - id: stCwgnB523rRpfSZ7uaScB sortOrder: 3 fieldKey: user_agent label: User Agent @@ -49773,7 +49458,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fWSUgTRqEZNmQVTmKUe28P + - id: gHjpBPZGpqc6Gdr5wGgJrs sortOrder: 4 fieldKey: conversion_time label: Conversion Time @@ -49788,7 +49473,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fHoxutQfUmKbkaLmwvPCWD + - id: aWM1cqV5782QVpYZm757mb sortOrder: 5 fieldKey: value label: Value @@ -49803,7 +49488,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dPQfpSnSEkEQU9z8Z865fe + - id: sHrkE9W82Z2C2NMzA3bTbe sortOrder: 6 fieldKey: currency_code label: Currency Code @@ -49820,7 +49505,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7U71QsER4R6ncftR6sGhEH + - id: tSKsWmndr5Nn7PnoJYKDTk sortOrder: 7 fieldKey: is_app_incrementality label: App Conversion for Incrementality Study @@ -49834,7 +49519,7 @@ items: dynamic: false allowNull: false hidden: false - - id: rD3weAtcKwAP4pn1m4BBSg + - id: gXWozm7sxo36ELAp5hLgLj sortOrder: 8 fieldKey: pcc_game label: PCC Game Flag @@ -49850,7 +49535,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9D1WvDyzAuMnj39dWBfK1L + - id: jz2BkejtpS5Wm7mCNwZpCb sortOrder: 9 fieldKey: phone_number label: Phone Number @@ -49873,7 +49558,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fRFiGCSxKEPFMasXSgkRkx + - id: 6cpjBydwrxwhbq4NsSZqHr sortOrder: 10 fieldKey: first_name label: First Name @@ -49894,7 +49579,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vkfwC94GMG2y5xBwhDCurx + - id: 64FnctTsfkPwZJoNefGaw1 sortOrder: 11 fieldKey: last_name label: Last Name @@ -49915,7 +49600,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 94SrWo2Vih1TLGLSG5PCDK + - id: uqD9XgEJTjueH6HnKyYRR4 sortOrder: 12 fieldKey: street_address label: Street Address @@ -49938,7 +49623,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4WiTiXkX4GzMJ1PDEo6HhX + - id: s3UzJjX83aHP8fiX67SY7V sortOrder: 13 fieldKey: city label: City @@ -49959,7 +49644,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jpMpuzhrJv3HKxRoDTpnJD + - id: 9HVZkUGBL4pV7X4QSr5vfQ sortOrder: 14 fieldKey: region label: Region @@ -49980,7 +49665,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sjGT6ZWWwuuv45LKJHXRso + - id: 7nGFGJ6nUFEjxdXNepB8X1 sortOrder: 15 fieldKey: post_code label: Postal Code @@ -50001,7 +49686,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pVM3nbQPz8gjKmzXS9Paci + - id: oWpZTGZewx6NLRFo79qCsu sortOrder: 16 fieldKey: country label: Country @@ -50030,7 +49715,7 @@ items: hidden: false defaultTrigger: null fields: - - id: f2ryoS5YYSEEBDc7GTBeo8 + - id: w5vt6DYqCB8GnrD3H8P8VS sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -50043,7 +49728,7 @@ items: dynamic: true allowNull: false hidden: false - - id: 88izZNZcmRx5r4sgqXzB5 + - id: gZ2xN9YQ1vz9cFjYGDewgq sortOrder: 1 fieldKey: adjustment_type label: Adjustment Type @@ -50069,7 +49754,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wnkLQ8X7vMp6YXyMENaPTS + - id: bRFV8JFnGPtC4Q6SYjQknL sortOrder: 2 fieldKey: adjustment_timestamp label: Adjustment Timestamp @@ -50088,7 +49773,7 @@ items: dynamic: false allowNull: false hidden: false - - id: kVcSMJurP8bRqqozyJe7e8 + - id: kc4BYRoPz4zzv3FkSXSpYH sortOrder: 3 fieldKey: order_id label: Order ID @@ -50112,7 +49797,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7KtcnRJSGstnrPDYT4zGAu + - id: uvPc3dup4QfAzwwooyxQ8T sortOrder: 4 fieldKey: gclid label: GCLID @@ -50127,7 +49812,7 @@ items: dynamic: false allowNull: false hidden: false - - id: js2JXmxmTkMMcG6nGjQbPz + - id: viXMPh2EjVAhhiNMjS7E6q sortOrder: 5 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -50144,7 +49829,7 @@ items: dynamic: false allowNull: false hidden: false - - id: t7F8G3rNRaTv1uXYaZtqKe + - id: iJJ2sKkC1YEARLz1uHdary sortOrder: 6 fieldKey: restatement_value label: Restatement Value @@ -50161,7 +49846,7 @@ items: dynamic: false allowNull: false hidden: false - - id: oHQ3jCvW93WrQJ3Ah6CmdN + - id: 46DroEDMTsunb4fDWzbAK9 sortOrder: 7 fieldKey: restatement_currency_code label: Restatement Currency Code @@ -50178,7 +49863,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 82Np3b9TVy5ZSoNgoYziJn + - id: csJWct1Umny4cLJgnqEe6Q sortOrder: 8 fieldKey: email_address label: Email Address @@ -50201,7 +49886,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vbLeXguVFwPHnp6MPUssFN + - id: 4TvmHwYUTV1cDMbyNbfZqT sortOrder: 9 fieldKey: phone_country_code label: Phone Number Country Code @@ -50216,7 +49901,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2hezCqn6DT6d4RZ4p1LRRm + - id: qXXnyw4ieGQPmZ9fbfbyX sortOrder: 10 fieldKey: phone_number label: Phone Number @@ -50240,7 +49925,7 @@ items: dynamic: false allowNull: false hidden: false - - id: oYnQgBTvXxaxbtnYWiBPT9 + - id: b3b1cNi1bXuS33jGeDnR3Z sortOrder: 11 fieldKey: first_name label: First Name @@ -50261,7 +49946,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pfU89aUJYAWghjoregn4aZ + - id: 59cW4EKAnrCKcVqbkHzqvw sortOrder: 12 fieldKey: last_name label: Last Name @@ -50284,7 +49969,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 58f8A7E3qzFJbkwZf3XXzy + - id: 8hCsgdBbiJ6Fr1ufheiNkn sortOrder: 13 fieldKey: city label: City @@ -50305,7 +49990,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8sFaVbjBKvfNNnmEgpDVKw + - id: a8og8H8ZmmDjYrn542Cxko sortOrder: 14 fieldKey: state label: State @@ -50326,7 +50011,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mNKmRuGv21LjRBfsQrw6Do + - id: qkV6Y32azth8B8rL1mp16X sortOrder: 15 fieldKey: country label: Country @@ -50349,7 +50034,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vrukbQHt7n2cxogRWBiG2g + - id: s6MZRnWonvfXEFUoYMLb61 sortOrder: 16 fieldKey: postal_code label: Postal Code @@ -50370,7 +50055,7 @@ items: dynamic: false allowNull: false hidden: false - - id: xyfNM31U29YxUk7pwge7cg + - id: iMXfbyDFffEoHfJbK3GRbK sortOrder: 17 fieldKey: street_address label: Street Address @@ -50391,7 +50076,7 @@ items: dynamic: false allowNull: false hidden: false - - id: oTF74DdG17avZtv4wJsHoA + - id: jxxHJMbSr5Uh2sKsgq5v6s sortOrder: 18 fieldKey: user_agent label: User Agent @@ -50419,7 +50104,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 54R26Bjb9taaLBXeWh47ym + - id: 8sBZcoMgnPakXn1B6ypGBm sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -50432,7 +50117,7 @@ items: dynamic: true allowNull: false hidden: false - - id: fPxmoVFkV2mF3UbwJSxqoA + - id: typy4rfLPuitTcN226Ck8g sortOrder: 1 fieldKey: gclid label: GCLID @@ -50445,7 +50130,7 @@ items: dynamic: false allowNull: false hidden: false - - id: d6XadNVK9dqo6cFPz1u6mS + - id: uHz9QwcZfrMiXhVQKi9JWk sortOrder: 2 fieldKey: gbraid label: GBRAID @@ -50460,7 +50145,7 @@ items: dynamic: false allowNull: false hidden: false - - id: bU7xNjMUVRDgzzhwtQX6EC + - id: qGRp9DEvZPLiLXFuFKbxcb sortOrder: 3 fieldKey: wbraid label: WBRAID @@ -50475,7 +50160,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pZuhkPYjFApv9ysMEnrgYz + - id: bqoBby7dkZ5trthTc82LhP sortOrder: 4 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -50493,7 +50178,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qWKAzq9yTrjMaMfuy2q5e1 + - id: i4cxmcUMK7FBjV5fN7FreD sortOrder: 5 fieldKey: email_address label: Email Address @@ -50516,7 +50201,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 3bfKAgiWBc9fck6m7qfd9b + - id: tC7pWiLueoCpjX6pn3KY5c sortOrder: 6 fieldKey: phone_country_code label: Phone Number Country Code @@ -50531,7 +50216,7 @@ items: choices: null dynamic: false allowNull: false - - id: fy3pg1ThpnY7TxxzTnuTxb + - id: gMq8C9jLVK9h8rt7hy8uHg sortOrder: 7 fieldKey: phone_number label: Phone Number @@ -50555,7 +50240,7 @@ items: dynamic: false allowNull: false hidden: false - - id: o2MwNWGj9TJxEcDjvHG6ma + - id: joW6XtDCvE7UDXuRwAjhn sortOrder: 8 fieldKey: order_id label: Order ID @@ -50578,7 +50263,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vfEtSm2SQc81ogoo2GbRKF + - id: uMwbjijhPgafofg66MGpba sortOrder: 9 fieldKey: value label: Value @@ -50593,7 +50278,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pMsPhopbWKwwoZaK9qWLf + - id: tCKRsqUr9UL82ZFGuqkaYf sortOrder: 10 fieldKey: currency label: Currency @@ -50610,7 +50295,7 @@ items: dynamic: false allowNull: false hidden: false - - id: nshxm8Ra3ZZEvyrmf1Pfcs + - id: xfHL7Kj2X9JzLE78ytAmDw sortOrder: 11 fieldKey: conversion_environment label: Conversion Environment @@ -50633,7 +50318,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sBKYooftmjq3ZE8gPkWsxF + - id: sxhzN3Y82Z7Fa6aJj7G8wD sortOrder: 12 fieldKey: merchant_id label: Merchant Center ID @@ -50646,7 +50331,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hjmFTpNNHJntdwEX2DdEAV + - id: uu5V68zRRXPDHnkPaVF9ap sortOrder: 13 fieldKey: merchant_country_code label: Merchant Center Feed Country Code @@ -50661,7 +50346,7 @@ items: dynamic: false allowNull: false hidden: false - - id: w4xhtNj7tajdeeaDCi9dw6 + - id: fxDNXLgrx9UiWmKioyW2YV sortOrder: 14 fieldKey: merchant_language_code label: Merchant Center Feed Language Code @@ -50676,7 +50361,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6WCsmuusJFEMCKwCUz5vf5 + - id: ibZSjipUTYXa43qKiD5E2X sortOrder: 15 fieldKey: local_cost label: Local Transaction Cost @@ -50691,7 +50376,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wtFHgRkhM6HTWMmbEZbyG8 + - id: BWibksrDxaLPXefnLdUrw sortOrder: 16 fieldKey: items label: Items @@ -50713,7 +50398,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6Ry2aLewWsLL1rNfWjmHoC + - id: kU8zL8S5vqnvzusYf3k9KU sortOrder: 17 fieldKey: custom_variables label: Custom Variables @@ -50732,7 +50417,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ZkkgrLNxuxUdoB7PmfXKi + - id: a1p6x8yhhwA14569v89CHp sortOrder: 18 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -50753,7 +50438,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: s8Tn3GfT6xeFWRQXZrAnyz + - id: srqiCoM4xaS4Kt18C7M58R sortOrder: 19 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -50783,7 +50468,7 @@ items: hidden: false defaultTrigger: null fields: - - id: byubo3hnVwkVAQ5W1SfntG + - id: 9iCRfwQ3Hu9ng9jJ95XKSq sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -50796,7 +50481,7 @@ items: dynamic: true allowNull: false hidden: false - - id: crAR3L4fo7dZt2fvnvLnWQ + - id: 7nxhLWuYGFpMsAUNnbWwew sortOrder: 1 fieldKey: caller_id label: Caller ID @@ -50811,7 +50496,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8ZituQ3xD4ytqxT4uE1iyh + - id: uhhwxyNVy7FmaLj5nH3R9u sortOrder: 2 fieldKey: call_timestamp label: Call Timestamp @@ -50827,7 +50512,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 63cP3spqBSwxP5SzE4EvNj + - id: vzePAgDkRk3omSnEExzDhd sortOrder: 3 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -50845,7 +50530,7 @@ items: dynamic: false allowNull: false hidden: false - - id: xzZAxm7WGjH9aWUxDzqZo1 + - id: jYDen4HJugeccdD5NHWNvD sortOrder: 4 fieldKey: value label: Value @@ -50860,7 +50545,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2BuzkieLv3TaaUooCH4Too + - id: 89bzqWrBvnDKDxjht5hTan sortOrder: 5 fieldKey: currency label: Currency @@ -50877,7 +50562,7 @@ items: dynamic: false allowNull: false hidden: false - - id: oTky2USG8kjdcUft7gfKuL + - id: hESW8JuJRBgW5NAYMhTzyn sortOrder: 6 fieldKey: custom_variables label: Custom Variables @@ -50896,7 +50581,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wecqvNU3TFNBuMKB8BvYxz + - id: 5Xu3WkCfDZGeLEE8hDihDw sortOrder: 7 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -50917,7 +50602,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: oGetRXaFKdzy2FtY34M5vC + - id: b6osR2gJJrupN5SEsbPCFL sortOrder: 8 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -50947,7 +50632,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: djZdFLmPGsregcV9THiuLz + - id: sYKvTs3XHTuaQJ3JMpPtAU sortOrder: 0 fieldKey: first_name label: First Name @@ -50967,7 +50652,7 @@ items: choices: null dynamic: false allowNull: false - - id: CB12vxKCstvCyXXPZFD9n + - id: jnP6smP7dxigHzd7XnwDpf sortOrder: 1 fieldKey: last_name label: Last Name @@ -50987,7 +50672,7 @@ items: choices: null dynamic: false allowNull: false - - id: vbqdcFtmiCDyH3Dqg2qu1b + - id: gyXSjqydeMdJC9hUKQkJfq sortOrder: 2 fieldKey: email label: Email @@ -51007,7 +50692,7 @@ items: choices: null dynamic: false allowNull: false - - id: hByWR51HdGg5EoaiafuE9x + - id: 23r2a7eAT3Ye5rVuXJQUmG sortOrder: 3 fieldKey: phone label: Phone @@ -51027,7 +50712,7 @@ items: choices: null dynamic: false allowNull: false - - id: a8GeWToPM2Wcfe4boo7gS8 + - id: pGBisyjtPDzStweEnru8LR sortOrder: 4 fieldKey: phone_country_code label: Phone Number Country Code @@ -51042,7 +50727,7 @@ items: choices: null dynamic: false allowNull: false - - id: e8AUKu2tR6jbPbqW2JFLZJ + - id: mzgN3hriVm24nmTL2odRyM sortOrder: 5 fieldKey: country_code label: Address Country Code @@ -51054,7 +50739,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9w9z3QrCoruCfaG8B23mZe + - id: di9YZ7KJ1Lb6uDSeQx57G4 sortOrder: 6 fieldKey: postal_code label: Postal Code @@ -51066,7 +50751,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7ALv8EKDkC1qtmbfbwqGD6 + - id: rv5YLC6QHznLb1DurZcyXv sortOrder: 7 fieldKey: crm_id label: CRM ID @@ -51080,7 +50765,7 @@ items: choices: null dynamic: false allowNull: false - - id: rP65xW26tmUboXZ5Lq43B1 + - id: 9B3urwjPfX26wULjrxunhu sortOrder: 8 fieldKey: mobile_advertising_id label: Mobile Advertising ID @@ -51096,7 +50781,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7uNM8TbSTxz5xzP9m9yZnF + - id: 214pE7AhFePMYx1NreyqHF sortOrder: 9 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -51117,7 +50802,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: jwjPCzKkEwtGHchBknPF3v + - id: ubo1V42sdSB2rhWDdE6mT9 sortOrder: 10 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -51139,7 +50824,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: wGtAzhtj9PPyEXSJLwDnrk + - id: nDiBRzCeUzGUktQrFpJQcK sortOrder: 15 fieldKey: list_id label: Existing List ID @@ -51153,7 +50838,7 @@ items: choices: null dynamic: true allowNull: false - - id: 9NN9uMapupc9qVb9AsSqHZ + - id: 6CYZRDJGE5kYC3DzN89QXK sortOrder: 16 fieldKey: list_name label: List Name @@ -51165,7 +50850,7 @@ items: choices: null dynamic: false allowNull: false - - id: bA1FwbQ546KStcuexWGhvk + - id: rP6G7A4u18pJ4M8CJjbuNf sortOrder: 17 fieldKey: external_id_type label: External ID Type @@ -51173,7 +50858,7 @@ items: description: Customer match upload key types. placeholder: '' defaultValue: CONTACT_INFO - required: true + required: false multiple: false choices: - label: CONTACT INFO @@ -51184,7 +50869,7 @@ items: value: MOBILE_ADVERTISING_ID dynamic: false allowNull: false - - id: YzCzXrDbKcMRkXhYqGo8J + - id: uPyYkqtQZMBf2ddRV2sXCh sortOrder: 18 fieldKey: app_id label: App ID @@ -51199,7 +50884,7 @@ items: choices: null dynamic: false allowNull: false - - id: 55uwhX6zd6nMr1hRCjAXmV + - id: dhVK4wu3a9BKWPLTNoHH1k sortOrder: 19 fieldKey: retlOnMappingSave label: Connect to a Google Customer Match User List @@ -51222,7 +50907,7 @@ items: hidden: false defaultTrigger: null fields: - - id: gfdQh1buEe1EgtD22WeAVb + - id: hW86nggLFqwHaQcMqust66 sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -51234,7 +50919,7 @@ items: choices: null dynamic: true allowNull: false - - id: 9FAV4g1wFrw55YwKH36yk + - id: 5cGQ7TAfpuEMt5xRvuvEeG sortOrder: 1 fieldKey: caller_id label: Caller ID @@ -51248,7 +50933,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2Xn9E8YALY2bPbHHSuBFuE + - id: eYfLLFCbi3o2kwY6Njh135 sortOrder: 2 fieldKey: call_timestamp label: Call Timestamp @@ -51263,7 +50948,7 @@ items: choices: null dynamic: false allowNull: false - - id: iiaCnmzCrR8DWxA9AqdSBu + - id: ctVGoQ33jepVz2eM7L9y6m sortOrder: 3 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -51280,7 +50965,7 @@ items: choices: null dynamic: false allowNull: false - - id: mqueNJD8hTviyqE8HL8giE + - id: i1KPvWvqCoK7vA7APdDRuo sortOrder: 4 fieldKey: value label: Value @@ -51294,7 +50979,7 @@ items: choices: null dynamic: false allowNull: false - - id: q3bBaJXUeuqzYBh2KzgRyK + - id: p6rvSY8LuqEWYEVeHi6few sortOrder: 5 fieldKey: currency label: Currency @@ -51310,7 +50995,7 @@ items: choices: null dynamic: false allowNull: false - - id: mRPM7mP8EWjm6jCB544ypJ + - id: h3oZFQtZtuXvkZjohSwMKu sortOrder: 6 fieldKey: custom_variables label: Custom Variables @@ -51328,7 +51013,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8tcdWNX6GJj16wVkJ4TFoM + - id: qYs9ADuC4cUvPTf2UbAPhg sortOrder: 7 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -51349,7 +51034,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: bwaMAHA1ZitNtdYwRsrKHC + - id: eWX8AxeQQWDGsFyjrE1U2q sortOrder: 8 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -51379,7 +51064,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 5QkfhqL59JZE2NWFBu5NL1 + - id: nTskMs95WwFE6yxszgQ7dU sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -51391,7 +51076,7 @@ items: choices: null dynamic: true allowNull: false - - id: 3STDBtj7RFSMRKdwUG3TVb + - id: s7P4KTn85A9VhM4ymkZk1 sortOrder: 1 fieldKey: adjustment_type label: Adjustment Type @@ -51416,7 +51101,7 @@ items: value: ENHANCEMENT dynamic: false allowNull: false - - id: bKabvzUrKcWAJ8pFwKXVEE + - id: uQ5WRVERqqkvmZNbHuADDH sortOrder: 2 fieldKey: adjustment_timestamp label: Adjustment Timestamp @@ -51434,7 +51119,7 @@ items: choices: null dynamic: false allowNull: false - - id: wg11XLpA6UpsgQZo11frhR + - id: beGFavgpnXuBF6hSwQe5nN sortOrder: 3 fieldKey: order_id label: Order ID @@ -51457,7 +51142,7 @@ items: choices: null dynamic: false allowNull: false - - id: q76yP7H76jKVP99eo1aYKu + - id: pkoAjQSCMHrMNecDmpEYvP sortOrder: 4 fieldKey: gclid label: GCLID @@ -51471,7 +51156,7 @@ items: choices: null dynamic: false allowNull: false - - id: oCKHK84nigMrttuKSidFNN + - id: mgf5Bg2AmB7JgeesA35xZ4 sortOrder: 5 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -51487,7 +51172,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3VCzScYtsT9NpfpNMNXVRr + - id: aYK22gsSFMStD6PY3LoJq5 sortOrder: 6 fieldKey: restatement_value label: Restatement Value @@ -51503,7 +51188,7 @@ items: choices: null dynamic: false allowNull: false - - id: oUvSWyGp9EefnRR7Ui9UFf + - id: x27b5CZt6p8GYkrc2qTCAx sortOrder: 7 fieldKey: restatement_currency_code label: Restatement Currency Code @@ -51519,7 +51204,7 @@ items: choices: null dynamic: false allowNull: false - - id: 78LQC8BB8yu3EStefqVSWe + - id: saVEr9jsHAnApLZXddgmNZ sortOrder: 8 fieldKey: phone_country_code label: Phone Number Country Code @@ -51534,7 +51219,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8UssvMerW2qBtaPjHSup5G + - id: xqfvrCw1bv3rctcYneAXSp sortOrder: 9 fieldKey: email_address label: Email Address @@ -51556,7 +51241,7 @@ items: choices: null dynamic: false allowNull: false - - id: t5yrbSLMd1oFyjJbFrMwgT + - id: sBbKHzKaHMFFKo566WLZvP sortOrder: 10 fieldKey: phone_number label: Phone Number @@ -51579,7 +51264,7 @@ items: choices: null dynamic: false allowNull: false - - id: UueYH8NVyAc1fNPkoAMwF + - id: jFGN1v9E1aag7LTevrf2jn sortOrder: 11 fieldKey: first_name label: First Name @@ -51599,7 +51284,7 @@ items: choices: null dynamic: false allowNull: false - - id: bQBWjnf3KRF9DQo3VXXXPK + - id: iN93zPhJCTtpjs6JLJJQn4 sortOrder: 12 fieldKey: last_name label: Last Name @@ -51621,7 +51306,7 @@ items: choices: null dynamic: false allowNull: false - - id: xfz8AhKbCR1hXC83EpVqtR + - id: pazQfBWyrbFbLihtowzTQG sortOrder: 13 fieldKey: city label: City @@ -51641,7 +51326,7 @@ items: choices: null dynamic: false allowNull: false - - id: cs2EUJqEdk7EtLdxAppGao + - id: rv1N7MbKNfRDk2DcjwEMxn sortOrder: 14 fieldKey: state label: State @@ -51661,7 +51346,7 @@ items: choices: null dynamic: false allowNull: false - - id: h14hMMNBDWho3pqs333Cag + - id: nzEgwgivyvDxhekAorbQBh sortOrder: 15 fieldKey: country label: Country @@ -51683,7 +51368,7 @@ items: choices: null dynamic: false allowNull: false - - id: uKsLB97ZC5qVJkcyrjaHFh + - id: p8S5ZiUpvZCM6LRSPLp4GY sortOrder: 16 fieldKey: postal_code label: Postal Code @@ -51703,7 +51388,7 @@ items: choices: null dynamic: false allowNull: false - - id: mjQpkopTHYsY1mLc8aBuW9 + - id: kzyLTupYyvMqRpR81otWDE sortOrder: 17 fieldKey: street_address label: Street Address @@ -51725,7 +51410,7 @@ items: choices: null dynamic: false allowNull: false - - id: jxBPVf26Tfmp9LDy4NmD1M + - id: w4cQE6sD2XNueUe8BcKZcX sortOrder: 18 fieldKey: user_agent label: User Agent @@ -51752,7 +51437,7 @@ items: hidden: false defaultTrigger: null fields: - - id: bqsYTMLwxJh1r4Jt8TR9We + - id: 9D9iShrZrbJi2Q7c7WQYyP sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -51764,7 +51449,7 @@ items: choices: null dynamic: true allowNull: false - - id: uefDfvnNEZyxEy53VBdoqC + - id: uiXcGHWNTuxq24MUm9UDkS sortOrder: 1 fieldKey: gclid label: GCLID @@ -51776,7 +51461,7 @@ items: choices: null dynamic: false allowNull: false - - id: dsvqjpuSAF9pr5xL7MknaU + - id: 7fdSWkw11RojegYuSvUikM sortOrder: 2 fieldKey: gbraid label: GBRAID @@ -51790,7 +51475,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7hGov8gL76uZ18rHv3NDyx + - id: kAqmEjaME2gsmvdGPs687y sortOrder: 3 fieldKey: wbraid label: WBRAID @@ -51804,7 +51489,7 @@ items: choices: null dynamic: false allowNull: false - - id: k1aYfogJif71QUqSJ8jPj9 + - id: v5QqqjRQQo3Dh2mVU9ioWL sortOrder: 4 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -51821,7 +51506,7 @@ items: choices: null dynamic: false allowNull: false - - id: h6qvN5kiNr1cP2W2mzHvYW + - id: 9QfTjMSq3LCjJ3kpGEWW3h sortOrder: 5 fieldKey: email_address label: Email Address @@ -51843,7 +51528,7 @@ items: choices: null dynamic: false allowNull: false - - id: bKwhxw4yWtaCsvnyMH5UHq + - id: fZzjyZ9JKv18vZtjFGXNzy sortOrder: 6 fieldKey: phone_country_code label: Phone Number Country Code @@ -51858,7 +51543,7 @@ items: choices: null dynamic: false allowNull: false - - id: 445oBDCcPA1MQTGZA6ud2G + - id: 5i1BTrJH8Sk9kUHFTwGr82 sortOrder: 7 fieldKey: phone_number label: Phone Number @@ -51881,7 +51566,7 @@ items: choices: null dynamic: false allowNull: false - - id: eCyZAVo6VR5MkUgDx1odCc + - id: jmCwYSYxJGgJyBJqFTrf7w sortOrder: 8 fieldKey: order_id label: Order ID @@ -51903,7 +51588,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7PEEAuwvjmokdqRfuKvGdn + - id: xgNBCxDBakwGF6bHC59ki4 sortOrder: 9 fieldKey: value label: Value @@ -51917,7 +51602,7 @@ items: choices: null dynamic: false allowNull: false - - id: ex9N6DxAezKqTxUAsnHVC3 + - id: 6qhNWVHkzNEH7JNkS21D9i sortOrder: 10 fieldKey: currency label: Currency @@ -51933,7 +51618,7 @@ items: choices: null dynamic: false allowNull: false - - id: wqAMNXvfsmRzqPmryjk77i + - id: etwYWBYjfb2JWTCWom2NVw sortOrder: 11 fieldKey: conversion_environment label: Conversion Environment @@ -51955,7 +51640,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: qk1PajJSicMRVa4ew8Cs2Z + - id: 75eznopfeVhgsyc9gv4D7j sortOrder: 12 fieldKey: merchant_id label: Merchant Center ID @@ -51967,7 +51652,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4gWBaErvmggHPqJKBjK44G + - id: 6iKnz83h6YA4ZrBkMTeuTT sortOrder: 13 fieldKey: merchant_country_code label: Merchant Center Feed Country Code @@ -51981,7 +51666,7 @@ items: choices: null dynamic: false allowNull: false - - id: btt4yAKsAfFViu8HyDdqRj + - id: mvnoe2qetDLS6XrPzF5Psa sortOrder: 14 fieldKey: merchant_language_code label: Merchant Center Feed Language Code @@ -51995,7 +51680,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8ZB9HzHERoD6o7rZXFBw65 + - id: uTHtFyWdJ28F6xUVDGXe7S sortOrder: 15 fieldKey: local_cost label: Local Transaction Cost @@ -52009,7 +51694,7 @@ items: choices: null dynamic: false allowNull: false - - id: mtkVmdghJb7fzoXuQtWBm7 + - id: bbniFMrGTpxx9XiWYh1HUd sortOrder: 16 fieldKey: items label: Items @@ -52030,7 +51715,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8EgRM8FqpqxM4Df38xWiWS + - id: wsEP2fkY8Z3RSSy6oxxTvg sortOrder: 17 fieldKey: custom_variables label: Custom Variables @@ -52048,7 +51733,7 @@ items: choices: null dynamic: false allowNull: false - - id: hziAxiW4j2jZWwV1BDuPE4 + - id: i191aQ6RpqXVmQEXXQXcph sortOrder: 18 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -52069,7 +51754,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: sgHMU6o2iDMpFiv5H7pTJ1 + - id: ajZ5chPcQL4NaxqJCusTv4 sortOrder: 19 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -80751,7 +80436,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: usqJEAgk51ReirFFURVLmJ + - id: kMgyerASLivvGmMF5YLRK1 sortOrder: 0 fieldKey: sftp_username label: Username @@ -80764,7 +80449,7 @@ items: dynamic: false allowNull: false hidden: false - - id: uhDMwkvXwTSCjtWBgqHEWg + - id: 3hnbAU6ztRqHAHtXdtsSS5 sortOrder: 1 fieldKey: sftp_password label: Password @@ -80777,7 +80462,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6cVpBc42HMD7SUWoLwt8Qs + - id: dK2ei4KkRg13BtKKzfwUF9 sortOrder: 2 fieldKey: sftp_folder_path label: Folder Path @@ -80794,7 +80479,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 3pmmVzcFWmHzSL2yYNQriy + - id: x96cA8SB9oxXzywrLP7wXk sortOrder: 3 fieldKey: audience_key label: LiveRamp Audience Key @@ -80813,7 +80498,7 @@ items: dynamic: false allowNull: false hidden: false - - id: esrVbhGstvSY944NsR34mn + - id: twGu7B9VUEoGPoMKHUfD7G sortOrder: 4 fieldKey: identifier_data label: Identifier Data @@ -80826,7 +80511,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dCqHg42bUEWdYtdUkWUBFG + - id: h1ASLUgE6GjxCMXyBBWG6y sortOrder: 5 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -80842,7 +80527,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2oJMEgLR8HnZ1RKUhqgMam + - id: qS42Y8bSvzQYFTmcY55cT8 sortOrder: 6 fieldKey: delimiter label: Delimeter @@ -80856,7 +80541,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9ZwpEMLLkB4rC76hohFMPy + - id: sJqPmPaKrfnUGCkrLDgddT sortOrder: 7 fieldKey: filename label: Filename @@ -80881,7 +80566,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: mxfANQd9Cnza5iXWnZmF1k + - id: daCKHSi8JhZwut8Cxg6HR5 sortOrder: 0 fieldKey: s3_aws_access_key label: AWS Access Key ID @@ -80894,7 +80579,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ay1kmzFSMsGJH6BvFtf5rU + - id: 89U7s6TP78WYwsCjPvE93u sortOrder: 1 fieldKey: s3_aws_secret_key label: AWS Secret Access Key @@ -80907,7 +80592,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6vgzFX9P6x7BDQQgpDTv9e + - id: c66uem7Z16uXsNSbrwB8Bj sortOrder: 2 fieldKey: s3_aws_bucket_name label: AWS Bucket Name @@ -80920,7 +80605,7 @@ items: dynamic: false allowNull: false hidden: false - - id: abTZeZmSYAgmFv8Kn34STA + - id: iv4ZA4WQRK1tFGsE2nzcyE sortOrder: 3 fieldKey: s3_aws_region label: AWS Region (S3 only) @@ -80933,7 +80618,7 @@ items: dynamic: false allowNull: false hidden: false - - id: v3Py1oFSUxsgFRNFtr18Hk + - id: 2vea8KdovH8VMqtbXhx8pV sortOrder: 4 fieldKey: audience_key label: LiveRamp Audience Key @@ -80952,7 +80637,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pLC9UR3MZP6y3AwUndbBQ8 + - id: vwYppuEgPFQwEPmvEnoDUt sortOrder: 5 fieldKey: identifier_data label: Identifier Data @@ -80965,7 +80650,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 5aksemwJx5duYQAPGq2spY + - id: nFg9kJWTyvuq9M5WDdkTdE sortOrder: 6 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -80981,7 +80666,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tB2EPnyewnESAHcppyX3i8 + - id: 9xUCLtDdUuCUBzMjtRWr3W sortOrder: 7 fieldKey: delimiter label: Delimeter @@ -80995,7 +80680,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wqTtbxeb946gRQ2a4rdS7E + - id: 8xZ1w2rx3r1M5qWjsihLWf sortOrder: 8 fieldKey: filename label: Filename @@ -81012,6 +80697,21 @@ items: dynamic: false allowNull: false hidden: false + - id: 9gzRouweQC4noqggvXoywB + sortOrder: 11 + fieldKey: s3_aws_bucket_path + label: AWS Bucket Path [optional] + type: STRING + description: >- + Optional path within the S3 bucket where the files will be uploaded to. + If not provided, files will be uploaded to the root of the bucket. + Example: "folder1/folder2" + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false presets: [] partnerOwned: false - id: 54521fd925e721e32a72eed0 diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index f6c3af5c5e..5c270665c6 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 2025-06-12 +# destination data last updated 2025-06-20 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 2bcad5b20d..aee7fe1347 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 2025-06-12 +# source categories last updated 2025-06-20 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 6e58829437..c5fe7d2bea 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 2025-06-12 +# sources last updated 2025-06-20 items: - id: 8HWbgPTt3k display_name: .NET From 0c31c80d11ccac774e6a8f19b562eac4162b6e09 Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 14:50:08 -0500 Subject: [PATCH 125/438] add new observability section --- .../journeys/event-triggered-journeys.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/event-triggered-journeys.md index 94d1e5f579..ee201e32cf 100644 --- a/src/engage/journeys/event-triggered-journeys.md +++ b/src/engage/journeys/event-triggered-journeys.md @@ -123,6 +123,43 @@ Segment built Event-Triggered Journeys to respond instantly to events, offering - **Editing and versioning**: After you publish an event-triggered journey, you won't be able to edit it. To modify a journey, create a new journey. - **Real-time delivery**: Event-Triggered Journeys aim for an expected delivery time of under 5 minutes from the moment an event is performed to when the payload reaches the destination, assuming there is no delay step in the journey. However, external factors outside of Segment's control may occasionally introduce latency. +## Observability + +Segment provides built-in tools to help you understand how users move through your journeys. These features let you debug issues, verify behavior, and review step-by-step activity for individual users. + +### Profile Explorer: Journeys tab + +From the **Profile Explorer**, you can view the journeys a user entered. For Event-Triggered Journeys (V2), you’ll see the total number of times the user has entered each journey. V1 journeys display only the current step. + +To access Profile Explorer: + +1. Go to **Profiles** and open a user profile. +2. Click the **Journeys** tab. + +### Journey instance timeline + +When you need to understand how a specific user moved through a journey, the Journey Instance Timeline shows a detailed, step-by-step view of the user’s path. + +This view is useful for troubleshooting, testing, or verifying behavior after launch. You’ll see the exact sequence of events and timing for a single journey instance. Follow these steps to access the instance timeline: + +- **Option 1**: + 1. Open a user profile from the Profile Explorer. + 2. Click the **Journeys** tab, then click the name of the journey. +- **Option 2**: + 1. Go to **Engage > Journeys**, then open the **Overview** tab. + 2. Use the **Search for a profile** field to look up the user by email or ID. + 3. Select a journey instance to view its full timeline. + +### Profile activity + +Use the **Profile activity** tab on the journey overview page to see a high-level log of entries, exits, and transitions across all users. This is helpful for filtering activity by time, user, or step, especially when you want to confirm how different users have moved through a journey. + +Follow these steps to access Profile activity: + +1. Go to **Engage > Journeys**. +2. Select a journey and open the **Profile activity** tab. +3. Use the filters to narrow down the results by user, time range, event type, or step name. + ## Use Cases Event-Triggered Journeys can power a variety of real-time, personalized experiences. This section details some common scenarios to help you see how they might work in practice. From 9137dc368df6b02516d0003dc5cc4a90f0808b62 Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 14:51:54 -0500 Subject: [PATCH 126/438] some cleanup [netlify-build] --- src/engage/journeys/event-triggered-journeys.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/event-triggered-journeys.md index ee201e32cf..6d41ee5e29 100644 --- a/src/engage/journeys/event-triggered-journeys.md +++ b/src/engage/journeys/event-triggered-journeys.md @@ -127,13 +127,13 @@ Segment built Event-Triggered Journeys to respond instantly to events, offering Segment provides built-in tools to help you understand how users move through your journeys. These features let you debug issues, verify behavior, and review step-by-step activity for individual users. -### Profile Explorer: Journeys tab +### Profile explorer: Journeys tab -From the **Profile Explorer**, you can view the journeys a user entered. For Event-Triggered Journeys (V2), you’ll see the total number of times the user has entered each journey. V1 journeys display only the current step. +From Profile explorer, you can view the journeys a user entered. For Event-Triggered Journeys (V2), you’ll see the total number of times the user has entered each journey; V1 journeys display only the current step. -To access Profile Explorer: +To access Profile explorer: -1. Go to **Profiles** and open a user profile. +1. From your Segment workspace, go to **Unify > Profile explorer** and open a user profile. 2. Click the **Journeys** tab. ### Journey instance timeline @@ -143,10 +143,10 @@ When you need to understand how a specific user moved through a journey, the Jou This view is useful for troubleshooting, testing, or verifying behavior after launch. You’ll see the exact sequence of events and timing for a single journey instance. Follow these steps to access the instance timeline: - **Option 1**: - 1. Open a user profile from the Profile Explorer. + 1. Open a user profile from the Profile explorer. 2. Click the **Journeys** tab, then click the name of the journey. - **Option 2**: - 1. Go to **Engage > Journeys**, then open the **Overview** tab. + 1. From your Segment workspace, go to **Engage > Journeys**, then open the **Overview** tab. 2. Use the **Search for a profile** field to look up the user by email or ID. 3. Select a journey instance to view its full timeline. @@ -157,7 +157,7 @@ Use the **Profile activity** tab on the journey overview page to see a high-leve Follow these steps to access Profile activity: 1. Go to **Engage > Journeys**. -2. Select a journey and open the **Profile activity** tab. +2. Select a journey and click the **Profile activity** tab. 3. Use the filters to narrow down the results by user, time range, event type, or step name. ## Use Cases From b71ca84605ee0a34f5e8ac97dced1fa92e797564 Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 15:09:27 -0500 Subject: [PATCH 127/438] init randomized splits --- .../event-triggered-journeys-steps.md | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/src/engage/journeys/event-triggered-journeys-steps.md b/src/engage/journeys/event-triggered-journeys-steps.md index 1aa5799f03..7405b2569e 100644 --- a/src/engage/journeys/event-triggered-journeys-steps.md +++ b/src/engage/journeys/event-triggered-journeys-steps.md @@ -173,6 +173,65 @@ You can use a Data split to branch profiles based on traits or audience membersh This setup helps tailor journey experiences using reliable, preexisting data. Because the Data split step evaluates conditions instantly, it works best with traits or audience membership that Segment has already computed before the profile enters the step. +## Randomized Split + +The **Randomized Split** step lets you experiment with and test the performance of different journey paths. You can add up to five branches, assign each one a percentage, and Segment will randomly send users down one of the branches based on the configured distribution. + +This step is useful for A/B testing, holdout groups, and comparing different channels or messaging strategies within a single journey. + +For example, you might create a randomized split that sends 40% of users to an email campaign, 40% to an SMS campaign, and 20% to a control group. Once users move through the split, you can evaluate which approach performed best. + +### How randomized split works + +When a profile reaches the Randomized Split step: + +1. Segment randomly assigns the profile to one of the branches based on the defined percentages. +2. The profile immediately moves down the assigned path. +3. By default, if a user re-enters the journey later, they’re assigned a new random branch. You can optionally choose to keep them in the same branch each time they re-enter. + +Each journey instance (epoch) is evaluated independently. This means a user could be assigned to different branches across multiple entries, unless you enable consistent assignment. + +### Configuration options + +You can configure a Randomized Split step with the following options: + +| Setting | Description | +|---------------------------------|-----------------------------------------------------------------------------| +| Branches | Add up to five branches. Each branch must be assigned a percentage. | +| Distribution percentages | Define what portion of users should go down each branch. Total must be 100%. | +| Branch naming | Branches are labeled alphabetically (e.g., Branch A, Branch B). | +| Consistent branch assignment | Optionally ensure a user always enters the same branch on re-entry. | + +Segment blocks publishing if the percentages don’t add up to 100%, or if any percentage is left blank. + +> info "Branch assignment is random" +> The Randomized Split step uses probabilistic logic to assign users to branches. At lower volumes, actual distribution may not exactly match your configured percentages, but it tends to even out at scale. + +### Add a Randomized Split + +To add a Randomized Split step: + +1. From the journey canvas, click **+** to add a new step. +2. Select **Randomized Split**. +3. Give the step a name. +4. Add up to five branches and assign a percentage to each one. +5. (Optional) Enable **Keep branch assignment consistent** if you want users to always go down the same branch on re-entry. +6. Click **Save**. + +Once configured, Segment routes profiles through this step based on your distribution settings. + +### Analyze performance + +After users pass through the Randomized Split step, you can view historical and in-progress counts for each branch in the **Journey Overview**. + +You can measure results by: + +- Total journey instances (epochs) +- Unique profiles +- Funnel view or in-progress view + +This helps you evaluate which branch is performing best and informs how you might structure future journeys. + ## Send to Destination The **Send to Destination** step lets you send journey data to one of your [configured Engage destinations](/docs/connections/destinations/), enabling real-time integration with tools like marketing platforms, analytics systems, or custom endpoints. From 89289f97cec4ba50bd778e7ae9f4b305c99469c4 Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 15:10:18 -0500 Subject: [PATCH 128/438] clarification --- .../journeys/event-triggered-journeys-steps.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/engage/journeys/event-triggered-journeys-steps.md b/src/engage/journeys/event-triggered-journeys-steps.md index 7405b2569e..2fce2b9757 100644 --- a/src/engage/journeys/event-triggered-journeys-steps.md +++ b/src/engage/journeys/event-triggered-journeys-steps.md @@ -173,7 +173,7 @@ You can use a Data split to branch profiles based on traits or audience membersh This setup helps tailor journey experiences using reliable, preexisting data. Because the Data split step evaluates conditions instantly, it works best with traits or audience membership that Segment has already computed before the profile enters the step. -## Randomized Split +## Randomized Split (V2) The **Randomized Split** step lets you experiment with and test the performance of different journey paths. You can add up to five branches, assign each one a percentage, and Segment will randomly send users down one of the branches based on the configured distribution. @@ -181,7 +181,7 @@ This step is useful for A/B testing, holdout groups, and comparing different cha For example, you might create a randomized split that sends 40% of users to an email campaign, 40% to an SMS campaign, and 20% to a control group. Once users move through the split, you can evaluate which approach performed best. -### How randomized split works +### How Randomized Split works When a profile reaches the Randomized Split step: @@ -189,18 +189,18 @@ When a profile reaches the Randomized Split step: 2. The profile immediately moves down the assigned path. 3. By default, if a user re-enters the journey later, they’re assigned a new random branch. You can optionally choose to keep them in the same branch each time they re-enter. -Each journey instance (epoch) is evaluated independently. This means a user could be assigned to different branches across multiple entries, unless you enable consistent assignment. +Segment evaluates each journey instance independently. This means a user could be assigned to different branches across multiple entries, unless you enable consistent assignment. ### Configuration options You can configure a Randomized Split step with the following options: -| Setting | Description | -|---------------------------------|-----------------------------------------------------------------------------| -| Branches | Add up to five branches. Each branch must be assigned a percentage. | -| Distribution percentages | Define what portion of users should go down each branch. Total must be 100%. | -| Branch naming | Branches are labeled alphabetically (e.g., Branch A, Branch B). | -| Consistent branch assignment | Optionally ensure a user always enters the same branch on re-entry. | +| Setting | Description | +| ---------------------------- | ---------------------------------------------------------------------------- | +| Branches | Add up to five branches. Each branch must be assigned a percentage. | +| Distribution percentages | Define what portion of users should go down each branch. Total must be 100%. | +| Branch naming | Branches are labeled alphabetically (for example, Branch A, Branch B). | +| Consistent branch assignment | Optionally ensure a user always enters the same branch on re-entry. | Segment blocks publishing if the percentages don’t add up to 100%, or if any percentage is left blank. From 0807ee710156d6bd126fe2a27ce1fd6762c5370d Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 20 Jun 2025 15:12:34 -0500 Subject: [PATCH 129/438] last cleanup [netlify-build] --- .../journeys/event-triggered-journeys-steps.md | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/engage/journeys/event-triggered-journeys-steps.md b/src/engage/journeys/event-triggered-journeys-steps.md index 2fce2b9757..853a262440 100644 --- a/src/engage/journeys/event-triggered-journeys-steps.md +++ b/src/engage/journeys/event-triggered-journeys-steps.md @@ -202,18 +202,16 @@ You can configure a Randomized Split step with the following options: | Branch naming | Branches are labeled alphabetically (for example, Branch A, Branch B). | | Consistent branch assignment | Optionally ensure a user always enters the same branch on re-entry. | -Segment blocks publishing if the percentages don’t add up to 100%, or if any percentage is left blank. +Segment won't publish your journey if the percentages don’t add up to 100%, or if any percentage is left blank. > info "Branch assignment is random" > The Randomized Split step uses probabilistic logic to assign users to branches. At lower volumes, actual distribution may not exactly match your configured percentages, but it tends to even out at scale. -### Add a Randomized Split - -To add a Randomized Split step: +To add a Randomized Split to your journey: 1. From the journey canvas, click **+** to add a new step. 2. Select **Randomized Split**. -3. Give the step a name. +3. Give the step a unique name. 4. Add up to five branches and assign a percentage to each one. 5. (Optional) Enable **Keep branch assignment consistent** if you want users to always go down the same branch on re-entry. 6. Click **Save**. @@ -222,13 +220,9 @@ Once configured, Segment routes profiles through this step based on your distrib ### Analyze performance -After users pass through the Randomized Split step, you can view historical and in-progress counts for each branch in the **Journey Overview**. - -You can measure results by: +After users pass through the Randomized Split step, you can view historical and in-progress counts for each branch in the Journey Overview. -- Total journey instances (epochs) -- Unique profiles -- Funnel view or in-progress view +You can measure results by total journey instances, unique profiles, funnel view, and in-progress view. This helps you evaluate which branch is performing best and informs how you might structure future journeys. From df3ba9278ce7491d8291a1546d60b876212943b5 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Fri, 20 Jun 2025 15:38:21 -0500 Subject: [PATCH 130/438] Update src/engage/journeys/event-triggered-journeys.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/engage/journeys/event-triggered-journeys.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/event-triggered-journeys.md index 6d41ee5e29..4794aa568e 100644 --- a/src/engage/journeys/event-triggered-journeys.md +++ b/src/engage/journeys/event-triggered-journeys.md @@ -160,7 +160,7 @@ Follow these steps to access Profile activity: 2. Select a journey and click the **Profile activity** tab. 3. Use the filters to narrow down the results by user, time range, event type, or step name. -## Use Cases +## Use cases Event-Triggered Journeys can power a variety of real-time, personalized experiences. This section details some common scenarios to help you see how they might work in practice. From f9538e04b334ec3c3b7bfef586065a3af67de687 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Fri, 20 Jun 2025 16:14:29 -0500 Subject: [PATCH 131/438] minor rewording --- src/connections/spec/track.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/connections/spec/track.md b/src/connections/spec/track.md index 0d58d2a98a..db17a47c6b 100644 --- a/src/connections/spec/track.md +++ b/src/connections/spec/track.md @@ -121,9 +121,8 @@ _For instructions on how to pass fields to the context object for a specific lib Segment's Actions destinations allows your team to build individual actions that are triggered based on a set of configured conditions. By adding the user's latest traits to the Track event's `context.traits` object, its possible to build two separate Actions to be triggered by this single event. For example, if your team would like to send an Identify event anytime the specific Track event "Button Clicked" is triggered, simply add the available traits into the Track event's payload, then build a destination Actions for the Track event : `Event Name is Button Clicked`, and a destination Action for the Identify event : `All of the following conditions are true: Event Name is Button Clicked, Event Context traits exists`, and then both Actions will have access to reference the `context.traits` fields within its mappings. -> warning "" -> Sending traits in Track or Page events via the context.traits object will not update traits on profiles within Unify. Only traits sent within an Identify call will apply to user profiles within the Unify Space. -> The instructions above are only relevant in sending additional user data through Actions Destinations and not to Unify Spaces. +> warning "Unify profiles require Identify calls" +> Adding user traits to a Track or Page call using `context.traits` lets you send that data to Actions destinations, but it won’t update the user's profile in Unify. To update traits in Unify, use an Identify call instead. For more information on the context object, please see the [Spec: Common Fields](https://segment.com/docs/connections/spec/common/#context) documentation. From 400111cd6c039a1a7e0456bce36812be46a1e856 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Fri, 20 Jun 2025 16:14:54 -0500 Subject: [PATCH 132/438] change to info --- src/connections/spec/track.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/spec/track.md b/src/connections/spec/track.md index db17a47c6b..5594b26bff 100644 --- a/src/connections/spec/track.md +++ b/src/connections/spec/track.md @@ -121,7 +121,7 @@ _For instructions on how to pass fields to the context object for a specific lib Segment's Actions destinations allows your team to build individual actions that are triggered based on a set of configured conditions. By adding the user's latest traits to the Track event's `context.traits` object, its possible to build two separate Actions to be triggered by this single event. For example, if your team would like to send an Identify event anytime the specific Track event "Button Clicked" is triggered, simply add the available traits into the Track event's payload, then build a destination Actions for the Track event : `Event Name is Button Clicked`, and a destination Action for the Identify event : `All of the following conditions are true: Event Name is Button Clicked, Event Context traits exists`, and then both Actions will have access to reference the `context.traits` fields within its mappings. -> warning "Unify profiles require Identify calls" +> info "Unify profiles require Identify calls" > Adding user traits to a Track or Page call using `context.traits` lets you send that data to Actions destinations, but it won’t update the user's profile in Unify. To update traits in Unify, use an Identify call instead. For more information on the context object, please see the [Spec: Common Fields](https://segment.com/docs/connections/spec/common/#context) documentation. From d15e962ad658c6636340e3f7bb2ca2458534ae95 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Fri, 20 Jun 2025 16:17:46 -0500 Subject: [PATCH 133/438] minor rewording --- src/connections/functions/insert-functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/functions/insert-functions.md b/src/connections/functions/insert-functions.md index a844fab14b..00e32f89b0 100644 --- a/src/connections/functions/insert-functions.md +++ b/src/connections/functions/insert-functions.md @@ -239,8 +239,8 @@ You can manually test your code from the functions editor: - Error messages display errors surfaced from your function. - Logs display any messages to console.log() from the function. -> info "" -> Insert Functions are supported in both the Event Tester and Mapping Tester. +> success "" +> Segment supports Insert Functions in both the Event Tester and Mapping Tester. ## Save and deploy the destination insert function From 52bae26c34a910f91586eec20e2c175db60d4609 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Sat, 21 Jun 2025 00:36:31 +0100 Subject: [PATCH 134/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index fc289bde81..d1d1b84461 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -11,7 +11,7 @@ There are two ways you can access source insert functions from your Segment work - From the Connections catalog. - From the Sources tab. -## Creating a Source Insert Function +## Create a Source Insert Function To create a source insert function from Segment’s catalog: From 3f29890798c65b0d71564c277567fda565578a7a Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Sat, 21 Jun 2025 00:36:39 +0100 Subject: [PATCH 135/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index d1d1b84461..8e811401a0 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -15,7 +15,7 @@ There are two ways you can access source insert functions from your Segment work To create a source insert function from Segment’s catalog: -1. Navigate to **Connections** > **Catalog** > **Functions** and click **New Function**. +1. Navigate to **Connections > Catalog > Functions** and click **New Function**. 2. In the Select Function Type screen, select **Source Insert** and click **Next: Build Function**. From 426060cd785edc3a2f85bbaf9ac2f08bd1fccefe Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Sat, 21 Jun 2025 00:36:46 +0100 Subject: [PATCH 136/438] Update src/connections/functions/source-insert-functions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/functions/source-insert-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index 8e811401a0..e95a942626 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -60,7 +60,7 @@ You can test your source insert function with sample events or a manual configur Test results appear under **Output**, showing whether the function ran successfully or failed. -### Connecting a source insert function to a source +### Connect a source insert function to a source For data to flow downstream after transformation, connect your source insert function to a source. To do this: From f467b13908800fe4f825c38c997d3c4f9afb4a9a Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 22 Jun 2025 16:38:15 -0500 Subject: [PATCH 137/438] update sidenav --- src/_data/sidenav/main.yml | 13 ++++++++----- .../{ => v2}/event-triggered-journeys-steps.md | 4 ++++ src/engage/journeys/{ => v2}/journey-context.md | 0 3 files changed, 12 insertions(+), 5 deletions(-) rename src/engage/journeys/{ => v2}/event-triggered-journeys-steps.md (99%) rename src/engage/journeys/{ => v2}/journey-context.md (100%) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 8fcf0bfa3e..912e6bc507 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -480,14 +480,14 @@ sections: title: Send Data to Destinations - path: '/engage/journeys/journeys-analytics' title: Journeys Analytics - - section_title: Event-Triggered Journeys - slug: '/engage/journeys/event-triggered-journeys' + - section_title: Journeys V2 + slug: '/engage/journeys/v2' section: - - path: /engage/journeys/event-triggered-journeys + - path: /engage/journeys/v2/ title: Overview - - path: /engage/journeys/event-triggered-journeys-steps + - path: /engage/journeys/v2/event-triggered-journeys-steps title: Event-Triggered Journeys Steps - - path: /engage/journeys/journey-context + - path: /engage/journeys/v2/journey-context title: Journey Context - path: '/engage/journeys/faq-best-practices' title: Journeys Best Practices and FAQ @@ -497,6 +497,9 @@ sections: title: Understand Journeys Logic - path: '/engage/journeys/key-terms' title: Journeys Glossary + - section_title: Journeys V1 + slug: '/engage/journeys/event-triggered-journeys' + section: - section_title: Content description: "Design brand-specific templates for your email and SMS campaigns." section: diff --git a/src/engage/journeys/event-triggered-journeys-steps.md b/src/engage/journeys/v2/event-triggered-journeys-steps.md similarity index 99% rename from src/engage/journeys/event-triggered-journeys-steps.md rename to src/engage/journeys/v2/event-triggered-journeys-steps.md index 853a262440..01de53c4a6 100644 --- a/src/engage/journeys/event-triggered-journeys-steps.md +++ b/src/engage/journeys/v2/event-triggered-journeys-steps.md @@ -1,8 +1,12 @@ --- title: Event-Triggered Journeys Steps plan: engage-foundations +redirect_from: + - "/engage/journeys/event-triggered-journeys-steps" --- + + [Event-Triggered Journeys](/docs/engage/journeys/event-triggered-journeys/) in Engage use steps to control how users move through a journey based on their actions or predefined conditions. Steps are the building blocks of a journey. This page explains the **Hold Until**, **Send to Destination**, and **Data split** steps, which enable precise control over journey progression and data delivery. diff --git a/src/engage/journeys/journey-context.md b/src/engage/journeys/v2/journey-context.md similarity index 100% rename from src/engage/journeys/journey-context.md rename to src/engage/journeys/v2/journey-context.md From a26968c7386947efc778d8ec0175e95e86791964 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 22 Jun 2025 16:40:56 -0500 Subject: [PATCH 138/438] more rearranging --- src/_data/sidenav/main.yml | 2 ++ .../journeys/{event-triggered-journeys.md => v2/index.md} | 2 ++ src/engage/journeys/v2/journey-context.md | 2 ++ 3 files changed, 6 insertions(+) rename src/engage/journeys/{event-triggered-journeys.md => v2/index.md} (99%) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 912e6bc507..08b9290e11 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -489,6 +489,8 @@ sections: title: Event-Triggered Journeys Steps - path: /engage/journeys/v2/journey-context title: Journey Context + - path: /engage/journeys/v2/limits + title: Product Limits - path: '/engage/journeys/faq-best-practices' title: Journeys Best Practices and FAQ - path: '/engage/journeys/use-cases' diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/v2/index.md similarity index 99% rename from src/engage/journeys/event-triggered-journeys.md rename to src/engage/journeys/v2/index.md index 9435e17f4e..b907e91ac8 100644 --- a/src/engage/journeys/event-triggered-journeys.md +++ b/src/engage/journeys/v2/index.md @@ -1,6 +1,8 @@ --- title: Event-Triggered Journeys plan: engage-foundations +redirect_from: + - "/engage/journeys/event-triggered-journeys" --- With Event-Triggered Journeys, you can build real-time, event-based marketing workflows to automate and personalize customer journeys. diff --git a/src/engage/journeys/v2/journey-context.md b/src/engage/journeys/v2/journey-context.md index 2cb17457a0..c739180709 100644 --- a/src/engage/journeys/v2/journey-context.md +++ b/src/engage/journeys/v2/journey-context.md @@ -1,6 +1,8 @@ --- title: Journey Context plan: engage-foundations +redirect_from: + - "/engage/journeys/journey-context" --- [Event-Triggered Journeys](/docs/engage/journeys/event-triggered-journeys/) redefine how you orchestrate and personalize customer experiences. From 267167c176f592ad48f9874b6aff4844fdc4480b Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 22 Jun 2025 16:48:20 -0500 Subject: [PATCH 139/438] add exit rules page --- src/_data/sidenav/main.yml | 15 +++++++++++++-- src/engage/journeys/{ => v1}/build-journey.md | 1 + src/engage/journeys/{ => v1}/send-data.md | 1 + src/engage/journeys/{ => v1}/step-types.md | 2 ++ src/engage/journeys/{ => v2}/exit-rules.md | 0 5 files changed, 17 insertions(+), 2 deletions(-) rename src/engage/journeys/{ => v1}/build-journey.md (99%) rename src/engage/journeys/{ => v1}/send-data.md (99%) rename src/engage/journeys/{ => v1}/step-types.md (99%) rename src/engage/journeys/{ => v2}/exit-rules.md (100%) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 08b9290e11..b9c782d3df 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -470,8 +470,6 @@ sections: section: - path: '/engage/journeys' title: Journeys Overview - - path: '/engage/journeys/build-journey' - title: 'Build a Journey' - path: '/engage/journeys/step-types' title: 'Journey Step Types' - path: '/engage/journeys/journeys-edits' @@ -480,6 +478,17 @@ sections: title: Send Data to Destinations - path: '/engage/journeys/journeys-analytics' title: Journeys Analytics + - section_title: Journeys V1 + slug: '/engage/journeys/v1' + section: + - path: '/engage/journeys/v1/build-journey' + title: 'Build a Journey' + - path: '/engage/journeys/v1/step-types' + title: 'Journey Step Types' + - path: '/engage/journeys/v1/send-data' + title: Send Data to Destinations + - path: /engage/journeys/v2/limits + title: Product Limits - section_title: Journeys V2 slug: '/engage/journeys/v2' section: @@ -487,6 +496,8 @@ sections: title: Overview - path: /engage/journeys/v2/event-triggered-journeys-steps title: Event-Triggered Journeys Steps + - path: /engage/journeys/v2/exit-rules + title: Exit Rules - path: /engage/journeys/v2/journey-context title: Journey Context - path: /engage/journeys/v2/limits diff --git a/src/engage/journeys/build-journey.md b/src/engage/journeys/v1/build-journey.md similarity index 99% rename from src/engage/journeys/build-journey.md rename to src/engage/journeys/v1/build-journey.md index d9973ff84c..a0a46ed2a4 100644 --- a/src/engage/journeys/build-journey.md +++ b/src/engage/journeys/v1/build-journey.md @@ -3,6 +3,7 @@ title: Build a Journey plan: engage-foundations redirect_from: - "/personas/journeys/build-journey" + - "/engage/journeys/build-journey" --- ## Before you begin diff --git a/src/engage/journeys/send-data.md b/src/engage/journeys/v1/send-data.md similarity index 99% rename from src/engage/journeys/send-data.md rename to src/engage/journeys/v1/send-data.md index eccb3b93d8..aa8ca578a1 100644 --- a/src/engage/journeys/send-data.md +++ b/src/engage/journeys/v1/send-data.md @@ -3,6 +3,7 @@ title: Send Journeys data to a Destination plan: engage-foundations redirect_from: - '/personas/journeys/send-data' + - '/engage/journeys/send-data' --- When you send data to destinations, you send a series of events or user lists, depending on the destination type. diff --git a/src/engage/journeys/step-types.md b/src/engage/journeys/v1/step-types.md similarity index 99% rename from src/engage/journeys/step-types.md rename to src/engage/journeys/v1/step-types.md index 9c950924f3..801ffeea9a 100644 --- a/src/engage/journeys/step-types.md +++ b/src/engage/journeys/v1/step-types.md @@ -1,6 +1,8 @@ --- title: Journeys Step Types plan: engage-foundations +redirect_from: + - "/engage/journeys/step-types" --- On this page, you'll find information about the steps you can add to a Journey. diff --git a/src/engage/journeys/exit-rules.md b/src/engage/journeys/v2/exit-rules.md similarity index 100% rename from src/engage/journeys/exit-rules.md rename to src/engage/journeys/v2/exit-rules.md From b12f83af0f2063e8c65e637fa5755d303ad62e13 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 22 Jun 2025 16:50:37 -0500 Subject: [PATCH 140/438] more sidenav cleanup [netlify-build] --- src/engage/journeys/v2/event-triggered-journeys-steps.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/engage/journeys/v2/event-triggered-journeys-steps.md b/src/engage/journeys/v2/event-triggered-journeys-steps.md index 01de53c4a6..623714fb3b 100644 --- a/src/engage/journeys/v2/event-triggered-journeys-steps.md +++ b/src/engage/journeys/v2/event-triggered-journeys-steps.md @@ -5,8 +5,6 @@ redirect_from: - "/engage/journeys/event-triggered-journeys-steps" --- - - [Event-Triggered Journeys](/docs/engage/journeys/event-triggered-journeys/) in Engage use steps to control how users move through a journey based on their actions or predefined conditions. Steps are the building blocks of a journey. This page explains the **Hold Until**, **Send to Destination**, and **Data split** steps, which enable precise control over journey progression and data delivery. From 06bd84bba9ab78631564ef4ee20a148c0bf360b8 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 22 Jun 2025 17:35:30 -0500 Subject: [PATCH 141/438] more sidenav fixes --- src/_data/sidenav/main.yml | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index b9c782d3df..d6a9059a76 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -470,14 +470,6 @@ sections: section: - path: '/engage/journeys' title: Journeys Overview - - path: '/engage/journeys/step-types' - title: 'Journey Step Types' - - path: '/engage/journeys/journeys-edits' - title: 'Journey Edits and Versioning' - - path: '/engage/journeys/send-data' - title: Send Data to Destinations - - path: '/engage/journeys/journeys-analytics' - title: Journeys Analytics - section_title: Journeys V1 slug: '/engage/journeys/v1' section: @@ -487,8 +479,6 @@ sections: title: 'Journey Step Types' - path: '/engage/journeys/v1/send-data' title: Send Data to Destinations - - path: /engage/journeys/v2/limits - title: Product Limits - section_title: Journeys V2 slug: '/engage/journeys/v2' section: @@ -502,6 +492,10 @@ sections: title: Journey Context - path: /engage/journeys/v2/limits title: Product Limits + - path: '/engage/journeys/journeys-edits' + title: 'Journey Edits and Versioning' + - path: '/engage/journeys/journeys-analytics' + title: Journeys Analytics - path: '/engage/journeys/faq-best-practices' title: Journeys Best Practices and FAQ - path: '/engage/journeys/use-cases' @@ -510,9 +504,6 @@ sections: title: Understand Journeys Logic - path: '/engage/journeys/key-terms' title: Journeys Glossary - - section_title: Journeys V1 - slug: '/engage/journeys/event-triggered-journeys' - section: - section_title: Content description: "Design brand-specific templates for your email and SMS campaigns." section: From ecca4b56aef141a25f08b0f024f355d1950c5685 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 22 Jun 2025 17:43:09 -0500 Subject: [PATCH 142/438] clarify randomized split behavior [netlify-build] --- .../v2/event-triggered-journeys-steps.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/engage/journeys/v2/event-triggered-journeys-steps.md b/src/engage/journeys/v2/event-triggered-journeys-steps.md index 623714fb3b..63c19ef59e 100644 --- a/src/engage/journeys/v2/event-triggered-journeys-steps.md +++ b/src/engage/journeys/v2/event-triggered-journeys-steps.md @@ -197,17 +197,17 @@ Segment evaluates each journey instance independently. This means a user could b You can configure a Randomized Split step with the following options: -| Setting | Description | -| ---------------------------- | ---------------------------------------------------------------------------- | -| Branches | Add up to five branches. Each branch must be assigned a percentage. | -| Distribution percentages | Define what portion of users should go down each branch. Total must be 100%. | -| Branch naming | Branches are labeled alphabetically (for example, Branch A, Branch B). | -| Consistent branch assignment | Optionally ensure a user always enters the same branch on re-entry. | +| Setting | Description | +| ------------------------ | ---------------------------------------------------------------------------- | +| Branches | Add up to five branches. Each branch must be assigned a percentage. | +| Distribution percentages | Define what portion of users should go down each branch. Total must be 100%. | +| Branch naming | Branches are labeled alphabetically (for example, Branch A, Branch B). | +| Assign same branch | Optionally ensure a user always enters the same branch on re-entry. | -Segment won't publish your journey if the percentages don’t add up to 100%, or if any percentage is left blank. +Segment won't let you save or publish your journey if the percentages don’t add up to 100%, or if any percentage is left blank. -> info "Branch assignment is random" -> The Randomized Split step uses probabilistic logic to assign users to branches. At lower volumes, actual distribution may not exactly match your configured percentages, but it tends to even out at scale. +> info "Actual branch counts may differ from percentages" +> The Randomized Split step assigns users to branches based on probability, not fixed rules. At lower volumes, the actual distribution may not match your configured percentages exactly, but results typically even out with more traffic. To add a Randomized Split to your journey: @@ -215,7 +215,7 @@ To add a Randomized Split to your journey: 2. Select **Randomized Split**. 3. Give the step a unique name. 4. Add up to five branches and assign a percentage to each one. -5. (Optional) Enable **Keep branch assignment consistent** if you want users to always go down the same branch on re-entry. +5. (Optional) Enable **Assign same branch** if you want users to always go down the same branch on re-entry. 6. Click **Save**. Once configured, Segment routes profiles through this step based on your distribution settings. From 4df27ec24847f3c333c70b3b53376b24cad7d968 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 22 Jun 2025 23:53:29 -0500 Subject: [PATCH 143/438] Add new Use cases page --- src/engage/journeys/v2/use-cases.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/engage/journeys/v2/use-cases.md diff --git a/src/engage/journeys/v2/use-cases.md b/src/engage/journeys/v2/use-cases.md new file mode 100644 index 0000000000..e8911171fd --- /dev/null +++ b/src/engage/journeys/v2/use-cases.md @@ -0,0 +1,9 @@ +--- +title: Journeys (V2) Use Cases +plan: engage-foundations +--- + +Event-Triggered Journeys give you the tools to create real-time, personalized flows that react to user behavior as it happens. This page explains sample use cases to help you get started with common patterns like confirmations, abandonment campaigns, and re-engagement flows. + +Each example includes a short explanation, key steps to configure, and optional sample event payloads. + From 78495bf1a314b50e33de518db933531d5df2861c Mon Sep 17 00:00:00 2001 From: pwseg Date: Mon, 23 Jun 2025 00:15:28 -0500 Subject: [PATCH 144/438] add screenshot [netlify-build] --- .../journeys/images/application_started.png | Bin 0 -> 157529 bytes src/engage/journeys/v2/use-cases.md | 105 ++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100644 src/engage/journeys/images/application_started.png diff --git a/src/engage/journeys/images/application_started.png b/src/engage/journeys/images/application_started.png new file mode 100644 index 0000000000000000000000000000000000000000..07eb8686e9c1aacc5d14a06fc3087895874b7981 GIT binary patch literal 157529 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

    ywpyQ!H3s#c8-3T;NjK~X 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%0D&JJgq6X|9WAfld~HAjic* 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 Date: Mon, 23 Jun 2025 00:36:32 -0500 Subject: [PATCH 145/438] one more screenshot [netlify-build] --- .../journeys/images/cart_abandonment.png | Bin 0 -> 164341 bytes .../journeys/images/multi_step_loopback.png | Bin 0 -> 180325 bytes src/engage/journeys/v2/use-cases.md | 522 ++++++++++++++++++ 3 files changed, 522 insertions(+) create mode 100644 src/engage/journeys/images/cart_abandonment.png create mode 100644 src/engage/journeys/images/multi_step_loopback.png diff --git a/src/engage/journeys/images/cart_abandonment.png b/src/engage/journeys/images/cart_abandonment.png new file mode 100644 index 0000000000000000000000000000000000000000..0cb73dacff7382fe90442fe18bf554cfdea23d0e GIT binary patch literal 164341 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 literal 0 HcmV?d00001 diff --git a/src/engage/journeys/images/multi_step_loopback.png b/src/engage/journeys/images/multi_step_loopback.png new file mode 100644 index 0000000000000000000000000000000000000000..31cac96f878ecee25c778d917a668643d7a4cf74 GIT binary patch literal 180325 zcmb@ucT`hd_b!ScBGrO`B1J`{29zcp1qJB}l0bmaYbX+Gs3HP_6s32hi4Z~w2}nng zme6}ILg+R0e&Soc-#zE`d(XXN+&?nL8hfwoy|eb3b3XH#&rHa34JBGCW-1aA5?bYF zPqau#F36IQka1tUKs@3{pU6T&a-PmcLE$-6K}o^U&Jm{l%EZh<$-=<`W@DzMBu_#j z9v-e^Xw9N?O*Xlrl<#gwK;P%jQFN!GF=#uj?zbZgrxvC5WBk!}=*J&gSH@Fq?g`Hv zXWQ_|UVD7`+n1^6sWbg=T(@lztM37s=;xW|1Gx9Q4wW)`m?)PkgiEWUzd~zpV+V67 z>%Q|7&TA9YAHMSI$4zjO@-r6#@V!4vo9BM~kaYRx(?#pk1>lQ_<&C{}?&i$*x{=lO zTTK&#yXAXlR?CIYmCn5z4;(5G$KLsAL2}B_h%$VA{_#-@<)G<4#0s z({bpJ(E!cJ()&KwCdt0;#`D7Brh_l1>&%Y1yeks0DQ&!bW>H~7xyeCdSXCVequP}H zVW#6%&9dN8NllVi*SqZBGvU#%3Hxl3#$Q$KkD#h!Z{ zY{lv}yzg+~AZxK^!n^&ibBvaxK5GCg8_B^gi5$z&$NX#WX9!n-xw1b%d1>+TCq{ts zYfYRoL68(0mzMjk$2*5^pwz^RKcgg=sF}k!1%a4N`4&GAhAaEBQJIThq;mB;_w{Pg|B3y6?+>KI7Qv%KyG@t;11G;|sS&xOP!mzT)V6pe(2y6|m28Cwlh& zjoVqbqPSYM&BM&QB~|D|o8#^{n{QQg_rcF`Xr(`VU;Tc;{c+Q&m3hJxy0cLw{o&=I z&Y?~yHg?bfBI)A*dS9goOs^VnUUa!@#cT_3X&LEDg>{~NH<}+THkyA3ra7hXCG%Sz z1(u60i?ji$d@3FFe<*FqXqe090Cen3O0zQcM1hB->^Ksi3XiIbRu}Y-XZKp=qM)sN zQSA5pW+rB3r#qa}Vd+kjuUibK1YkxmBPVv}bS2w9___#mtthL6YR)G9#aOyLcnBcP zZ5}A|z2UpLs^$Vi&|69qK~J}b2>Ng)!>S9-#g66(pMuv+dCn^i1*HSiaxWF*E^v8& zo>>pyWXS1wesbbqG9#9QM@ioJxyzdI_Q zo-mEVb1a>x=E1!Y+PTzs7*}Y*@TAsOH zlm$88aA>xgRvQVW{N0Q7Pwr5@Y0tByDXqvDVeIye!x2(0#K# zvvPU2ZtY}TyL?S1cL|sQem^4rhUEM$l5-ayk&s?~{kx(5>v}am){)h?AIPs~%dY8w zNIWeky3%DT7FB<*Y4TpCc%8FUXx7*vB|1nd_$tKEdGr;|OEw7zlt-vugz&sC!BF0; zLw}!PLip#h$_%=pwY-Y`YO48-{+d8-N1D8FHNiW11EL_~76}{_`s32YAp-tL6Z+P% zhg@fO!41Pt)~XM~OV>-w&j@Y!uBGqe*y;gtSyR^weSH0&w2ePM|6rSQ=Y_EJ0~r9= zzr$_;mVvibk~(KAilMwzL_@Kd4b{Qo)vOZABj8ZX&ti^F{X*Luem0~cW)2m?k5n9s zsYWMtdq9<^4k|UyVjB_KO7XyJbh-sLu0`(4Ws>+%E?oqq2#El#Go?z7NL*D3S5#0$ z>ge@D?KSWtG)T*uEAqTe6Z(bx0I3hEh~YlB0t%dkRJ4=Eg`*aL`Laaib&2Av@ zO-o@Ud~@U)lI94t8B=8-VWT(M-y+T~g~w85+XVqJ2CdZ(aQcPH{k#jqANyV$g+52^ zmY(wUMUeB%ezrLI+D@MoZuv!58IHmR0+~z@;~FCmu6@}fFsrCG_hiK6#vM?#-9s%U z7(_m7Sik&L`TNi%9f3~i5q%}J!ODsAK|%BszS#eif5=wu-cEwRs!8cNu8U zW@LiD^Da&x3os^A4P=4Rzu)NpIchw1u|R*xc8uy7{9i5O^6S^}B>tBKc?ggHoALZ{ z&HKCOFM5ah(7$-}->vM|#A@O+59N=S{)-|0`F#E*T#u&AR+8V5%Kz(4r#SC3`bU

    m88*j((q_Jw^e;Jv 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

    YLbLanyy&yt<8zVAJ>f|$V%`^(#F=DBy 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 \ No newline at end of file From 474713ae8b545f7ec2f85e42f0c5a9844c1c9340 Mon Sep 17 00:00:00 2001 From: pwseg Date: Mon, 23 Jun 2025 00:42:57 -0500 Subject: [PATCH 146/438] add section on duplication --- src/engage/journeys/v2/index.md | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/engage/journeys/v2/index.md b/src/engage/journeys/v2/index.md index b907e91ac8..da00670c48 100644 --- a/src/engage/journeys/v2/index.md +++ b/src/engage/journeys/v2/index.md @@ -98,6 +98,44 @@ For example, in an abandonment journey, suppose a user starts two applications ( - **Supported destinations:** Only Actions Destinations in the Segment catalog are supported. - **Data mapping:** Ensure all required keys for the destination are properly mapped to avoid errors. +## Duplicate a journey + +To save time and avoid recreating steps from scratch, you can duplicate any existing journey. + +Duplicating a journey creates a copy of the configuration and opens it in **Draft** mode. You can duplicate both draft and published journeys, but journey names must be unique. + +### What gets copied + +When you duplicate a journey, Segment copies the following: + +- Entry conditions and filters +- All journey steps and structure +- Destination actions, including: + - Event names + - Payload configuration + - Trait and context enrichment + - Attribute mappings + +Segment **doesn't** copy the following: + +- Journey name (you must enter a new, unique name) +- Activation destination keys (Segment will regenerate these) + +> warning "" +> If a destination action was disabled in the original journey, it will be enabled by default in the duplicated version. + +### How to duplicate a journey + +1. Go to **Engage > Journeys** and find the journey you want to duplicate. +2. Click the **•••** (Options menu), either in the list view or from within the journey. +3. Select **Duplicate**. +4. Enter a new name when prompted. +5. Review the duplicated journey and make any needed changes. +6. If your journey includes destination sends, be sure to copy the new destination keys into your destination system. + +> warning +> Currently, you can only duplicate journeys within the same Engage space. Duplicating across spaces or workspaces is not supported. + ## Best practices Follow the best practices in this table to optimize your event-triggered journeys: From 861a57d3bb8f7a98f35b27eab82f1b3fa9a368ac Mon Sep 17 00:00:00 2001 From: pwseg Date: Mon, 23 Jun 2025 00:49:31 -0500 Subject: [PATCH 147/438] final cleanup [netlify-build] --- src/_data/sidenav/main.yml | 2 ++ src/engage/journeys/v2/index.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index d6a9059a76..e00461267e 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -490,6 +490,8 @@ sections: title: Exit Rules - path: /engage/journeys/v2/journey-context title: Journey Context + - path: /engage/journeys/v2/use-cases + title: Use Cases - path: /engage/journeys/v2/limits title: Product Limits - path: '/engage/journeys/journeys-edits' diff --git a/src/engage/journeys/v2/index.md b/src/engage/journeys/v2/index.md index da00670c48..80d29edb96 100644 --- a/src/engage/journeys/v2/index.md +++ b/src/engage/journeys/v2/index.md @@ -216,3 +216,5 @@ Start by setting the `checkout_started` event as the trigger and specify a uniqu Say you want to follow up with users after they engage with specific content, like downloading an e-book or watching a demo video. Event-Triggered Journeys can help you send timely, personalized messages based on these interactions. To do this, set the entry event to `content_downloaded` or `video_watched` and configure the journey to send a follow-up email. You could even personalize the email with details from the triggering event, like the content title or timestamp, by configuring your destination payload to enrich the message with event-specific context. + +For detailed instructions on setting up journeys for these use cases, see [Journeys (V2) Use Cases](/docs/engage/journeys/v2/use-cases) \ No newline at end of file From a39543d1d4b0b26005255b1df9a8e4b2ebed8306 Mon Sep 17 00:00:00 2001 From: piyush-nudge Date: Mon, 23 Jun 2025 15:50:10 +0530 Subject: [PATCH 148/438] update: updated Nudge (Action) Destination docs --- .../catalog/actions-nudge/index.md | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/connections/destinations/catalog/actions-nudge/index.md b/src/connections/destinations/catalog/actions-nudge/index.md index 4c626e7551..797fd5f946 100644 --- a/src/connections/destinations/catalog/actions-nudge/index.md +++ b/src/connections/destinations/catalog/actions-nudge/index.md @@ -11,24 +11,24 @@ This destination is maintained by the Nudge Developer Team. For any issues with ## Getting started -1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Nudge". +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for **Nudge**. 2. Select **Nudge** and click **Add Destination**. 3. Select an existing Source to connect to Nudge (Actions). 4. Go to the [Nudge dashboard](https://dashboard.nudgenow.com){:target="_blank"}, and navigate to the **Settings** page. -5. Go to the **Secret Keys** section and click on the **Create new secret key** button. -6. Give appropriate name for the key, select the **Backend API** option from the permissions dropdown and create the key. +5. Go to the **Secret Keys** section and click **Create new secret key**. +6. Give an appropriate name for the key, then select the **Backend API** option from the permissions dropdown and create the key. 7. Copy the generated key and store it somewhere safe for future reference. -8. Enter the generated API key in the **Nudge** destination settings in Segment. +8. Paste the generated API key in the **Nudge** destination settings in Segment. ## Supported methods -Nudge (Actions) Destination currently supports the Identify and Track methods listed below in accordance to the core Segment Specs. Reference: [Spec Overview](https://segment.com/docs/connections/spec/) +The Nudge (Actions) Destination currently supports the Identify and Track methods listed below in accordance to the core Segment Specs. Reference: [Spec Overview](https://segment.com/docs/connections/spec/) ### Identify The Identify method lets you create or update a user in Nudge’s backend. Every Identify call should include a `userId`. See Segment's Spec for Identify for any reference: [Identify Spec](https://segment.com/docs/connections/spec/identify/) -**Example (using Segment's Analytics.js SDK)** +Example (using Segment's Analytics.js SDK): ```js analytics.identify('user123', { @@ -41,7 +41,7 @@ analytics.identify('user123', { How Nudge handles Identify calls: -* If `userId` does not exist, the request would throw a 400 validation error as it is a required field. +* If `userId` doesn't exist, the request throws a 400 validation error as it's a required field. * If `userId` already exists, Nudge merges or overwrites profile properties with the latest values. * Identify calls without `userId`, or with only `anonymousId`, are dropped. @@ -51,7 +51,7 @@ How Nudge handles Identify calls: The Track method sends custom events and their properties into Nudge. You must include `event` name in every Track call so events can be associated with the correct user. See Segment's Spec for Track for any reference: [Track Spec](https://segment.com/docs/connections/spec/track/) -**Example (using Segment's Analytics.js SDK)** +Example (using Segment's Analytics.js SDK): ```js analytics.track('Product Viewed', { @@ -71,27 +71,25 @@ How Nudge handles Track calls: ## Troubleshooting -### 1. Events not showing up in Nudge +### Events aren't showing up in Nudge -* **Missing or invalid API key** - Ensure that the API key you generated under **Settings → Secret Keys → Backend API** is correctly entered in your Segment destination settings. -* **Dropped Identify/Track calls** - Calls without `userId`, or with only `anonymousId`, are automatically dropped. Verify your mapping includes the correct identifier field. +Events may not show up in Nudge due to one of these reasons: +* **Missing or invalid API key**: Ensure that the API key you generated under **Settings → Secret Keys → Backend API** is correctly entered in your Segment destination settings. +* **Dropped Identify/Track calls**: API requests to Nudge's servers without `userId`, or with only `anonymousId`, are automatically dropped. Verify your mapping includes the correct identifier field. -### 2. Timestamp or date format errors +### Timestamp or date format errors Nudge expects all date/time properties in UTC ISO-8601 format (Javascript Date object's ISO format). If you see failed events due to timestamp validation: * Confirm you’re sending dates like `"2025-05-14T07:30:00Z"`. * Remove any timezone offsets other than `Z` (UTC). -### 3. Validation failures +### Validation failures If requests continue to fail after checking your API key and payload: -* Compare against Nudge’s specification from the documentation: [https://docs.nudgenow.com/](https://docs.nudgenow.com/). -* Ensure all required fields (e.g., `userId`, `event` name for Track) are present and correctly typed. +* Compare against Nudge’s specification from the documentation: [Nudge's Documentation](https://docs.nudgenow.com/){:target="_blank"}. +* Ensure all required fields (for example, `userId`, `event` name for Track) are present and correctly typed. ---- *If you still encounter issues, please reach out to the Nudge Developer Team or email [support@nudgenow.com](mailto:support@nudgenow.com).* From 2b3da558dd581e4f0560b03de4460eb1b8de315e Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Mon, 23 Jun 2025 14:24:52 +0100 Subject: [PATCH 149/438] Rewording + added context on using destination with Eagle Eye Source --- .../catalog/eagleeye-actions/index.md | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/connections/destinations/catalog/eagleeye-actions/index.md b/src/connections/destinations/catalog/eagleeye-actions/index.md index b2deee9e5a..f6a1347d34 100644 --- a/src/connections/destinations/catalog/eagleeye-actions/index.md +++ b/src/connections/destinations/catalog/eagleeye-actions/index.md @@ -1,34 +1,44 @@ --- title: Eagle Eye (Actions) Destination +id: 682db61f6c600fdb90251392 --- {% include content/plan-grid.md name="actions" %} -[Eagle Eye](https://eagleeye.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} delivers real-time loyalty and promotions solutions for enterprise brands, enabling seamless integration with leading customer data platforms and marketing activation tools. Their platform connects digital and in-store experiences, accelerating personalization and campaign delivery through extensible APIs and pre-built connectors. +[Eagle Eye](https://eagleeye.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} delivers real-time loyalty and promotions solutions for enterprise brands, enabling seamless integration with leading customer data platforms and marketing activation tools. The platform connects digital and in-store experiences, accelerating personalization and campaign delivery through extensible APIs and pre-built connectors. + +This integration requires both an Eagle Eye Source and Destination. The source sends events into Segment, and the destination processes those events to trigger specific behaviorial actions in Eagle Eye. + +> warning "" +> This destination must be used in tandem with a corresponding Eagle Eye Source to trigger behaviorial actions in Eagle Eye. This destination is maintained by Eagle Eye. For any issues with the destination, [contact their Support team](mailto:support@eagleeye.com). ## Getting started +To set up the Eagle Eye (Actions) destination in Segment: + 1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Eagle Eye". 2. Select "Eagle Eye (Actions)" and click **Add Destination**. 3. Select an existing Source to connect to Eagle Eye (Actions). -4. Set up your EE Connector for Segment by following the [CDP and MAP Connectors](https://developer.eagleeye.com/eagleeye-developer/docs/eagle-eye-connect-cdp-map) guide, along with the [Segment](https://developer.eagleeye.com/docs/segment) specific page for information that needs to be provided. -5. Enter the **Connector URL** and **Connector External Key** from the previous step in the "Eagle Eye (Actions)" destination settings in Segment. +4. Set up your EE Connector for Segment by following the [CDP and MAP Connectors guide](https://developer.eagleeye.com/eagleeye-developer/docs/eagle-eye-connect-cdp-map){:target="_blank”}. You'll also need to refer to the [Segment-specific page](https://developer.eagleeye.com/docs/segment){:target="_blank”} for additional information required during setup. +5. Go to the Eagle Eye (Actions) destination settings in Segment and enter the **Connector URL** and **Connector External Key** obtained in the previous step. {% include components/actions-fields.html %} ### Define mappings to trigger Behavioral Actions -> This guide makes the assumption you're taking advantage of the Eagle Eye Connector for Segment as well to send events into Segment. Still, any event is valid as long as it contains properties to be used "User identity value" and (optionally, when needed) "Wallet transaction reference". +This guide assumes you're using the Eagle Eye Connector for Segment to send events. Any event is considered valid as long as it includes the properties "User identity value" and (optionally) "Wallet transaction reference". + +To set this up, you must first configure [Social Behavioral Action Triggers](https://developer.eagleeye.com/eagleeye-developer/docs/segment#set-up-social-behavioural-action-triggers){:target="_blank”} within the Eagle Eye AIR dashboard. You can find this under **Triggers > Search** / **Create Behavioral Action**. -> To set this up you must first [Set up Social Behavioral Action Triggers](https://developer.eagleeye.com/eagleeye-developer/docs/segment#set-up-social-behavioural-action-triggers) within the Eagle Eye AIR dashboard. You can find this under **Triggers** > **Search** / **Create Behavioral Action**. +To map incoming event data and trigger behavioral actions in the Eagle Eye AIR dashboard, follow these steps: -1. Within your new Eagle Eye (Actions) destination, head to the Mappings tab and click **New Mapping**. +1. In the Eagle Eye (Actions) destination, go to the Mappings tab and click **New Mapping**. 2. From the action list, select **Trigger Behavioral Action**. -3. Define your event trigger conditions. E.g.: if a behavioral action should only trigger for customers who just joined the program, you could set "Event Type is Track" and "Event Name is EE Loyalty Program Joined" (or any other event that contains the information you need). -4. Under **Map fields**, ensure at least "User identity value" and "Behavioral Action trigger reference" are set. The trigger reference will be the same you set within the Eagle Eye AIR dashboard when creating your Behavioral Action. -5. (Optional) If your Behavioral Action requires a "Wallet transaction reference", populate it from one of the event fields as well. E.g.: an event property that may contain the transaction reference, such as `properties.order_id`. -6. Click on **Next**, type a name for your new mapping and hit **Save** or **Save and enable**. +3. Define your event trigger conditions. For example, if you want to trigger an action only for customers who just joined the program, select "Event Type is Track" and "Event Name is EE Loyalty Program Joined" (or any other event that contains the information you need). +4. Under **Map fields**, ensure that at least "User identity value" and "Behavioral Action trigger reference" are mapped. The trigger reference will be the same as the one set within the Eagle Eye AIR dashboard when creating the behavioral action. +5. (Optional) If your behavioral action requires a "Wallet transaction reference", you can pull it from one of the event fields. For example, an event property that may contain the transaction reference, such as `properties.order_id`. +6. Click **Next**, give the mapping a name and hit **Save** or **Save and enable**. -For more information on events sent through the Eagle Eye Connector for Segment and their properties, refer to the [Data Model](https://developer.eagleeye.com/eagleeye-developer/docs/segment#data-model) documentation. \ No newline at end of file +For more information on events sent through the Eagle Eye Connector for Segment and their properties, refer to the [Data Model](https://developer.eagleeye.com/eagleeye-developer/docs/segment#data-model){:target="_blank”} documentation. From 00c7a2f842f56391b34d3b2cc4401e59ff465db9 Mon Sep 17 00:00:00 2001 From: tbols17 <113375224+tbols17@users.noreply.github.com> Date: Mon, 23 Jun 2025 09:47:28 -0700 Subject: [PATCH 150/438] Traits as Features.md Updated wording to talk about ability to factor in traits into the models --- src/unify/Traits/predictions/index.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/unify/Traits/predictions/index.md b/src/unify/Traits/predictions/index.md index f9fc14f291..1df63a3d2a 100644 --- a/src/unify/Traits/predictions/index.md +++ b/src/unify/Traits/predictions/index.md @@ -25,7 +25,7 @@ Follow these steps to build a prediction: - (For custom Predictive Goals) Add a condition(s) and event(s) to predict. - Select the event and (optional) property that you want to use to make a prediction. 5. Select a time period for the prediction. -6. (Optional) In **Include all events**, uncheck any events you don't want Segment to factor into the prediction. +6. (Optional) In **Include all events** and **Include all new traits** uncheck any events or traits you don't want Segment to factor into the prediction. 7. Click **Calculate**. If you're satisfied with the available data, click **Next**. 5. (Optional) Connect a Destination, then click **Next**. 6. Add a name and description for the Trait, then click **Create Trait**. @@ -34,7 +34,7 @@ Keep the following in mind when you build a prediction: - Segment lets you predict the likelihood of a customer performing multiple events. - You can choose a time period of 15, 30, 60, 90, or 120 days. -- You have granular control over the events Segment factors into the predictive model. By default, Segment's model makes predictions on all events sent to Engage. Segment lets you exclude events you don't want included by unselecting **Include all events**, then filtering out any events you want excluded from the model. +- You have granular control over the events Segment factors into the predictive model. By default, Segment's model makes predictions on all events and custom traits sent to Engage. Segment lets you exclude events or traits you don't want included by unselecting **Include all events** or **Include all new traits**. In the next section, you'll learn more about the four available predictions. @@ -95,6 +95,9 @@ This table lists the requirements for a trait to compute successfully: Some customers want to specifically include or exclude events that get fed into the model. For example, if you track different events from an EU storefront compared to a US storefront and you only want to make predictions using data from the US, you could unselect the events from the EU space. This step is optional, Segment only recommends using it if you have a clear reason in mind for removing events from becoming a factor in the model. +#### Selecting traits (optional) +Some customers want to specifically include or exclude certain traits that get fed into the model. Today, we only utilize numerical or boolean custom traits found in your space. You have the ability to exclude specific traits from your model. We will attempt to build a model with the traits you selected, but selecting it in the UI does not guarantee that the trait will be factored in. If you keep **Include all new traits** selected, this make sure any new trait that you start tracking will be factored into the model. If you unselect this option, any new traits that you create will not be factored into the model's calculation. + > info "Predictive Traits and anonymous events" > Predictive Traits are limited to non-anonymous events, which means you'll need to include an additional `external_id` other than `anonymousId` in the targeted events. If want to create Predictive Traits based on anonymous events, reach out to your CSM with your use case for creating an anonymous Predictive Trait and the conditions for trait. From 062de4a26e803a1e084f5ab8ff2c0f25531eccb2 Mon Sep 17 00:00:00 2001 From: Gil Omer Date: Mon, 23 Jun 2025 12:51:20 -0400 Subject: [PATCH 151/438] mark as private beta --- .../reverse-etl/reverse-etl-source-setup-guides/db2-setup.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 915a9d71bc..e269149de5 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -2,6 +2,9 @@ title: Db2 Reverse ETL Setup --- +> info "Db2 Reverse ETL Private Beta" +> Db2 Reverse ETL is currently in Private Beta and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. + Set up Db2 as your Reverse ETL source. At a high level, when you set up Db2 for Reverse ETL, the configured database user must have read permissions on any tables involved in the query and write permissions on a managed schema (`SEGMENT_REVERSE_ETL`) that Segment uses to track sync progress. Segment authenticates with your Db2 instance through a username and password. From 689f4f3c6fd952a381d80bb7a0a122fcfa392232 Mon Sep 17 00:00:00 2001 From: pwseg Date: Mon, 23 Jun 2025 12:42:48 -0500 Subject: [PATCH 152/438] more cleanup --- src/engage/journeys/use-cases.md | 1 + src/engage/journeys/v2/index.md | 3 +-- src/engage/journeys/v2/use-cases.md | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/engage/journeys/use-cases.md b/src/engage/journeys/use-cases.md index ee855ab41b..635f5a1bdc 100644 --- a/src/engage/journeys/use-cases.md +++ b/src/engage/journeys/use-cases.md @@ -1,6 +1,7 @@ --- title: Example Journeys Use Cases plan: engage-foundations +hidden: true redirect_from: - "/personas/journeys/use-cases" --- diff --git a/src/engage/journeys/v2/index.md b/src/engage/journeys/v2/index.md index 80d29edb96..470d26fa8f 100644 --- a/src/engage/journeys/v2/index.md +++ b/src/engage/journeys/v2/index.md @@ -155,9 +155,8 @@ Segment built Event-Triggered Journeys to respond instantly to events, offering - **Entry event requirements**: The entry event you use must already exist in your Segment workspace for it to appear as a selection in journey setup. Make sure that you've already created the event before setting up your journey. - **Event property filters**: You can filter event properties using the `equals` or `equals any of` operators. When you apply multiple conditions, filters operate with `AND` logic, meaning all conditions must be true for the event to trigger entry into the journey. - **Audience filtering**: You can only use active, pre-existing audience records as filters. For more complex filtering, like specific profile traits or multiple audiences, first [create the audience](/docs/engage/audiences/#building-an-audience) in **Engage > Audiences**, then apply it as a filter once it’s live. -- **Destination options**: While Event-Triggered Journeys support all [actions-based destinations](/docs/connections/destinations/actions/) and Destination Functions, you can only add one destination per Send to Destination step. If you need to send to multiple destinations, you can use multiple Send to Destination steps. +- **Destination options**: Event-Triggered Journeys support all [actions-based destinations](/docs/connections/destinations/actions/) and Destination Functions. - **Event payload structure**: Each payload sent to a destination includes a unique key to identify the specific send step within the journey, rather than the journey instance itself. You can also set a custom event name to make it easier to identify the specific event instance you want to track in your destination. -- **Editing and versioning**: After you publish an event-triggered journey, you won't be able to edit it. To modify a journey, create a new journey. - **Real-time delivery**: Event-Triggered Journeys aim for an expected delivery time of under 5 minutes from the moment an event is performed to when the payload reaches the destination, assuming there is no delay step in the journey. However, external factors outside of Segment's control may occasionally introduce latency. ## Observability diff --git a/src/engage/journeys/v2/use-cases.md b/src/engage/journeys/v2/use-cases.md index c862e3a3c7..1d5720610d 100644 --- a/src/engage/journeys/v2/use-cases.md +++ b/src/engage/journeys/v2/use-cases.md @@ -1,6 +1,8 @@ --- title: Journeys (V2) Use Cases plan: engage-foundations +redirect_from: + - "/engage/journeys/use-cases" --- Event-Triggered Journeys give you the tools to create real-time, personalized flows that react to user behavior as it happens. This page explains sample use cases to help you get started with common patterns like confirmations, abandonment campaigns, and re-engagement flows. From a53c440a4c7a520c389f0d252d6b75cef0846477 Mon Sep 17 00:00:00 2001 From: pwseg Date: Mon, 23 Jun 2025 12:43:22 -0500 Subject: [PATCH 153/438] remove use cases from sidenav --- src/_data/sidenav/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index e00461267e..f518b83825 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -500,8 +500,6 @@ sections: title: Journeys Analytics - path: '/engage/journeys/faq-best-practices' title: Journeys Best Practices and FAQ - - path: '/engage/journeys/use-cases' - title: Example Journeys Use Cases - path: '/engage/journeys/journeys-logic' title: Understand Journeys Logic - path: '/engage/journeys/key-terms' From 08eb0e892f0d42c4e4fce9e305a2ac6308da30ce Mon Sep 17 00:00:00 2001 From: Gil Omer Date: Mon, 23 Jun 2025 12:58:30 -0400 Subject: [PATCH 154/438] [netlify-build] explain DB2 array and json support --- .../reverse-etl-source-setup-guides/db2-setup.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index e269149de5..4f4791e285 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -70,3 +70,19 @@ To set up Db2 as your Reverse ETL source: 8. If the connection is successful, click **Add source**. After successfully adding your Db2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. + +> info "Array and JSON Support" +> Db2 does not have native `ARRAY` or `JSON` data types. Segment provides a simple convention-based workaround: +> +> **JSON columns** +> JSON values can be stored as `VARCHAR` or `CLOB`. Segment will detect them as JSON if the column name (or column alias) ends with `_JSON`. +> +> Example: +> `SELECT data AS data_JSON FROM my_table;` +> +> +> **Array columns** +> Arrays can be represented as `VARCHAR` columns with names ending in `_ARRAY`. +> The value should be either: +> - a JSON-encoded array (e.g. `'["a","b","c"]'`), or +> - a comma-separated string (e.g. `'a,b,c'`). From 1814a2172652e583a4759308eaf3d3c4d9fac7fc Mon Sep 17 00:00:00 2001 From: pwseg Date: Mon, 23 Jun 2025 22:34:06 -0500 Subject: [PATCH 155/438] fix broken image link [netlify-build] --- src/engage/journeys/v2/event-triggered-journeys-steps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engage/journeys/v2/event-triggered-journeys-steps.md b/src/engage/journeys/v2/event-triggered-journeys-steps.md index 63c19ef59e..5115506dd0 100644 --- a/src/engage/journeys/v2/event-triggered-journeys-steps.md +++ b/src/engage/journeys/v2/event-triggered-journeys-steps.md @@ -7,7 +7,7 @@ redirect_from: [Event-Triggered Journeys](/docs/engage/journeys/event-triggered-journeys/) in Engage use steps to control how users move through a journey based on their actions or predefined conditions. -Steps are the building blocks of a journey. This page explains the **Hold Until**, **Send to Destination**, and **Data split** steps, which enable precise control over journey progression and data delivery. +Steps are the building blocks of a journey. This page explains the **Hold until**, **Delay**, **Data split**, **Randomized split**, and **Send to Destination** steps, which enable precise control over journey progression and data delivery. ## Hold Until: smart pauses in journeys @@ -51,7 +51,7 @@ Enable this feature by selecting **Send profiles back to the beginning of this s Segment recommends putting branches for recurring events at the top of the list to improve readability. -![Flow diagram of an Event-Triggered Journey for an abandoned cart scenario. The journey starts with a trigger event labeled 'Cart_Modified,' followed by a 'Hold Until' step checking if the user buys within two hours. The Hold Until step includes three branches: 'User updated cart, reset timer' for additional cart modifications, 'User purchased' triggered by an 'Order_Confirmation' event, and a 'Maximum hold duration' fallback set to two hours, which leads to a 'Send Abandonment Nudge' step. The flow ends with a 'Completed' state.](images/hold_until.png) +![Flow diagram of an Event-Triggered Journey for an abandoned cart scenario. The journey starts with a trigger event labeled 'Cart_Modified,' followed by a 'Hold Until' step checking if the user buys within two hours. The Hold Until step includes three branches: 'User updated cart, reset timer' for additional cart modifications, 'User purchased' triggered by an 'Order_Confirmation' event, and a 'Maximum hold duration' fallback set to two hours, which leads to a 'Send Abandonment Nudge' step. The flow ends with a 'Completed' state.](../images/hold_until.png) In this example, users enter the journey when they modify their cart and wait for either a purchase or two hours to pass. If the user modifies their cart again during those two hours, the cart contents are updated, and the two-hour timer resets. As a result, follow-ups reflect the latest information. From 59162282c120d9ac29f814e84f179977d9365dc7 Mon Sep 17 00:00:00 2001 From: pwseg Date: Mon, 23 Jun 2025 23:23:37 -0500 Subject: [PATCH 156/438] exit rules fixes --- src/engage/journeys/v2/exit-rules.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/engage/journeys/v2/exit-rules.md b/src/engage/journeys/v2/exit-rules.md index 0a12787ddf..229c4c2e18 100644 --- a/src/engage/journeys/v2/exit-rules.md +++ b/src/engage/journeys/v2/exit-rules.md @@ -17,7 +17,7 @@ Exit rules don't wait for a profile to reach a specific step; they apply globall ## Configuring exit rules -You'll set up exit rules in the journey’s settings panel. By default, journeys don’t have any exit conditions, but you can choose to add up to five exit events. +You'll set up exit rules in the journey’s settings panel. By default, journeys don’t have any exit conditions, but you can choose to add up ten five exit events. ## Basic setup @@ -31,8 +31,6 @@ For each exit rule, choose the event that should trigger the exit. You can also You can optionally require that the exit event matches the same identifier used in the entry event. This helps tie the two together, like if a journey starts with a `Cart_Modified` event and should exit only when `Order_Purchased.cart_id` matches the same cart. -Each exit rule must be mutually exclusive. - > success "Exit rules Analytics" > You can track how exit rules are performing from the journey overview, which shows total exits per rule, and from individual step details, which show where users exited. @@ -73,6 +71,6 @@ Follow these tips to make sure your exit rules behave as expected: As you work with exit rules, keep the following in mind: -- You can configure up to 5 exit events per journey. +- You can configure up to 10 exit events per journey. - Journeys support only one destination send for exit events. - If an exit rule is triggered, it overrides all other steps. The user exits immediately, even if they’re mid-delay or hold. From ed0caca5abe9a2d37600c29e365f4dda0b6b6aad Mon Sep 17 00:00:00 2001 From: pwseg Date: Mon, 23 Jun 2025 23:26:25 -0500 Subject: [PATCH 157/438] final fixes --- src/engage/journeys/v2/journey-context.md | 6 +++--- src/engage/journeys/v2/limits.md | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/engage/journeys/v2/journey-context.md b/src/engage/journeys/v2/journey-context.md index c739180709..3af03577c6 100644 --- a/src/engage/journeys/v2/journey-context.md +++ b/src/engage/journeys/v2/journey-context.md @@ -13,11 +13,11 @@ This page explains Journey context, which can help you dynamically adapt each jo Unlike traditional audience-based journeys, which rely solely on user progress through predefined steps, event-triggered journeys capture and store the details of user-triggered events. This shift allows you to access the data that caused users to reach a specific step and use it to make more precise decisions throughout the journey. -With journey context, you can: +With journey context you can personalize customer experiences using real-time event data. - + For example: diff --git a/src/engage/journeys/v2/limits.md b/src/engage/journeys/v2/limits.md index ac298de5c5..ab0269f8d0 100644 --- a/src/engage/journeys/v2/limits.md +++ b/src/engage/journeys/v2/limits.md @@ -14,17 +14,17 @@ This page outlines product limitations for Event-Triggered (V2) Journeys. | Step name | 73 characters | Maximum length for step names. | | Branch name | 73 characters | Maximum length for branch names within a split step. Branch names must be unique across the journey. | | Additional branches | 5 | Maximum number of branches supported in a split or Hold Until step. | -| Delay duration | Minimum: 5 minutes
    Maximum: 6 months | Allowed time range for Delay and Hold Until steps. | +| Delay duration | Minimum: 5 minutes
    Maximum: 182 days | Allowed time range for Delay and Hold Until steps. | | Unique identifier | 500 characters | For “Re-enter every time event occurs” rules, you must define a unique identifier. The value is limited to 500 characters. | ## Throughput -| Name | Limit | Description | -| ------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | -| Requests per second (RPS) | 25 events/sec/profile | Maximum events per second per Segment ID. Timer events are excluded. Excess events get dropped. | -| Instances per profile | 25 concurrent instances | Maximum concurrent Journey instances per profile. | -| Loop back branch | 100 instances | Maximum instances that can pass through a Wait Until loop-back. | +| Name | Limit | Description | +| ------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Requests per second (RPS) | 25 events/sec/profile | Maximum events per second per Segment ID. Timer events are excluded. Excess events get dropped. | +| Instances per profile | 25 concurrent instances | Maximum concurrent Journey instances per profile. | +| Send profiles back branch | 100 instances | Maximum count a single journey instance can pass through a Wait Until Send profiles back to the beginning of this step' branch. | ## Journey context From 6af59f88a05e4678f9aef40a53f55c023b705f8b Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 24 Jun 2025 12:38:04 +0100 Subject: [PATCH 158/438] Removed public beta details --- .../destinations/catalog/actions-webhook-extensible/index.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 5c3e5484bf..5c7117f213 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -1,7 +1,7 @@ --- title: Extensible Webhooks Destination id: 66b1f528d26440823fb27af9 -beta: true +beta: false hidden: true redirect_from: '/connections/destinations/catalog/extensible-webhook/' --- @@ -14,9 +14,6 @@ This destination is not currently available in EU regions. Segment maintains this destination. For any issues, [contact Segment Support](friends@segment.com). -> info "Public beta" -> Extensible Webhooks is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. - ## Overview To set up and use Extensible Webhooks, you'll follow these four main stages: From 325b13cb6db067b8a0d8e91e26fea7e99b265768 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 24 Jun 2025 14:06:14 +0100 Subject: [PATCH 159/438] Update src/connections/destinations/catalog/actions-webhook-extensible/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../destinations/catalog/actions-webhook-extensible/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 5c7117f213..3df2563d8d 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -1,7 +1,6 @@ --- title: Extensible Webhooks Destination id: 66b1f528d26440823fb27af9 -beta: false hidden: true redirect_from: '/connections/destinations/catalog/extensible-webhook/' --- From 7834457df40697918faea031a0ed997368b95bcf Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Tue, 24 Jun 2025 11:43:50 -0400 Subject: [PATCH 160/438] dotdigital hotfix --- src/_data/catalog/destinations.yml | 694 ++++++++++++++---- .../destinations/catalog/dotdigital/index.md | 10 +- 2 files changed, 571 insertions(+), 133 deletions(-) diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml index 49a555327e..27a1ad5dac 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 2025-06-20 +# destination data last updated 2025-06-24 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -22981,7 +22981,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: 4SZLfMZWauRsjZLZ5vbmQi + - id: 7D52sshqeGKc93QxdSes6a sortOrder: 0 fieldKey: external_id label: External User ID @@ -22995,7 +22995,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2hjzkBBxYk6qCuDTyUuMBT + - id: GPzn5npufu3XRJAVVZZ3Z sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23009,7 +23009,7 @@ items: choices: null dynamic: false allowNull: false - - id: pKUo2zUobMheqCsYF5DLgT + - id: 9eVowxaWfmfxZKpfcMatEm sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -23023,7 +23023,7 @@ items: choices: null dynamic: false allowNull: true - - id: ecQGykv2mQR23xymLncKXE + - id: i1U9z9FVV9e8Zh4FpzpMos sortOrder: 3 fieldKey: country label: Country @@ -23037,7 +23037,7 @@ items: choices: null dynamic: false allowNull: true - - id: wGzdUBqVKRPitvJsNDBKPN + - id: rAD8wypjQo52HZ9ZP58Zv7 sortOrder: 4 fieldKey: current_location label: Current Location @@ -23054,7 +23054,7 @@ items: choices: null dynamic: false allowNull: true - - id: j92mMtWjdxH3hTDW5QjjyL + - id: vaKjs9L1Z9rVmZCFwJCwHr sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -23066,7 +23066,7 @@ items: choices: null dynamic: false allowNull: true - - id: mYYVgXRCASZtcZV3dPUcx8 + - id: 8JgDgtbDmPkjYVqVjFtZCP sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -23078,7 +23078,7 @@ items: choices: null dynamic: false allowNull: true - - id: v93j3URCHV4tDAZraMHQ4F + - id: uxYJdHzFUsAsPAv3Ju5pGn sortOrder: 7 fieldKey: dob label: Date of Birth @@ -23090,7 +23090,7 @@ items: choices: null dynamic: false allowNull: true - - id: hRAHX5eakVo5Q4bwYUgYPb + - id: eg5PwVgoyxG965XEcBeUG sortOrder: 8 fieldKey: email label: Email @@ -23104,7 +23104,7 @@ items: choices: null dynamic: false allowNull: true - - id: eYoYEQv9ubyU2FqvyhBRKB + - id: eHcbBUYSPQVYv4CSvi2Br7 sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -23119,7 +23119,7 @@ items: choices: null dynamic: false allowNull: false - - id: ccuLRfCp356pAx3LabXLom + - id: 6DKrxS6sQT17xc8PYaGHUV sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -23133,7 +23133,7 @@ items: choices: null dynamic: false allowNull: false - - id: xe2vM6S9kZgaagFG9v4YcE + - id: tiSvSqji5eAE5csZYDqyjV sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -23147,7 +23147,7 @@ items: choices: null dynamic: false allowNull: false - - id: tX1phHcgpfgqVTNMfsDcsS + - id: aT2FRqdbQewqq5o8CdAmkf sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -23161,7 +23161,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4uZ1xgNqNzdPiWgBXEFLi2 + - id: bKeVycHxVkcmbnkBVdpxRX sortOrder: 13 fieldKey: first_name label: First Name @@ -23175,7 +23175,7 @@ items: choices: null dynamic: false allowNull: true - - id: 57oVwoa9wijrHeos3M4Ehk + - id: sz5ZZCiDdcN6DzhoJpqN76 sortOrder: 14 fieldKey: gender label: Gender @@ -23191,7 +23191,7 @@ items: choices: null dynamic: false allowNull: true - - id: oJndpzi8NQdpAvZEKMXoxW + - id: 6VcU3UcKjnYH6i5FLiwo1J sortOrder: 15 fieldKey: home_city label: Home City @@ -23205,7 +23205,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8rwF5WYg4rEG1Kxiub1MR1 + - id: pQyksUAhQTT76Czp4DXMkD sortOrder: 16 fieldKey: image_url label: Image URL @@ -23219,7 +23219,7 @@ items: choices: null dynamic: false allowNull: true - - id: vbqjF1abBkFZvzFLSBeJHB + - id: etwRLzKDuNAQLnELuUn7u5 sortOrder: 17 fieldKey: language label: Language @@ -23231,7 +23231,7 @@ items: choices: null dynamic: false allowNull: true - - id: aj24j482KuXfak3adAtc9Q + - id: kSWj93FmLNvVGwK2wKtzhX sortOrder: 18 fieldKey: last_name label: Last Name @@ -23245,7 +23245,7 @@ items: choices: null dynamic: false allowNull: false - - id: itZcJ4gvmqjj9yT7mRyUuz + - id: ud5V9kEhZivKmTmeEYtUvZ sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -23257,7 +23257,7 @@ items: choices: null dynamic: false allowNull: true - - id: rSvvnQ3Vr3enCZPw2eoUY3 + - id: bQpbE4kNNGCEu3ZKcSWD5A sortOrder: 20 fieldKey: phone label: Phone Number @@ -23271,7 +23271,7 @@ items: choices: null dynamic: false allowNull: true - - id: 3bV8oZRzk4BgUwFMpuUbm6 + - id: e5JJFegnjEFYASgTCdBvt1 sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -23286,7 +23286,7 @@ items: choices: null dynamic: false allowNull: false - - id: qfSXBq9F9ZVy8UmsjBvamc + - id: msKU15gTUpCVQohSwt7MgK sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -23303,7 +23303,7 @@ items: choices: null dynamic: false allowNull: false - - id: eMAfNw5Sfwa4HY33q3mbiU + - id: mSpKEX3wXRsygd1N3acZAu sortOrder: 23 fieldKey: time_zone label: Time zone @@ -23318,7 +23318,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3ygYjwwmQAcg7oPJ1MysFG + - id: j7Z4A4vgBWofeXDje1YuXP sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -23333,7 +23333,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6xbjHGrsoYVTFYaMwd6dMt + - id: h8PvQzc9xkcPxkNyYp5CaK sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -23347,7 +23347,7 @@ items: choices: null dynamic: false allowNull: false - - id: hyhKzxhDcGUs789x9Ta4C5 + - id: ge6cpuJStAa5k4UsYKMyeM sortOrder: 26 fieldKey: _update_existing_only label: Update Existing Only @@ -23362,7 +23362,7 @@ items: choices: null dynamic: false allowNull: false - - id: nZsyPH2Nc8pcTTvYUrGDuR + - id: 3VoCEtSrjf359aU7Zjuwdf sortOrder: 27 fieldKey: enable_batching label: Batch Data to Braze @@ -23385,7 +23385,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: eKVK7HZhzSQZ94cDYGQDj6 + - id: wQhyD6jhLpnjTeZhAUZKFZ sortOrder: 0 fieldKey: external_id label: External User ID @@ -23399,7 +23399,7 @@ items: choices: null dynamic: false allowNull: false - - id: eGVDpzBNXD89ZVjjeEmzSL + - id: mVgitfey16XCavqAmWu4JK sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23413,7 +23413,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6J7BfhTX7CExc4USxbsUTS + - id: nVyU7TytKE5T9D7uvQWPTD sortOrder: 2 fieldKey: email label: Email @@ -23433,7 +23433,7 @@ items: choices: null dynamic: false allowNull: false - - id: hwXrUZXZYLnRr7219AMyhJ + - id: 8H3PRc11kp7pEsUGanQDoG sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -23447,7 +23447,7 @@ items: choices: null dynamic: false allowNull: true - - id: t92fxYyrAJxZnLDCRwq7Vz + - id: ms8v4dNJ7vaeGWDuBDQmrU sortOrder: 4 fieldKey: name label: Event Name @@ -23461,7 +23461,7 @@ items: choices: null dynamic: false allowNull: false - - id: hmQzrpFonxysbhaYfuurxG + - id: vt9Qhx441WZMz8yyndrxRY sortOrder: 5 fieldKey: time label: Time @@ -23475,7 +23475,7 @@ items: choices: null dynamic: false allowNull: false - - id: oz4zEp8Nrnp39xGyL4uvm7 + - id: pXKock3fSjHQmHmLJX8rHP sortOrder: 6 fieldKey: properties label: Event Properties @@ -23489,7 +23489,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6U2fRgdQnWVMtXRSQc1xnR + - id: tr9s2UYZqMgginTwBV5yx2 sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -23504,7 +23504,7 @@ items: choices: null dynamic: false allowNull: false - - id: kAYeu1gEtcJDAoEjfzXNJZ + - id: bDyxikSqXCVdsfMzoSwMFa sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -23527,7 +23527,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: 3iHCY7pEXbLgRc7ha8jXEu + - id: nmQjEgM21v1FMyjh6jjTEa sortOrder: 0 fieldKey: external_id label: External User ID @@ -23541,7 +23541,7 @@ items: choices: null dynamic: false allowNull: false - - id: ts9FV5yDZbcwTJVLTcDXdn + - id: iQxTBVaU3v399dESHoFdLD sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23555,7 +23555,7 @@ items: choices: null dynamic: false allowNull: false - - id: qzmvBgLmNhG6UctydRTmyN + - id: wAswWmSH4oFxMEyaP1TrWr sortOrder: 2 fieldKey: email label: Email @@ -23569,7 +23569,7 @@ items: choices: null dynamic: false allowNull: false - - id: ohGKWa2F2gq58CDvJTnRa9 + - id: 7GHennZN9fEcno4wvLze9d sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -23583,7 +23583,7 @@ items: choices: null dynamic: false allowNull: true - - id: iSTbsArgHqknDKSV2Pj7P1 + - id: r1faJnVeKTF1uMSk2ahxp9 sortOrder: 4 fieldKey: time label: Time @@ -23597,7 +23597,7 @@ items: choices: null dynamic: false allowNull: false - - id: kRAPSaT2253FsBiB3FSrgd + - id: d61Yxn3DrHNqAzECwmcmZ1 sortOrder: 5 fieldKey: products label: Products @@ -23611,7 +23611,7 @@ items: choices: null dynamic: false allowNull: false - - id: gwRK6CsMKJdXnW6NwCEQZW + - id: czM5i5jv9qsVHDsChA5a1X sortOrder: 6 fieldKey: properties label: Event Properties @@ -23625,7 +23625,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8fciCUNZsuTkdaADgf2mvG + - id: fco3iGcJLN5WYiPEZH6XZc sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -23640,7 +23640,7 @@ items: choices: null dynamic: false allowNull: false - - id: v8CL9eUkogvXRzPnxWKFTL + - id: 37bkHhgRpu2mPq4kxGdZmR sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -23677,7 +23677,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 52rdoB1FTQPFQwSMnTd5Yn + - id: 7wAKnZr6664Bthucnm3ZQj sortOrder: 0 fieldKey: external_id label: External ID @@ -23689,7 +23689,7 @@ items: choices: null dynamic: false allowNull: false - - id: vuFAwyJj3dRTVQQoxHEXp + - id: sk1oszwK89BKqaBqJbkDPr sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23703,7 +23703,7 @@ items: choices: null dynamic: false allowNull: false - - id: uuisUF3EgMd4LYMmbKCFFj + - id: ia3PkBWqFYzqQ6Q1PogRvE sortOrder: 2 fieldKey: merge_behavior label: Merge Behavior @@ -23732,7 +23732,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: rxUcVZubWGaHjpfxGv397U + - id: jwjWpUqLuXYxLmLyhSij9L sortOrder: 0 fieldKey: external_id label: External ID @@ -23744,7 +23744,7 @@ items: choices: null dynamic: false allowNull: true - - id: qzTfrqukKo3HpiemkY6ZTd + - id: 3J3pcNHjV1ebT4QbBtSFsY sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -23756,7 +23756,7 @@ items: choices: null dynamic: false allowNull: false - - id: sJ5AQ44tK2aLxyv6asidx3 + - id: fJSVZKap8ZFaUzax5vFu2R sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -23776,7 +23776,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: nNbRHTfivkbHKtVYjSyDX1 + - id: 73W4JCdbFGGwWYJFT9ozux sortOrder: 0 fieldKey: external_id label: External User ID @@ -23790,7 +23790,7 @@ items: choices: null dynamic: false allowNull: false - - id: epRvFSvVcCMHHdLtGd5cSV + - id: hf2PbivozqvbBnYCZF19x9 sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23804,7 +23804,7 @@ items: choices: null dynamic: false allowNull: false - - id: fcGi7U9UFFwPSKQkSu3ZCe + - id: eGXuT7ifEi6huiMrXA7mtH sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -23818,7 +23818,7 @@ items: choices: null dynamic: false allowNull: true - - id: pdXAK2KiLXFV2x2ySsA7RG + - id: sJzXQEyZWv2GSiwnqt7YGj sortOrder: 3 fieldKey: country label: Country @@ -23832,7 +23832,7 @@ items: choices: null dynamic: false allowNull: true - - id: 5V3isSzkWUCgSzvAFXSYD7 + - id: iXeFjzENDPypdVk84RaRfF sortOrder: 4 fieldKey: current_location label: Current Location @@ -23849,7 +23849,7 @@ items: choices: null dynamic: false allowNull: true - - id: dpfdq4mtkJGUozf6WDmt7a + - id: xhvVBjr8FB7sRM5i3LQfys sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -23861,7 +23861,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8jSHxiGN4RD1Fjxy49spsS + - id: 9wLXd53AYP1vehdDexqZA5 sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -23873,7 +23873,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8GL1ZMyRWu5r4Ma6Km3BTQ + - id: wJrJktCCM2b5pf7i279zbw sortOrder: 7 fieldKey: dob label: Date of Birth @@ -23885,7 +23885,7 @@ items: choices: null dynamic: false allowNull: true - - id: nLhGAZs6LHdZE3TXUi4ux8 + - id: 6UMEgUtYP3PdjWyqJNhK2G sortOrder: 8 fieldKey: email label: Email @@ -23899,7 +23899,7 @@ items: choices: null dynamic: false allowNull: true - - id: r33ZMFYevEsUwGqyWZwoow + - id: Ywic4AQkhsa74BvHSXt5p sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -23914,7 +23914,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3fCr9Tk1TLq2EibJ3vZ8Uz + - id: wvLfVTnwYed8r3duVA17Xk sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -23928,7 +23928,7 @@ items: choices: null dynamic: false allowNull: false - - id: pHu3vrFDC1ZB3cWJmCymoo + - id: w3RhagRGKeRdP8HcTdbzUw sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -23942,7 +23942,7 @@ items: choices: null dynamic: false allowNull: false - - id: hcZDHoeceZWXyf1FoAhCTP + - id: wti8BaHp3C9Z5yc5evv1iB sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -23956,7 +23956,7 @@ items: choices: null dynamic: false allowNull: false - - id: fqsNFme8AtJLf2oSavwFZi + - id: i5WUyMTvfMQ3Sn466Kg8U9 sortOrder: 13 fieldKey: first_name label: First Name @@ -23970,7 +23970,7 @@ items: choices: null dynamic: false allowNull: true - - id: 51FCQ2iFzFWLHF5HFc6qFP + - id: eYcgrssN9E3ja4KdS7B3Kp sortOrder: 14 fieldKey: gender label: Gender @@ -23986,7 +23986,7 @@ items: choices: null dynamic: false allowNull: true - - id: k8BkV6HFKzUo3MrfNgJZet + - id: duPiSBdahmSC9Nba5YMqHQ sortOrder: 15 fieldKey: home_city label: Home City @@ -24000,7 +24000,7 @@ items: choices: null dynamic: false allowNull: true - - id: tfd4wVgvBQXnrVCXY6ffey + - id: kAzuB3rxqeFYfJ4qn5eN6s sortOrder: 16 fieldKey: image_url label: Image URL @@ -24014,7 +24014,7 @@ items: choices: null dynamic: false allowNull: true - - id: aVsj6td2y9Kx4Wxmvjhjum + - id: jXCBXvcBx9K68Te54C8m2t sortOrder: 17 fieldKey: language label: Language @@ -24026,7 +24026,7 @@ items: choices: null dynamic: false allowNull: true - - id: hpAPbmskessh2xLCNaZ5xS + - id: pUPadBHai8sogJYd2KGMuu sortOrder: 18 fieldKey: last_name label: Last Name @@ -24040,7 +24040,7 @@ items: choices: null dynamic: false allowNull: false - - id: i7VYfqNfSRyY4ijRG8RGqD + - id: hZwBuqr7xFyBPC7n7RjNbn sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -24052,7 +24052,7 @@ items: choices: null dynamic: false allowNull: true - - id: 4AMhs5AqmJxD7iHNjfa4jh + - id: b9DqG3S9KD6zHGFxvDG7aZ sortOrder: 20 fieldKey: phone label: Phone Number @@ -24066,7 +24066,7 @@ items: choices: null dynamic: false allowNull: true - - id: fN3XyfDt85Wo9XF13o2mp3 + - id: hu6ycTCSBh6WjGF3F3rV5e sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -24081,7 +24081,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9W7YnSGEYXdFHSDp8Eqyfk + - id: qimfMGkj27DMRCinoTerdY sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -24098,7 +24098,7 @@ items: choices: null dynamic: false allowNull: false - - id: h1KzAQkghErMParVQYmVP4 + - id: 5NEvLp37XTMZTB2WTGJyBH sortOrder: 23 fieldKey: time_zone label: Time zone @@ -24113,7 +24113,7 @@ items: choices: null dynamic: false allowNull: false - - id: mWegeLrK1pSRfdz7ndxmNG + - id: eEPfhdMVPXqA3brG4s5NNa sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -24128,7 +24128,7 @@ items: choices: null dynamic: false allowNull: false - - id: j8FFbyFeAMCF4VaaZdNpBB + - id: kNVSEUduJ4HVH5BSzjLVzW sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -24142,7 +24142,7 @@ items: choices: null dynamic: false allowNull: false - - id: rH4ZqgqLx5oRh2q1FMkPg2 + - id: guj6bxBhqCnWJLDURGi2yC sortOrder: 26 fieldKey: enable_batching label: Batch Data to Braze @@ -24165,7 +24165,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: wNMiNfNuZU2kdZMAjPRsvC + - id: nQpuSNMvbTYC4tiP5vuCM3 sortOrder: 0 fieldKey: external_id label: External User ID @@ -24179,7 +24179,7 @@ items: choices: null dynamic: false allowNull: false - - id: f6jVmEXzhAU1mBGinrCQ5M + - id: vXyDaJmu7tECwDCdazx8qM sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24193,7 +24193,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8TtMhkjC1NT58rYS4PqMYz + - id: wCgCskVonTYaDeAvgXHHhA sortOrder: 2 fieldKey: email label: Email @@ -24213,7 +24213,7 @@ items: choices: null dynamic: false allowNull: false - - id: sHUGG93hPPxjTdKgb8Ua2p + - id: dRKg2tMusnKuizBeRSxid4 sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -24227,7 +24227,7 @@ items: choices: null dynamic: false allowNull: true - - id: 7XYCRe2CSrXrXisXbM9hAc + - id: sZVpeeH4kqAMNLKnsCmg4Y sortOrder: 4 fieldKey: name label: Event Name @@ -24241,7 +24241,7 @@ items: choices: null dynamic: false allowNull: false - - id: vC6N79oJAxsJArd94fVMrA + - id: 5iUHDVJ72MWsdLsJHPkQVi sortOrder: 5 fieldKey: time label: Time @@ -24255,7 +24255,7 @@ items: choices: null dynamic: false allowNull: false - - id: iMDoAEEEiYnpc4pshjfBVN + - id: 5b61pZ4mwAotr394tuzfeS sortOrder: 6 fieldKey: properties label: Event Properties @@ -24269,7 +24269,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3o7wEge8FK42GmjHXDEs3Z + - id: 3zXZSJNBvp9MCD6qFAFmr8 sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -24294,7 +24294,7 @@ items: hidden: false defaultTrigger: null fields: - - id: x6GrKzuaL3iWfSHHRdW92c + - id: eHz3d4e84JS3kmwF3ZPHfd sortOrder: 0 fieldKey: external_id label: External ID @@ -24306,7 +24306,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6NkrDEeN6jBqGQwWSv2cmT + - id: rxDhtjPqqX48Xcc1RY4BrU sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24320,7 +24320,7 @@ items: choices: null dynamic: false allowNull: false - - id: p9VBieeyFttdrFD3QJkSGD + - id: 6apsAkpFFFWh9FMAChH7yL sortOrder: 2 fieldKey: merge_behavior label: Merge Behavior @@ -24349,7 +24349,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: adHLBMSsY27yiyEzzC3Hcv + - id: 4UTqMYrJtcFdtcRugKAFhm sortOrder: 0 fieldKey: external_id label: External ID @@ -24361,7 +24361,7 @@ items: choices: null dynamic: false allowNull: true - - id: i2WpNqbcXFRYtjvYyhKd5B + - id: wsgRaFBx5SAurQTrmF9tev sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -24373,7 +24373,7 @@ items: choices: null dynamic: false allowNull: false - - id: qutsqQZtcz44YbvNpFsctL + - id: 8oj3TvVtzVRimKKx5rjqA4 sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -24393,7 +24393,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: 26qNY11A6C3VheuaVnvo8V + - id: ebLdUvgUbigeB1hAr12xoM sortOrder: 0 fieldKey: external_id label: External User ID @@ -24407,7 +24407,7 @@ items: choices: null dynamic: false allowNull: false - - id: mdxMKbj8bd32Y1HkcnP1ji + - id: aViyPeKH8qzqT9zy3SEhDg sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24421,7 +24421,7 @@ items: choices: null dynamic: false allowNull: false - - id: uvsztKoHtSCLe8qpUTWqZE + - id: myYDc2sNPWQFxyLQBDsfb5 sortOrder: 2 fieldKey: email label: Email @@ -24435,7 +24435,7 @@ items: choices: null dynamic: false allowNull: false - - id: kGJ6m6V9TzsFKw4aaDuDgQ + - id: ohRg8GdXWAED8HavXrUfx8 sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -24449,7 +24449,7 @@ items: choices: null dynamic: false allowNull: true - - id: nyekkWNegAjeJ2jso5dDjJ + - id: ry7cUGYjV3FQ2bvzTwYidm sortOrder: 4 fieldKey: time label: Time @@ -24463,7 +24463,7 @@ items: choices: null dynamic: false allowNull: false - - id: dMzmXiBdmcv6dNj8iaiMZQ + - id: 2LpWSU9Ly4aMiaY2C8z4dB sortOrder: 5 fieldKey: products label: Products @@ -24477,7 +24477,7 @@ items: choices: null dynamic: false allowNull: false - - id: Yc8AoWAHGVbLWadENkafY + - id: 773Jwv1SGVCfysGJUssYcH sortOrder: 6 fieldKey: properties label: Event Properties @@ -24491,7 +24491,7 @@ items: choices: null dynamic: false allowNull: false - - id: PaCg9Qj9dXtHPPWA7YAcW + - id: 3V4dPMDH7sJzqHw1xkqrgN sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -24506,6 +24506,128 @@ items: choices: null dynamic: false allowNull: false + - id: bzGprD8nXKT6wAnbz4LuHA + name: Trigger Campaign + slug: triggerCampaign + description: Trigger a Braze Campaign via API-triggered delivery + platform: CLOUD + hidden: false + defaultTrigger: type = "track" + fields: + - id: frVxjjng97px27kMgWPkgA + sortOrder: 0 + fieldKey: campaign_id + label: Campaign ID + type: STRING + description: >- + The ID of the Braze campaign to trigger. The campaign must be an + API-triggered campaign created in Braze. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: hzf8gAqF5dzYEnW4qm28gh + sortOrder: 1 + fieldKey: send_id + label: Send ID + type: STRING + description: >- + Optional string to identify the send. This can be used for send level + analytics, or to cancel a send. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: evjms8z9F3mT1AmkKFFqZv + sortOrder: 2 + fieldKey: trigger_properties + label: Trigger Properties + type: OBJECT + description: >- + Optional data that will be used to personalize the campaign message. + Personalization key-value pairs that will apply to all users in this + request. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: v2EQEDbxsXrtEU73SKwVMd + sortOrder: 3 + fieldKey: broadcast + label: Broadcast + type: BOOLEAN + description: >- + If set to true, and if the audience is not provided, the campaign will + be sent to all the users in the segment targeted by the campaign. It can + not be used with "recipients". + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qzU9tkUdebo3ez8xgqbNJq + sortOrder: 4 + fieldKey: attachments + label: Attachments + type: OBJECT + description: Attachments to send along with the campaign. Limited to 2MB per file. + placeholder: '' + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: cU7Zn8PNVCCUgSdKWgqWcu + sortOrder: 5 + fieldKey: recipients + label: Recipients + type: OBJECT + description: >- + An array of user identifiers to send the campaign to. It can not be used + with "broadcast". + placeholder: '' + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: 7FqZXBLiyfFZZVvEdfGiTZ + sortOrder: 6 + fieldKey: prioritization + label: Prioritization + type: OBJECT + description: >- + Prioritization settings; required when using email in recipients. This + prioritization will be applied to all recipients. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fh4Dpnn5wQNCLdeARBUvNw + sortOrder: 7 + fieldKey: audience + label: Audience + type: OBJECT + description: >- + A standard audience object to specify the users to send the campaign to. + Including "audience" will only send to users in the audience + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false presets: - actionId: vE7Gf9yobj2gTuMBhwmg7g name: Order Completed Calls @@ -24526,31 +24648,6 @@ items: enable_batching: true batch_size: 75 trigger: event = "Order Completed" - - actionId: 3pnc4QJvUjWGi2bp6EnDt - name: Track Calls - fields: - external_id: - '@path': $.userId - email: - '@if': - exists: - '@path': $.context.traits.email - then: - '@path': $.context.traits.email - else: - '@path': $.properties.email - braze_id: - '@path': $.properties.braze_id - name: - '@path': $.event - time: - '@path': $.receivedAt - properties: - '@path': $.properties - _update_existing_only: false - enable_batching: true - batch_size: 75 - trigger: type = "track" and event != "Order Completed" - actionId: 2P24zUSAL8BUpyGYNGmD7M name: Identify Calls fields: @@ -24585,6 +24682,31 @@ items: enable_batching: true batch_size: 75 trigger: type = "identify" + - actionId: 3pnc4QJvUjWGi2bp6EnDt + name: Track Calls + fields: + external_id: + '@path': $.userId + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + braze_id: + '@path': $.properties.braze_id + name: + '@path': $.event + time: + '@path': $.receivedAt + properties: + '@path': $.properties + _update_existing_only: false + enable_batching: true + batch_size: 75 + trigger: type = "track" and event != "Order Completed" partnerOwned: false - id: 63872c01c0c112b9b4d75412 display_name: Braze Cohorts @@ -33296,6 +33418,322 @@ items: allowNull: false presets: [] partnerOwned: false +- id: 68370e58cb330586908573b7 + display_name: Dotdigital + name: Dotdigital + slug: dotdigital + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/dotdigital + previous_names: + - Dotdigital + website: https://dotdigital.com/ + status: PUBLIC_BETA + categories: + - Email Marketing + - Marketing Automation + logo: + url: https://cdn-devcenter.segment.com/7746b31d-bf00-4b09-95a5-458a79412b96.svg + mark: + url: https://cdn-devcenter.segment.com/8c6dbc6d-a068-470f-8dea-fbf5e018d664.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 + linkedAudiences: true + 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: api_host + type: select + defaultValue: https://r1-api.dotdigital.com + description: The region your account is in + required: true + label: Region + - name: password + type: password + defaultValue: '' + description: Your Dotdigital password. + required: true + label: Password + - name: username + type: string + defaultValue: '' + description: Your Dotdigital username + required: true + label: Username + actions: + - id: gPhNLHKkj8juUjvjrLfTNX + name: Enrol Contact to Program + slug: enrolContact + description: Creates a program enrolment. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Enrol Contact to Program" + fields: + - id: nyJjxsud3vwEM7K1vog7X4 + sortOrder: 0 + fieldKey: channelIdentifier + label: Contact Identifier type + type: STRING + description: Select the field to identify contacts. + placeholder: '' + defaultValue: email + required: true + multiple: false + choices: + - label: Email address + value: email + - label: Mobile number + value: mobileNumber + dynamic: false + allowNull: false + - id: 5g6R4KYNv9bEMABYmmUAYD + sortOrder: 1 + fieldKey: emailIdentifier + label: Email Address + type: STRING + description: The Contact's email address. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.email + then: + '@path': $.traits.email + else: + '@path': $.properties.email + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 8x8hdrSE1F9VKJzoBxL4gB + sortOrder: 2 + fieldKey: mobileNumberIdentifier + label: Mobile Number + type: STRING + description: The Contact's mobile number. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.phone + then: + '@path': $.traits.phone + else: + '@path': $.properties.phone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 3gCkXs3WQBXs2QtbjsY84 + sortOrder: 3 + fieldKey: programId + label: Program + type: STRING + description: List of active programs + placeholder: '' + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: gg5BDRAQ9wDMy7kS9MtBQM + name: Remove Contact from List + slug: removeContactFromList + description: Removes a Contact from a List. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Remove Contact from List" + fields: + - id: uHkRrAKMcF81snVg6RvG4L + sortOrder: 0 + fieldKey: channelIdentifier + label: Contact Identifier type + type: STRING + description: Select the field to identify contacts. + placeholder: '' + defaultValue: email + required: true + multiple: false + choices: + - label: Email address + value: email + - label: Mobile number + value: mobileNumber + dynamic: false + allowNull: false + - id: 4zfS1HuKzNWBtB8RN6SUw7 + sortOrder: 1 + fieldKey: emailIdentifier + label: Email Address + type: STRING + description: The Contact's email address. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.email + then: + '@path': $.traits.email + else: + '@path': $.properties.email + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: igbS3Lk1zNCoZybmJBg8Pv + sortOrder: 2 + fieldKey: mobileNumberIdentifier + label: Mobile Number + type: STRING + description: The Contact's mobile number. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.phone + then: + '@path': $.traits.phone + else: + '@path': $.properties.phone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ww24d7Tk5CQs814VomTCUq + sortOrder: 3 + fieldKey: listId + label: List + type: NUMBER + description: The List to remove the Contact from. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: mXqbgqEAfWG1MRz8cBHzS4 + name: Add Contact to List + slug: addContactToList + description: Adds a Contact to a list. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Add Contact to List" + fields: + - id: 8yfiKY51TS8CFcEffgrbdE + sortOrder: 0 + fieldKey: channelIdentifier + label: Contact Identifier type + type: STRING + description: Select the field to identify contacts. + placeholder: '' + defaultValue: email + required: true + multiple: false + choices: + - label: Email address + value: email + - label: Mobile number + value: mobileNumber + dynamic: false + allowNull: false + - id: 3R4n1rdxf48wxpaCNXsGBx + sortOrder: 1 + fieldKey: emailIdentifier + label: Email Address + type: STRING + description: The Contact's email address. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.email + then: + '@path': $.traits.email + else: + '@path': $.properties.email + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sNx4UZZxtTuF9toi8rVobG + sortOrder: 2 + fieldKey: mobileNumberIdentifier + label: Mobile Number + type: STRING + description: The Contact's mobile number. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.phone + then: + '@path': $.traits.phone + else: + '@path': $.properties.phone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hqe1EJtkmpiVoVeUZsPsqB + sortOrder: 3 + fieldKey: listId + label: List + type: NUMBER + description: The list to add the contact to. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: nYZ96z4YLhtHtukyAQwWbQ + sortOrder: 4 + fieldKey: dataFields + label: Data Fields + type: OBJECT + description: >- + An object containing key/value pairs for data fields assigned to this + Contact. Custom Data Fields must already be defined in Dotdigital. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + presets: [] + partnerOwned: true - id: 57ab9dfc80412f644ff2004c display_name: DoubleClick Floodlight name: DoubleClick Floodlight @@ -98579,7 +99017,7 @@ items: previous_names: - Reddit Audiences website: https://business.reddithelp.com/s/article/custom-audiences - status: PUBLIC_BETA + status: PUBLIC categories: - Advertising logo: diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index 2eafca29da..afee218011 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -2,6 +2,7 @@ title: Dotdigital Destination id: 68370e58cb330586908573b7 beta: true +redirect_from: "/docs/connections/destinations/catalog/actions-dotdigital/" --- {% include content/plan-grid.md name="actions" %} @@ -16,7 +17,7 @@ This destination is maintained by Dotdigital. For any issues with the destinatio 3. Select an existing Source to connect to Dotdigital (Actions). 4. Log in to your [Dotdigital account](https://login.dotdigital.com/){:target="_blank"}. Expand the User menu in the bottom left and go to Settings > Access > API users. 5. Note your API region (r1, r2 or r3) for step 7. -6. Create a [new API user](https://developer.dotdigital.com/docs/setting-up-an-api-user). +6. Create a [new API user](https://developer.dotdigital.com/docs/setting-up-an-api-user) {:target="_blank”}. 7. In Segment, select your Dotdigital account region and paste the **API user** and **API password** in the Dotdigital destination settings. {% include components/actions-fields.html %} @@ -26,9 +27,8 @@ This destination is maintained by Dotdigital. For any issues with the destinatio ### Add Contact to List Before using the Add Context to List Action, complete the following prerequisites: -- **Lists**: [Create a contact list in Dotdigital](https://support.dotdigital.com/en/articles/8198769-create-a-contact-list). After you've created a list in Dotdigital, return to the Segment app and select your list from the dropdown in the Segment event mapping. -- Data Fields: [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields), then return to the Segment app, open the event mapping, and map Segment properties to Dotdigital data fields. +- **Lists**: [Create a contact list in Dotdigital](https://support.dotdigital.com/en/articles/8198769-create-a-contact-list) {:target="_blank”}. After you've created a list in Dotdigital, return to the Segment app and select your list from the dropdown in the Segment event mapping. +- **Data Fields**: [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields){:target="_blank”}, then return to the Segment app, open the event mapping, and map Segment properties to Dotdigital data fields. ### Enroll Contact to Program -When you use the Enroll Contact to Program action, Dotdigital creates a contact for the identifier you provide, if the contact doesn't already exist. - +When you use the Enroll Contact to Program action, Dotdigital creates a contact for the identifier you provide, if the contact doesn't already exist. \ No newline at end of file From 68321d6dd40d10694bda24404ae5a008b9910cf9 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Wed, 25 Jun 2025 00:37:54 -0500 Subject: [PATCH 161/438] slight reframing --- src/unify/Traits/predictions/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/unify/Traits/predictions/index.md b/src/unify/Traits/predictions/index.md index 1df63a3d2a..00e4a0e461 100644 --- a/src/unify/Traits/predictions/index.md +++ b/src/unify/Traits/predictions/index.md @@ -96,7 +96,11 @@ This table lists the requirements for a trait to compute successfully: Some customers want to specifically include or exclude events that get fed into the model. For example, if you track different events from an EU storefront compared to a US storefront and you only want to make predictions using data from the US, you could unselect the events from the EU space. This step is optional, Segment only recommends using it if you have a clear reason in mind for removing events from becoming a factor in the model. #### Selecting traits (optional) -Some customers want to specifically include or exclude certain traits that get fed into the model. Today, we only utilize numerical or boolean custom traits found in your space. You have the ability to exclude specific traits from your model. We will attempt to build a model with the traits you selected, but selecting it in the UI does not guarantee that the trait will be factored in. If you keep **Include all new traits** selected, this make sure any new trait that you start tracking will be factored into the model. If you unselect this option, any new traits that you create will not be factored into the model's calculation. +You can choose which traits to include or exclude from your prediction model. Segment supports only numerical and boolean custom traits. + +In the UI, you can deselect traits you don’t want the model to use. Selecting a trait means Segment will attempt to include it in the model, but it may be excluded during training if it doesn’t improve model performance. + +If you keep Include all new traits selected, Segment will automatically consider any new traits you start tracking. If you deselect this option, new traits won’t be included in future model calculations unless you manually add them. > info "Predictive Traits and anonymous events" > Predictive Traits are limited to non-anonymous events, which means you'll need to include an additional `external_id` other than `anonymousId` in the targeted events. If want to create Predictive Traits based on anonymous events, reach out to your CSM with your use case for creating an anonymous Predictive Trait and the conditions for trait. From d8f256b40164c3c2b2365a287ac66f0a5ce3f28c Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Wed, 25 Jun 2025 00:59:38 -0500 Subject: [PATCH 162/438] minor rephrasing [netlify-build] --- .../db2-setup.md | 42 ++++++++++++------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md index 4f4791e285..f67904d3c7 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/db2-setup.md @@ -71,18 +71,30 @@ To set up Db2 as your Reverse ETL source: After successfully adding your Db2 source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. -> info "Array and JSON Support" -> Db2 does not have native `ARRAY` or `JSON` data types. Segment provides a simple convention-based workaround: -> -> **JSON columns** -> JSON values can be stored as `VARCHAR` or `CLOB`. Segment will detect them as JSON if the column name (or column alias) ends with `_JSON`. -> -> Example: -> `SELECT data AS data_JSON FROM my_table;` -> -> -> **Array columns** -> Arrays can be represented as `VARCHAR` columns with names ending in `_ARRAY`. -> The value should be either: -> - a JSON-encoded array (e.g. `'["a","b","c"]'`), or -> - a comma-separated string (e.g. `'a,b,c'`). +## Array and JSON support + +Db2 doesn't have native `ARRAY` or `JSON` data types, but Segment supports a naming-based convention to work around this limitation. + +### JSON columns + +Store JSON values in `VARCHAR` or `CLOB` columns. Segment detects them as JSON if the column name or alias ends with `_JSON`, like in this example: + +```sql +SELECT data AS data_JSON FROM my_table; +``` + +### Array columns + +Use `VARCHAR` columns with names ending in `_ARRAY` to represent arrays. The values can be either: + +- JSON-encoded arrays, like '["red", "green", "blue"]' +- Comma-separated strings, like 'red,green,blue' + +Here’s how you might format array values in a query: + +```sql +SELECT colors AS colors_ARRAY FROM items; +``` + +> info "" +> Segment uses column names to infer data types. For best results, follow the `_JSON` and `_ARRAY` naming conventions exactly. From 5570ce35dd9bfb958f6af09761202781252e43c7 Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 25 Jun 2025 22:33:59 -0500 Subject: [PATCH 163/438] fix broken email --- .../destinations/catalog/podsights/index.md | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/connections/destinations/catalog/podsights/index.md b/src/connections/destinations/catalog/podsights/index.md index edd44cefeb..81e42ee310 100644 --- a/src/connections/destinations/catalog/podsights/index.md +++ b/src/connections/destinations/catalog/podsights/index.md @@ -8,10 +8,7 @@ id: 5d25eddde3ff660001b3adda This destination is maintained by Podsights. For any issues with the destination, [contact the Podsights Support team](mailto:hello@podights.com). -## Getting Started - - - +## Getting started 1. From the Segment web app, click **Catalog**. 2. Search for "Podsights" in the Catalog, select it, and choose which of your sources to connect the destination to. @@ -23,7 +20,7 @@ Once you start sending data to the Podsights' Destination it will take up to 20 ## Page -If you're not familiar with the Segment Specs, take a look to understand what the [Page method](/docs/connections/spec/page/) does. An example call would look like: +If you're not familiar with the Segment Spec, take a look to understand what the [Page method](/docs/connections/spec/page/) does. An example call would look like: ```js analytics.page() @@ -49,14 +46,14 @@ Podsights is an attribution platform, and as such, we need more context about th } ``` -For page events Podsights requires a `context` object that contains a `userAgent` and an `ip` field and a `properties` object that contains a `referrer` and a `url` field. +For page events, Podsights requires a `context` object that contains a `userAgent` and an `ip` field and a `properties` object that contains a `referrer` and a `url` field. As you can see in the page event's raw JSON payload above. -The `context` and `properties` object are required, along with the fields in them. If you're using Segment server-side you must send these attributes. Otherwise Podsights will return a `400 HTTP Error`. +The `context` and `properties` object are required, along with the fields in them. If you're using Segment server-side, you must send these attributes. Otherwise, Podsights will return a `400 HTTP Error`. ## Track -If you're not familiar with the Segment Specs, take a look to understand what the [Track method](/docs/connections/spec/track/) does. An example call would look like: +If you're not familiar with the Segment Spec, take a look to understand what the [Track method](/docs/connections/spec/track/) does. An example call would look like: ```js analytics.track('Order Completed', { @@ -67,7 +64,7 @@ analytics.track('Order Completed', { }); ``` -Track calls will be mapped to Podsights events. Podsights' support the following from the Segment Spec: +Track calls will be mapped to Podsights events. Podsights supports the following from the Segment Spec: * [Signed Up](/docs/connections/spec/b2b-saas/#signed-up) as `lead` @@ -97,7 +94,7 @@ Analytics.js [automatically collects context fields](/docs/connections/spec/comm } ``` -The `context` and `page` object are required, along with the fields in them. If you're using Segment server-side you must send these attributes. Otherwise Podsights will return a `400 HTTP Error`. +The `context` and `page` object are required, along with the fields in them. If you're using Segment server-side, you must send these attributes. Otherwise Podsights will return a `400 HTTP Error`. ## Server -Podsights does not support server-side events out of the box, but you can send server-side events if you follow the requirements of page and track events outlined in the sections for each call. +Podsights doesn't support server-side events out of the box, but you can send server-side events if you follow the requirements of Page and Track events outlined in the sections for each call. From 078139e4ecbe2d7fabdfd45f55454aa2b56a6ef7 Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 25 Jun 2025 22:40:36 -0500 Subject: [PATCH 164/438] some cleanup --- .../destinations/catalog/podsights/index.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/connections/destinations/catalog/podsights/index.md b/src/connections/destinations/catalog/podsights/index.md index 81e42ee310..d9ae3b2115 100644 --- a/src/connections/destinations/catalog/podsights/index.md +++ b/src/connections/destinations/catalog/podsights/index.md @@ -3,18 +3,17 @@ rewrite: true title: Podsights Destination id: 5d25eddde3ff660001b3adda --- -[Podsights](https://podsights.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} measures the effectiveness of podcast advertising. Through integrations with podcast hosting providers, matches downloads with on-site actions, providing advertisers household-level attribution. +[Podsights](https://podsights.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} measures the effectiveness of podcast advertising. Through integrations with podcast hosting providers, Podsights matches podcast downloads with on-site actions to provide household-level attribution. -This destination is maintained by Podsights. For any issues with the destination, [contact the Podsights Support team](mailto:hello@podights.com). +This destination is maintained by Podsights. For any issues with the destination, [contact the Podsights Support team](https://adshelp.spotify.com/HelpCenter/s/contactsupport?language=en_US){:target="_blank”}. ## Getting started 1. From the Segment web app, click **Catalog**. -2. Search for "Podsights" in the Catalog, select it, and choose which of your sources to connect the destination to. -3. Visit your [Podsights dashboard](https://analytics.podsights.com){:target="_blank"} and navigate to Manage > Pixels. Copy your Pixel ID which will be your Segment "API Key". -4. Drop the Pixel ID in the "API Key" field in your Segment Settings UI. - +2. Search for "Podsights", select it, and choose the source you'd like to connect. +3. Visit your [Podsights dashboard](https://analytics.podsights.com){:target="_blank"}, go to **Manage > Pixels**, then copy your Pixel ID. This is your Segment API Key. +4. Paste the Pixel ID into the **API Key** field in your Segment destination settings. Once you start sending data to the Podsights' Destination it will take up to 20 minutes to appear in the Podsights pixel debugger. @@ -26,7 +25,7 @@ If you're not familiar with the Segment Spec, take a look to understand what the analytics.page() ``` -Page calls will be sent to Podsights as a `view` event. +Segment sends Page events to Podsights as `view` events. Podsights is an attribution platform, and as such, we need more context about the visitor than just a User ID. Analytics.js [automatically collects context fields](/docs/connections/spec/common/#context-fields-automatically-collected). Podsights requires certain context fields and properties for page calls. Below is an example of a raw JSON payload that contains the minimum requirements. From 5382f7780d17c2bd169bb589d0a7dc5a8820cbee Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 25 Jun 2025 22:44:31 -0500 Subject: [PATCH 165/438] more cleanup sigh --- .../destinations/catalog/podsights/index.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/connections/destinations/catalog/podsights/index.md b/src/connections/destinations/catalog/podsights/index.md index d9ae3b2115..b462bc93f1 100644 --- a/src/connections/destinations/catalog/podsights/index.md +++ b/src/connections/destinations/catalog/podsights/index.md @@ -27,7 +27,9 @@ analytics.page() Segment sends Page events to Podsights as `view` events. -Podsights is an attribution platform, and as such, we need more context about the visitor than just a User ID. Analytics.js [automatically collects context fields](/docs/connections/spec/common/#context-fields-automatically-collected). Podsights requires certain context fields and properties for page calls. Below is an example of a raw JSON payload that contains the minimum requirements. +Podsights needs additional context for attribution, including certain fields inside the `context` and `properties` objects. Analytics.js [automatically collects these fields](/docs/connections/spec/common/#context-fields-automatically-collected), but you must provide them manually when sending events server-side. + +Here’s the minimum required structure for a Page call: ```js { @@ -46,9 +48,9 @@ Podsights is an attribution platform, and as such, we need more context about th ``` For page events, Podsights requires a `context` object that contains a `userAgent` and an `ip` field and a `properties` object that contains a `referrer` and a `url` field. -As you can see in the page event's raw JSON payload above. +As you can see in the page event's raw JSON payload. -The `context` and `properties` object are required, along with the fields in them. If you're using Segment server-side, you must send these attributes. Otherwise, Podsights will return a `400 HTTP Error`. +If any of these required fields are missing (especially if you're sending events server-side), Podsights may return a `400` HTTP error. ## Track @@ -65,15 +67,18 @@ analytics.track('Order Completed', { Track calls will be mapped to Podsights events. Podsights supports the following from the Segment Spec: - * [Signed Up](/docs/connections/spec/b2b-saas/#signed-up) as `lead` * [Product Viewed](/docs/connections/spec/ecommerce/v2/#product-viewed) as `product` * [Product Added](/docs/connections/spec/ecommerce/v2/#product-added) as `addtocart` * [Checkout Started](/docs/connections/spec/ecommerce/v2/#checkout-started) as `checkout` * [Order Completed](/docs/connections/spec/ecommerce/v2/#order-completed) as `purchase` -For track events Podsights requires a `context` object that contains a `userAgent` and an `ip` Podsights also requires a `page` object that contains a `referrer` and a `url` field. -Analytics.js [automatically collects context fields](/docs/connections/spec/common/#context-fields-automatically-collected). Podsights requires certain context fields for track calls. Below is an example of a raw JSON payload that contains the minimum requirements. +Track calls must include: + +- a `context` object with `userAgent` and `ip` +- a `context.page` object with `referrer` and `url` + +These fields are required whether they're sent through Analytics.js or server-side. Here’s a minimum working example: ```js { From a46edd88df9faf63da60ed07f8bf229250f3631a Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 25 Jun 2025 22:44:51 -0500 Subject: [PATCH 166/438] JSON not JS --- src/connections/destinations/catalog/podsights/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/podsights/index.md b/src/connections/destinations/catalog/podsights/index.md index b462bc93f1..075797350e 100644 --- a/src/connections/destinations/catalog/podsights/index.md +++ b/src/connections/destinations/catalog/podsights/index.md @@ -31,7 +31,7 @@ Podsights needs additional context for attribution, including certain fields ins Here’s the minimum required structure for a Page call: -```js +```json { "type": "page", "context": { @@ -80,7 +80,7 @@ Track calls must include: These fields are required whether they're sent through Analytics.js or server-side. Here’s a minimum working example: -```js +```json { "type": "track", "context": { From 6a253651a6dbff88d7a389ee61c327d5307233ff Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 25 Jun 2025 22:51:16 -0500 Subject: [PATCH 167/438] whitespace --- .../destinations/catalog/podsights/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/connections/destinations/catalog/podsights/index.md b/src/connections/destinations/catalog/podsights/index.md index 075797350e..767cae93d3 100644 --- a/src/connections/destinations/catalog/podsights/index.md +++ b/src/connections/destinations/catalog/podsights/index.md @@ -5,7 +5,7 @@ id: 5d25eddde3ff660001b3adda --- [Podsights](https://podsights.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} measures the effectiveness of podcast advertising. Through integrations with podcast hosting providers, Podsights matches podcast downloads with on-site actions to provide household-level attribution. -This destination is maintained by Podsights. For any issues with the destination, [contact the Podsights Support team](https://adshelp.spotify.com/HelpCenter/s/contactsupport?language=en_US){:target="_blank”}. +This destination is maintained by Podsights. For any issues with the destination, [contact the Podsights/Spotify support team](https://adshelp.spotify.com/HelpCenter/s/contactsupport?language=en_US){:target="_blank”}. ## Getting started @@ -27,7 +27,7 @@ analytics.page() Segment sends Page events to Podsights as `view` events. -Podsights needs additional context for attribution, including certain fields inside the `context` and `properties` objects. Analytics.js [automatically collects these fields](/docs/connections/spec/common/#context-fields-automatically-collected), but you must provide them manually when sending events server-side. +Podsights needs additional context for attribution, including certain fields inside the `context` and `properties` objects. Analytics.js [automatically collects these fields](/docs/connections/spec/common/#context-fields-automatically-collected), but you must provide them manually when sending events server-side. Here’s the minimum required structure for a Page call: @@ -50,7 +50,7 @@ Here’s the minimum required structure for a Page call: For page events, Podsights requires a `context` object that contains a `userAgent` and an `ip` field and a `properties` object that contains a `referrer` and a `url` field. As you can see in the page event's raw JSON payload. -If any of these required fields are missing (especially if you're sending events server-side), Podsights may return a `400` HTTP error. +If any of these required fields are missing (especially if you're sending events server-side), Podsights will return a `400` HTTP error. ## Track @@ -98,7 +98,7 @@ These fields are required whether they're sent through Analytics.js or server-si } ``` -The `context` and `page` object are required, along with the fields in them. If you're using Segment server-side, you must send these attributes. Otherwise Podsights will return a `400 HTTP Error`. +If you're using Segment server-side, you must send these attributes. Otherwise, Podsights will return a `400` HTTP error. ## Server -Podsights doesn't support server-side events out of the box, but you can send server-side events if you follow the requirements of Page and Track events outlined in the sections for each call. +Podsights doesn’t support server-side events by default. However, you can send server-side events as long as you include all the required context and page fields described in the Page and Track sections on this page. \ No newline at end of file From f085b97c29fd6e0f88d4339adf74283727259aeb Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 14:39:15 +0100 Subject: [PATCH 168/438] comma added Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com> --- .../actions-webhook-extensible/amazon-ads-integration-recipe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md index 6e9a923e6f..991f6fca51 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md @@ -20,7 +20,7 @@ To integrate Amazon Ads with Segment, ensure you have the following: To set up your destination in Segment: -1. In your Segment workspace go to **Catalog** > **Destinations**. +1. In your Segment workspace, go to **Catalog** > **Destinations**. 2. Search for Extensible Webhook and select **Add destination**. ### 2. Select the data source From 9d9a931346dc21a0adbb5603a1f66c4d83195318 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 14:40:56 +0100 Subject: [PATCH 169/438] e.g. removed Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com> --- .../actions-webhook-extensible/amazon-ads-integration-recipe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md index 991f6fca51..a942bf8b2d 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md @@ -30,7 +30,7 @@ To set up your destination in Segment: ### 3. Specify the instance details -1. Enter a recognizable name for your webhook instance (e.g., "Segment to Amazon Integration"). +1. Enter a recognizable name for your webhook instance (like "Segment to Amazon Integration"). 2. (Optional) Add a brief description of the integration. ### 4. Select the authentication type From 7e79230c19b944556a3d7144eb98c3a9c76fa313 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 14:41:23 +0100 Subject: [PATCH 170/438] casing Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com> --- .../actions-webhook-extensible/amazon-ads-integration-recipe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md index a942bf8b2d..c7579f1fd4 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md @@ -115,7 +115,7 @@ The Amazon Ads Audience API's expected fields are: - `action`: Can be “CREATE” or “DELETE” based on whether you want to add or remove the user from the list. - `audienceID` is the ID of the Audience list to which the data should be either added or deleted. You can get the audienceID from within the Amazon Ads console or when creating an Audience from the API. -#### Data Mapping +#### Data mapping 1. Create a new Mapping in the Mappings tab and select the **Send** HTTP action. 2. Choose which events you want to send to Amazon Ads Audience API using the Event filters. From 4e7ed6712cddbc5d0036d597aba52cda5824495b Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 14:46:31 +0100 Subject: [PATCH 171/438] Update src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com> --- .../actions-webhook-extensible/microsoft-integration-recipe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md index b04ee6b7aa..77631ec004 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md @@ -33,7 +33,7 @@ To integrate Microsoft Dynamics 365 with Twilio Segment, ensure you have the fol ### 4. Select the authentication type -For authentication, you need to first create an Azure application that can authenticate users to provide access to Microsoft Dynamics API. See [Microsoft documentation](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app?tabs=client-secret){:target="_blank"} for details on how to create an application and how to get the client secret that will later be used for authentication. +For authentication, you need to first create an Azure application that can authenticate users to provide access to Microsoft Dynamics API. See [Microsoft's documentation](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app?tabs=client-secret){:target="_blank"} for details on how to create an application and how to get the client secret that will later be used for authentication. The redirect URI for your application is https://app.segment.com/oauth-service/webhook/callback. From 6801592ec17f73eecfac81e717ac56f33b155807 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 15:06:32 +0100 Subject: [PATCH 172/438] capitalising API methods Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com> --- .../reddit-ads-audience-integration-recipe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md index 98e4b6435b..5f1be004c1 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md @@ -93,7 +93,7 @@ The required parameters are: #### Data mapping -In this recipe, as an example, users are added to the existing audience but you can use one or multiple mappings to perform any `Put`, `Patch` or `Post` action types. +In this recipe, as an example, users are added to the existing audience but you can use one or multiple mappings to perform any `PUT`, `PATCH` or `POST` action types. 1. Create a new mapping from the **Mappings** tab, click on **Add Mapping** and select the “Send” HTTP action. 2. Select events to send. Define the event triggers to send to Reddit Ads (Audiences) using the event filters. From bee7ddc6b098ede19a1b34275ed2c4e7e1a6c9fa Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 15:10:40 +0100 Subject: [PATCH 173/438] Backticked URLs, added missing links, fixed link description + fixed casing --- .../amazon-ads-integration-recipe.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md index c7579f1fd4..b19fa13f2c 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md @@ -3,7 +3,7 @@ title: Amazon Ads Audience Sync Integration Recipe --- -This recipe will guide you through how to set up a custom destination for Amazon Ads using Twilio Segment's Extensible Webhooks feature and how to sync customer data into an Audience list. By following these steps, you can integrate your data source with Amazon Ads. +This recipe will guide you through how to set up a custom destination for [Amazon Ads](https://advertising.amazon.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} using Twilio Segment's [Extensible Webhooks](https://segment.com/docs/connections/destinations/catalog/actions-webhook-extensible/){:target="_blank"} feature and how to sync customer data into an Audience list. By following these steps, you can integrate your data source with Amazon Ads. ## Prerequisites @@ -50,12 +50,12 @@ To set up authentication: 2. Enter the following credential details as listed below or given in the web app: - Client ID - Client secret - - Authorize URL: https://www.amazon.com/ap/oa - - Token URL: https://api.amazon.com/auth/o2/token - - Refresh URL: https://api.amazon.com/auth/o2/token + - Authorize URL: `https://www.amazon.com/ap/oa` + - Token URL: `https://api.amazon.com/auth/o2/token` + - Refresh URL: `https://api.amazon.com/auth/o2/token` - Scope: `advertising::audiences` - The authorization URL can be found [here](https://advertising.amazon.com/API/docs/en-us/guides/get-started/create-authorization-grant#determine-the-url-prefix-for-your-region){:target="_blank"} and the access/refresh token URL can be found [here](https://advertising.amazon.com/API/docs/en-us/guides/get-started/retrieve-access-token#call-the-authorization-url-to-request-access-and-refresh-tokens){:target="_blank"}, depending on your region. + The authorization URL is available in [Amazon's authorization guide](https://advertising.amazon.com/API/docs/en-us/guides/get-started/create-authorization-grant#determine-the-url-prefix-for-your-region){:target="_blank"}, and the access/refresh token URL can also be found in [Amazon's guide on access tokens](https://advertising.amazon.com/API/docs/en-us/guides/get-started/retrieve-access-token#call-the-authorization-url-to-request-access-and-refresh-tokens){:target="_blank"}, depending on your region. 3. Once you create the destination instance, you will then be redirected to the Settings section. Click **Connect** to set up the OAuth connection with Amazon Ads. 4. You will be redirected to Amazon Ads. Log in and click **Allow** to complete the authentication flow. @@ -111,7 +111,7 @@ The Amazon Ads Audience API's expected fields are: - `state` - `postal` - `email` - - `externalUserId`: The id used by external systems to identify customers. + - `externalUserId`: The ID used by external systems to identify customers. - `action`: Can be “CREATE” or “DELETE” based on whether you want to add or remove the user from the list. - `audienceID` is the ID of the Audience list to which the data should be either added or deleted. You can get the audienceID from within the Amazon Ads console or when creating an Audience from the API. @@ -122,8 +122,8 @@ The Amazon Ads Audience API's expected fields are: 3. Fill out mapping fields: - Specify the URL: - The API endpoint is based on region. - - Include the suffix with the Audience API Endpoint: /amc/audiences/records - - Specify the headers: + - Include the suffix with the Audience API Endpoint: `/amc/audiences/records` + - Specify the header: - `Amazon-Advertising-API-ClientId`: The Client ID from Login with Amazon Account. 4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. 5. Turn off batching for this operation. @@ -136,8 +136,8 @@ The Amazon Ads Audience API's expected fields are: #### Troubleshooting If the test fails: -- review the authentication details and data mappings. -- check for error messages in Segment and Amazon Ads. +- Review the authentication details and data mappings. +- Check for error messages in Segment and Amazon Ads. ### 7. Save and enable the destination From 8e50a769d718a11ebeb3d31a27f87d4d0efbea21 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 15:17:08 +0100 Subject: [PATCH 174/438] Fixed casing, backticks around URLs and added links to Search Ads and E Webhooks --- .../google-search-ads-integration-recipe.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md index e6872cd7a4..4ec0678a9f 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md @@ -2,7 +2,7 @@ title: Google Search Ads 360 Conversion API Integration Recipe --- -This recipe will guide you through how to set up a custom destination for Google Search Ads 360 conversions using Twilio Segment’s Extensible Webhooks feature. +This recipe will guide you through how to set up a custom destination for [Google Search Ads 360](https://marketingplatform.google.com/intl/en_uk/about/search-ads-360/){:target="_blank"} conversions using Twilio Segment’s [Extensible Webhooks](https://segment.com/docs/connections/destinations/catalog/actions-webhook-extensible/){:target="_blank"} feature. ## Prerequisites @@ -35,7 +35,7 @@ To integrate Search Ads 360 with Twilio Segment, ensure you have the following: As a prerequisite to authenticate APIs, you need to create OAuth credentials. Once generated, note down the Client ID and Secret. They are required to set up authentication between Segment and Google Search Ads. -You will also need to add the following redirect URI to the list of allowed return URLs: https://app.segment.com/oauth-service/webhook/callback. +You will also need to add the following redirect URI to the list of allowed return URLs: `https://app.segment.com/oauth-service/webhook/callback`. #### Authentication @@ -43,10 +43,10 @@ You will also need to add the following redirect URI to the list of allowed retu 2. Enter the following credentials details from your project: - Client ID - Client secret - - Authorize URL: https://accounts.google.com/o/oauth2/v2/auth - - Token URL: https://oauth2.googleapis.com/token - - Refresh URL: https://oauth2.googleapis.com/token - - Scope: https://www.googleapis.com/auth/doubleclicksearch + - Authorize URL: `https://accounts.google.com/o/oauth2/v2/auth` + - Token URL: `https://oauth2.googleapis.com/token` + - Refresh URL: `https://oauth2.googleapis.com/token` + - Scope: `https://www.googleapis.com/auth/doubleclicksearch` 3. Once you have created the destination instance, you will be redirected to the Settings section. Click **Connect** to set up the OAuth connection with Google Search Ads 360. 4. Log in to your Google Search Ads account and click **Allow** to complete authentication. @@ -77,11 +77,11 @@ You will need to write an insert function that appends a property, for example o ``` The Google Search Ads 360 Conversion API's required fields are: -- `kind` which is "doubleclicksearch#conversionList". Conversion is an array. For the beta, Segment doesn’t support batching to iterate over this. +- `kind` which is `doubleclicksearch#conversionList`. Conversion is an array. For the beta, Segment doesn’t support batching to iterate over this. - `clickId` which is the ID of a specific click on an ad that the customer clicked on. - `conversionId` is a unique ID that tracks the particular conversion. - `conversionTimestamp` is date and time in epoch milliseconds on when the conversion took place. -- `segmentationType` should be floodlight. +- `segmentationType` should be `FLOODLIGHT`. - `segmentationName` is the floodlight activity to report this conversion to. - `type` which can be `Action` or `Transaction` to indicate whether the conversion had a monetary value or not. @@ -90,7 +90,7 @@ The Google Search Ads 360 Conversion API's required fields are: 1. Create a new Mapping in the Mappings tab and select the **Send** HTTP action. 2. Choose which events you want to send to Google Search Ads 360 API using the Event filters. 3. Fill out mapping fields: - - Specify the URL: https://www.googleapis.com/doubleclicksearch/v2/conversion + - Specify the URL: `https://www.googleapis.com/doubleclicksearch/v2/conversion` 4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. 5. Turn off batching for this operation. @@ -102,8 +102,8 @@ The Google Search Ads 360 Conversion API's required fields are: #### Troubleshooting If the test fails: -- review the authentication details and data mappings. -- check for error messages in Segment and Search Ads. +- Review the authentication details and data mappings. +- Check for error messages in Segment and Search Ads. ### 7. Save and enable the destination From 03e61fbda3e1cc88d14bcd36b693653a39ea4d11 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 15:55:28 +0100 Subject: [PATCH 175/438] Added links for Dynamics 365 + Webhooks, added more context on credential details for authorisation + backtick/case fixes --- .../microsoft-integration-recipe.md | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md index 77631ec004..6b4faceebb 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md @@ -2,7 +2,7 @@ title: Microsoft Dynamics 365 (Sales Hub) Integration Recipe --- -This recipe will guide you through how to set up a custom destination for Microsoft Dynamics 365 (Sales) using Twilio Segment’s Extensible Webhook feature. +This recipe will guide you through how to set up a custom destination for [Microsoft Dynamics 365 (Sales)](https://www.microsoft.com/en-us/dynamics-365/products/sales){:target="_blank"} using Twilio Segment’s [Extensible Webhooks](https://segment.com/docs/connections/destinations/catalog/actions-webhook-extensible/){:target="_blank"} feature. ## Prerequisites @@ -35,20 +35,21 @@ To integrate Microsoft Dynamics 365 with Twilio Segment, ensure you have the fol For authentication, you need to first create an Azure application that can authenticate users to provide access to Microsoft Dynamics API. See [Microsoft's documentation](https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app?tabs=client-secret){:target="_blank"} for details on how to create an application and how to get the client secret that will later be used for authentication. -The redirect URI for your application is https://app.segment.com/oauth-service/webhook/callback. +The redirect URI for your application is `https://app.segment.com/oauth-service/webhook/callback`. -To connect the Azure app with the Dynamics instance, go to the Power Platform Admin Center. -Here you will need to create new app users associated with a business unit, and provide security roles. +To connect the Azure app with the Dynamics instance, go to the Power Platform Admin Center. Here you will need to create new app users associated with a business unit, and provide security roles. Once you have successfully created an Azure web application and associated it with a Dynamics environment, you can proceed to authentication in Segment. 1. Navigate to the settings page of the webhook destination in Segment. -2. Select OAuth 2.0 and select Authorization Code. +2. Select **OAuth 2.0** and select **Authorization Code**. 3. Enter the following credential details from your web app or as listed below: - Client ID - Client secret - - Access Token URL: https://login.microsoftonline.com//oauth2/v2.0/token - - Scope: https:///.default + - Access Token URL: `https://login.microsoftonline.com//oauth2/v2.0/token`. Replace `` with your Azure AD tenant ID. You can be find this in the Entra admin center. For detailed steps, see [Microsoft's guide](https://learn.microsoft.com/en-us/entra/fundamentals/how-to-find-tenant){:target="_blank"}. + - Example URL with a sample directory UUID: `https://login.microsoftonline.com/861e4762-e528-4faf-ad95-70847a9efbe7/oauth2/v2.0/token` + - Scope: `https:///.default`. Replace `` with the domain of your Dynamics 365 instance. This appears in your web browser's address bar when using your app. + - Example URL for a Dynamics 365 instance: `https://org2fd4b414.crm.dynamics.com/.default`. 4. Click **Connect** to set up the OAuth connection with Microsoft. Authentication will take place if the configurations are correct and the access token will automatically be generated without the need for user login. @@ -91,7 +92,7 @@ To create or update the Account entity only, you can skip this step and directly 1. Create a new Mapping in the Mappings tab and select the **Send** HTTP action. 2. Choose which events you want to send to Google Search Ads 360 API using the Event filters. 3. Fill out mapping fields: - - Specify the URL: [Organization URI]/api/data/v9.2/accounts (this is for creating new accounts) + - Specify the URL: `[Organization URI]/api/data/v9.2/accounts` (this is for creating new accounts) 4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. 5. Turn off batching for this operation. @@ -103,11 +104,11 @@ To create or update the Account entity only, you can skip this step and directly #### Troubleshooting If the test fails: -- review the authentication details and data mappings. -- check for error messages in Segment and Search Ads. +- Review the authentication details and data mappings. +- Check for error messages in Segment and Search Ads. ### 7. Save and enable the destination 1. Once the test is successful, click **Save** to store your configuration. 2. Toggle the destination to Enable to start sending live data to Microsoft Dynamics 365. -3. Monitor the data flow to ensure that events are being delivered as expected. \ No newline at end of file +3. Monitor the data flow to ensure that events are being delivered as expected. From 4750deff91f4da28b8ae40388c2c9841b4e24c5c Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 15:57:03 +0100 Subject: [PATCH 176/438] Backtick fix for URI --- .../actions-webhook-extensible/amazon-ads-integration-recipe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md index b19fa13f2c..0416601a3d 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe.md @@ -39,7 +39,7 @@ An Amazon Client Application has to be created which requires approval. For step The LwA (Login with Amazon) application that you create should have `advertising::audiences` as the scope. For Campaign management, like marking conversions, the scope should be `advertising::campaign_management`. -Once a LwA app has been created, you will need to add the redirect URI “https://app.segment.com/oauth-service/webhook/callback” to the list of Allowed Return URLs. For more detail on this, see the [Amazon documentation](https://advertising.amazon.com/API/docs/en-us/guides/get-started/create-authorization-grant#allow-a-return-url){:target="_blank"}. +Once a LwA app has been created, you will need to add the redirect URI `https://app.segment.com/oauth-service/webhook/callback` to the list of Allowed Return URLs. For more detail on this, see the [Amazon documentation](https://advertising.amazon.com/API/docs/en-us/guides/get-started/create-authorization-grant#allow-a-return-url){:target="_blank"}. Note down the Client ID and Secret, available in the Login with Amazon section on the [Amazon Developer site](https://developer.amazon.com/){:target="_blank"}. These will be used to set up authentication with Segment. From ba40e239724cd013a6384761f3d3a16636e9ab3b Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 16:09:23 +0100 Subject: [PATCH 177/438] Minor rewording, link added to reddit ads + casing/ backtick fixes --- .../reddit-ads-audience-integration-recipe.md | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md index 5f1be004c1..1fc89f1bf3 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md @@ -2,23 +2,23 @@ title: Reddit Ads (Audience) Integration Recipe --- -This recipe will guide you through setting up a custom destination for Reddit Ads (Audiences) using Twilio Segment's Extensible Webhooks feature. By following these steps, you will be able to integrate your data source with Reddit Ads (Audiences). +This recipe will guide you through setting up a custom destination for [Reddit Ads (Audiences)](https://ads.reddit.com/){:target="_blank"} using Twilio Segment's [Extensible Webhooks](https://segment.com/docs/connections/destinations/catalog/actions-webhook-extensible/){:target="_blank"} feature. By following these steps, you will be able to integrate your data source with Reddit Ads (Audiences). ## Prerequisites To integrate Reddit Ads with Segment, ensure you have the following: -A Segment account: an account with the Extensible Webhooks feature enabled (private beta access). -A Reddit Ads (Audiences) account: an active account or API access to Reddit Ads (Audiences). -Authentication credentials: necessary credentials for authentication, for example, API keys and tokens. -Data mapping information: knowledge of the data fields required by Reddit Ads (Audiences). +- A Segment account: an account with the Extensible Webhooks feature enabled (private beta access). +- A Reddit Ads (Audiences) account: an active account or API access to Reddit Ads (Audiences). +- Authentication credentials: necessary credentials for authentication, for example, API keys and tokens. +- Data mapping information: knowledge of the data fields required by Reddit Ads (Audiences). ## Getting started -### 1. Configure Extensible Webhook as a destination +### 1. Configure Extensible Webhooks as a destination 1. In your Segment workspace, navigate to **Connections** > **Catalog** > **Destinations**. -2. Use the search bar to search for **Extensible Webhook** and select **Add destination**. +2. Use the search bar to search for "Extensible Webhooks" and select **Add destination**. ### 2. Select the data source @@ -36,8 +36,8 @@ When creating your app, specify the following details: - Description (optional): Add a brief description of the integration. - Endpoint URL: Provide the webhook URL or endpoint provided by Reddit Ads (Audiences). -> info: Redirect URI -The redirect URI used when creating a Reddit web app is “https://app.segment.com/oauth-service/webhook/callback”. +> info "Redirect URI" +> The redirect URI used when creating a Reddit web app is `https://app.segment.com/oauth-service/webhook/callback`. ### 4. Select the authentication type @@ -47,11 +47,11 @@ To set up OAuth: 1. Go to **Authentication Method** and select **OAuth 2.0**. 2. Enter the following credentials as required: - - Client ID: provided by the Reddit web app - - Secret: provided by the Reddit web app - - Authorize URL: https://www.reddit.com/api/v1/authorize - - Token URL: https://www.reddit.com/api/v1/access_token - - Refresh URL: https://www.reddit.com/api/v1/access_token + - Client ID: This can be found in your the Reddit web app. + - Secret: This can be found in your the Reddit web app. + - Authorize URL: `https://www.reddit.com/api/v1/authorize` + - Token URL: `https://www.reddit.com/api/v1/access_token ` + - Refresh URL: `https://www.reddit.com/api/v1/access_token` - Scope: To update Audiences, you will need to add ‘adsedit’ as a scope. To add multiple scopes, separate the values by commas. You can also find the Authorize URL, Token URL, and Refresh URL in the [Reddit documentation](https://ads-api.reddit.com/docs/v3/operations/Update%20Custom%20Audience%20Users){:target="_blank"}. @@ -63,7 +63,7 @@ You can also find the Authorize URL, Token URL, and Refresh URL in the [Reddit d #### Data transformation -The Reddit Custom Audience API expects data in a nested format. To format the payload correctly, you will have to write an insert function that appends a new property called “body” (for example). +The Reddit Custom Audience API expects data in a nested format. To format the payload correctly, you will have to write an insert function that appends a new property, such as "body". This will have the following structure: @@ -87,29 +87,29 @@ This will have the following structure: The required parameters are: -- `action_type` which can take values “ADD” or “REMOVE” depending on whether a customer has to be added or removed from the list. -- `column_order` which can take two values, “EMAIL_SHA256” and “MAID_SHA256”. The order indicates the column order of the data being synced inside `user_data` -- `user_data` is an array of values which has hashed email id or MAID id or both. For the beta, Segment doesn’t support batching to iterate just over this array yet. +- `action_type` which can take values `ADD` or `REMOVE` depending on whether a customer has to be added or removed from the list. +- `column_order` which can take two values, `EMAIL_SHA256` and `MAID_SHA256`. The order indicates the column order of the data being synced inside `user_data`. +- `user_data` is an array of values which has hashed `email_id` or `MAID_id` or both. While in beta, Segment doesn’t support batching to iterate just over this array yet. #### Data mapping In this recipe, as an example, users are added to the existing audience but you can use one or multiple mappings to perform any `PUT`, `PATCH` or `POST` action types. -1. Create a new mapping from the **Mappings** tab, click on **Add Mapping** and select the “Send” HTTP action. +1. Create a new mapping from the Mappings tab, click on **Add Mapping** and select the **Send** HTTP action. 2. Select events to send. Define the event triggers to send to Reddit Ads (Audiences) using the event filters. 3. Fill out mapping fields: 1. Specify the URL and method. - - For example, using the following URL: https://ads-api.reddit.com/api/v3/custom_audiences/{audience_id}/users - 1. Replace `audience_id` with the actual audience ID you want to edit. You can find the iID below the name of the Audience List to be modified on Audience Manager. - 2. Select `PATCH` as the HTTP method. The API expects a Patch operation on the endpoint. + - For example, using the following URL: `https://ads-api.reddit.com/api/v3/custom_audiences/{audience_id}/users` + 1. Replace `audience_id` with the actual audience ID you want to edit. You can find the ID below the name of the Audience List to be modified on Audience Manager. + 2. Select `PATCH` as the HTTP method. The API expects a `PATCH` operation on the endpoint. 4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. 5. Turn off batching for this operation. -Reddit supports three types of actions that can be performed via Extensible Webhook. +Reddit supports three types of actions that can be performed via Extensible Webhooks. - Audiences - Manage Audiences: Create a new audience or manage existing ones. - - Manage Audience Users: PATCH users in existing audiences or create a new audience and add users to it. + - Manage Audience Users: `PATCH` users in existing audiences or create a new audience and add users to it. - Campaigns - Manage Campaigns: Create a new campaign or manage existing ones. @@ -120,7 +120,8 @@ Reddit supports three types of actions that can be performed via Extensible Webh Troubleshooting: -- If the test fails, review the authentication details and data mappings. +If the test fails: +- Review the authentication details and data mappings. - Check for error messages in Segment and Reddit Ads (Audiences). ### 7. Save and enable the destination From 15fde637cd58add3c443992607591f7522510ab3 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 16:17:24 +0100 Subject: [PATCH 178/438] Casing/ backtick fix, added Reddit ads link, minor formatting --- ...t-ads-conversion-api-integration-recipe.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md index f92a635228..79d35cf3c6 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md @@ -2,7 +2,7 @@ title: Reddit Ads Conversion API Integration Recipe --- -This recipe will guide you through setting up a custom destination for Reddit Ads Conversion API using Segment’s Extensible Webhooks feature. By following these steps, you can integrate your data source with Reddit Ads Conversion API without writing any code. +This recipe will guide you through setting up a custom destination for [Reddit Ads Conversion API](https://ads.reddit.com/){:target="_blank"} using Segment’s [Extensible Webhooks](https://segment.com/docs/connections/destinations/catalog/actions-webhook-extensible/){:target="_blank"} feature. By following these steps, you can integrate your data source with Reddit Ads Conversion API without writing any code. ## Prerequisites @@ -15,10 +15,10 @@ To integrate Reddit Ads Conversion with Segment, ensure you have the following: ## Getting started -### 1. Navigate to the Extensible Webhook destination +### 1. Navigate to the Extensible Webhooks destination 1. In your Segment workspace, go to **Catalog** > **Destinations**. -2. Use the search bar to search for **Extensible Webhook** and select **Add destination**. +2. Use the search bar to search for "Extensible Webhook" and select **Add destination**. ### 2. Select the data source @@ -48,13 +48,13 @@ The conversion access token provides a bearer token that can be added to the hea 2. Select **Conversions API**. 3. Click **Generate Access Token** to generate your token. Copy and make a note of it. -Once you have the conversion token, go back to your destination in your Segment workspace. In **Settings**, go to **Authorization Settings** and select “No Auth” as the authentication method. +Once you have the conversion token, go back to your destination in your Segment workspace. In Settings, go to Authorization Settings and select **No Auth** as the authentication method. ### 5. Perform data mapping #### Data transformation -The Reddit Conversion API expects data in a nested format. To format the payload correctly, you will need to write an insert function that appends a new property, for example `body`. +The Reddit Conversion API expects data in a nested format. To format the payload correctly, you will need to write an insert function that appends a new property, for example "body". This will have the following structure: @@ -126,14 +126,14 @@ It’s also recommended that you include the `email`, `ip_address`, `uuid`, and To map data from your destination to Reddit Ads: -1. Create a new mapping in the **Mappings** tab, select the **Send** action. +1. Create a new mapping in the Mappings tab, select the **Send** action. 2. Define the event trigger by selecting the events you want to send to Reddit Ads Conversion API using the Event name filters. -3. (Optional) Add enrichment entities as necessary. +3. (Optional) Add enrichment entities as needed. 4. Fill out mapping fields: - 1. To specify the URL, go to your Reddit Ads account, navigate to **Pixel configuration** to find your Pixel ID. The format of the URL should be https://ads-api.reddit.com/api/v2.0/conversions/events/{{YOURPICEL_ID}} - 2. Specify the headers. - - Set up Authorization using the Bearer Token generated in the previous step. - - Specify the Content Type that the Conversion API expects. + 1. To specify the URL, go to your Reddit Ads account, navigate to **Pixel configuration** to find your Pixel ID. The format of the URL should be `https://ads-api.reddit.com/api/v2.0/conversions/events/{{YOURPIXEL_ID}}`, with your pixel ID being at the end of the URL. + 2. Specify the headers: + - Set up Authorization using the bearer token generated in the previous step. + - Specify the content type that the Conversion API expects. 5. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. 6. Turn off batching for this operation. From 1fa73d54794a15940525a96767a6b3d1ab0f34ac Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 16:20:43 +0100 Subject: [PATCH 179/438] minor tweaks --- .../google-search-ads-integration-recipe.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md index 4ec0678a9f..9e599077d4 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe.md @@ -18,7 +18,7 @@ To integrate Search Ads 360 with Twilio Segment, ensure you have the following: ### 1. Configure Extensible Webhook as a destination 1. In your Segment workspace, navigate to **Connections** > **Catalog** > **Destinations**. -2. Use the search bar to search for **Extensible Webhook** and select **Add destination**. +2. Use the search bar to search for "Extensible Webhook" and select **Add destination**. ### 2. Select the data source @@ -77,13 +77,13 @@ You will need to write an insert function that appends a property, for example o ``` The Google Search Ads 360 Conversion API's required fields are: -- `kind` which is `doubleclicksearch#conversionList`. Conversion is an array. For the beta, Segment doesn’t support batching to iterate over this. +- `kind` which is `doubleclicksearch#conversionList`. Conversion is an array. While in beta, Segment doesn’t support batching to iterate over this. - `clickId` which is the ID of a specific click on an ad that the customer clicked on. - `conversionId` is a unique ID that tracks the particular conversion. - `conversionTimestamp` is date and time in epoch milliseconds on when the conversion took place. - `segmentationType` should be `FLOODLIGHT`. - `segmentationName` is the floodlight activity to report this conversion to. -- `type` which can be `Action` or `Transaction` to indicate whether the conversion had a monetary value or not. +- `type` which can be `action` or `transaction` to indicate whether the conversion had a monetary value or not. #### Data mapping From 656648ed9fb288e9a146c5f830ea2fc11bcd5c5c Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 16:23:40 +0100 Subject: [PATCH 180/438] Fixed title for 1 --- .../reddit-ads-conversion-api-integration-recipe.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md index 79d35cf3c6..59fb150aea 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe.md @@ -15,7 +15,7 @@ To integrate Reddit Ads Conversion with Segment, ensure you have the following: ## Getting started -### 1. Navigate to the Extensible Webhooks destination +### 1. Configure Extensible Webhook as a destination 1. In your Segment workspace, go to **Catalog** > **Destinations**. 2. Use the search bar to search for "Extensible Webhook" and select **Add destination**. @@ -48,7 +48,7 @@ The conversion access token provides a bearer token that can be added to the hea 2. Select **Conversions API**. 3. Click **Generate Access Token** to generate your token. Copy and make a note of it. -Once you have the conversion token, go back to your destination in your Segment workspace. In Settings, go to Authorization Settings and select **No Auth** as the authentication method. +Once you have the conversion token, go back to your destination in your Segment workspace. In Settings, go to **Authorization Settings** and select **No Auth** as the authentication method. ### 5. Perform data mapping From d03868182dea3de129a72c4faa460a38e771184a Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 16:25:19 +0100 Subject: [PATCH 181/438] Casing for PATCH field --- .../reddit-ads-audience-integration-recipe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md index 1fc89f1bf3..b49552894b 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe.md @@ -101,7 +101,7 @@ In this recipe, as an example, users are added to the existing audience but you 1. Specify the URL and method. - For example, using the following URL: `https://ads-api.reddit.com/api/v3/custom_audiences/{audience_id}/users` 1. Replace `audience_id` with the actual audience ID you want to edit. You can find the ID below the name of the Audience List to be modified on Audience Manager. - 2. Select `PATCH` as the HTTP method. The API expects a `PATCH` operation on the endpoint. + 2. Select **`PATCH`** as the HTTP method. The API expects a `PATCH` operation on the endpoint. 4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. 5. Turn off batching for this operation. From e531ec8bd5ae735475b733aa6716943ba1ad6876 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 26 Jun 2025 16:54:53 +0100 Subject: [PATCH 182/438] Rewording Co-authored-by: pwseg <86626706+pwseg@users.noreply.github.com> --- src/connections/destinations/catalog/adjust/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/adjust/index.md b/src/connections/destinations/catalog/adjust/index.md index 4a799461bb..68660c6a4e 100644 --- a/src/connections/destinations/catalog/adjust/index.md +++ b/src/connections/destinations/catalog/adjust/index.md @@ -233,7 +233,7 @@ If you're using Adjust's iOS SDK, it will automatically takes care of duplicate ### Sending in-app events from Adjust to Segment -Customers can forward in-app events from Adjust to Segment by following the steps below: +Customers can forward in-app events from Adjust to Segment by following these steps: 1. Navigate to the Segment module within the Adjust dashboard. 2. Go to the **Data sharing** section. From 8848ee6a06361537447ca7d7fd8f8d21d9e6a5d6 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 26 Jun 2025 13:09:34 -0400 Subject: [PATCH 183/438] catalog --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 417 +++++++++++++------ src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/regional-supported.yml | 9 + src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 23 +- 6 files changed, 320 insertions(+), 135 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index c35eb9430f..b4025887c0 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 2025-06-20 +# destination categories last updated 2025-06-26 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 27a1ad5dac..652be0168a 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 2025-06-24 +# destination data last updated 2025-06-26 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -22981,7 +22981,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: 7D52sshqeGKc93QxdSes6a + - id: 8gX8PuHbeDVGpN8tEE2K8W sortOrder: 0 fieldKey: external_id label: External User ID @@ -22995,7 +22995,7 @@ items: choices: null dynamic: false allowNull: false - - id: GPzn5npufu3XRJAVVZZ3Z + - id: cac3FktXkcLHSBdPunvtLg sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23009,7 +23009,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9eVowxaWfmfxZKpfcMatEm + - id: oTcy2j5T7NvQZfcPVbqLiC sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -23023,7 +23023,7 @@ items: choices: null dynamic: false allowNull: true - - id: i1U9z9FVV9e8Zh4FpzpMos + - id: 56b7mVUwQfCcuJ6DDX7orN sortOrder: 3 fieldKey: country label: Country @@ -23037,7 +23037,7 @@ items: choices: null dynamic: false allowNull: true - - id: rAD8wypjQo52HZ9ZP58Zv7 + - id: odgKx8MS4igb2yyJD8DeF7 sortOrder: 4 fieldKey: current_location label: Current Location @@ -23054,7 +23054,7 @@ items: choices: null dynamic: false allowNull: true - - id: vaKjs9L1Z9rVmZCFwJCwHr + - id: 4dUnq4A3xEr4Am6SWqGaNC sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -23066,7 +23066,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8JgDgtbDmPkjYVqVjFtZCP + - id: 6JdsJ8Kig3r25Tm5CM1yL3 sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -23078,7 +23078,7 @@ items: choices: null dynamic: false allowNull: true - - id: uxYJdHzFUsAsPAv3Ju5pGn + - id: 5upMphfPzM59UWHLphRf5z sortOrder: 7 fieldKey: dob label: Date of Birth @@ -23090,7 +23090,7 @@ items: choices: null dynamic: false allowNull: true - - id: eg5PwVgoyxG965XEcBeUG + - id: gzJ966i8keusXz3AeqDwQb sortOrder: 8 fieldKey: email label: Email @@ -23104,7 +23104,7 @@ items: choices: null dynamic: false allowNull: true - - id: eHcbBUYSPQVYv4CSvi2Br7 + - id: aNbJQfG7nKM3nrLxFNG2K7 sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -23119,7 +23119,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6DKrxS6sQT17xc8PYaGHUV + - id: hz5Z3LVWHc2CedpV51dLbB sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -23133,7 +23133,7 @@ items: choices: null dynamic: false allowNull: false - - id: tiSvSqji5eAE5csZYDqyjV + - id: poQtZPxjFEN9HBstJ6Hor5 sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -23147,7 +23147,7 @@ items: choices: null dynamic: false allowNull: false - - id: aT2FRqdbQewqq5o8CdAmkf + - id: 7KCnsiws3wz83svzyQfdzG sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -23161,7 +23161,7 @@ items: choices: null dynamic: false allowNull: false - - id: bKeVycHxVkcmbnkBVdpxRX + - id: tcALMvwJGF7wA2kTt977Ct sortOrder: 13 fieldKey: first_name label: First Name @@ -23175,7 +23175,7 @@ items: choices: null dynamic: false allowNull: true - - id: sz5ZZCiDdcN6DzhoJpqN76 + - id: 8auhrzwNeFoNKS5DYtboqZ sortOrder: 14 fieldKey: gender label: Gender @@ -23191,7 +23191,7 @@ items: choices: null dynamic: false allowNull: true - - id: 6VcU3UcKjnYH6i5FLiwo1J + - id: qHH1WdCGFustdvJr4C9XJx sortOrder: 15 fieldKey: home_city label: Home City @@ -23205,7 +23205,7 @@ items: choices: null dynamic: false allowNull: true - - id: pQyksUAhQTT76Czp4DXMkD + - id: 3wL1YQKTJBfzF8vNRv7bT9 sortOrder: 16 fieldKey: image_url label: Image URL @@ -23219,7 +23219,7 @@ items: choices: null dynamic: false allowNull: true - - id: etwRLzKDuNAQLnELuUn7u5 + - id: k1CCjyoZHDu9ELTpY6eyZr sortOrder: 17 fieldKey: language label: Language @@ -23231,7 +23231,7 @@ items: choices: null dynamic: false allowNull: true - - id: kSWj93FmLNvVGwK2wKtzhX + - id: jGpCPMUjHoZrqNXMqAB37C sortOrder: 18 fieldKey: last_name label: Last Name @@ -23245,7 +23245,7 @@ items: choices: null dynamic: false allowNull: false - - id: ud5V9kEhZivKmTmeEYtUvZ + - id: c6nAJXpq7tKTye1adsoyjn sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -23257,7 +23257,7 @@ items: choices: null dynamic: false allowNull: true - - id: bQpbE4kNNGCEu3ZKcSWD5A + - id: 4VuavCBLrrnWRQywddRFNH sortOrder: 20 fieldKey: phone label: Phone Number @@ -23271,7 +23271,7 @@ items: choices: null dynamic: false allowNull: true - - id: e5JJFegnjEFYASgTCdBvt1 + - id: hxcaTLhkyKQKspdRB4SFT6 sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -23286,7 +23286,7 @@ items: choices: null dynamic: false allowNull: false - - id: msKU15gTUpCVQohSwt7MgK + - id: xdfVhRPCPYsQcNYo6xaAM6 sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -23303,7 +23303,7 @@ items: choices: null dynamic: false allowNull: false - - id: mSpKEX3wXRsygd1N3acZAu + - id: 2cCQ2RzyUVQn1kC7fS9xSb sortOrder: 23 fieldKey: time_zone label: Time zone @@ -23318,7 +23318,7 @@ items: choices: null dynamic: false allowNull: false - - id: j7Z4A4vgBWofeXDje1YuXP + - id: itUirR4aqqMt2pBvWKKZFq sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -23333,7 +23333,7 @@ items: choices: null dynamic: false allowNull: false - - id: h8PvQzc9xkcPxkNyYp5CaK + - id: aMCLbNeg2te71SuqmfuhE8 sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -23347,7 +23347,7 @@ items: choices: null dynamic: false allowNull: false - - id: ge6cpuJStAa5k4UsYKMyeM + - id: xbA2nukUTac9WZo8kawVVz sortOrder: 26 fieldKey: _update_existing_only label: Update Existing Only @@ -23362,7 +23362,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3VoCEtSrjf359aU7Zjuwdf + - id: bLteNtLAfrZHYVApQtRZUm sortOrder: 27 fieldKey: enable_batching label: Batch Data to Braze @@ -23385,7 +23385,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: wQhyD6jhLpnjTeZhAUZKFZ + - id: nKLN6pQVjuKeSKdShPTK7s sortOrder: 0 fieldKey: external_id label: External User ID @@ -23399,7 +23399,7 @@ items: choices: null dynamic: false allowNull: false - - id: mVgitfey16XCavqAmWu4JK + - id: qto5WXER1SE2hXwxMCGA2f sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23413,7 +23413,7 @@ items: choices: null dynamic: false allowNull: false - - id: nVyU7TytKE5T9D7uvQWPTD + - id: jD7UGzEsVn3HEu4R6f2C7A sortOrder: 2 fieldKey: email label: Email @@ -23433,7 +23433,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8H3PRc11kp7pEsUGanQDoG + - id: fvug1cyFVoQ9fruvAXgPqb sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -23447,7 +23447,7 @@ items: choices: null dynamic: false allowNull: true - - id: ms8v4dNJ7vaeGWDuBDQmrU + - id: fDvkaQqyWFkLuNqDx26jTJ sortOrder: 4 fieldKey: name label: Event Name @@ -23461,7 +23461,7 @@ items: choices: null dynamic: false allowNull: false - - id: vt9Qhx441WZMz8yyndrxRY + - id: tYNazWYN1iVGJDh3zHPqNb sortOrder: 5 fieldKey: time label: Time @@ -23475,7 +23475,7 @@ items: choices: null dynamic: false allowNull: false - - id: pXKock3fSjHQmHmLJX8rHP + - id: 46oxx1fWVgNDFkkwBkDtbJ sortOrder: 6 fieldKey: properties label: Event Properties @@ -23489,7 +23489,7 @@ items: choices: null dynamic: false allowNull: false - - id: tr9s2UYZqMgginTwBV5yx2 + - id: e46WFudaCJs2VXokqFRa8p sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -23504,7 +23504,7 @@ items: choices: null dynamic: false allowNull: false - - id: bDyxikSqXCVdsfMzoSwMFa + - id: 3R86e4WY7N92Fi2DP6PsCF sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -23527,7 +23527,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: nmQjEgM21v1FMyjh6jjTEa + - id: mrrnFhquS33faw2qc9NK9x sortOrder: 0 fieldKey: external_id label: External User ID @@ -23541,7 +23541,7 @@ items: choices: null dynamic: false allowNull: false - - id: iQxTBVaU3v399dESHoFdLD + - id: fq38bLNayyF3WNWB6nLt3H sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23555,7 +23555,7 @@ items: choices: null dynamic: false allowNull: false - - id: wAswWmSH4oFxMEyaP1TrWr + - id: 3kJF4tqyGqC4rdPJdbu28B sortOrder: 2 fieldKey: email label: Email @@ -23569,7 +23569,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7GHennZN9fEcno4wvLze9d + - id: uQZotzJYD7A1k9SGq55BfC sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -23583,7 +23583,7 @@ items: choices: null dynamic: false allowNull: true - - id: r1faJnVeKTF1uMSk2ahxp9 + - id: nACMMntuFmvRtaWmJVD7Tn sortOrder: 4 fieldKey: time label: Time @@ -23597,7 +23597,7 @@ items: choices: null dynamic: false allowNull: false - - id: d61Yxn3DrHNqAzECwmcmZ1 + - id: rCV4BpjS4D2jWRfmncoAPH sortOrder: 5 fieldKey: products label: Products @@ -23611,7 +23611,7 @@ items: choices: null dynamic: false allowNull: false - - id: czM5i5jv9qsVHDsChA5a1X + - id: kkWnfKvyAvqNWVKgyRQDbY sortOrder: 6 fieldKey: properties label: Event Properties @@ -23625,7 +23625,7 @@ items: choices: null dynamic: false allowNull: false - - id: fco3iGcJLN5WYiPEZH6XZc + - id: gRXtMbPhYMJwxCDrNae34D sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -23640,7 +23640,7 @@ items: choices: null dynamic: false allowNull: false - - id: 37bkHhgRpu2mPq4kxGdZmR + - id: vzp7wCUde51BT74GzjDEir sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -23677,7 +23677,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 7wAKnZr6664Bthucnm3ZQj + - id: 8xjP1mApdm1wxCrhviUEwy sortOrder: 0 fieldKey: external_id label: External ID @@ -23689,7 +23689,7 @@ items: choices: null dynamic: false allowNull: false - - id: sk1oszwK89BKqaBqJbkDPr + - id: 5iCuaJ1hGWbXT1QEgM39Kf sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23703,7 +23703,7 @@ items: choices: null dynamic: false allowNull: false - - id: ia3PkBWqFYzqQ6Q1PogRvE + - id: 9j9bQ2WDWgFuifRfRyb3XH sortOrder: 2 fieldKey: merge_behavior label: Merge Behavior @@ -23732,7 +23732,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: jwjWpUqLuXYxLmLyhSij9L + - id: 4UVSEu4QpueE1VuzTLCLi sortOrder: 0 fieldKey: external_id label: External ID @@ -23744,7 +23744,7 @@ items: choices: null dynamic: false allowNull: true - - id: 3J3pcNHjV1ebT4QbBtSFsY + - id: hAFE7SxzkkZ2iPLJEeB9W3 sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -23756,7 +23756,7 @@ items: choices: null dynamic: false allowNull: false - - id: fJSVZKap8ZFaUzax5vFu2R + - id: nbJNe1F5p9pJHC4FTbvyYq sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -23776,7 +23776,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: 73W4JCdbFGGwWYJFT9ozux + - id: n3EG4xYvjRAtiuALegspWx sortOrder: 0 fieldKey: external_id label: External User ID @@ -23790,7 +23790,7 @@ items: choices: null dynamic: false allowNull: false - - id: hf2PbivozqvbBnYCZF19x9 + - id: fkqaqmwkxiFtnjJjZfRrgi sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23804,7 +23804,7 @@ items: choices: null dynamic: false allowNull: false - - id: eGXuT7ifEi6huiMrXA7mtH + - id: kUbEWn784NDtLeQz1qbhBn sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -23818,7 +23818,7 @@ items: choices: null dynamic: false allowNull: true - - id: sJzXQEyZWv2GSiwnqt7YGj + - id: 7aY1YuNVV9SbMKyATMDckg sortOrder: 3 fieldKey: country label: Country @@ -23832,7 +23832,7 @@ items: choices: null dynamic: false allowNull: true - - id: iXeFjzENDPypdVk84RaRfF + - id: 9bSLdCTEE66QrtMoFLBhew sortOrder: 4 fieldKey: current_location label: Current Location @@ -23849,7 +23849,7 @@ items: choices: null dynamic: false allowNull: true - - id: xhvVBjr8FB7sRM5i3LQfys + - id: jf9p8VZgZo9LS1CbmE71B7 sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -23861,7 +23861,7 @@ items: choices: null dynamic: false allowNull: true - - id: 9wLXd53AYP1vehdDexqZA5 + - id: Db5NGdfFWEUs4bjsrbbsV sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -23873,7 +23873,7 @@ items: choices: null dynamic: false allowNull: true - - id: wJrJktCCM2b5pf7i279zbw + - id: 79sAumGUio1QHLLvWMp1k7 sortOrder: 7 fieldKey: dob label: Date of Birth @@ -23885,7 +23885,7 @@ items: choices: null dynamic: false allowNull: true - - id: 6UMEgUtYP3PdjWyqJNhK2G + - id: tx7b2ehX8dXzFrQCJqShKE sortOrder: 8 fieldKey: email label: Email @@ -23899,7 +23899,7 @@ items: choices: null dynamic: false allowNull: true - - id: Ywic4AQkhsa74BvHSXt5p + - id: bYVMjUSbxKHqyYoi8RVBYj sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -23914,7 +23914,7 @@ items: choices: null dynamic: false allowNull: false - - id: wvLfVTnwYed8r3duVA17Xk + - id: mJ1NpBdNCPzsnoYe94K8et sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -23928,7 +23928,7 @@ items: choices: null dynamic: false allowNull: false - - id: w3RhagRGKeRdP8HcTdbzUw + - id: uMYyFgpJF3vyj4BTgbvEEu sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -23942,7 +23942,7 @@ items: choices: null dynamic: false allowNull: false - - id: wti8BaHp3C9Z5yc5evv1iB + - id: d4xru2vRjEi4RT5TmWgb1y sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -23956,7 +23956,7 @@ items: choices: null dynamic: false allowNull: false - - id: i5WUyMTvfMQ3Sn466Kg8U9 + - id: sWnUjpm5UwcNWUuWxy2sgN sortOrder: 13 fieldKey: first_name label: First Name @@ -23970,7 +23970,7 @@ items: choices: null dynamic: false allowNull: true - - id: eYcgrssN9E3ja4KdS7B3Kp + - id: pEv9iR95xz8rKF8J4mQhbq sortOrder: 14 fieldKey: gender label: Gender @@ -23986,7 +23986,7 @@ items: choices: null dynamic: false allowNull: true - - id: duPiSBdahmSC9Nba5YMqHQ + - id: m3W7fjjiHMadQf9StMrwv5 sortOrder: 15 fieldKey: home_city label: Home City @@ -24000,7 +24000,7 @@ items: choices: null dynamic: false allowNull: true - - id: kAzuB3rxqeFYfJ4qn5eN6s + - id: pNrVJ4pLT2zYGzAB48WvZr sortOrder: 16 fieldKey: image_url label: Image URL @@ -24014,7 +24014,7 @@ items: choices: null dynamic: false allowNull: true - - id: jXCBXvcBx9K68Te54C8m2t + - id: f3fCwV3BdPFWkbNrYqM3bK sortOrder: 17 fieldKey: language label: Language @@ -24026,7 +24026,7 @@ items: choices: null dynamic: false allowNull: true - - id: pUPadBHai8sogJYd2KGMuu + - id: egAthtxhyoYdweeajB19HG sortOrder: 18 fieldKey: last_name label: Last Name @@ -24040,7 +24040,7 @@ items: choices: null dynamic: false allowNull: false - - id: hZwBuqr7xFyBPC7n7RjNbn + - id: qcNhSQmPKpyaPuexHd1m1Z sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -24052,7 +24052,7 @@ items: choices: null dynamic: false allowNull: true - - id: b9DqG3S9KD6zHGFxvDG7aZ + - id: ksGYS9vjjHVd3JzXG4sGEU sortOrder: 20 fieldKey: phone label: Phone Number @@ -24066,7 +24066,7 @@ items: choices: null dynamic: false allowNull: true - - id: hu6ycTCSBh6WjGF3F3rV5e + - id: bJGaRahSiHqR93TYJe7aGR sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -24081,7 +24081,7 @@ items: choices: null dynamic: false allowNull: false - - id: qimfMGkj27DMRCinoTerdY + - id: gQq2pFMa4qvnXVvjEy6tEi sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -24098,7 +24098,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5NEvLp37XTMZTB2WTGJyBH + - id: iPRoGkEJBLqh7Ru9xXzAab sortOrder: 23 fieldKey: time_zone label: Time zone @@ -24113,7 +24113,7 @@ items: choices: null dynamic: false allowNull: false - - id: eEPfhdMVPXqA3brG4s5NNa + - id: d4QPmoVqTXDr9UySgeqQbz sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -24128,7 +24128,7 @@ items: choices: null dynamic: false allowNull: false - - id: kNVSEUduJ4HVH5BSzjLVzW + - id: jgfmowc82NGJkFDUCgoqPE sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -24142,7 +24142,7 @@ items: choices: null dynamic: false allowNull: false - - id: guj6bxBhqCnWJLDURGi2yC + - id: tmBXZ9aaRzwqHkF5eauSXw sortOrder: 26 fieldKey: enable_batching label: Batch Data to Braze @@ -24165,7 +24165,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: nQpuSNMvbTYC4tiP5vuCM3 + - id: gZzZN2a45MBk5Uo6i92iff sortOrder: 0 fieldKey: external_id label: External User ID @@ -24179,7 +24179,7 @@ items: choices: null dynamic: false allowNull: false - - id: vXyDaJmu7tECwDCdazx8qM + - id: t7tpxYcuuwAYGYoCkAgHQw sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24193,7 +24193,7 @@ items: choices: null dynamic: false allowNull: false - - id: wCgCskVonTYaDeAvgXHHhA + - id: cJHVALuf3RTmiJVbYmbN84 sortOrder: 2 fieldKey: email label: Email @@ -24213,7 +24213,7 @@ items: choices: null dynamic: false allowNull: false - - id: dRKg2tMusnKuizBeRSxid4 + - id: ngcrSeqf11PmsicHuFPsZu sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -24227,7 +24227,7 @@ items: choices: null dynamic: false allowNull: true - - id: sZVpeeH4kqAMNLKnsCmg4Y + - id: dKpZ6DZCCpBPrNH3q3ExKR sortOrder: 4 fieldKey: name label: Event Name @@ -24241,7 +24241,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5iUHDVJ72MWsdLsJHPkQVi + - id: nwcRbxKFbsDCQnVodqKo1q sortOrder: 5 fieldKey: time label: Time @@ -24255,7 +24255,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5b61pZ4mwAotr394tuzfeS + - id: 5ovNWXiCcnyX81UQHpoNYS sortOrder: 6 fieldKey: properties label: Event Properties @@ -24269,7 +24269,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3zXZSJNBvp9MCD6qFAFmr8 + - id: EvkGVvvF3w41vrSfZcu3F sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -24294,7 +24294,7 @@ items: hidden: false defaultTrigger: null fields: - - id: eHz3d4e84JS3kmwF3ZPHfd + - id: eUPVg59Ppmw58zM8FLQoBH sortOrder: 0 fieldKey: external_id label: External ID @@ -24306,7 +24306,7 @@ items: choices: null dynamic: false allowNull: false - - id: rxDhtjPqqX48Xcc1RY4BrU + - id: qYgkfPix86B1WTjXHc8iKW sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24315,13 +24315,39 @@ items: A user alias object. See [the docs](https://www.braze.com/docs/api/objects_filters/user_alias_object/). placeholder: '' - required: true + required: false multiple: false choices: null dynamic: false allowNull: false - - id: 6apsAkpFFFWh9FMAChH7yL + - id: 7kUHwB3XP4wWExzy4zoQWv sortOrder: 2 + fieldKey: email_to_identify + label: Email to Identify + type: STRING + description: Email address to identify user. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mxQ5Mg6v7N9tmaWsHgVfAP + sortOrder: 3 + fieldKey: prioritization + label: Prioritization + type: OBJECT + description: >- + Prioritization settings for user merging if multiple users are found. + Required when email_to_identify is provided. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 5yosK2mzwkpfdZ1hq7vW6k + sortOrder: 4 fieldKey: merge_behavior label: Merge Behavior type: STRING @@ -24349,7 +24375,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: 4UTqMYrJtcFdtcRugKAFhm + - id: gk6NPK8An1b7BxAknnHrMy sortOrder: 0 fieldKey: external_id label: External ID @@ -24361,7 +24387,7 @@ items: choices: null dynamic: false allowNull: true - - id: wsgRaFBx5SAurQTrmF9tev + - id: oZuRPP81EkoHskVzeWB9ER sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -24373,7 +24399,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8oj3TvVtzVRimKKx5rjqA4 + - id: bQ14DxHoEsszTFLGn8zgAN sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -24393,7 +24419,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: ebLdUvgUbigeB1hAr12xoM + - id: mttbcYqew3xmFCCJasxHtw sortOrder: 0 fieldKey: external_id label: External User ID @@ -24407,7 +24433,7 @@ items: choices: null dynamic: false allowNull: false - - id: aViyPeKH8qzqT9zy3SEhDg + - id: mo57jytve23656fUQRZNhn sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24421,7 +24447,7 @@ items: choices: null dynamic: false allowNull: false - - id: myYDc2sNPWQFxyLQBDsfb5 + - id: jVX3F4nkCrEW3NEa5zRqxw sortOrder: 2 fieldKey: email label: Email @@ -24435,7 +24461,7 @@ items: choices: null dynamic: false allowNull: false - - id: ohRg8GdXWAED8HavXrUfx8 + - id: qCiDffY8q4X8neFkzX2ABz sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -24449,7 +24475,7 @@ items: choices: null dynamic: false allowNull: true - - id: ry7cUGYjV3FQ2bvzTwYidm + - id: kTqTnf262x7oy1xD9jaE5N sortOrder: 4 fieldKey: time label: Time @@ -24463,7 +24489,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2LpWSU9Ly4aMiaY2C8z4dB + - id: mDYwdEDPMLxCxxsJoTqxjR sortOrder: 5 fieldKey: products label: Products @@ -24477,7 +24503,7 @@ items: choices: null dynamic: false allowNull: false - - id: 773Jwv1SGVCfysGJUssYcH + - id: iUbxoDYMtNHMw1TxR5S7QK sortOrder: 6 fieldKey: properties label: Event Properties @@ -24491,7 +24517,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3V4dPMDH7sJzqHw1xkqrgN + - id: 2cERam8KHiVE96obMoE2TH sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -24514,7 +24540,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: frVxjjng97px27kMgWPkgA + - id: adEtxVM6wzmkGPVTs7pDnN sortOrder: 0 fieldKey: campaign_id label: Campaign ID @@ -24528,7 +24554,7 @@ items: choices: null dynamic: true allowNull: false - - id: hzf8gAqF5dzYEnW4qm28gh + - id: oQYCj5zPnSS5g2LEsnLGUx sortOrder: 1 fieldKey: send_id label: Send ID @@ -24542,7 +24568,7 @@ items: choices: null dynamic: false allowNull: false - - id: evjms8z9F3mT1AmkKFFqZv + - id: aE5Tt6xMYURADXk1VtzRrV sortOrder: 2 fieldKey: trigger_properties label: Trigger Properties @@ -24559,7 +24585,7 @@ items: choices: null dynamic: false allowNull: false - - id: v2EQEDbxsXrtEU73SKwVMd + - id: 9z7i5SUG97D2A7q6cjyMnu sortOrder: 3 fieldKey: broadcast label: Broadcast @@ -24574,7 +24600,7 @@ items: choices: null dynamic: false allowNull: false - - id: qzU9tkUdebo3ez8xgqbNJq + - id: 9Zp4r9YkWzUevMHJBfmTh8 sortOrder: 4 fieldKey: attachments label: Attachments @@ -24586,7 +24612,7 @@ items: choices: null dynamic: false allowNull: false - - id: cU7Zn8PNVCCUgSdKWgqWcu + - id: kFEo7HU6ckwdyGLKqFguEq sortOrder: 5 fieldKey: recipients label: Recipients @@ -24600,7 +24626,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7FqZXBLiyfFZZVvEdfGiTZ + - id: 83BHy4g9rgBf8x4JxZrjmV sortOrder: 6 fieldKey: prioritization label: Prioritization @@ -24614,7 +24640,7 @@ items: choices: null dynamic: false allowNull: false - - id: fh4Dpnn5wQNCLdeARBUvNw + - id: kfFurhvjDuAMmefgFQntV7 sortOrder: 7 fieldKey: audience label: Audience @@ -24628,26 +24654,138 @@ items: choices: null dynamic: false allowNull: false - presets: - - actionId: vE7Gf9yobj2gTuMBhwmg7g - name: Order Completed Calls + - id: 3rHZERwR6c55kFDYDFmu5V + name: Upsert Catalog Item + slug: upsertCatalogItem + description: Upserts or deletes items in a catalog + platform: CLOUD + hidden: false + defaultTrigger: null fields: - external_id: - '@path': $.userId - email: - '@path': $.traits.email - braze_id: - '@path': $.properties.braze_id - time: - '@path': $.receivedAt - products: - '@path': $.properties.products - properties: - '@path': $.properties - _update_existing_only: false - enable_batching: true - batch_size: 75 - trigger: event = "Order Completed" + - id: 59HU4ZUhnof1G2MiE4skL9 + sortOrder: 0 + fieldKey: item + label: Catalog item to upsert + type: OBJECT + description: >- + The item to upsert in the catalog. The item object should contain fields + that exist in the catalog. The item object should not contain the id + field. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: vQCbvam4EkU1qm4PM1QT4i + sortOrder: 1 + fieldKey: item_id + label: Item ID + type: STRING + description: >- + The unique identifier for the item. Maximum 250 characters. Supported + characters: letters, numbers, hyphens, and underscores. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qNWbQUexLXhAUWvmiQKwoX + sortOrder: 2 + fieldKey: enable_batching + label: Batch Data to Braze? + type: BOOLEAN + description: If true, Segment will batch events before sending to Braze. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mSGiauTj8drV2vwKLXBjTk + sortOrder: 4 + fieldKey: operation + label: Operation + type: STRING + description: Whether to select an existing catalog or create a new one in Braze. + placeholder: '' + required: true + multiple: false + choices: + - label: Create a new catalog + value: create + - label: Select an existing catalog + value: select + dynamic: false + allowNull: false + - id: 9toFUV9t35CQuECg5MFkrC + sortOrder: 5 + fieldKey: selected_catalog_name + label: Catalog Name + type: STRING + description: The unique name of the catalog. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: 9vkcqkSQM3EepRX42a5fwB + sortOrder: 6 + fieldKey: created_catalog_name + label: Catalog Name + type: STRING + description: >- + The name of the catalog. Must be unique. Maximum 250 characters. + Supported characters: letters, numbers, hyphens, and underscores. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 21e8DxEuq6J5W5BiZAmPz7 + sortOrder: 7 + fieldKey: description + label: Catalog Description + type: STRING + description: The description of the catalog. Maximum 250 characters. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: piHv7yYnnmxnqQwYbdMu6j + sortOrder: 8 + fieldKey: columns + label: Catalog Fields + type: OBJECT + description: >- + A list of fields to create in the catalog. Maximum 500 fields. ID field + is added by default. + placeholder: '' + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: ssPVpKxgR3G5JKKDMC3j1K + sortOrder: 9 + fieldKey: onMappingSave + label: Select or Create a Catalog + type: OBJECT + description: Select an existing catalog or create a new one in Braze. + defaultValue: null + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: false + presets: - actionId: 2P24zUSAL8BUpyGYNGmD7M name: Identify Calls fields: @@ -24707,6 +24845,25 @@ items: enable_batching: true batch_size: 75 trigger: type = "track" and event != "Order Completed" + - actionId: vE7Gf9yobj2gTuMBhwmg7g + name: Order Completed Calls + fields: + external_id: + '@path': $.userId + email: + '@path': $.traits.email + braze_id: + '@path': $.properties.braze_id + time: + '@path': $.receivedAt + products: + '@path': $.properties.products + properties: + '@path': $.properties + _update_existing_only: false + enable_batching: true + batch_size: 75 + trigger: event = "Order Completed" partnerOwned: false - id: 63872c01c0c112b9b4d75412 display_name: Braze Cohorts diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 5c270665c6..a13018ddb2 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 2025-06-20 +# destination data last updated 2025-06-26 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/regional-supported.yml b/src/_data/catalog/regional-supported.yml index fdfd71f47f..d9a080135a 100644 --- a/src/_data/catalog/regional-supported.yml +++ b/src/_data/catalog/regional-supported.yml @@ -258,6 +258,15 @@ sources: - us endpoints: - us + - id: fUGdCkAF8f + display_name: DB2 + hidden: false + slug: db2 + url: connections/sources/catalog/cloud-apps/db2 + regions: + - us + endpoints: + - us - id: 3yeoUP8E3Y display_name: Delighted hidden: false diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index aee7fe1347..eedd4f30ed 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 2025-06-20 +# source categories last updated 2025-06-26 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 c5fe7d2bea..5805cf96c0 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 2025-06-20 +# sources last updated 2025-06-26 items: - id: 8HWbgPTt3k display_name: .NET @@ -591,6 +591,25 @@ items: - Warehouse status: PUBLIC partnerOwned: false + - id: fUGdCkAF8f + display_name: DB2 + isCloudEventSource: false + slug: db2 + url: connections/sources/catalog/cloud-apps/db2 + hidden: false + regions: + - us + endpoints: + - us + source_type: cloud-app + description: Use DB2 as a Warehouse Source for Reverse ETL + logo: + url: >- + https://cdn-devcenter.segment.com/9e78b3e6-9d60-4cba-9273-110e7d31b6f4.svg + categories: + - Warehouse + status: PUBLIC_BETA + partnerOwned: false - id: 3yeoUP8E3Y display_name: Delighted isCloudEventSource: true @@ -1244,7 +1263,7 @@ items: categories: - Email Marketing status: PUBLIC - partnerOwned: false + partnerOwned: true - id: D6h3UEduNW display_name: Klenty isCloudEventSource: true From 6be5bfb4444cceaa4f880e1f209951c22b9ddacd Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 26 Jun 2025 12:33:58 -0500 Subject: [PATCH 184/438] move Journeys logic page --- src/engage/journeys/{ => v1}/journeys-logic.md | 1 + 1 file changed, 1 insertion(+) rename src/engage/journeys/{ => v1}/journeys-logic.md (99%) diff --git a/src/engage/journeys/journeys-logic.md b/src/engage/journeys/v1/journeys-logic.md similarity index 99% rename from src/engage/journeys/journeys-logic.md rename to src/engage/journeys/v1/journeys-logic.md index f07e8fc70c..72134b0f14 100644 --- a/src/engage/journeys/journeys-logic.md +++ b/src/engage/journeys/v1/journeys-logic.md @@ -3,6 +3,7 @@ title: Understanding Journeys Logic plan: engage-foundations redirect_from: - "/personas/journeys/journeys-logic" + - "/engage/journeys/journeys-logic" --- From 9b0be933552ab3901a25791b0f121a984e4cf17f Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 26 Jun 2025 12:35:01 -0500 Subject: [PATCH 185/438] update sidenav --- src/_data/sidenav/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index d7f8a980ee..52e5900904 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -483,6 +483,8 @@ sections: title: 'Journey Step Types' - path: '/engage/journeys/v1/send-data' title: Send Data to Destinations + - path: '/engage/journeys/v1/journeys-logic' + title: Understand Journeys Logic - section_title: Journeys V2 slug: '/engage/journeys/v2' section: @@ -504,8 +506,6 @@ sections: title: Journeys Analytics - path: '/engage/journeys/faq-best-practices' title: Journeys Best Practices and FAQ - - path: '/engage/journeys/journeys-logic' - title: Understand Journeys Logic - path: '/engage/journeys/key-terms' title: Journeys Glossary - section_title: Content From 3b6005436938153e2afab4a8596c4f677e72704d Mon Sep 17 00:00:00 2001 From: "will.i.am" <110120307+wilwong-segment@users.noreply.github.com> Date: Thu, 26 Jun 2025 11:42:41 -0700 Subject: [PATCH 186/438] Update actions.md --- src/connections/destinations/actions.md | 28 ++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 66062e79d4..e8d0085a6d 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -183,7 +183,7 @@ If necessary, click **New Mapping** to create a new, blank action. This step looks for events that match the criteria in the [debugger queue](/docs/connections/sources/debugger/), so you might need to Trigger some events with the expected criteria to test your conditions. You can skip the test step if needed, and re-try it at any time. 3. Select data models to [enrich your events](/docs/unify/linked-profiles/linked-events/) with. 4. Set up the data mapping from the Segment format to the destination tool format. -- You can click the Source field, then select the **Enrichments** tab to view and select Enrichments to use. +- You can click the Source field and, from the **Event properties** tab, select previously configured Enrichments. 5. Test the mapping with data from a sample event. The edit panel shows you the mapping output in the format for the destination tool. The **Select Object** option sends the entire object from the event, while the **Edit Object** option lets you map each individual property. You can change your mapping as needed and re-test. 6. When you're satisfied with the mapping, click **Save**. Segment returns you to the Mappings table. @@ -200,12 +200,30 @@ If necessary, click **New Mapping** to create a new, blank action. Segment offers suggested mappings that automatically propose relevant destination fields for both model columns and payload elements. For example, if your model includes a column or payload field named `transaction_amount`, the feature might suggest mapping it to a destination field like `Amount` or `TransactionValue`. This automation, powered by intelligent autocompletion, matches and identifies near-matching field names to streamline the setup. For more information, see [Segment's suggested mappings blogpost](https://segment.com/blog/ai-assisted-magical-mappings/){:target="_blank”} and the [Suggested Mappings Nutrition Label](/docs/connections/reverse-etl/suggested-mappings-nutrition-facts). > warning "" -> Review the suggested mappings for accuracy before finalizing them as the suggestions aren't guaranteed to be 100% accurate. +> Review the suggested mappings for accuracy before finalizing them as the suggestions aren't guaranteed to be 100% accurate. + +## Static values +We support four static value types in Destination Actions mappings: string, boolean, number, and null. To create a string static value, type the string directly into the input field. For boolean, number, and null values, use the new **Static values** tab to create the appropriate static value based on its type. + +## Functions +In Destination Actions mappings, functions transform event data before it’s sent to the destination, enabling custom data handling like selecting non-null values or formatting fields. ### Coalesce function The coalesce function takes a primary value and uses it if it is available. If the value isn't available, the function uses the fallback value instead. +### Case function + +The case function allows you to change the casing of a given string value. + +### JSON function + +The JSON function allows you to convert an object or array to a JSON encoded string, or to convert from JSON to objects. + +### Flatten function + +The flatten function allows you to flatten a nested object to an object with a depth of 1. Keys are delimited by the configured separator. For example, an object like {a: { b: { c: 1 }, d: 2 } } will be converted to { 'a.b.c': 1, 'a.d': 2 }. + ### Replace function The replace function allows you to replace a string, integer, or boolean with a new value. You have the option to replace up to two values within a single field. @@ -218,11 +236,7 @@ Segment evaluates this field as a string, so placing text next to a variable aut ![Mapping UI showing two concatenated fields: "+1 phone" and "context.page.url context.page.path"](images/mapping-concatenation.png) -### Flatten function - -The flatten function allows you to flatten a nested object to an object with a depth of 1. Keys are delimited by the configured separator. For example, an object like {a: { b: { c: 1 }, d: 2 } } will be converted to { 'a.b.c': 1, 'a.d': 2 }. - -### Conditions +## Conditions > info "" > Self-service users can add a maximum of two conditions per Trigger. From d9b16d8cbf703f4d46f80882ede3cc87e81ce742 Mon Sep 17 00:00:00 2001 From: "will.i.am" <110120307+wilwong-segment@users.noreply.github.com> Date: Thu, 26 Jun 2025 13:20:24 -0700 Subject: [PATCH 187/438] Update actions.md --- src/connections/destinations/actions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index e8d0085a6d..7de6d9ed43 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -230,9 +230,9 @@ The replace function allows you to replace a string, integer, or boolean with a ### Concatenate function -To combine two values in the event variable field, you can concatenate them using plain text and variables together. For example, to prepend the country code to a phone number, enter `+1{{Phone Number}}`. +To combine two values in the event variable field, you can concatenate them using plain text and variables together. For example, to prepend the country code to a phone number, enter `+1{{Phone Number}}`. Segment evaluates this field as a string, so placing text next to a variable automatically concatenates them. -Segment evaluates this field as a string, so placing text next to a variable automatically concatenates them. +You cannot concatenate event variables and plain text with static values and functions. Adding a static value or function into an input field replaces any previously added event variables and plain text. ![Mapping UI showing two concatenated fields: "+1 phone" and "context.page.url context.page.path"](images/mapping-concatenation.png) From 7323f3e1f943edab9609af55bc30f1e6890032f4 Mon Sep 17 00:00:00 2001 From: Ravi Bansal Date: Thu, 26 Jun 2025 17:44:32 -0700 Subject: [PATCH 188/438] Updating documentation based on questions asked in client calls --- .../actions-amazon-conversions-api/index.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md index 89d415803d..defed78feb 100644 --- a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md @@ -89,7 +89,7 @@ Amazon requires at least one match key to identify the user associated with each | postalCode | User's postal code (is hashed) | | maid | Mobile advertising ID (ADID, IDFA, or FIREADID) | | rampId | RAMP ID for attribution to traffic events | -| matchId | Custom match ID for the user | +| matchId | Match ID is an anonymous opaque unique identifier that represents a user on an advertiser’s system, like loyalty membership ID and order ID. With Match ID, advertisers can accurately track campaign performance without sharing customer data to Amazon like hashed email/phone while navigating complex customer journeys that spans multiple channels and devices. The advertisers implementing Amazon Advertising Tag (AAT) on their website can send match_id as an attribute along with the online events. Amazon matches this to users via cookies or hashed PII. When these users convert offline, advertisers can report it through Conversions API (CAPI) using the same match_id | Segment automatically maps these fields from standard identity traits when available. @@ -139,7 +139,7 @@ You can include custom attributes with your events to provide additional context #### How does deduplication work? -Amazon Conversions API uses the `clientDedupeId` field to prevent duplicate events. By default, Segment maps the messageId to this field. For events with the same clientDedupeId, only the latest event will be processed. +Amazon Conversions API uses the `clientDedupeId` field to prevent duplicate events. By default, Segment maps the messageId to this field. For events with the same clientDedupeId, only the latest event will be processed. Please be advised that deduplication occurs across all event types, rather than being limited to individual event types. #### What regions are supported? @@ -163,3 +163,16 @@ Personally identifiable information (PII) fields like email, phone, name, and ad #### How can I verify events in Amazon? After you start sending events, you should see them in your Amazon Advertising dashboard under conversion tracking reports. Allow some time for the events to be processed and attributed. + +#### Which advertising accounts can access Amazon Conversions API? + +- Self-Service (SS) Accounts: Yes +- Managed Service (MS) Accounts: No +- Manager Accounts (MA): Not yet, but we can add if there is enough demand + +#### I am an advertiser on Amazon Demand Side Platform. My agency cannot provide access to their entity as they manage other clients. How do I get access to a specific advertiser account? + +- **Option 1**: +1. Ask the agency to provide access to the specific advertiser account (where they wish to run your campaigns) within their agency. Events Manager must be given ‘View and Edit’ permission. Please see help article [here](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. +2. Use the Amazon Conversions API to send data to the specific account they have been given access to in step #1. +- **Option 2**: [Not a supported pattern via Segment yet] Upload your data directly to Manager Account. You will see the data in Data Manager. You can then share the data from Data Manager to other advertiser accounts linked to the Manager Account. Learn more [here](https://advertising.amazon.com/API/docs/en-us/adm/1_ads-data-manager-console-overview){:target="_blank"}. From b928d9bc977337f5136715bee888cd6188a71b57 Mon Sep 17 00:00:00 2001 From: Ravi Bansal Date: Thu, 26 Jun 2025 17:47:06 -0700 Subject: [PATCH 189/438] Updating documentation based on questions asked in client calls --- .../catalog/actions-amazon-conversions-api/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md index defed78feb..cc47ff314e 100644 --- a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md @@ -173,6 +173,6 @@ After you start sending events, you should see them in your Amazon Advertising d #### I am an advertiser on Amazon Demand Side Platform. My agency cannot provide access to their entity as they manage other clients. How do I get access to a specific advertiser account? - **Option 1**: -1. Ask the agency to provide access to the specific advertiser account (where they wish to run your campaigns) within their agency. Events Manager must be given ‘View and Edit’ permission. Please see help article [here](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. -2. Use the Amazon Conversions API to send data to the specific account they have been given access to in step #1. + 1. Ask the agency to provide access to the specific advertiser account (where they wish to run your campaigns) within their agency. Events Manager must be given ‘View and Edit’ permission. Please see help article [here](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. + 2. Use the Amazon Conversions API to send data to the specific account they have been given access to in step #1. - **Option 2**: [Not a supported pattern via Segment yet] Upload your data directly to Manager Account. You will see the data in Data Manager. You can then share the data from Data Manager to other advertiser accounts linked to the Manager Account. Learn more [here](https://advertising.amazon.com/API/docs/en-us/adm/1_ads-data-manager-console-overview){:target="_blank"}. From 70ad6802fed0194c4d179ee3ac224f47f75b6cda Mon Sep 17 00:00:00 2001 From: Ravi Bansal Date: Thu, 26 Jun 2025 21:08:47 -0700 Subject: [PATCH 190/438] Updating documentation based on questions asked in client calls --- .../catalog/actions-amazon-conversions-api/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md index cc47ff314e..b3f222c806 100644 --- a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md @@ -89,7 +89,7 @@ Amazon requires at least one match key to identify the user associated with each | postalCode | User's postal code (is hashed) | | maid | Mobile advertising ID (ADID, IDFA, or FIREADID) | | rampId | RAMP ID for attribution to traffic events | -| matchId | Match ID is an anonymous opaque unique identifier that represents a user on an advertiser’s system, like loyalty membership ID and order ID. With Match ID, advertisers can accurately track campaign performance without sharing customer data to Amazon like hashed email/phone while navigating complex customer journeys that spans multiple channels and devices. The advertisers implementing Amazon Advertising Tag (AAT) on their website can send match_id as an attribute along with the online events. Amazon matches this to users via cookies or hashed PII. When these users convert offline, advertisers can report it through Conversions API (CAPI) using the same match_id | +| matchId | Match ID serves as an anonymous, opaque unique identifier that corresponds to individual users within an advertiser's system, such as loyalty membership identifications and order references. This functionality enables advertisers to precisely monitor campaign effectiveness while maintaining customer data privacy, eliminating the need to share sensitive information like hashed email addresses or phone numbers with Amazon, particularly when analyzing complex customer journeys across multiple channels and devices. The advertisers who implement the Amazon Advertising Tag (AAT) on their websites can transmit match_id as a parameter in conjunction with online event tracking. Amazon's system subsequently correlates these identifiers with users through cookies or hashed Personally Identifiable Information (PII). In instances where users complete offline conversions, advertisers can report these activities through the Conversions API (CAPI) utilizing the corresponding match_id, ensuring seamless cross-channel attribution. | Segment automatically maps these fields from standard identity traits when available. @@ -164,15 +164,15 @@ Personally identifiable information (PII) fields like email, phone, name, and ad After you start sending events, you should see them in your Amazon Advertising dashboard under conversion tracking reports. Allow some time for the events to be processed and attributed. -#### Which advertising accounts can access Amazon Conversions API? +#### Which advertising accounts can access Amazon Conversions API through Segment? - Self-Service (SS) Accounts: Yes - Managed Service (MS) Accounts: No -- Manager Accounts (MA): Not yet, but we can add if there is enough demand +- Manager Accounts (MA): At present, this functionality is not available. However, we are actively monitoring market demand and user requirements. Should sufficient interest emerge from our user base, we will evaluate the possibility of implementing this feature in a future release. #### I am an advertiser on Amazon Demand Side Platform. My agency cannot provide access to their entity as they manage other clients. How do I get access to a specific advertiser account? - **Option 1**: - 1. Ask the agency to provide access to the specific advertiser account (where they wish to run your campaigns) within their agency. Events Manager must be given ‘View and Edit’ permission. Please see help article [here](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. - 2. Use the Amazon Conversions API to send data to the specific account they have been given access to in step #1. -- **Option 2**: [Not a supported pattern via Segment yet] Upload your data directly to Manager Account. You will see the data in Data Manager. You can then share the data from Data Manager to other advertiser accounts linked to the Manager Account. Learn more [here](https://advertising.amazon.com/API/docs/en-us/adm/1_ads-data-manager-console-overview){:target="_blank"}. + 1. Please request your agency to grant access to the specific advertiser account intended for campaign execution. Specifically, 'View and Edit' permissions must be assigned for Events Manager. Please see help article [here](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. + 2. Utilize the Amazon Conversions API (CAPI) to transmit data to the advertiser account for which access was granted in the previous step. +- **Option 2**: [Not a supported pattern via Segment yet] Please upload your data directly to the Manager Account, where it will be visible in Ads Data Manager. Once uploaded, you can efficiently share this data with other advertiser accounts that are linked to your Manager Account. Learn more [here](https://advertising.amazon.com/API/docs/en-us/adm/1_ads-data-manager-console-overview){:target="_blank"}. From 302edfeeb71310094a4e6a534d271a7ff699e80b Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 27 Jun 2025 13:50:53 +0100 Subject: [PATCH 191/438] Fixed bullet point --- .../microsoft-integration-recipe.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md b/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md index 6b4faceebb..1b017824b6 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe.md @@ -89,10 +89,10 @@ To create or update the Account entity only, you can skip this step and directly #### Data mapping -1. Create a new Mapping in the Mappings tab and select the **Send** HTTP action. +1. Create a new mapping in the Mappings tab and select the **Send** HTTP action. 2. Choose which events you want to send to Google Search Ads 360 API using the Event filters. 3. Fill out mapping fields: - - Specify the URL: `[Organization URI]/api/data/v9.2/accounts` (this is for creating new accounts) + - Specify the URL: `[Organization URI]/api/data/v9.2/accounts` (this is for creating new accounts) 4. Use the mapping interface and search for the “body” parameter that was created in the insert function to select the transformed object that can be sent as the event body. 5. Turn off batching for this operation. From f7c285dbd10e8e6159e4e1b5d74cb6aafd8258fe Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 27 Jun 2025 10:50:34 -0400 Subject: [PATCH 192/438] add info about custom traits/audience interaction --- src/privacy/consent-management/consent-in-unify.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/privacy/consent-management/consent-in-unify.md b/src/privacy/consent-management/consent-in-unify.md index bcae9b9169..88901714ea 100644 --- a/src/privacy/consent-management/consent-in-unify.md +++ b/src/privacy/consent-management/consent-in-unify.md @@ -89,6 +89,8 @@ If you use Destination Actions to send consent information to your destinations, ## Storing consent preferences on the Profile Segment stamps consent preference on every Segment event from streaming and Reverse ETL sources to store them on the Profile. +If you're using Consent Management and Profiles, you should not give your customers a Custom Trait value that matches one of the consent categories that you set up in the Segment app, as this can lead to unexpected Audience behavior. For example, if your end user consented to the "Marketing" destination category, you should not give them a custom trait of `segment_consent_preference.categories.marketing`, as this can lead your user to unexpectedly enter or leave an Audience. + > warning "Storing consent on the Profile is in private beta" > Reach out to your sales contact or [request a demo](https://segment.com/contact/demo){:target="_blank"} to participate in the private beta. From 7deccfb7617e07a6946737d04c5ca95880b156a6 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 27 Jun 2025 13:33:02 -0400 Subject: [PATCH 193/438] [netlify-build] --- src/privacy/consent-management/consent-in-unify.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/privacy/consent-management/consent-in-unify.md b/src/privacy/consent-management/consent-in-unify.md index 88901714ea..5ed25b9b31 100644 --- a/src/privacy/consent-management/consent-in-unify.md +++ b/src/privacy/consent-management/consent-in-unify.md @@ -83,13 +83,13 @@ In addition to enforcing consent in Connections, you may want these preferences If you use Destination Actions to send consent information to your destinations, the Segment Consent Preference Updated event should **only** include information about a user's consent preferences because this event is sent regardless of an end-user's consent preferences. -> info "Sharing consent with Classic Destinations is not available" +> info "Sharing consent with Classic Destinations isn't available" > Segment only supports sharing consent with Actions Destinations. ## Storing consent preferences on the Profile Segment stamps consent preference on every Segment event from streaming and Reverse ETL sources to store them on the Profile. -If you're using Consent Management and Profiles, you should not give your customers a Custom Trait value that matches one of the consent categories that you set up in the Segment app, as this can lead to unexpected Audience behavior. For example, if your end user consented to the "Marketing" destination category, you should not give them a custom trait of `segment_consent_preference.categories.marketing`, as this can lead your user to unexpectedly enter or leave an Audience. +If you're using Consent Management and Profiles, you shouldn't give your customers a Custom Trait value that matches one of the consent categories that you set up in the Segment app, as this can lead to unexpected Audience behavior. For example, if your end user consented to the "Marketing" destination category, you shouldn't give them a custom trait of `segment_consent_preference.categories.marketing.`, as this can lead your user to unexpectedly enter or leave an Audience. > warning "Storing consent on the Profile is in private beta" > Reach out to your sales contact or [request a demo](https://segment.com/contact/demo){:target="_blank"} to participate in the private beta. From 9e10a073a20acbf6a7a02ce3a579c7d0d4fec5fe Mon Sep 17 00:00:00 2001 From: pwseg Date: Fri, 27 Jun 2025 14:24:47 -0500 Subject: [PATCH 194/438] fix Extensible Webhooks metadata [netlify-build] --- src/_data/catalog/destinations.yml | 4 ++-- .../destinations/catalog/actions-webhook-extensible/index.md | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml index 652be0168a..d38567971d 100644 --- a/src/_data/catalog/destinations.yml +++ b/src/_data/catalog/destinations.yml @@ -37283,7 +37283,7 @@ items: previous_names: - Extensible Webhook website: http://www.segment.com - status: PUBLIC_BETA + status: PUBLIC categories: - Raw Data logo: @@ -37423,7 +37423,7 @@ items: dynamic: false allowNull: false presets: [] - partnerOwned: true + partnerOwned: false - id: 5e79ef31929aef3bdfbc53a5 display_name: Extole Platform name: Extole Platform diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 3df2563d8d..173cfbadd3 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -4,7 +4,6 @@ id: 66b1f528d26440823fb27af9 hidden: true redirect_from: '/connections/destinations/catalog/extensible-webhook/' --- - {% include content/plan-grid.md name="actions" %} Segment's Extensible Webhooks destination lets you send custom data payloads to any webhook endpoint. With support for flexible payload configuration, multiple authentication methods, and real-time data flow, Extensible Webhooks can help you integrate with internal systems or tools not covered by Segment’s standard destinations. From b27ee8c587057e0ee35cb2bd4d2d8b0d575195a6 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 27 Jun 2025 15:25:11 -0400 Subject: [PATCH 195/438] requested updates [netlify-build] --- src/privacy/user-deletion-and-suppression.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/privacy/user-deletion-and-suppression.md b/src/privacy/user-deletion-and-suppression.md index dd1f7f6e41..0d3f617130 100644 --- a/src/privacy/user-deletion-and-suppression.md +++ b/src/privacy/user-deletion-and-suppression.md @@ -19,11 +19,11 @@ With Regulations, you can issue a single request to delete and suppress data abo > warning "Data sent to device-mode destinations cannot be suppressed" > Destinations set up in device mode are sent directly to destinations and bypass the point in the pipeline where Segment suppresses events. -Segment has 2 types of Regulations - Segment-only Regulations, or those that only impact data from Segment systems, and Segment & destination Regulations, or Regulations that Segment completes on internal systems and then forwards to your connected destinations. +Segment has 2 types of Regulations: +- **Segment-only Regulations**: These Regulations *only* delete or suppress data about your user from internal Segment systems. +- **Segment & Destination Regulations**: These Regulations delete user data from internal Segment systems and then forward a deletion request to any connected destinations that support programmatic deletion. For a list of destination that support programmatic deletion, see [Which destinations can I send deletion requests to?](/docs/privacy/faq/#which-destinations-can-i-send-deletion-requests-to). -While both Regulation types are limited to 110,000 users every calendar month, you can temporarily increase your rate limit for Segment-only regulations. - -To send more than 110,000 Segment-only Regulations over a 30 day period, [contact Segment Support](https://segment.com/help/contact/){:target="_blank"}. +While both Regulation types are limited to 110,000 users every calendar month, you can temporarily increase your rate limit for Segment-only regulations. To send more than 110,000 Segment-only Regulations over a 30 day period, [contact Segment Support](https://segment.com/help/contact/){:target="_blank"}. ### Segment-only Regulations The following Segment-only Regulation types are available: @@ -33,9 +33,9 @@ The following Segment-only Regulation types are available: - **SUPPRESS_ONLY***: Suppress new data without deleting existing data - **UNSUPPRESS*:** Stop an ongoing suppression -### Segment & destination Regulations +### Segment & Destination Regulations -The following Segment & destination Regulations are available: +The following Segment & Destination Regulations are available: - **SUPPRESS_WITH_DELETE:** Suppress new data and delete existing data - **DELETE_ONLY:** Delete existing data without suppressing any new data From 0f4b82591cfda8ac10d5ac0610fbd18372da1472 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 27 Jun 2025 15:55:27 -0400 Subject: [PATCH 196/438] one more [netlify-build] --- src/privacy/user-deletion-and-suppression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/privacy/user-deletion-and-suppression.md b/src/privacy/user-deletion-and-suppression.md index 0d3f617130..4d441c22f6 100644 --- a/src/privacy/user-deletion-and-suppression.md +++ b/src/privacy/user-deletion-and-suppression.md @@ -61,7 +61,7 @@ Warehouse deletions occur using a DML run against your cluster or instance. Segm The deletion requests tab shows a 30-day overview of your deletions pipeline, including a regulations usage tracker and a deletion requests status table. -To navigate to the deletion requests tab, open the Segment app and navigate to **Settings** > **End-user Privacy** > **Deletion Requests**. +To navigate to the deletion requests tab, open the Segment app and navigate to **Privacy > Deletion and Suppression > Deletion**. #### Regulations usage tracker From e906330619016aae91be5b393beec55ce96300cb Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Fri, 27 Jun 2025 13:03:20 -0700 Subject: [PATCH 197/438] Apply suggestions from code review --- src/connections/destinations/actions.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 7de6d9ed43..68dd8bef64 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -183,7 +183,7 @@ If necessary, click **New Mapping** to create a new, blank action. This step looks for events that match the criteria in the [debugger queue](/docs/connections/sources/debugger/), so you might need to Trigger some events with the expected criteria to test your conditions. You can skip the test step if needed, and re-try it at any time. 3. Select data models to [enrich your events](/docs/unify/linked-profiles/linked-events/) with. 4. Set up the data mapping from the Segment format to the destination tool format. -- You can click the Source field and, from the **Event properties** tab, select previously configured Enrichments. +- You can click the Source field, then select previously configured Enrichments from the Event Properties tab. 5. Test the mapping with data from a sample event. The edit panel shows you the mapping output in the format for the destination tool. The **Select Object** option sends the entire object from the event, while the **Edit Object** option lets you map each individual property. You can change your mapping as needed and re-test. 6. When you're satisfied with the mapping, click **Save**. Segment returns you to the Mappings table. @@ -203,10 +203,12 @@ Segment offers suggested mappings that automatically propose relevant destinatio > Review the suggested mappings for accuracy before finalizing them as the suggestions aren't guaranteed to be 100% accurate. ## Static values -We support four static value types in Destination Actions mappings: string, boolean, number, and null. To create a string static value, type the string directly into the input field. For boolean, number, and null values, use the new **Static values** tab to create the appropriate static value based on its type. +Segment supports 4 static value types in Destination Actions mappings: string, boolean, number, and null. +* To create a string static value, type the string directly into the input field. +* To create boolean, number, and null values, use the **Static values** tab to create the appropriate static value based on its type. ## Functions -In Destination Actions mappings, functions transform event data before it’s sent to the destination, enabling custom data handling like selecting non-null values or formatting fields. +In Destination Actions mappings, functions transform event data before it sends to the destination. This enables custom data handling, such as selecting non-null values or formatting fields. ### Coalesce function @@ -230,9 +232,9 @@ The replace function allows you to replace a string, integer, or boolean with a ### Concatenate function -To combine two values in the event variable field, you can concatenate them using plain text and variables together. For example, to prepend the country code to a phone number, enter `+1{{Phone Number}}`. Segment evaluates this field as a string, so placing text next to a variable automatically concatenates them. +To combine 2 values in the event variable field, you can concatenate them using plain text and variables together. For example, to prepend the country code to a phone number, enter `+1{{Phone Number}}`. Segment evaluates this field as a string, so placing text next to a variable automatically concatenates them. -You cannot concatenate event variables and plain text with static values and functions. Adding a static value or function into an input field replaces any previously added event variables and plain text. +You can't concatenate event variables and plain text with static values and functions. Adding a static value or function into an input field replaces any previously added event variables and plain text. ![Mapping UI showing two concatenated fields: "+1 phone" and "context.page.url context.page.path"](images/mapping-concatenation.png) From 193186d3c92e8813008429ed6682561389ca80e1 Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Fri, 27 Jun 2025 14:11:14 -0700 Subject: [PATCH 198/438] Apply suggestions from code review --- .../catalog/actions-amazon-conversions-api/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md index b3f222c806..95b03e6c19 100644 --- a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md @@ -139,7 +139,7 @@ You can include custom attributes with your events to provide additional context #### How does deduplication work? -Amazon Conversions API uses the `clientDedupeId` field to prevent duplicate events. By default, Segment maps the messageId to this field. For events with the same clientDedupeId, only the latest event will be processed. Please be advised that deduplication occurs across all event types, rather than being limited to individual event types. +Amazon Conversions API uses the `clientDedupeId` field to prevent duplicate events. By default, Segment maps the messageId to this field. For events with the same clientDedupeId, only the latest event will be processed. Deduplication occurs across all event types, rather than being limited to individual event types. #### What regions are supported? @@ -170,9 +170,9 @@ After you start sending events, you should see them in your Amazon Advertising d - Managed Service (MS) Accounts: No - Manager Accounts (MA): At present, this functionality is not available. However, we are actively monitoring market demand and user requirements. Should sufficient interest emerge from our user base, we will evaluate the possibility of implementing this feature in a future release. -#### I am an advertiser on Amazon Demand Side Platform. My agency cannot provide access to their entity as they manage other clients. How do I get access to a specific advertiser account? +#### I am an advertiser on Amazon Demand Side Platform. My agency can't provide access to their entity as they manage other clients. How do I get access to a specific advertiser account? - **Option 1**: - 1. Please request your agency to grant access to the specific advertiser account intended for campaign execution. Specifically, 'View and Edit' permissions must be assigned for Events Manager. Please see help article [here](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. - 2. Utilize the Amazon Conversions API (CAPI) to transmit data to the advertiser account for which access was granted in the previous step. -- **Option 2**: [Not a supported pattern via Segment yet] Please upload your data directly to the Manager Account, where it will be visible in Ads Data Manager. Once uploaded, you can efficiently share this data with other advertiser accounts that are linked to your Manager Account. Learn more [here](https://advertising.amazon.com/API/docs/en-us/adm/1_ads-data-manager-console-overview){:target="_blank"}. + 1. Request your agency to grant access to the specific advertiser account intended for campaign execution. Specifically, **View and Edit** permissions must be assigned for the Events Manager. Please see the [help article](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. + 2. Utilize the Amazon Conversions API (CAPI) to transmit data to the advertiser account for which access was granted in the previous step. +- **Option 2**: (*This is not a supported pattern using Segment*) Upload your data directly to the Manager Account where it will be visible in the Ads Data Manager. After it's uploaded, you can share this data with other advertiser accounts that are linked to your Manager Account. Learn more [here](https://advertising.amazon.com/API/docs/en-us/adm/1_ads-data-manager-console-overview){:target="_blank"}. From f42039fc34d59314c21d2afea1e49bde1f421257 Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Fri, 27 Jun 2025 14:13:06 -0700 Subject: [PATCH 199/438] Update src/connections/destinations/catalog/actions-amazon-conversions-api/index.md --- .../catalog/actions-amazon-conversions-api/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md index 95b03e6c19..ef4f41a79e 100644 --- a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md @@ -171,7 +171,7 @@ After you start sending events, you should see them in your Amazon Advertising d - Manager Accounts (MA): At present, this functionality is not available. However, we are actively monitoring market demand and user requirements. Should sufficient interest emerge from our user base, we will evaluate the possibility of implementing this feature in a future release. #### I am an advertiser on Amazon Demand Side Platform. My agency can't provide access to their entity as they manage other clients. How do I get access to a specific advertiser account? - +There are 2 options you can choose from: - **Option 1**: 1. Request your agency to grant access to the specific advertiser account intended for campaign execution. Specifically, **View and Edit** permissions must be assigned for the Events Manager. Please see the [help article](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. 2. Utilize the Amazon Conversions API (CAPI) to transmit data to the advertiser account for which access was granted in the previous step. From cd20dc68b3ead51244c7d2ce6e03e4e5b15e5e09 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Fri, 27 Jun 2025 15:19:09 -0700 Subject: [PATCH 200/438] Added image to Data Graph doc --- src/unify/data-graph/index.md | 1 + .../images/data-graph-add-relationship.png | Bin 0 -> 257918 bytes 2 files changed, 1 insertion(+) create mode 100644 src/unify/images/data-graph-add-relationship.png diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md index d9aaf00797..6859bc08bd 100644 --- a/src/unify/data-graph/index.md +++ b/src/unify/data-graph/index.md @@ -257,6 +257,7 @@ By selecting **Compute count**, you can check the number of rows returned when j Select **Add relationship** and repeat as needed. +The Customer Accounts Relationship side screen when adding a relationship in the Data Graph ### Using the code editor Use the configuration language spec and the following features to build your Data Graph: diff --git a/src/unify/images/data-graph-add-relationship.png b/src/unify/images/data-graph-add-relationship.png new file mode 100644 index 0000000000000000000000000000000000000000..ba2ff8558fb795f886c60c9907f3b4975810f8e6 GIT binary patch literal 257918 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%0A}T#< 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

    )uXOu7o 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

      IXNz0 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 SyEJi%_ya0xC=}c?3-~`4;m<7q literal 0 HcmV?d00001 From b2be9989d9810a84c44bf2b0bab8080848e57b3f Mon Sep 17 00:00:00 2001 From: "will.i.am" <110120307+wilwong-segment@users.noreply.github.com> Date: Fri, 27 Jun 2025 16:02:03 -0700 Subject: [PATCH 201/438] Update to audience trait operators --- src/engage/audiences/index.md | 39 +++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 86259525b9..e4ef132ede 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -68,18 +68,31 @@ When you build an audience based on audience membership, you use existing audien To see which audiences reference a particular audience in their definitions, select the **Consumers** tab when viewing a classic or linked audience. This tab lists all dependent audiences, to help you understand and manage relationships between your audience segments. -### Time comparison - -You can use the following time comparison operators in your audience definition: -- `before date` -- `after date` -- `within last` -- `within next` -- `before last` -- `after next` - -Only ISO timestamps can be used with these operators. Additionally, these time comparison operators exclusively apply to custom traits. -If the timestamp is not a valid ISO timestamp (for example, a trailing `Z` is missing), Segment won't process the audience in real-time. Learn more about [real-time compute compared to batch](/docs/engage/audiences/#real-time-compute-compared-to-batch). +### Trait operators + +| Operator | Description | +|--------------------------- |---------------------------------------| +| equals | Matches exact value. | +| not equals | Does not match exact value. | +| less than | Value is less than specified. | +| greater than | Value is greater than specified. | +| less than or equal to | Value is less than or equal to specified. | +| grater than or equal to | Value is greater than or equal to specified. | +| contains any of | Includes any of specified values. | +| contains | Includes specified substring or value. | +| does not contain | Excludes specified substring or value. | +| starts with | Begins with specified substring. | +| ends with | Ends with specified substring. | +| exists | Value is present (not null). | +| not exists | Value is absent (null). | +| before date | Dates before specified date. | +| after date | Dates after specified date. | +| within last | Dates between X days ago and today. | +| within next | Dates between today and X days from now. | +| before last | All dates older than X days from today. | +| after next | All dates beyond X days from today. | + +Only ISO timestamps can be used with time comparison operators. If the timestamp is not a valid ISO timestamp (for example, a trailing `Z` is missing), Segment won't process the audience in real-time. Learn more about [real-time compute compared to batch](/docs/engage/audiences/#real-time-compute-compared-to-batch). **Note**: Timezones seen in the UI are based on your local timezone, but are converted to UTC on the backend. @@ -409,4 +422,4 @@ This error occurs when creating audiences that reference each other, meaning aud No. Traits located in the `context.traits` object of a Track event aren’t available in the Event Properties section of the Audience Builder. You can only use top-level event properties to define event-based audience conditions. ### How does the historical data flag work? -The **Include Historical Event Data** option lets you take past event data into account and control how much of it is considered when creating real-time audiences. You can set a lookback window (for example, the “last 90 days”) to limit the processed event data, or disable it entirely to use only data arriving after creation. For batch audiences, Segment includes historical data by default. \ No newline at end of file +The **Include Historical Event Data** option lets you take past event data into account and control how much of it is considered when creating real-time audiences. You can set a lookback window (for example, the “last 90 days”) to limit the processed event data, or disable it entirely to use only data arriving after creation. For batch audiences, Segment includes historical data by default. From 4abf113f4ebef6592919f705e3bc3e0f5395b35c Mon Sep 17 00:00:00 2001 From: "will.i.am" <110120307+wilwong-segment@users.noreply.github.com> Date: Fri, 27 Jun 2025 16:12:50 -0700 Subject: [PATCH 202/438] Update index.md --- src/engage/audiences/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index e4ef132ede..acf8ea6025 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -78,6 +78,7 @@ To see which audiences reference a particular audience in their definitions, sel | greater than | Value is greater than specified. | | less than or equal to | Value is less than or equal to specified. | | grater than or equal to | Value is greater than or equal to specified. | +| equals any of | Matches any of specified values. | | contains any of | Includes any of specified values. | | contains | Includes specified substring or value. | | does not contain | Excludes specified substring or value. | From 181bf7e036f7fa211f06448453d1d57d1896f594 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sat, 28 Jun 2025 19:14:56 -0500 Subject: [PATCH 203/438] init --- .../destinations/catalog/actions-twilio-messaging/index.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/connections/destinations/catalog/actions-twilio-messaging/index.md diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md new file mode 100644 index 0000000000..77db13e2ec --- /dev/null +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -0,0 +1,6 @@ +--- +title: Twilio Messaging Destination +id: 674f23ece330374dc1ecc874 +hidden: true +beta: true +--- \ No newline at end of file From 59f3fb286cace8d7c860a8c099f21b09289c96b5 Mon Sep 17 00:00:00 2001 From: Ravi Bansal Date: Sun, 29 Jun 2025 07:30:58 -0700 Subject: [PATCH 204/438] Removing option 2 from access to DSP account FAQ --- .../catalog/actions-amazon-conversions-api/index.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md index ef4f41a79e..9c2c0071e8 100644 --- a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md @@ -171,8 +171,6 @@ After you start sending events, you should see them in your Amazon Advertising d - Manager Accounts (MA): At present, this functionality is not available. However, we are actively monitoring market demand and user requirements. Should sufficient interest emerge from our user base, we will evaluate the possibility of implementing this feature in a future release. #### I am an advertiser on Amazon Demand Side Platform. My agency can't provide access to their entity as they manage other clients. How do I get access to a specific advertiser account? -There are 2 options you can choose from: -- **Option 1**: - 1. Request your agency to grant access to the specific advertiser account intended for campaign execution. Specifically, **View and Edit** permissions must be assigned for the Events Manager. Please see the [help article](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. - 2. Utilize the Amazon Conversions API (CAPI) to transmit data to the advertiser account for which access was granted in the previous step. -- **Option 2**: (*This is not a supported pattern using Segment*) Upload your data directly to the Manager Account where it will be visible in the Ads Data Manager. After it's uploaded, you can share this data with other advertiser accounts that are linked to your Manager Account. Learn more [here](https://advertising.amazon.com/API/docs/en-us/adm/1_ads-data-manager-console-overview){:target="_blank"}. + +1. Request your agency to grant access to the specific advertiser account intended for campaign execution. Specifically, **View and Edit** permissions must be assigned for the Events Manager. Please see the [help article](https://advertising.amazon.com/help/G3ZZ6ZXQWG34DPPM){:target="_blank"}. +2. Utilize the Amazon Conversions API (CAPI) to transmit data to the advertiser account for which access was granted in the previous step. From 94494ed162578fad4c131dc1253e314076bbb369 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 19:29:06 -0500 Subject: [PATCH 205/438] overview section --- .../catalog/actions-twilio-messaging/index.md | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 77db13e2ec..09589b5490 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -3,4 +3,22 @@ title: Twilio Messaging Destination id: 674f23ece330374dc1ecc874 hidden: true beta: true ---- \ No newline at end of file +--- + +Twilio Messaging gives businesses a way to reach customers on SMS, MMS, and WhatsApp for transactional notifications and personalized campaigns. + +The Twilio Messaging destination connects Segment to Twilio, so teams can send messages automatically based on real-time events, audience segments, or journeys without managing complex integrations. + +With the Twilio Messaging destination, you can: + +- Confirm orders or appointments +- Send shipping updates or reminders +- Deliver personalized marketing messages +- Support onboarding and reactivation campaigns + +This destination supports two ways to send messages: + +- **Content templates**: Messages pre-built and managed in Twilio. +- **Inline messages**: Messages created directly in Segment, with dynamic fields and variables. + +Twilio Messaging integrates tightly with Segment's data and audience tools, so you can deliver timely, personalized messages without building custom integrations. From c59fcfd33db16693e6bd098dc66884881ee06ebf Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 19:31:38 -0500 Subject: [PATCH 206/438] getting started --- .../catalog/actions-twilio-messaging/index.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 09589b5490..42c03a4420 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -22,3 +22,15 @@ This destination supports two ways to send messages: - **Inline messages**: Messages created directly in Segment, with dynamic fields and variables. Twilio Messaging integrates tightly with Segment's data and audience tools, so you can deliver timely, personalized messages without building custom integrations. + +## Getting started + +To start sending messages through Twilio Messaging, you'll set up your Twilio account credentials and connect the destination in Segment. + +At a high level, you will: + +1. Create a Twilio API Key and Secret. +2. Add the Twilio Messaging destination in Segment. +3. Configure message mappings to define what messages to send and when. + +The following sections walk through each step in detail. From 68c6d29e97b729fb11d94b0fa54fa0fe98ad2a4d Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Mon, 30 Jun 2025 10:36:41 +1000 Subject: [PATCH 207/438] Add Audience Name field docs --- src/connections/destinations/catalog/actions-ortto/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/actions-ortto/index.md b/src/connections/destinations/catalog/actions-ortto/index.md index 9ededd79b2..421c5dd5e1 100644 --- a/src/connections/destinations/catalog/actions-ortto/index.md +++ b/src/connections/destinations/catalog/actions-ortto/index.md @@ -46,6 +46,8 @@ This destination is maintained by Ortto. For support or questions, [contact the **Ortto (Actions)** allows you to sync your Segment users with an Ortto Audience, enabling precise activation of rich, behavior-based segments—perfect for lifecycle marketing, retargeting, and large-scale personalization. You can manually create new audiences or use existing ones in Ortto, and dynamically add or remove contacts through profile upserts or activity tracking. This gives you real-time control over audience membership. +To define which audience the contact should be linked to, enter the **Audience Name** in the "**Associate Audience**" section. + Ortto blocks rapid audience re-entry to avoid undesirable side-effects from asynchronous updates. If a contact exits an audience and then re-enters the audience within 1 minute, Ortto blocks the update that causes them to rejoin the audience. Ortto uses a daily synchronization to make sure the result of any rapid updates is correctly applied. Ortto updates the Segment member audience field as normal, and any audience re-entries throughout the day that are longer than 1 minute after the last exit are processed in real time. From 99cffe2933a51cbe03845b3c1a3436b655f4e477 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 20:14:48 -0500 Subject: [PATCH 208/438] some fine tuning --- .../catalog/actions-twilio-messaging/index.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 42c03a4420..2136dc23a4 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -34,3 +34,19 @@ At a high level, you will: 3. Configure message mappings to define what messages to send and when. The following sections walk through each step in detail. + +## Authentication and setup + +Before adding the Twilio Messaging to Segment, create an API Key and Secret in your Twilio account. + +To create your API Key and Secret: + +1. Sign in to your [Twilio Console](https://console.twilio.com/){:target="_blank"}. +2. From your Account Dashboard, copy and save your **Account SID**. You'll this in Segment later. +3. In the **Account Info** tab, click **Go to API keys**. +4. On the **API keys & tokens** page, click **Create API Key**. +5. Enter a name for your API key, select the **Standard** key type, then click **Create**. +6. On the **Copy secret key** page, copy the **SID** and **Secret** values. Store them securely. You'll enter both in Segment later. +7. Click **Done** to finish creating the API Key. + +You now have your **Account SID**, **API Key SID**, and **API Key Secret**, which are required to connect Twilio Messaging in Segment. From bbdd88ca652e09d4a5185e52dbc3ccf940360baa Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 20:15:20 -0500 Subject: [PATCH 209/438] add private beta callout --- .../destinations/catalog/actions-twilio-messaging/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 2136dc23a4..90d193cfe6 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -23,6 +23,10 @@ This destination supports two ways to send messages: Twilio Messaging integrates tightly with Segment's data and audience tools, so you can deliver timely, personalized messages without building custom integrations. +> info "Twilio Messaging Destination Private Beta" +> Bidirectional sync is in Private Beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. + + ## Getting started To start sending messages through Twilio Messaging, you'll set up your Twilio account credentials and connect the destination in Segment. From 17c7d3d64f8b5a117fb2c05debdfd2d5954b1c2b Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 21:21:48 -0500 Subject: [PATCH 210/438] more fine tuning --- .../catalog/actions-twilio-messaging/index.md | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 90d193cfe6..7c50ae6575 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -26,12 +26,11 @@ Twilio Messaging integrates tightly with Segment's data and audience tools, so y > info "Twilio Messaging Destination Private Beta" > Bidirectional sync is in Private Beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. - ## Getting started To start sending messages through Twilio Messaging, you'll set up your Twilio account credentials and connect the destination in Segment. -At a high level, you will: +You'll set up the Twilio Messaing destination in three stages: 1. Create a Twilio API Key and Secret. 2. Add the Twilio Messaging destination in Segment. @@ -54,3 +53,22 @@ To create your API Key and Secret: 7. Click **Done** to finish creating the API Key. You now have your **Account SID**, **API Key SID**, and **API Key Secret**, which are required to connect Twilio Messaging in Segment. + +## Add the Twilio Messaging destination + +After setting up your Twilio credentials, add the Twilio Messaging destination to your Segment workspace. + +To add the destination: + +1. From the Twilio Messaging destination page, click **Add destination**. +2. On the Setup screen, give the destination a name and select **Fill in settings manually.** +3. On your new destination page, click the **Settings** tab. +4. On the Settings tab, enter your **Twilio Account SID**, **Twilio API Key SID**, and **Twilio API Key Secret**. +6. To finish setting up the destination, click **Save Changes**. + +The destination is now connected and ready to configure message mappings. + + + From 04bba0393119c2f711a8f682ec6bcf038b47ddd1 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 21:23:34 -0500 Subject: [PATCH 211/438] fix typo --- .../destinations/catalog/actions-twilio-messaging/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 7c50ae6575..bcfdd6646e 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -7,7 +7,7 @@ beta: true Twilio Messaging gives businesses a way to reach customers on SMS, MMS, and WhatsApp for transactional notifications and personalized campaigns. -The Twilio Messaging destination connects Segment to Twilio, so teams can send messages automatically based on real-time events, audience segments, or journeys without managing complex integrations. +The Twilio Messaging destination connects Segment to Twilio, letting you send messages automatically based on real-time events, audience segments, or journeys without managing complex integrations. With the Twilio Messaging destination, you can: @@ -30,7 +30,7 @@ Twilio Messaging integrates tightly with Segment's data and audience tools, so y To start sending messages through Twilio Messaging, you'll set up your Twilio account credentials and connect the destination in Segment. -You'll set up the Twilio Messaing destination in three stages: +You'll set up the Twilio Messaging destination in three stages: 1. Create a Twilio API Key and Secret. 2. Add the Twilio Messaging destination in Segment. From bcd611fa57d4f0a3882d22eb2e9cdd54e19a2489 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 21:25:08 -0500 Subject: [PATCH 212/438] more random stuff --- .../catalog/actions-twilio-messaging/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index bcfdd6646e..763b25717a 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -40,19 +40,19 @@ The following sections walk through each step in detail. ## Authentication and setup -Before adding the Twilio Messaging to Segment, create an API Key and Secret in your Twilio account. +Before you add the Twilio Messaging destination to Segment, you'll first need to create an API Key and Secret in your Twilio account. To create your API Key and Secret: 1. Sign in to your [Twilio Console](https://console.twilio.com/){:target="_blank"}. -2. From your Account Dashboard, copy and save your **Account SID**. You'll this in Segment later. +2. From your Account Dashboard, copy and save your **Account SID**. You'll enter it in Segment later. 3. In the **Account Info** tab, click **Go to API keys**. 4. On the **API keys & tokens** page, click **Create API Key**. 5. Enter a name for your API key, select the **Standard** key type, then click **Create**. 6. On the **Copy secret key** page, copy the **SID** and **Secret** values. Store them securely. You'll enter both in Segment later. 7. Click **Done** to finish creating the API Key. -You now have your **Account SID**, **API Key SID**, and **API Key Secret**, which are required to connect Twilio Messaging in Segment. +You now have your Account SID, API Key SID, and API Key Secret, which are required to connect Twilio Messaging in Segment. ## Add the Twilio Messaging destination @@ -61,7 +61,7 @@ After setting up your Twilio credentials, add the Twilio Messaging destination t To add the destination: 1. From the Twilio Messaging destination page, click **Add destination**. -2. On the Setup screen, give the destination a name and select **Fill in settings manually.** +2. On the Setup screen, give the destination a name and select **Fill in settings manually**. 3. On your new destination page, click the **Settings** tab. 4. On the Settings tab, enter your **Twilio Account SID**, **Twilio API Key SID**, and **Twilio API Key Secret**. 6. To finish setting up the destination, click **Save Changes**. From 2bd278c8e704d804db25cb53cca898cfbae829db Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 21:57:22 -0500 Subject: [PATCH 213/438] mappings table [netlify-build] --- .../catalog/actions-twilio-messaging/index.md | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 763b25717a..e87a58d114 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -72,3 +72,49 @@ The destination is now connected and ready to configure message mappings. Users can only access the destination through the specific URL. I'll update these instructions once it's publicly available and searchable in the workspace catalog. --> +## Configuring message mappings + +The Twilio Messaging destination supports one mapping: **Send message**. Use this mapping to define when messages get sent and what content they include. + +To configure the Send message mapping: + +1. From the destination page, go to **Mappings**. +2. Click **New Mapping**. +3. Select the **Send message** action. +4. Choose the trigger event and map the required fields. For example, specify the recipient's phone number and message content. +5. Configure any additional fields, such as variables or media URLs. +6. Click **Save** to create the mapping. +7. Enable the mapping to start sending messages. + +## Configuring message mappings + +The Twilio Messaging destination supports one mapping action: **Send message**. Use this mapping to define when messages are sent and what content they include. + +### Set up the Send message mapping + +To configure the mapping: + +1. In the Twilio Messaging destination settings, go to **Mappings**. +2. Click **New Mapping**. +3. Select the **Send message** action. +4. Choose the trigger event for when the message should send. +5. Fill out the required fields. +6. Click **Save** to create the mapping. +7. Enable the mapping to start sending messages. + +### Mapping fields reference + +| Field | Description | Notes | +| --------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| Channel | The channel to send the message on. | Options: SMS, MMS, WhatsApp. | +| Sender Type | The sender to use for the message. | Options: Phone number or Messaging Service. Phone numbers must be approved in Twilio. | +| Content Template Type | The type of content template to use. | Options include Inline or pre-built templates in Twilio. Only compatible templates show based on your selected Channel and Content Template Type. | +| To Phone Number | The recipient's phone number. | Must be in [E.164 format](https://www.twilio.com/docs/glossary/what-e164){:target="_blank"}. | +| From Phone Number | The sending phone number. | Must be approved in Twilio and support the selected Channel. | +| Messaging Service SID | The messaging service SID to use. | Required if Sender Type is Messaging Service. | +| Content Template SID | The SID of the content template to use. | Required unless Content Template Type is Inline. | +| Content Variables | Variables used in the content template. | Variables must be pre-defined in Twilio. | +| Inline Template | The message body for inline messages. | Supports variables (for example, `Hello {{first_name}}`). Shown only if Content Template Type is Inline. | +| Inline Media URLs | URLs of any media you want to include with inline messages. | URLs must be publicly accessible. Shown only if Content Template Type is Inline. | +| Validity Period | How long Twilio keeps trying to deliver the message (in seconds). | Optional. Default is 14400 seconds (4 hours). Range: 1–14400. | +| Send At | Time to send the message. | Optional. Must be in [ISO 8601 format]{:target="_blank"}. Messages won't send before this time and will expire after it passes. | From e88f2031e4eeb837db02a21a51c4f0f94d44e41b Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 22:12:59 -0500 Subject: [PATCH 214/438] add message type info --- .../catalog/actions-twilio-messaging/index.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index e87a58d114..27890bcb08 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -118,3 +118,13 @@ To configure the mapping: | Inline Media URLs | URLs of any media you want to include with inline messages. | URLs must be publicly accessible. Shown only if Content Template Type is Inline. | | Validity Period | How long Twilio keeps trying to deliver the message (in seconds). | Optional. Default is 14400 seconds (4 hours). Range: 1–14400. | | Send At | Time to send the message. | Optional. Must be in [ISO 8601 format]{:target="_blank"}. Messages won't send before this time and will expire after it passes. | + +## Message composition options + +The Twilio Messaging destination gives you two ways to create and send messages. + +**Content templates** are templates you’ve already set up in Twilio. They can include text, media, buttons, and other elements, depending on what you’ve built. When you choose a Channel and Content Template Type in Segment, you’ll only see templates that are compatible with those choices. If you’re sending messages to WhatsApp, you’ll need to use Content Templates, since WhatsApp requires pre-approved templates. For most use cases, templates are the way to go because they support richer formatting and keep you compliant. + +**Inline messages** let you write your message directly in Segment mappings. You can include dynamic variables like `Hello {{first_name}}` to personalize messages. Inline messages also support adding media URLs if you’re sending MMS or WhatsApp messages. They’re useful for quick tests or simple notifications, but they don’t support all the advanced features that Content Templates do. + +Choose the option that fits what you’re trying to send. For most customer-facing messages, Content Templates will give you the most reliable and feature-rich experience. From 472a8b2e4233d227bd674424a02c07ed98e56d79 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 23:41:23 -0500 Subject: [PATCH 215/438] message setup options --- .../catalog/actions-twilio-messaging/index.md | 69 +++++++++++++++---- 1 file changed, 55 insertions(+), 14 deletions(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 27890bcb08..2477fd0136 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -104,20 +104,21 @@ To configure the mapping: ### Mapping fields reference -| Field | Description | Notes | -| --------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| Channel | The channel to send the message on. | Options: SMS, MMS, WhatsApp. | -| Sender Type | The sender to use for the message. | Options: Phone number or Messaging Service. Phone numbers must be approved in Twilio. | -| Content Template Type | The type of content template to use. | Options include Inline or pre-built templates in Twilio. Only compatible templates show based on your selected Channel and Content Template Type. | -| To Phone Number | The recipient's phone number. | Must be in [E.164 format](https://www.twilio.com/docs/glossary/what-e164){:target="_blank"}. | -| From Phone Number | The sending phone number. | Must be approved in Twilio and support the selected Channel. | -| Messaging Service SID | The messaging service SID to use. | Required if Sender Type is Messaging Service. | -| Content Template SID | The SID of the content template to use. | Required unless Content Template Type is Inline. | -| Content Variables | Variables used in the content template. | Variables must be pre-defined in Twilio. | -| Inline Template | The message body for inline messages. | Supports variables (for example, `Hello {{first_name}}`). Shown only if Content Template Type is Inline. | -| Inline Media URLs | URLs of any media you want to include with inline messages. | URLs must be publicly accessible. Shown only if Content Template Type is Inline. | -| Validity Period | How long Twilio keeps trying to deliver the message (in seconds). | Optional. Default is 14400 seconds (4 hours). Range: 1–14400. | -| Send At | Time to send the message. | Optional. Must be in [ISO 8601 format]{:target="_blank"}. Messages won't send before this time and will expire after it passes. | +| Field | Description | Notes | +| ------------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Channel** | Choose which channel to send the message on. | Options: SMS, MMS, and WhatsApp. | +| **Sender Type** | Pick how you want to send the message. | Options: Phone number or Messaging Service. Phone numbers must be approved in Twilio. | +| **Content Template Type** | Select the type of content template. | Options include Inline or templates you’ve built in Twilio. Segment only shows templates that match your selected Channel and Template Type. | +| **To Phone Number** | Enter the recipient’s phone number. | Must be in [E.164 format](https://www.twilio.com/docs/glossary/what-e164){:target="_blank"}. | +| **From Phone Number** | Choose the phone number to send from. | Must be approved in Twilio and support the channel you’re using. | +| **Messaging Service SID** | Enter the messaging service SID if you’re using a messaging service. | Required if Sender Type is Messaging Service. | +| **Content Template SID** | Choose which content template to use. | Required unless you’re using Inline. | +| **Content Variables** | Map variables used in your content template. | These variables need to be defined in Twilio first. | +| **Inline Template** | Write your message body if you’re using Inline. | Supports variables (for example, `Hello {{first_name}}`). Shown only if Content Template Type is Inline. | +| **Inline Media URLs** | Add any media URLs for your inline message. | URLs must be publicly accessible. Shown only if Content Template Type is Inline. | +| **Validity Period** | Set how long Twilio should keep trying to deliver the message (in seconds). | Optional. Default is 14400 seconds (4 hours). Can be between 1 and 14400. | +| **Send At** | Schedule when Twilio should send the message. | Optional. Must be in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601){:target="_blank"}. Messages won’t send before this time and will expire after it passes. | + ## Message composition options @@ -128,3 +129,43 @@ The Twilio Messaging destination gives you two ways to create and send messages. **Inline messages** let you write your message directly in Segment mappings. You can include dynamic variables like `Hello {{first_name}}` to personalize messages. Inline messages also support adding media URLs if you’re sending MMS or WhatsApp messages. They’re useful for quick tests or simple notifications, but they don’t support all the advanced features that Content Templates do. Choose the option that fits what you’re trying to send. For most customer-facing messages, Content Templates will give you the most reliable and feature-rich experience. + +## Message setup options + +When you’re configuring your message mapping, there are a few key settings to choose from. + +### Content template types + +The template types you can use depend on the channel you select. Segment only shows templates that are compatible with your chosen channel. + +| Template type | Available channels | Description | +| ------------- | ------------------ | ------------------------------------------------------ | +| Text | SMS, WhatsApp | Standard text-only templates. | +| Media | MMS, WhatsApp | Templates that include images, videos, or other media. | +| Quick reply | WhatsApp | Messages with quick reply buttons for users to tap. | + +If you’re sending messages on WhatsApp, all messages must use approved Content Templates. + +### Sender types + +For the **Sender Type** field, you can choose either a phone number or a messaging service. + +If you select **phone number**, Twilio sends the message from a specific number you own. The number must be approved in your Twilio account and support the channel you’re using. + +If you select **messaging service**, Twilio uses a Messaging Service SID to send the message. Messaging Services group multiple senders under one ID, and Twilio decides which sender to use based on your setup. This option is helpful if you’re sending high volumes or managing multiple numbers. + +### Using variables + +Variables let you personalize messages with details from your event data or user traits. + +If you’re using a **Content Template**: +- Variables must be defined in Twilio when you create the template. +- In Segment, map each variable to the event property it should pull from. For example, if your template says `Hello {{first_name}}`, map `first_name` to the user’s first name property. + +If you’re writing an **inline message**: +- Add variables directly in your message body using handlebars, like `Hello {{first_name}}`. +- Define each variable in your mapping so Segment knows what value to insert. + +You can also use variables in Inline Media URLs to dynamically include different media based on event data. + +Make sure all variables you reference in your message are included in your mapping configuration. From 98aea2b4d7ed41deadfd1e54a8a12a85bcd35ad5 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 29 Jun 2025 23:46:47 -0500 Subject: [PATCH 216/438] more cleanup [netlify-build] --- .../catalog/actions-twilio-messaging/index.md | 47 ++++++++++++------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 2477fd0136..1cb9a5b408 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -21,10 +21,10 @@ This destination supports two ways to send messages: - **Content templates**: Messages pre-built and managed in Twilio. - **Inline messages**: Messages created directly in Segment, with dynamic fields and variables. -Twilio Messaging integrates tightly with Segment's data and audience tools, so you can deliver timely, personalized messages without building custom integrations. +Twilio Messaging works with Segment's data and audience tools to send timely, personalized messages without extra integration work. > info "Twilio Messaging Destination Private Beta" -> Bidirectional sync is in Private Beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. +> The Twilio Messaging Destination is in Private Beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. ## Getting started @@ -74,21 +74,7 @@ it's publicly available and searchable in the workspace catalog. --> ## Configuring message mappings -The Twilio Messaging destination supports one mapping: **Send message**. Use this mapping to define when messages get sent and what content they include. - -To configure the Send message mapping: - -1. From the destination page, go to **Mappings**. -2. Click **New Mapping**. -3. Select the **Send message** action. -4. Choose the trigger event and map the required fields. For example, specify the recipient's phone number and message content. -5. Configure any additional fields, such as variables or media URLs. -6. Click **Save** to create the mapping. -7. Enable the mapping to start sending messages. - -## Configuring message mappings - -The Twilio Messaging destination supports one mapping action: **Send message**. Use this mapping to define when messages are sent and what content they include. +The Twilio Messaging destination supports one mapping action: **Send message**. Use this mapping to define when messages get sent and what content they include. ### Set up the Send message mapping @@ -163,9 +149,34 @@ If you’re using a **Content Template**: - In Segment, map each variable to the event property it should pull from. For example, if your template says `Hello {{first_name}}`, map `first_name` to the user’s first name property. If you’re writing an **inline message**: -- Add variables directly in your message body using handlebars, like `Hello {{first_name}}`. +- Add variables directly in your message body using Handlebars, like `Hello {{first_name}}`. - Define each variable in your mapping so Segment knows what value to insert. You can also use variables in Inline Media URLs to dynamically include different media based on event data. Make sure all variables you reference in your message are included in your mapping configuration. + +## Additional features + +Twilio Messaging also supports a few optional settings you can use in your mappings. + +### Validity period + +The **Validity Period** controls how long Twilio keeps trying to deliver your message. It’s set in seconds, with a minimum of 1 and a maximum of 14400 (4 hours). If the message isn’t delivered within this time, it won’t be sent. The default is 14400 seconds. + +### Send At + +The **Send At** field lets you schedule a message to be sent at a specific time. Enter the time in ISO 8601 format. Messages won’t send before this time, and if the scheduled time passes, new messages triggered after that time won’t send either. Also, keep in mind that Twilio processes scheduled messages as they come in, so delivery might not be exactly at the time you set. + +Use these settings if you need to control delivery timing for things like appointment reminders or time-sensitive notifications. + +## Important considerations + +Here are a few things to keep in mind when using the Twilio Messaging destination: + +- **Content Templates must be created in Twilio**. You can’t create or edit Content Templates directly in Segment. Make sure your templates are built and approved in your Twilio account before selecting them in your mappings. +- **WhatsApp messages require approved templates**. WhatsApp doesn’t allow freeform messages unless it’s part of an active conversation window. For outbound messages, you’ll need to use approved Content Templates. +- **Phone numbers must be approved**. Any phone number you use to send messages must be approved in your Twilio account and support the channel you’re sending on. +- **Message logs and errors**. If a message fails to send, you can view details in your Twilio Console message logs. Common issues include invalid phone number formats or missing required template fields. + +Understanding these details will help you set up your messaging flows smoothly and avoid unexpected errors. From eab18d92e30cb68c298430ea96b3dd449d87b425 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Mon, 30 Jun 2025 10:23:26 -0400 Subject: [PATCH 217/438] font weight 500 --- src/_sass/components/_accordion.scss | 4 ++-- src/_sass/components/_button.scss | 2 +- src/_sass/components/_code-example.scss | 2 +- src/_sass/components/_destination-menu.scss | 2 +- src/_sass/components/_list-steps.scss | 2 +- src/_sass/components/_markdown.scss | 8 ++++---- src/_sass/components/_mobile-menu-side.scss | 2 +- src/_sass/components/_quickinfo.scss | 4 ++-- src/_sass/components/_thumbnail-integration.scss | 2 +- src/_sass/components/_widget.scss | 2 +- src/_sass/generics/_typography.scss | 2 +- src/_sass/vendors/_premonition.scss | 2 +- 12 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/_sass/components/_accordion.scss b/src/_sass/components/_accordion.scss index 67dc317578..bba537b688 100644 --- a/src/_sass/components/_accordion.scss +++ b/src/_sass/components/_accordion.scss @@ -13,7 +13,7 @@ &__heading { padding-right: 20px; font-size: 16px; - font-weight: 600; + font-weight: 500; color: color(gray-800); line-height: 1.71; position: relative; @@ -38,7 +38,7 @@ display: inline-block; margin-top: 7px; font-size: 14px; - font-weight: 600; + font-weight: 500; text-decoration: underline; } diff --git a/src/_sass/components/_button.scss b/src/_sass/components/_button.scss index f3a0532daa..2303116ed6 100644 --- a/src/_sass/components/_button.scss +++ b/src/_sass/components/_button.scss @@ -1,6 +1,6 @@ .button { font-size: 12px; - font-weight: 600; + font-weight: 500; line-height: 1.5; text-align: center; padding: 8px 12px; diff --git a/src/_sass/components/_code-example.scss b/src/_sass/components/_code-example.scss index 3d1a1344eb..dba324aaf7 100644 --- a/src/_sass/components/_code-example.scss +++ b/src/_sass/components/_code-example.scss @@ -26,7 +26,7 @@ color: color(gray-700); font-size: 12px; line-height: 16px; - font-weight: 600; + font-weight: 500; &:hover { color: color(primary); diff --git a/src/_sass/components/_destination-menu.scss b/src/_sass/components/_destination-menu.scss index 8e48146169..f5544f8186 100644 --- a/src/_sass/components/_destination-menu.scss +++ b/src/_sass/components/_destination-menu.scss @@ -1,6 +1,6 @@ .destination-menu { &__title { - font-weight: 600; + font-weight: 500; padding-bottom: 10px; font-size: 14px; } diff --git a/src/_sass/components/_list-steps.scss b/src/_sass/components/_list-steps.scss index f7f0ce69f5..71bf71d497 100644 --- a/src/_sass/components/_list-steps.scss +++ b/src/_sass/components/_list-steps.scss @@ -9,7 +9,7 @@ height: 40px; border-radius: 50%; background-color: color(primary-lighter); - font-weight: 600; + font-weight: 500; color: color(primary); } diff --git a/src/_sass/components/_markdown.scss b/src/_sass/components/_markdown.scss index 6a3e144465..8dd7e9e16c 100644 --- a/src/_sass/components/_markdown.scss +++ b/src/_sass/components/_markdown.scss @@ -183,7 +183,7 @@ &::before { content: counter(list-items) ". "; color: color(primary); - font-weight: 600; + font-weight: 500; transform: translate(-23px, 0); } } @@ -227,7 +227,7 @@ th { color: color(gray-700); - font-weight: 600; + font-weight: 500; padding: 12px; @include breakpoint(medium up) { @@ -240,7 +240,7 @@ } th > code { color: #696f8c; - font-weight: 600; + font-weight: 500; font-size: 10px; background-color: inherit; } @@ -392,7 +392,7 @@ tr.show { padding: 0px 6px; border-radius: 4px; height: 16px; - font-weight: 600; + font-weight: 500; text-transform: uppercase; color: rgb(71, 77, 102); opacity: 0.65; diff --git a/src/_sass/components/_mobile-menu-side.scss b/src/_sass/components/_mobile-menu-side.scss index 7c02248795..4e80a8d787 100644 --- a/src/_sass/components/_mobile-menu-side.scss +++ b/src/_sass/components/_mobile-menu-side.scss @@ -14,7 +14,7 @@ } &__title { - font-weight: 600; + font-weight: 500; } &__list { diff --git a/src/_sass/components/_quickinfo.scss b/src/_sass/components/_quickinfo.scss index 3fe4e5a579..bc3db22f35 100644 --- a/src/_sass/components/_quickinfo.scss +++ b/src/_sass/components/_quickinfo.scss @@ -14,7 +14,7 @@ background-color:#E7E4F9; color: #6E62B6; text-transform: uppercase; - font-weight: 600; + font-weight: 500; padding: 0px 6px; border-radius: 4px @@ -35,7 +35,7 @@ margin-top: 12px; th { font-size: 14px; - font-weight: 600; + font-weight: 500; padding: 5px 13px; background-color: #F4F6FA; text-transform: none; diff --git a/src/_sass/components/_thumbnail-integration.scss b/src/_sass/components/_thumbnail-integration.scss index ee08180946..c2e1c05639 100644 --- a/src/_sass/components/_thumbnail-integration.scss +++ b/src/_sass/components/_thumbnail-integration.scss @@ -56,7 +56,7 @@ border-radius: 4px; font-size: 11px; line-height: 16px; - font-weight: 600; + font-weight: 500; text-transform: uppercase; letter-spacing: 0.2px; color: #6E62B6; diff --git a/src/_sass/components/_widget.scss b/src/_sass/components/_widget.scss index 88733076cf..f91417834c 100644 --- a/src/_sass/components/_widget.scss +++ b/src/_sass/components/_widget.scss @@ -12,7 +12,7 @@ a { text-decoration: underline; - font-weight: 600; + font-weight: 500; } } diff --git a/src/_sass/generics/_typography.scss b/src/_sass/generics/_typography.scss index d881e09ddb..f81c3fe816 100644 --- a/src/_sass/generics/_typography.scss +++ b/src/_sass/generics/_typography.scss @@ -19,5 +19,5 @@ samp { } strong { - font-weight: 600; + font-weight: 500; } diff --git a/src/_sass/vendors/_premonition.scss b/src/_sass/vendors/_premonition.scss index 7a99092854..da9fdb883c 100644 --- a/src/_sass/vendors/_premonition.scss +++ b/src/_sass/vendors/_premonition.scss @@ -94,7 +94,7 @@ .header { font-size: 14px; - font-weight: 600; + font-weight: 500; line-height: 24px; } From 782600a9f497f5ddae426a97259c3fb355ad1a16 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Mon, 30 Jun 2025 10:28:49 -0400 Subject: [PATCH 218/438] [netlify-build] --- src/privacy/consent-management/consent-in-retl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/privacy/consent-management/consent-in-retl.md b/src/privacy/consent-management/consent-in-retl.md index 2a9240ea1b..6212dc02b7 100644 --- a/src/privacy/consent-management/consent-in-retl.md +++ b/src/privacy/consent-management/consent-in-retl.md @@ -146,4 +146,4 @@ Open the [Profile Explorer](/docs/unify/#profile-explorer) and verify that your ### Reverse ETL Actions destinations Segment automatically filters out data from users who have not consented to the category mapped to your destination. -To verify that this behavior is working as intended, open [Delivery Overview](/docs/connections/delivery-overview) for a Reverse ETL-supported Actions destination and view the events that were successfully delivered to the destination. The events in your destination should only come from users that consented to send data to the category that your supported Actions destination belongs to. \ No newline at end of file +To verify that this behavior is working as intended, open [Delivery Overview](/docs/connections/delivery-overview) for a Reverse ETL-supported Actions destination and view the events that were successfully delivered to the destination. The events in your destination should only come from users that consented to send data to the category that your supported Actions destination belongs to. From e1cd04b8e145847678b183da1933a80fa10112b6 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Mon, 30 Jun 2025 11:26:24 -0400 Subject: [PATCH 219/438] Apply suggestions from code review --- .../website/javascript/troubleshooting.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md b/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md index b5cd94175e..ab85dcbb30 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md +++ b/src/connections/sources/catalog/libraries/website/javascript/troubleshooting.md @@ -20,11 +20,13 @@ Segment also provides a Chrome web extension, [Segment Inspector](/docs/connecti Solution: [Follow the Analytics.js Quickstart Guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/) -## Loading Multiple Instances of Analytics.js +## Loading multiple instances of Analytics.js -### Analytics.js Snippet Loaded More Than Once +### Analytics.js snippet loaded more than once -It is not possible to load the Analytics.js snippet twice on the same page, even if different write keys are used. Doing so often results in errors like `Uncaught RangeError: Maximum call stack size exceeded`. However, you can conditionally set the write key based on an environment variable: +You cannot load the Analytics.js snippet twice on the same page, even if different write keys are used. Doing so might result in errors like `Uncaught RangeError: Maximum call stack size exceeded`. + +However, you can conditionally set the write key based on an environment variable: Example: ```js @@ -34,11 +36,12 @@ ENV === 'production' ? writeKey = 'A' : writeKey = 'B'; ### Multiple Versions of Analytics.js -It is possible to load multiple versions of Analytics.js, such as a snippet version and an npm version (with different writekeys), in the same environment without them interfering with each other. This allows the npm library and the browser snippet to coexist without conflicting.Just keep in mind the following limitations with this approach: +You can load multiple versions of Analytics.js in the same environment. For example, you could have both a snippet version and an npm version on one page, each with different write keys. This allows the npm library and the browser snippet to coexist without conflicting. -**1. Device-Mode Destination Conflicts**: If you are using the same device-mode destination in both instances (i.e., across different writekeys), conflicts may occur. This is due to third-party scripts that don't support global instances. To avoid issues, ensure you are not using the same device-mode destination between different write keys. +Keep the following limitations in mind: -**2. CDN URL Customization:** We currently do not support overriding the CDNURL when using multiple instances of Analytics.js. +- **Device-Mode Destination Conflicts**: If you are using the same device-mode destination in both instances (for example, across different write keys), conflicts may occur. This is due to third-party scripts that don't support global instances. To avoid issues, ensure you are not using the same device-mode destination with different write keys. +- **CDN URL Customization:** Segment does not support overriding the CDNURL when using multiple instances of Analytics.js. ## Do you see events appear in your debugger? From a5d88f9357a6af8ddf078c04c4e0a67aeba4154a Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Mon, 30 Jun 2025 12:37:34 -0400 Subject: [PATCH 220/438] initial pass- still waiting to hear from eng --- src/_includes/content/functions/settings.md | 2 +- src/connections/functions/destination-functions.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/_includes/content/functions/settings.md b/src/_includes/content/functions/settings.md index 775499bd48..380cb6a94e 100644 --- a/src/_includes/content/functions/settings.md +++ b/src/_includes/content/functions/settings.md @@ -17,7 +17,7 @@ You can configure the details about this setting, which change how it's displaye - **Type** - Type of the setting's value. - **Description** - Optional description, which appears below the setting name. - **Required** - Enable this to ensure that the setting cannot be saved without a value. -- **Encrypted** - Enable to encrypt the value of this setting. Use this setting for sensitive data, like API keys. +- **Secret** - Enable this to ensure that sensitive data, like API key values, are kept a secret (?) As you change the values, a preview to the right updates to show how your setting will look and work. diff --git a/src/connections/functions/destination-functions.md b/src/connections/functions/destination-functions.md index f109a68a4a..abd1340759 100644 --- a/src/connections/functions/destination-functions.md +++ b/src/connections/functions/destination-functions.md @@ -23,9 +23,9 @@ All functions are scoped to your workspace, so members of other workspaces can't 1. From your workspace, go to **Connections > Catalog** and click the [Functions tab](https://app.segment.com/goto-my-workspace/functions/catalog){:target="_blank"}. 2. Click **New Function**. -3. Select **Destination** as the function type and click **Build**. +3. Select **Destination** as the function type and click **Next: Build Function**. -After you click **Build**, a code editor appears. Use the editor to write the code for your function, configure settings, and test the function's behavior. +After you click **Next: Build Function**, a code editor appears. Use the editor to write the code for your function, configure settings, and test the function's behavior. > success "" > **Tip:** Want to see some example functions? Check out the templates available in the Functions UI, or in the open-source [Segment Functions Library](https://github.com/segmentio/functions-library){:target="_blank"}. (Contributions welcome!) From 8f3482491257e64cb5f581d457f3a9c45a45f41d Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Mon, 30 Jun 2025 10:55:09 -0700 Subject: [PATCH 221/438] minor cleanup --- .../destinations/catalog/actions-linkedin-conversions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-linkedin-conversions/index.md b/src/connections/destinations/catalog/actions-linkedin-conversions/index.md index 5ba3d6e45b..f794bfbf00 100644 --- a/src/connections/destinations/catalog/actions-linkedin-conversions/index.md +++ b/src/connections/destinations/catalog/actions-linkedin-conversions/index.md @@ -49,4 +49,4 @@ Any deviations from this specification might lead to failed inputs. ### Why does LinkedIn show "no integration data" after I successfully sent the data? -One reason may be that your events are missing currency and amount fields. LinkdedIn’s API itself won't reject events due to the lack of currency and amount data, but their platform will silently drop these events later in LinkedIn’s processing. Please ensure your payload has those fields with valid values. +One possible reason is that your events are missing the **currency** and **amount** fields. LinkedIn’s API won't reject events due to the lack of currency and amount data, but their platform will silently drop these events later during processing. Please ensure your payload includes those fields with valid values. From 4cf96e0176f7858472d08130949b63b3edad27c6 Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Tue, 1 Jul 2025 17:03:41 +1000 Subject: [PATCH 222/438] Ortto Audiences integration docs --- .../catalog/actions-ortto-audiences/index.md | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/connections/destinations/catalog/actions-ortto-audiences/index.md diff --git a/src/connections/destinations/catalog/actions-ortto-audiences/index.md b/src/connections/destinations/catalog/actions-ortto-audiences/index.md new file mode 100644 index 0000000000..3a20c0fda5 --- /dev/null +++ b/src/connections/destinations/catalog/actions-ortto-audiences/index.md @@ -0,0 +1,31 @@ +--- +title: Ortto (Audiences) Destination +id: +--- + +{% include content/plan-grid.md name="actions" %} + +The **Ortto (Audiences)** destination allows you to send Engage audiences from Segment to Ortto, where they can be used as [Audiences](https://help.ortto.com/a-115-working-with-audiences){:target="_blank"} for marketing automation, personalization, and reporting. + +This destination is maintained by **Ortto**. For support or questions, please [contact the Ortto Support team](mailto:help@ortto.com). + +## Getting started + +Follow these steps to set up the Ortto (Audiences) destination in your Segment workspace: + +1. In your Segment workspace, click **Engage** in the left navigation bar, then select your space. +2. Click **Engage Settings** and open the **Destinations** tab. +3. Search for `Ortto (Audiences)` and click **Add Destination**. +4. Confirm the source. By default, this will be the source connected to the Engage space you're working in. +5. [Log in to your Ortto account](https://ortto.app/login){:target="_blank"} and either: + - Create a new **Segment (Actions)** data source, or + - Use an existing one. +6. Copy the API key from your Ortto data source. +7. In Segment, open the destination's **Settings** tab and paste the API key. +8. Toggle **Enable Destination** to **ON** and click **Save Changes**. +9. Go to the **Mappings** tab in the *Ortto (Audiences)* destination and add a **Sync Audience** mapping. +10. Enable the mapping. +11. Navigate to the **Audiences** tab in your Engage space and select the audience you want to sync. +12. Click **Add Destination**. + +{% include components/actions-fields.html %} From ad55e90b672bf495eadd3da2494da5baa427da94 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 1 Jul 2025 14:18:36 +0100 Subject: [PATCH 223/438] Fixed bullet/ bold formatting --- .../destinations/catalog/actions-reddit-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-reddit-audiences/index.md b/src/connections/destinations/catalog/actions-reddit-audiences/index.md index a12eac4470..06205c980d 100644 --- a/src/connections/destinations/catalog/actions-reddit-audiences/index.md +++ b/src/connections/destinations/catalog/actions-reddit-audiences/index.md @@ -11,7 +11,7 @@ The Reddit Audiences destination allows advertisers to send Engage audiences fro This destination is maintained by Reddit. For any issues with the destination, [contact their Support team](mailto:adsapi-partner-support@reddit.com). ### Reddit Requirements -* Create a Reddit Ads account. * Find your ad account ID in [Accounts](https://ads.reddit.com/accounts). +- **Create a Reddit Ads account.** Find your ad account ID in [Accounts](https://ads.reddit.com/accounts). ### Connect Reddit Ads to your workspace From 8689bb2894ab0038ad426f1a6b9f2c669ef6fd18 Mon Sep 17 00:00:00 2001 From: rchinn1 Date: Tue, 1 Jul 2025 10:02:57 -0700 Subject: [PATCH 224/438] quick fix --- .../destinations/catalog/actions-reddit-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-reddit-audiences/index.md b/src/connections/destinations/catalog/actions-reddit-audiences/index.md index 06205c980d..5ab3d680ad 100644 --- a/src/connections/destinations/catalog/actions-reddit-audiences/index.md +++ b/src/connections/destinations/catalog/actions-reddit-audiences/index.md @@ -11,7 +11,7 @@ The Reddit Audiences destination allows advertisers to send Engage audiences fro This destination is maintained by Reddit. For any issues with the destination, [contact their Support team](mailto:adsapi-partner-support@reddit.com). ### Reddit Requirements -- **Create a Reddit Ads account.** Find your ad account ID in [Accounts](https://ads.reddit.com/accounts). +- **Create a Reddit Ads account.** Find your ad account ID in [Accounts](https://ads.reddit.com/accounts){:target="_blank"}. ### Connect Reddit Ads to your workspace From 778d71adec5ebcb2ef0cd34aadee8a2f8b743153 Mon Sep 17 00:00:00 2001 From: pwseg Date: Tue, 1 Jul 2025 12:19:55 -0500 Subject: [PATCH 225/438] fix liquid issue [netlify-build] --- .../destinations/catalog/actions-twilio-messaging/index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index 1cb9a5b408..a85f71da84 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -100,7 +100,7 @@ To configure the mapping: | **Messaging Service SID** | Enter the messaging service SID if you’re using a messaging service. | Required if Sender Type is Messaging Service. | | **Content Template SID** | Choose which content template to use. | Required unless you’re using Inline. | | **Content Variables** | Map variables used in your content template. | These variables need to be defined in Twilio first. | -| **Inline Template** | Write your message body if you’re using Inline. | Supports variables (for example, `Hello {{first_name}}`). Shown only if Content Template Type is Inline. | +| **Inline Template** | Write your message body if you’re using Inline. | Supports variables. Shown only if Content Template Type is Inline. | | **Inline Media URLs** | Add any media URLs for your inline message. | URLs must be publicly accessible. Shown only if Content Template Type is Inline. | | **Validity Period** | Set how long Twilio should keep trying to deliver the message (in seconds). | Optional. Default is 14400 seconds (4 hours). Can be between 1 and 14400. | | **Send At** | Schedule when Twilio should send the message. | Optional. Must be in [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601){:target="_blank"}. Messages won’t send before this time and will expire after it passes. | @@ -114,6 +114,8 @@ The Twilio Messaging destination gives you two ways to create and send messages. **Inline messages** let you write your message directly in Segment mappings. You can include dynamic variables like `Hello {{first_name}}` to personalize messages. Inline messages also support adding media URLs if you’re sending MMS or WhatsApp messages. They’re useful for quick tests or simple notifications, but they don’t support all the advanced features that Content Templates do. +In Segment, map each variable to the event property it should pull from. For example, if your template says {% raw %}`Hello {{first_name}}`{% endraw %}, map `first_name` to the user’s first name property. + Choose the option that fits what you’re trying to send. For most customer-facing messages, Content Templates will give you the most reliable and feature-rich experience. ## Message setup options From d177ac374f91329feec9e41e236963f5739c37e9 Mon Sep 17 00:00:00 2001 From: pwseg Date: Tue, 1 Jul 2025 12:40:55 -0500 Subject: [PATCH 226/438] final cleanup [netlify-build] --- .../catalog/actions-twilio-messaging/index.md | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/connections/destinations/catalog/actions-twilio-messaging/index.md b/src/connections/destinations/catalog/actions-twilio-messaging/index.md index a85f71da84..53f111b07a 100644 --- a/src/connections/destinations/catalog/actions-twilio-messaging/index.md +++ b/src/connections/destinations/catalog/actions-twilio-messaging/index.md @@ -2,10 +2,11 @@ title: Twilio Messaging Destination id: 674f23ece330374dc1ecc874 hidden: true +hide-dossier: true beta: true --- -Twilio Messaging gives businesses a way to reach customers on SMS, MMS, and WhatsApp for transactional notifications and personalized campaigns. +[Twilio Messaging](https://www.twilio.com/en-us/messaging/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} gives businesses a way to reach customers on SMS, MMS, and WhatsApp for transactional notifications and personalized campaigns. The Twilio Messaging destination connects Segment to Twilio, letting you send messages automatically based on real-time events, audience segments, or journeys without managing complex integrations. @@ -32,9 +33,9 @@ To start sending messages through Twilio Messaging, you'll set up your Twilio ac You'll set up the Twilio Messaging destination in three stages: -1. Create a Twilio API Key and Secret. -2. Add the Twilio Messaging destination in Segment. -3. Configure message mappings to define what messages to send and when. +1. [Create a Twilio API Key and Secret](#authentication-and-setup). +2. [Add the Twilio Messaging destination in Segment](#add-the-twilio-messaging-destination). +3. [Configure message mappings](#configuring-message-mappings) to define what messages to send and when. The following sections walk through each step in detail. @@ -110,9 +111,9 @@ To configure the mapping: The Twilio Messaging destination gives you two ways to create and send messages. -**Content templates** are templates you’ve already set up in Twilio. They can include text, media, buttons, and other elements, depending on what you’ve built. When you choose a Channel and Content Template Type in Segment, you’ll only see templates that are compatible with those choices. If you’re sending messages to WhatsApp, you’ll need to use Content Templates, since WhatsApp requires pre-approved templates. For most use cases, templates are the way to go because they support richer formatting and keep you compliant. +**Content templates** are [templates you’ve already set up in Twilio](https://www.twilio.com/docs/content/create-templates-with-the-content-template-builder){:target="_blank”}. They can include text, media, buttons, and other elements, depending on what you’ve built. When you choose a Channel and Content Template Type in Segment, you’ll only see templates that are compatible with those choices. If you’re sending messages to WhatsApp, you’ll need to use Content Templates, since WhatsApp requires pre-approved templates. For most use cases, templates are the way to go because they support richer formatting and keep you compliant. -**Inline messages** let you write your message directly in Segment mappings. You can include dynamic variables like `Hello {{first_name}}` to personalize messages. Inline messages also support adding media URLs if you’re sending MMS or WhatsApp messages. They’re useful for quick tests or simple notifications, but they don’t support all the advanced features that Content Templates do. +**Inline messages** let you write your message directly in Segment mappings. You can include [dynamic variables](#using-variables) to personalize messages. Inline messages also support adding media URLs if you’re sending MMS or WhatsApp messages. They’re useful for quick tests or simple notifications, but they don’t support all the advanced features that Content Templates do. In Segment, map each variable to the event property it should pull from. For example, if your template says {% raw %}`Hello {{first_name}}`{% endraw %}, map `first_name` to the user’s first name property. @@ -148,10 +149,10 @@ Variables let you personalize messages with details from your event data or user If you’re using a **Content Template**: - Variables must be defined in Twilio when you create the template. -- In Segment, map each variable to the event property it should pull from. For example, if your template says `Hello {{first_name}}`, map `first_name` to the user’s first name property. +- In Segment, map each variable to the event property it should pull from. For example, if your template says {% raw %}`Hello {{first_name}}`{% endraw %}, map `first_name` to the user’s first name property. If you’re writing an **inline message**: -- Add variables directly in your message body using Handlebars, like `Hello {{first_name}}`. +- Add variables directly in your message body using Handlebars. - Define each variable in your mapping so Segment knows what value to insert. You can also use variables in Inline Media URLs to dynamically include different media based on event data. @@ -181,4 +182,4 @@ Here are a few things to keep in mind when using the Twilio Messaging destinatio - **Phone numbers must be approved**. Any phone number you use to send messages must be approved in your Twilio account and support the channel you’re sending on. - **Message logs and errors**. If a message fails to send, you can view details in your Twilio Console message logs. Common issues include invalid phone number formats or missing required template fields. -Understanding these details will help you set up your messaging flows smoothly and avoid unexpected errors. +Understanding these details will help you set up your messaging flows smoothly and avoid unexpected errors. \ No newline at end of file From 106194bba6a7f97b33dad2e395b3d7a72eee476f Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Tue, 1 Jul 2025 14:49:03 -0400 Subject: [PATCH 227/438] add context about consent use case --- src/privacy/consent-management/consent-faq.md | 10 +++++++++- src/privacy/consent-management/index.md | 8 +++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/privacy/consent-management/consent-faq.md b/src/privacy/consent-management/consent-faq.md index cfd3e55f69..00f55710e0 100644 --- a/src/privacy/consent-management/consent-faq.md +++ b/src/privacy/consent-management/consent-faq.md @@ -17,7 +17,15 @@ All event streams destinations, with the exception of AWS S3 and Engage destinat You can use the [Destination Actions framework](/docs/connections/destinations/actions/) to share the current status of your end-users' consent with your Actions destinations. -For more information, see the [Sharing consent with Actions destinations](/docs/privacy/consent-management/consent-in-unify/#sharing-consent-with-actions-destinations) documentation. +For more information, see the [Sharing consent with Actions destinations](/docs/privacy/consent-management/consent-in-unify/#sharing-consent-with-actions-destinations) documentation. + +## Why shouldn't I use Consent Management for managing communication preferences? + +Segment designed Consent Management for cookie and data collection consent use cases, not communication preferences. Segment doesn't recommend using Consent Management for managing communication preferences, as multiple data use categories attached to one destination can block legitimate communication to your users and might limit your ability to handle user communication preferences at a more granular level. + +For example, if you create 3 separate consent categories for "Product Newsletter," "News Updates," and "Promotional Emails" and all of these are sent through the same destination (like SendGrid,) then Consent Management only forwards data to SendGrid if the user has **opted-in to all 3 categories**. This behavior can block legitimate communication the user might have opted into, making it less flexible for nuanced email preference enforcement. + +For managing communication preferences, Segment recommends using [custom traits](/docs/unify/Traits/custom-traits/) and then acting on these traits in [Twilio Engage](/docs/engage/) or a third-party tool. ## Why is my event failing ingestion with the error "context.consent.categoryPreferences object is required"? diff --git a/src/privacy/consent-management/index.md b/src/privacy/consent-management/index.md index 7f8c3698e2..750f596812 100644 --- a/src/privacy/consent-management/index.md +++ b/src/privacy/consent-management/index.md @@ -1,9 +1,15 @@ --- title: Consent Management Overview plan: consent-management +hide-toc: true --- -When an end user visits your web or mobile app, they set **consent preferences**, or make decisions about the types of data they want you to collect, use, and share. These consent preferences are typically presented as a set list of categories that describe how your company intends to use that data. Some common categories include personalization, advertising, and site performance. +When an end user visits your web or mobile app, they set **consent preferences**, or make decisions about the types of data they want you to collect, use, and share. These consent preferences are typically presented as a set list of categories that describe how your company intends to use that data. Some common categories include personalization, advertising, and site performance. + +> info "Segment recommends using Consent Management to enforce end-user preferences related to cookies and data collection consent" +> Segment doesn't recommend using Consent Management for [managing communication opt-ins and opt-outs](/docs/privacy/consent-management/consent-faq/#why-shouldnt-i-use-consent-management-for-managing-communication-preferences), as using it for this purpose might limit your ability to handle user preferences at a more granular level. +> +> For managing communication preferences, Segment recommends using [custom traits](/docs/unify/Traits/custom-traits/) and then acting on these traits in [Twilio Engage](/docs/engage/) or a third-party tool. Segment integrates with your commercial third-party or bespoke consent management platform (CMP) that captures an end user's consent preferences and enforces those preferences by only routing events to the categories consented to by an end user. From 0a42b49db072a4b49e792a326bbaf52f1b33feba Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Tue, 1 Jul 2025 14:51:36 -0400 Subject: [PATCH 228/438] [netlify-build] --- src/privacy/consent-management/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/privacy/consent-management/index.md b/src/privacy/consent-management/index.md index 750f596812..cb270ee4dd 100644 --- a/src/privacy/consent-management/index.md +++ b/src/privacy/consent-management/index.md @@ -24,4 +24,4 @@ The events, stamped with the consent object, are then sent downstream to any des For more information about consent in Segment Connections, see the [Consent in Segment Connections](/docs/privacy/consent-management/consent-in-segment-connections) documentation. -If you are a Unify user, you can also see the [Consent in Unify](/docs/privacy/consent-management/consent-in-unify) for more information about the Segment Consent Preference Updated event, which Segment uses to add consent preference to the Profile. +If you are a Unify user, you can also see the [Consent in Unify](/docs/privacy/consent-management/consent-in-unify) for more information about the Segment Consent Preference Updated event, which Segment uses to add consent preference to the Profile. \ No newline at end of file From 5ffa1c9a5875b7db1aa0e2e673ad49fcd5e36fc4 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Tue, 1 Jul 2025 16:41:25 -0400 Subject: [PATCH 229/438] pm-requested updates --- src/privacy/consent-management/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/privacy/consent-management/index.md b/src/privacy/consent-management/index.md index cb270ee4dd..197744eb8d 100644 --- a/src/privacy/consent-management/index.md +++ b/src/privacy/consent-management/index.md @@ -7,9 +7,9 @@ hide-toc: true When an end user visits your web or mobile app, they set **consent preferences**, or make decisions about the types of data they want you to collect, use, and share. These consent preferences are typically presented as a set list of categories that describe how your company intends to use that data. Some common categories include personalization, advertising, and site performance. > info "Segment recommends using Consent Management to enforce end-user preferences related to cookies and data collection consent" -> Segment doesn't recommend using Consent Management for [managing communication opt-ins and opt-outs](/docs/privacy/consent-management/consent-faq/#why-shouldnt-i-use-consent-management-for-managing-communication-preferences), as using it for this purpose might limit your ability to handle user preferences at a more granular level. +> Segment doesn't recommend using Consent Management for managing communication opt-ins and opt-outs, as using it for this purpose might limit your ability to handle user preferences at a more granular level. For more information, see [Why shouldn’t I use Consent Management for managing communication preferences?](/docs/privacy/consent-management/consent-faq/#why-shouldnt-i-use-consent-management-for-managing-communication-preferences). > -> For managing communication preferences, Segment recommends using [custom traits](/docs/unify/Traits/custom-traits/) and then acting on these traits in [Twilio Engage](/docs/engage/) or a third-party tool. +> To manage your end users' communication preferences, Segment recommends using [custom traits](/docs/unify/Traits/custom-traits/) and then acting on these traits in [Twilio Engage](/docs/engage/) or a third-party tool. Segment integrates with your commercial third-party or bespoke consent management platform (CMP) that captures an end user's consent preferences and enforces those preferences by only routing events to the categories consented to by an end user. From 1f8c351514799dd263006e5d4c31af36b4f9a9f4 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Tue, 1 Jul 2025 16:04:28 -0700 Subject: [PATCH 230/438] Update query-language.md --- src/api/public-api/query-language.md | 60 +++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 73e93ae2c7..14deb4415c 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -59,17 +59,25 @@ The following tables list the query languages's available functions. | `trait` | | | ----------- | --------------------------------------------------------------------------------------------------- | -| Syntax | `trait({s: String})`
      `s` - the name of the the trait to reference | +| Syntax | `trait({s: String})`
      `s` - the name of the trait to reference | | Return Type | `ScalarExtractor` | | Description | Similar to the event operator, the trait operator is used to specify profile trait filter criteria. | -| Notes | You can reference other audiences by using the audience key as the trait name. | +| Notes | You can reference other audiences by using the audience key as the trait name. Also note that inclusion of a `.` signifies traversal through nested structures. If the trait name contains a literal dor, it must be escaped using `\\` | | Example | `trait('total_spend')` | +| `entity` | | +| ----------- | --------------------------------------------------------------------------------------------------- | +| Syntax | `entity({s: String})`
      `s` - the relationship slug of the entity to build an extractor for | +| Return Type | `VectorExtractor` | +| Description | Similar to the event operator, the entity operator is used to specify entity filter criteria. | +| Notes | Entity is only used with Linked Audiences. | +| Example | `entity('accounts')` | + | `property` | | | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Syntax | `property({s: String})`
      `s` - the name of the property to build an extractor for
      In the context of funnel audiences, you can add a parent prefix to reference the parent event.
      `property(parent: {s: String})` | | Return Type | `ScalarExtractor` | -| Notes | Only valid within a `where` function or a Reducer. | +| Notes | Only valid within a `where` function or a Reducer. Also note that inclusion of a `.` signifies traversal through nested structures. If the property name contains a literal dor, it must be escaped using `\\` | | Example | `property('total')` | | `context` | | @@ -81,9 +89,10 @@ The following tables list the query languages's available functions. | `literal` | | | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Syntax | `literal({a: Any})`
      `a` - the value to treat as a literal expression | +| Syntax | `literal({a: Any})`
      `a` - the value to treat as a literal expression | | Operations allowed in call-chain | None allowed; typically used within another function, like a comparison (with syntactic sugar, this would appear on the right side of the comparison). The outer function or comparison dictates the operations allowed in the call-chain. | -| Example | `literal(100)`
      | +| Notes | Literals can be `int`s, `float`s, `string`s, or `timestamp`s, where `timestamp`s follow ISO 8601 format. Note that in general `string` is interchangeable with all other formats, except when used in a `property` chained to an `entity`. In this case, we recommend using `timestamp` over `string` based on the datatype you're targeting. | +| Example | `literal(100)` or `literal('value')` or `literal(2022-10-17T00:00:00)` | @@ -269,18 +278,27 @@ The following tables list the query languages's available functions. | Syntax | `one_of({a: Array})`
      `a` - array of possible values | | Return Type | `Comparator` | | Description | Matches when the value exactly matches one of the values from the parameter array. | -| Example | `one_of('shoes','shirts')` | +| Example | `one_of('shoes','shirts')` | + +| `none_of` | | +| ----------- | ----------------------------------------------------------------------------------------- | +| Syntax | `none_of({a: Array})`
      `a` - array of possible values | +| Return Type | `Comparator` | +| Description | Matches when the value does not exactly match one of the values from the parameter array. | +| Example | `none_of('shoes','shirts')` | | `before_date` | | | ------------- | --------------------------------------------------------- | | Syntax | `before_date({t: Timestamp})`
      `t` - ISO 8601 timestamp | | Return Type | `Comparator` | +| Notes | `string` format can also be use | | Example | `before_date('2023-12-07T18:50:00Z')` | | `after_date` | | | ------------ | -------------------------------------------------------- | | Syntax | `after_date({t: Timestamp})`
      `t` - ISO 8601 timestamp | | Return Type | `Comparator` | +| Notes | `string` format can also be use | | Example | `after_date('2023-12-07T18:50:00Z')` | | `within_last` | | @@ -366,7 +384,7 @@ The following tables list the query languages's available functions. | `ScalarExtractor` (extends `Extractor`, `Scalar`) | | | ------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Base Type | `Extractor`, `Scalar` | -| Operations allowed in call-chain | `equals`, `differs`, `absent`, `exists`, `greater_than`, `at_least`, `less_than`, `at_most`, `contains`, `omits`, `starts_with`, `ends_with`, `one_of`, `before_date`, `after_date`, `within_last`, `before_last`, `after_next` (inherited from `Scalar`) | +| Operations allowed in call-chain | `equals`, `differs`, `absent`, `exists`, `greater_than`, `at_least`, `less_than`, `at_most`, `contains`, `omits`, `starts_with`, `ends_with`, `one_of`, `none_of`, `before_date`, `after_date`, `within_last`, `before_last`, `after_next` (inherited from `Scalar`) | | Notes | A `ScalarExtractor` represents extractions of a single data element, like a field value or a trait value. | | `EventPropertyExtractor` (extends `Extractor`) | | @@ -391,7 +409,7 @@ The following tables list the query languages's available functions. | `Scalar` | | | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Operations allowed in call-chain | `equals`, `differs`, `absent`, `exists`, `greater_than`, `at_least`, `less_than`, `at_most`, `contains`, `omits`, `starts_with`, `ends_with`, `one_of`, `before_date`, `after_date`, `within_last`, `before_last`, `after_next`, `within_next` | +| Operations allowed in call-chain | `equals`, `differs`, `absent`, `exists`, `greater_than`, `at_least`, `less_than`, `at_most`, `contains`, `omits`, `starts_with`, `ends_with`, `one_of`, `none_of`, `before_date`, `after_date`, `within_last`, `before_last`, `after_next`, `within_next` | | `ListScalar` | | | -------------------------------- | ------- | @@ -474,6 +492,30 @@ This example collects all accounts where any associated users performed the `Sho ANY event('Shoes Bought').count() >= 1 ``` +#### Associated with Orders that have an association to Order Products + +This example collects all users which have at least 1 association to an `orders` entity where the `orders` entity has at least 1 association to an `order-products` entity: + +```sql +entity('orders').where(entity('order-products').count() >= 1).count() >= 1 +``` + +#### Associated to Orders or is a VIP user + +This example collects all users which have at least 1 association to an `order` entity or have a `VIP` trait equal to true: + +```sql +entity('orders').count() >= 1 OR trait('VIP') = 'true' +``` + +#### Associated with orders that have a total greater than 500 + +This example collects all users with at least 1 association to an `orders` entity where the `orders` entity has a `total` property greater than 500: + +```sql +entity('orders').where(property('total') > 500).count() >= 1 +``` + ### Computed Traits Suppose you wanted to calculate the average spend based on all `Shoes Bought` events performed within the last 30 days for each user. @@ -511,5 +553,5 @@ event('Shoes Bought').within(30 days).first(property('spend')) This example calculates the most frequent spend value for each user, based on all `Shoes Bought` events performed within the last 30 days. It only considers spend values that have a minimum frequency of `2`: ```sql -event('Shoes Bought').within(30 days).mode(property('spend'), 2) +('Shoes Bought').within(30 days).mode(property('spend'), 2) ``` From 50e69598132f06beb90fcf9916f29bf0613b863e Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Wed, 2 Jul 2025 01:45:03 -0700 Subject: [PATCH 231/438] Update docs to include new liquid syntax function feature --- src/connections/destinations/actions.md | 136 ++++++++++++++++++++++++ 1 file changed, 136 insertions(+) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 68dd8bef64..2e5fcb5b22 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -238,6 +238,142 @@ You can't concatenate event variables and plain text with static values and func ![Mapping UI showing two concatenated fields: "+1 phone" and "context.page.url context.page.path"](images/mapping-concatenation.png) +### Liquid syntax +The liquid syntax function allows you to transform event data with fine-grain control before it reaches cloud-mode destinations using the LiquidJS templating language. Use Liquid templates to clean, format, or conditionally transform data such as user properties, timestamps, or event metadata to meet the requirements of your downstream tools. Liquid templates are applied in the Mappings tab of your Segment workspace, ensuring seamless integration with your event pipeline. + +### Supported liquid tags and filters +The following LiquidJS tags and filters are supported for Segment mappings. These are carefully selected to ensure performance, security, and compatibility with real-time event processing. Unsupported tags and filters are disabled to prevent performance degradation or security risks. + +### Supported tags +| Tag Name | Description | +|-------------------|-------------| +| `assign` | Assigns a value to a variable for reuse in the template. | +| `capture` | Captures output into a variable for complex transformations. | +| `case` | Implements switch-like logic for conditional processing. | +| `comment` | Ignores content during rendering; useful for documentation. | +| `decrement` | Decrements a counter variable; useful for simple counting. | +| `echo` | Outputs variable values; operates on provided event data. | +| `else` | Provides an alternative branch in `if` or `case` statements. | +| `elsif` | Adds additional conditions in `if` statements. | +| `if` | Enables conditional logic based on event data. | +| `increment` | Increments a counter variable; useful for simple counting. | +| `liquid` | Allows nested Liquid code execution in a sandboxed environment. | +| `raw` | Outputs content verbatim without escaping. | +| `unless` | Executes logic if a condition is not true (negation of `if`). | +| `when` | Part of `case` statements for matching specific values. | + +### Supported filters +| Filter Name | Description | +|--------------------------------|-------------| +| `abs` | Returns the absolute value of a number. | +| `append` | Concatenates a string to the end of another string. | +| `at_least` | Returns the greater of two numbers. | +| `at_most` | Returns the lesser of two numbers. | +| `capitalize` | Capitalizes the first letter of a string. | +| `ceil` | Rounds a number up to the next integer. | +| `cgi_escape` | Escapes strings for CGI contexts. | +| `compact` | Removes null values from an array. | +| `date` | Formats a date using a specified format (e.g., `%s` for Unix timestamp). | +| `date_to_long_string` | Formats a date into a long string (e.g., `01 July 2025`). | +| `date_to_rfc822` | Formats a date in RFC822 format. | +| `date_to_string` | Converts a date to a short string format. | +| `date_to_xmlschema` | Formats a date in XML schema format. | +| `default` | Provides a default value for null inputs. | +| `divided_by` | Divides a number by another number. | +| `downcase` | Converts a string to lowercase. | +| `escape` | Escapes HTML characters in a string. | +| `escape_once` | Escapes HTML characters only once. | +| `first` | Retrieves the first element of an array. | +| `floor` | Rounds a number down to the previous integer. | +| `inspect` | Converts an object to a JSON string. | +| `join` | Joins array elements into a string with a separator. | +| `json` | Converts an object to a JSON string. | +| `jsonify` | Similar to `json`; converts an object to a JSON string. | +| `last` | Retrieves the last element of an array. | +| `lstrip` | Removes leading whitespace from a string. | +| `minus` | Subtracts a number from another number. | +| `modulo` | Returns the remainder of a division operation. | +| `normalize_whitespace` | Normalizes whitespace in a string. | +| `number_of_words` | Counts the number of words in a string. | +| `plus` | Adds two numbers. | +| `pop` | Removes the last element from an array. | +| `push` | Adds an element to the end of an array. | +| `prepend` | Adds a string to the start of another string. | +| `raw` | Outputs content verbatim without escaping. | +| `remove` | Removes all occurrences of a substring. | +| `remove_first` | Removes the first occurrence of a substring. | +| `remove_last` | Removes the last occurrence of a substring. | +| `replace` | Replaces all occurrences of a substring with another string. | +| `replace_first` | Replaces the first occurrence of a substring. | +| `replace_last` | Replaces the last occurrence of a substring. | +| `round` | Rounds a number to a specified number of decimal places. | +| `rstrip` | Removes trailing whitespace from a string. | +| `shift` | Removes the first element from an array. | +| `size` | Returns the length of a string or array. | +| `slice` | Extracts a portion of a string or array. | +| `slugify` | Converts a string into a URL-friendly format. | +| `split` | Splits a string into an array based on a delimiter. | +| `strip` | Removes whitespace from both ends of a string. | +| `strip_html` | Removes HTML tags from a string. | +| `strip_newlines` | Removes newline characters from a string. | +| `sum` | Sums numeric values in an array. | +| `times` | Multiplies a number by another number. | +| `to_integer` | Converts a value to an integer. | +| `truncate` | Truncates a string to a specified length. | +| `truncatewords` | Truncates a string to a specified word count. | +| `unshift` | Adds an element to the start of an array. | +| `upcase` | Converts a string to uppercase. | +| `uri_escape` | Escapes a string for use in a URI. | +| `url_decode` | Decodes a URL-encoded string. | +| `url_encode` | Encodes a string for use in a URL. | +| `where` | Filters an array based on a property and value. | +| `xml_escape` | Escapes characters for XML compatibility. | + +### Examples +Below are two examples demonstrating how to use Liquid templates in Segment mappings to transform event data for cloud-mode destinations. These examples showcase common use cases like string manipulation and conditional logic. + +#### Example 1: Standardize email addresses +This example converts an email address to lowercase and removes extra whitespace, ensuring consistency for a destination. + +```json +{% if event.properties.email %} + {{ event.properties.email | downcase | strip }} +{% else %} + {{ event.properties.email | default: "unknown@example.com" }} +{% endif %} +``` +Input: `event.properties.email` = "user@example.com" +Output: user@example.com + +Explanation: +* The `if` tag checks if `event.properties.email` exists. +* The `downcase` filter converts the email to lowercase. +* The `strip` filter removes leading/trailing whitespace. +* The `default` filter provides a fallback email if the input is missing. + +#### Example 2: Transform phone number with conditional logic +This example formats a phone number by removing non-digit characters, adding a country code, and prepending a plus sign. + +```json +{% if event.properties.phone %} + {% assign phone = event.properties.phone | strip | remove: "-" | remove: "(" | remove: ")" | remove: " " %} + {% if phone | slice: 0, 1 != "1" %} + {% assign phone = phone | prepend: "1" %} + {% endif %} + {{ phone | prepend: "+" }} +{% else %} + {{ event.properties.phone | default: "" }} +{% endif %} +``` +Input: `event.properties.phone` = "(123) 456-7890" +Output: +11234567890 + +Explanation: +* The `assign` tag stores the cleaned phone number after applying `strip` and `remove` filters to eliminate whitespace and non-digit characters (e.g., `-`, `(`, `)`). +* The `slice: 0, 1` filter checks if the phone number starts with `1`; if not, `prepend: "1"` adds the country code. +* The `prepend: "+"` filter adds the `+` prefix. +* The `default` filter outputs an empty string if the phone number is missing. + ## Conditions > info "" From 95f154edbac78664d1324d93243a006aa05498e1 Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Wed, 2 Jul 2025 01:59:18 -0700 Subject: [PATCH 232/438] Update actions.md --- src/connections/destinations/actions.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 2e5fcb5b22..06d689d64d 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -241,10 +241,10 @@ You can't concatenate event variables and plain text with static values and func ### Liquid syntax The liquid syntax function allows you to transform event data with fine-grain control before it reaches cloud-mode destinations using the LiquidJS templating language. Use Liquid templates to clean, format, or conditionally transform data such as user properties, timestamps, or event metadata to meet the requirements of your downstream tools. Liquid templates are applied in the Mappings tab of your Segment workspace, ensuring seamless integration with your event pipeline. -### Supported liquid tags and filters +#### Supported liquid tags and filters The following LiquidJS tags and filters are supported for Segment mappings. These are carefully selected to ensure performance, security, and compatibility with real-time event processing. Unsupported tags and filters are disabled to prevent performance degradation or security risks. -### Supported tags +#### Supported tags | Tag Name | Description | |-------------------|-------------| | `assign` | Assigns a value to a variable for reuse in the template. | @@ -262,7 +262,7 @@ The following LiquidJS tags and filters are supported for Segment mappings. Thes | `unless` | Executes logic if a condition is not true (negation of `if`). | | `when` | Part of `case` statements for matching specific values. | -### Supported filters +#### Supported filters | Filter Name | Description | |--------------------------------|-------------| | `abs` | Returns the absolute value of a number. | @@ -329,10 +329,10 @@ The following LiquidJS tags and filters are supported for Segment mappings. Thes | `where` | Filters an array based on a property and value. | | `xml_escape` | Escapes characters for XML compatibility. | -### Examples +#### Examples Below are two examples demonstrating how to use Liquid templates in Segment mappings to transform event data for cloud-mode destinations. These examples showcase common use cases like string manipulation and conditional logic. -#### Example 1: Standardize email addresses +##### Example 1: Standardize email addresses This example converts an email address to lowercase and removes extra whitespace, ensuring consistency for a destination. ```json @@ -351,7 +351,7 @@ Explanation: * The `strip` filter removes leading/trailing whitespace. * The `default` filter provides a fallback email if the input is missing. -#### Example 2: Transform phone number with conditional logic +##### Example 2: Transform phone number with conditional logic This example formats a phone number by removing non-digit characters, adding a country code, and prepending a plus sign. ```json From c27d3f74a9ab2d272e0c9661afe8fe5eb2acb574 Mon Sep 17 00:00:00 2001 From: sade-wusi Date: Wed, 2 Jul 2025 15:24:58 +0100 Subject: [PATCH 233/438] Added link section about recipes to extensible webhooks and updated sidenav to incl recipes [netlify-build] --- src/_data/sidenav/_auto/main.yml | 17 +++++++++++++++++ .../catalog/actions-webhook-extensible/index.md | 11 ++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/_data/sidenav/_auto/main.yml b/src/_data/sidenav/_auto/main.yml index bc7844ddc9..0dd9b09f84 100644 --- a/src/_data/sidenav/_auto/main.yml +++ b/src/_data/sidenav/_auto/main.yml @@ -14,6 +14,23 @@ sections: title: Destinations Overview - path: /connections/destinations/destination-filters title: Destination Filters + - section_title: Catalog + slug: connections/destinations/catalog + section: + - path: /connections/destinations/catalog/actions-webhhook-extensible + title: Extensible Webhooks Destination + section: + slug: connections/destinations/catalog/actions-webhook-extensible + - path: /connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe/ + title: Amazon Ads Audience Sync Integration Recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe/ + title: Google Search Ads 360 Conversion API Integration Recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe/ + title: Microsoft Dynamics 365 (Sales Hub) Integration Recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe/ + title: Reddit Ads (Audiences) Integration Recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe/ + title: Reddit Ads Conversion API Integration Recipe - path: /connections/event-delivery title: How do I check if data is reaching a destination? - path: /connections/find-writekey diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 25e1f96e13..752770553c 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -2,7 +2,6 @@ title: Extensible Webhooks Destination id: 66b1f528d26440823fb27af9 beta: true -hidden: true --- {% include content/plan-grid.md name="actions" %} @@ -87,3 +86,13 @@ Follow these steps to enable your new destination: 2. Toggle **Enable Destination** to on, then click **Save Changes**. Your Extensible Webhooks destination is now set up and ready to send data to your webhook endpoints. + +## Integrations with Extensible Webhooks + +The following recipes show how to integrate external tools with your Segment workspace using the Extensible Webhook destination. Each guide walks you through configuring your extensible webhook destination and how to set up your custom destinations. + +- [Amazon Ads Audience Sync](/docs/connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe/) +- [Google Search Ads 360 Conversion API](/docs/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe/) +- [Microsoft Dynamics 365 (Sales Hub)](/docs/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe/) +- [Reddit Ads (Audiences)](/docs/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe/) +- [Reddit Ads Conversion API](/docs/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe/) \ No newline at end of file From 6892a616a3946f1fcb18b822ca0d0fffd56c9859 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 2 Jul 2025 15:30:38 +0100 Subject: [PATCH 234/438] changed title wording [netlify-build] --- .../destinations/catalog/actions-webhook-extensible/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 752770553c..7adc618219 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -87,7 +87,7 @@ Follow these steps to enable your new destination: Your Extensible Webhooks destination is now set up and ready to send data to your webhook endpoints. -## Integrations with Extensible Webhooks +## Integrations with Extensible Webhook destination The following recipes show how to integrate external tools with your Segment workspace using the Extensible Webhook destination. Each guide walks you through configuring your extensible webhook destination and how to set up your custom destinations. @@ -95,4 +95,4 @@ The following recipes show how to integrate external tools with your Segment wor - [Google Search Ads 360 Conversion API](/docs/connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe/) - [Microsoft Dynamics 365 (Sales Hub)](/docs/connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe/) - [Reddit Ads (Audiences)](/docs/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe/) -- [Reddit Ads Conversion API](/docs/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe/) \ No newline at end of file +- [Reddit Ads Conversion API](/docs/connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe/) From c9b60fff88372baa8f537b01eafff256253c7512 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 2 Jul 2025 15:33:42 +0100 Subject: [PATCH 235/438] casing --- src/_data/sidenav/_auto/main.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/_data/sidenav/_auto/main.yml b/src/_data/sidenav/_auto/main.yml index 0dd9b09f84..a139ccd123 100644 --- a/src/_data/sidenav/_auto/main.yml +++ b/src/_data/sidenav/_auto/main.yml @@ -22,15 +22,15 @@ sections: section: slug: connections/destinations/catalog/actions-webhook-extensible - path: /connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe/ - title: Amazon Ads Audience Sync Integration Recipe + title: Amazon Ads Audience Sync integration recipe - path: /connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe/ - title: Google Search Ads 360 Conversion API Integration Recipe + title: Google Search Ads 360 Conversion API integration recipe - path: /connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe/ - title: Microsoft Dynamics 365 (Sales Hub) Integration Recipe + title: Microsoft Dynamics 365 (Sales Hub) integration recipe - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe/ - title: Reddit Ads (Audiences) Integration Recipe + title: Reddit Ads (Audiences) integration recipe - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe/ - title: Reddit Ads Conversion API Integration Recipe + title: Reddit Ads Conversion API integration recipe - path: /connections/event-delivery title: How do I check if data is reaching a destination? - path: /connections/find-writekey From 21b4cd770e1af0aaebe006cbee5d39bc19547db9 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 2 Jul 2025 15:35:59 +0100 Subject: [PATCH 236/438] beta alert re-removed [netlify-build] --- .../destinations/catalog/actions-webhook-extensible/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index 5463da7bd6..c4afcbc973 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -1,7 +1,6 @@ --- title: Extensible Webhooks Destination id: 66b1f528d26440823fb27af9 -beta: true redirect_from: '/connections/destinations/catalog/extensible-webhook/' --- From 83592c049f2ea225ad426e6392dba51c0473978c Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 2 Jul 2025 15:44:08 +0100 Subject: [PATCH 237/438] typo fix [netlify-build] --- .../catalog/actions-webhook-extensible/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index c4afcbc973..da2f29b77e 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -1,12 +1,12 @@ --- -title: Extensible Webhooks Destination +title: Extensible Webhook Destination id: 66b1f528d26440823fb27af9 redirect_from: '/connections/destinations/catalog/extensible-webhook/' --- {% include content/plan-grid.md name="actions" %} -Segment's Extensible Webhooks destination lets you send custom data payloads to any webhook endpoint. With support for flexible payload configuration, multiple authentication methods, and real-time data flow, Extensible Webhooks can help you integrate with internal systems or tools not covered by Segment’s standard destinations. +Segment's Extensible Webhook destination lets you send custom data payloads to any webhook endpoint. With support for flexible payload configuration, multiple authentication methods, and real-time data flow, Extensible Webhooks can help you integrate with internal systems or tools not covered by Segment’s standard destinations. This destination is not currently available in EU regions. @@ -16,14 +16,14 @@ Segment maintains this destination. For any issues, [contact Segment Support](fr To set up and use Extensible Webhooks, you'll follow these four main stages: -1. **Create the new destination**: Add the Extensible Webhooks destination to your workspace and link it to a source. +1. **Create the new destination**: Add the Extensible Webhook destination to your workspace and link it to a source. 2. **Set up authentication**: Configure the required authentication settings to activate the destination. 3. **Map and configure data**: Define how data flows from Segment to your webhook endpoints by mapping fields and customizing the payload. 4. **Enable the destination**: Complete the setup by enabling the destination to start sending data. ## 1. Create a new Extensible Webhooks destination -1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Extensible Webhooks." +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Extensible Webhook." 2. Select **Extensible Webhook** and Click **Add destination**. 3. Select an existing source to connect to the destination. 4. Enter a name for the destination and click **Create destination.** @@ -84,7 +84,7 @@ Follow these steps to enable your new destination: 1. Return to **Basic Settings** in your destination's **Settings** tab. 2. Toggle **Enable Destination** to on, then click **Save Changes**. -Your Extensible Webhooks destination is now set up and ready to send data to your webhook endpoints. +Your Extensible Webhook destination is now set up and ready to send data to your webhook endpoints. ## Integrations with Extensible Webhook destination From 2ca0b109c91cf864925cc3a97f3c956f178dff84 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 2 Jul 2025 09:28:37 -0700 Subject: [PATCH 238/438] Update query-language.md --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 14deb4415c..34e2a7966c 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -62,7 +62,7 @@ The following tables list the query languages's available functions. | Syntax | `trait({s: String})`
      `s` - the name of the trait to reference | | Return Type | `ScalarExtractor` | | Description | Similar to the event operator, the trait operator is used to specify profile trait filter criteria. | -| Notes | You can reference other audiences by using the audience key as the trait name. Also note that inclusion of a `.` signifies traversal through nested structures. If the trait name contains a literal dor, it must be escaped using `\\` | +| Notes | You can reference other audiences by using the audience key as the trait name. Also note that inclusion of a `.` signifies traversal through nested structures. If the trait name contains a literal dot, it must be escaped using `\\\\` | | Example | `trait('total_spend')` | | `entity` | | From 9222f83a2ace1582f0778784087f378a33b4d133 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 2 Jul 2025 09:29:47 -0700 Subject: [PATCH 239/438] Update query-language.md --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 34e2a7966c..64915e163c 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -77,7 +77,7 @@ The following tables list the query languages's available functions. | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Syntax | `property({s: String})`
      `s` - the name of the property to build an extractor for
      In the context of funnel audiences, you can add a parent prefix to reference the parent event.
      `property(parent: {s: String})` | | Return Type | `ScalarExtractor` | -| Notes | Only valid within a `where` function or a Reducer. Also note that inclusion of a `.` signifies traversal through nested structures. If the property name contains a literal dor, it must be escaped using `\\` | +| Notes | Only valid within a `where` function or a Reducer. Also note that inclusion of a `.` signifies traversal through nested structures. If the property name contains a literal dot, it must be escaped using `\\\\` | | Example | `property('total')` | | `context` | | From a0110f2bed6e0a1bd8ba215e1c77124abe8b24a0 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 2 Jul 2025 09:31:30 -0700 Subject: [PATCH 240/438] Update query-language.md --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 64915e163c..b00c9781a9 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -553,5 +553,5 @@ event('Shoes Bought').within(30 days).first(property('spend')) This example calculates the most frequent spend value for each user, based on all `Shoes Bought` events performed within the last 30 days. It only considers spend values that have a minimum frequency of `2`: ```sql -('Shoes Bought').within(30 days).mode(property('spend'), 2) +event('Shoes Bought').within(30 days).mode(property('spend'), 2) ``` From a2fc71a39a02b8ba5dc3969aa5e5da283336bb0b Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 2 Jul 2025 13:53:30 -0400 Subject: [PATCH 241/438] Apply suggestions from code review --- src/privacy/user-deletion-and-suppression.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/privacy/user-deletion-and-suppression.md b/src/privacy/user-deletion-and-suppression.md index 4d441c22f6..eb62adf3e6 100644 --- a/src/privacy/user-deletion-and-suppression.md +++ b/src/privacy/user-deletion-and-suppression.md @@ -23,7 +23,7 @@ Segment has 2 types of Regulations: - **Segment-only Regulations**: These Regulations *only* delete or suppress data about your user from internal Segment systems. - **Segment & Destination Regulations**: These Regulations delete user data from internal Segment systems and then forward a deletion request to any connected destinations that support programmatic deletion. For a list of destination that support programmatic deletion, see [Which destinations can I send deletion requests to?](/docs/privacy/faq/#which-destinations-can-i-send-deletion-requests-to). -While both Regulation types are limited to 110,000 users every calendar month, you can temporarily increase your rate limit for Segment-only regulations. To send more than 110,000 Segment-only Regulations over a 30 day period, [contact Segment Support](https://segment.com/help/contact/){:target="_blank"}. +While both Regulation types are limited to 110,000 users every calendar month, you can temporarily increase your rate limit for Segment-only Regulations. To send more than 110,000 Segment-only Regulations over a 30 day period, [contact Segment Support](https://segment.com/help/contact/){:target="_blank"}. ### Segment-only Regulations The following Segment-only Regulation types are available: @@ -59,17 +59,17 @@ Warehouse deletions occur using a DML run against your cluster or instance. Segm ### Deletion requests tab -The deletion requests tab shows a 30-day overview of your deletions pipeline, including a regulations usage tracker and a deletion requests status table. +The deletion requests tab shows a 30-day overview of your deletions pipeline, including a Regulations usage tracker and a deletion requests status table. To navigate to the deletion requests tab, open the Segment app and navigate to **Privacy > Deletion and Suppression > Deletion**. #### Regulations usage tracker -The usage tracker on the deletion requests tab shows you how many Segment & destination regulations and how many Segment-only regulations you have remaining for the calendar month. +The usage tracker on the deletion requests tab shows you how many Segment & destination Regulations and how many Segment-only Regulations you have remaining for the calendar month. #### Deletion requests status -The deletion requests status table allows you to see the status of each of the regulations that you've submitted, including if the regulation was forwarded to your destinations, the deletion type, the date the regulation was received, and the date the regulation was completed. +The deletion requests status table allows you to see the status of each of the Regulations that you've submitted, including if the Regulation was forwarded to your destinations, the deletion type, the date the Regulation was received, and the date the Regulation was completed. If you need to verify that a information about a specific user was deleted or suppressed, you can search for a `userId` to view its status in Segment internal systems and in the connected destinations. From 3a8cfe76f3001765203f7869143d6605d566d1de Mon Sep 17 00:00:00 2001 From: Rishav Gupta Date: Wed, 2 Jul 2025 13:28:44 -0500 Subject: [PATCH 242/438] Updated Trade Desk Limitations --- .../destinations/catalog/actions-the-trade-desk-crm/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/connections/destinations/catalog/actions-the-trade-desk-crm/index.md b/src/connections/destinations/catalog/actions-the-trade-desk-crm/index.md index e31ea194e0..a8ea1fe31f 100644 --- a/src/connections/destinations/catalog/actions-the-trade-desk-crm/index.md +++ b/src/connections/destinations/catalog/actions-the-trade-desk-crm/index.md @@ -53,6 +53,7 @@ To sync additional Audiences from your Engage space, create a separate instance ## Limitations +* Audiences up to 100 million profiles in size will be synced. * An audience must have at least 1500 unique members; otherwise, the destination fails, and the data won't sync. * Audience attempts to sync once per day. * Audience sync is a full sync. From 445229fc8f4d5d7be627769ff18203340d986dc6 Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 2 Jul 2025 21:55:34 -0500 Subject: [PATCH 243/438] catalog updat --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 2 +- src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index b4025887c0..512cc1368f 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 2025-06-26 +# destination categories last updated 2025-07-03 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 d38567971d..df0ac9c3af 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 2025-06-26 +# destination data last updated 2025-07-03 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index a13018ddb2..89b24aa164 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 2025-06-26 +# destination data last updated 2025-07-03 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index eedd4f30ed..1aa783ddfa 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 2025-06-26 +# source categories last updated 2025-07-03 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 5805cf96c0..6ee745cfed 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 2025-06-26 +# sources last updated 2025-07-03 items: - id: 8HWbgPTt3k display_name: .NET From 1f83c30f0695fb8cc7fb75e45fc2d9330ef5787e Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 3 Jul 2025 12:43:49 +0100 Subject: [PATCH 244/438] backslashes removed please work [netlify-build] --- src/_data/sidenav/_auto/main.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/_data/sidenav/_auto/main.yml b/src/_data/sidenav/_auto/main.yml index a139ccd123..d966da06d2 100644 --- a/src/_data/sidenav/_auto/main.yml +++ b/src/_data/sidenav/_auto/main.yml @@ -21,15 +21,15 @@ sections: title: Extensible Webhooks Destination section: slug: connections/destinations/catalog/actions-webhook-extensible - - path: /connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe/ + - path: /connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe title: Amazon Ads Audience Sync integration recipe - - path: /connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe/ + - path: /connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe title: Google Search Ads 360 Conversion API integration recipe - - path: /connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe/ + - path: /connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe title: Microsoft Dynamics 365 (Sales Hub) integration recipe - - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe/ + - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe title: Reddit Ads (Audiences) integration recipe - - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe/ + - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe title: Reddit Ads Conversion API integration recipe - path: /connections/event-delivery title: How do I check if data is reaching a destination? From 24aa2c6f94a7a00d5a22d7b956946729ab9ebcab Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 3 Jul 2025 09:09:05 -0400 Subject: [PATCH 245/438] Update src/privacy/user-deletion-and-suppression.md Co-authored-by: Sharon Adewusi --- src/privacy/user-deletion-and-suppression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/privacy/user-deletion-and-suppression.md b/src/privacy/user-deletion-and-suppression.md index eb62adf3e6..6f056051c0 100644 --- a/src/privacy/user-deletion-and-suppression.md +++ b/src/privacy/user-deletion-and-suppression.md @@ -71,7 +71,7 @@ The usage tracker on the deletion requests tab shows you how many Segment & dest The deletion requests status table allows you to see the status of each of the Regulations that you've submitted, including if the Regulation was forwarded to your destinations, the deletion type, the date the Regulation was received, and the date the Regulation was completed. -If you need to verify that a information about a specific user was deleted or suppressed, you can search for a `userId` to view its status in Segment internal systems and in the connected destinations. +If you need to verify if information about a specific user was deleted or suppressed, you can search for a `userId` to view its status in Segment internal systems and in the connected destinations. A deletion request can have one of the following statuses: From 42ee50ab419b84631cd50179c88e3d8fb9eb95e5 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 3 Jul 2025 09:50:53 -0400 Subject: [PATCH 246/438] clarify Klaviyo (Actions) dest/computed traits --- src/engage/using-engage-data.md | 1 + src/unify/Traits/computed-traits.md | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/engage/using-engage-data.md b/src/engage/using-engage-data.md index be0e261c00..4fcca8d740 100644 --- a/src/engage/using-engage-data.md +++ b/src/engage/using-engage-data.md @@ -297,3 +297,4 @@ Connect any Cloud-mode destination that supports Identify or Track calls to Enga - [Marketo Static Lists (Actions)](/docs/connections/destinations/catalog/actions-marketo-static-lists/) - [Responsys](/docs/connections/destinations/catalog/responsys/) - [TikTok Audiences](/docs/connections/destinations/catalog/actions-tiktok-audiences/) +- [Klaviyo (Actions)](/docs/connections/destinations/catalog/actions-klaviyo/) diff --git a/src/unify/Traits/computed-traits.md b/src/unify/Traits/computed-traits.md index c8d9865429..b5bde17b2e 100644 --- a/src/unify/Traits/computed-traits.md +++ b/src/unify/Traits/computed-traits.md @@ -172,6 +172,10 @@ Learn more about [Computed trait generated events here](/docs/engage/using-engag For account-level computed traits, you have the option to send either a [Group](/docs/connections/spec/group/) call and/or [Identify](/docs/connections/spec/identify/) call. Group calls will send one event per account, whereas Identify calls will send an Identify call for each user in the account. This means that even if a user hasn't performed an event, Segment will still set the account-level computed trait on that user. Because most marketing tools are still based at the user level, it is often important to map this account-level trait onto each user within an account. See [Account-level Audiences](/docs/engage/audiences/account-audiences) for more information. +> warning "Computed Traits can only be sent to Event destinations" +> When Engage sends a computed trait to an [Event destinations](/docs/engage/using-engage-data/#event-destinations), it uses an Identify call to send user traits and a Group call to send account-level computed traits. + + ## View compute status After you create a computed trait, use the Overview page to view a compute progress bar, current [status](/docs/engage/audiences#compute-statuses), number of users with the trait, connected destinations, and more. For real-time traits, click **Refresh Trait** to update the current number of users with the trait. From eb6360db89b7bd896230fa4101dd61f929a930fd Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 3 Jul 2025 10:13:20 -0400 Subject: [PATCH 247/438] update settings section to match UI --- src/_includes/content/functions/settings.md | 2 +- src/connections/functions/destination-functions.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_includes/content/functions/settings.md b/src/_includes/content/functions/settings.md index 380cb6a94e..2b11c86279 100644 --- a/src/_includes/content/functions/settings.md +++ b/src/_includes/content/functions/settings.md @@ -17,7 +17,7 @@ You can configure the details about this setting, which change how it's displaye - **Type** - Type of the setting's value. - **Description** - Optional description, which appears below the setting name. - **Required** - Enable this to ensure that the setting cannot be saved without a value. -- **Secret** - Enable this to ensure that sensitive data, like API key values, are kept a secret (?) +- **Secret** - Enable this to ensure that sensitive data, like API key values or passwords, are not displayed in the Segment UI. As you change the values, a preview to the right updates to show how your setting will look and work. diff --git a/src/connections/functions/destination-functions.md b/src/connections/functions/destination-functions.md index abd1340759..3b276a62df 100644 --- a/src/connections/functions/destination-functions.md +++ b/src/connections/functions/destination-functions.md @@ -28,7 +28,7 @@ All functions are scoped to your workspace, so members of other workspaces can't After you click **Next: Build Function**, a code editor appears. Use the editor to write the code for your function, configure settings, and test the function's behavior. > success "" -> **Tip:** Want to see some example functions? Check out the templates available in the Functions UI, or in the open-source [Segment Functions Library](https://github.com/segmentio/functions-library){:target="_blank"}. (Contributions welcome!) +> **Tip:** Want to see some example functions? Check out the templates available in the Functions UI, or in the open-source [Segment Functions Library](https://github.com/segmentio/functions-library){:target="_blank"}. ## Code the destination function From 87acabeb76773bdde5d00024340531f78bc5dcc8 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 3 Jul 2025 10:43:15 -0400 Subject: [PATCH 248/438] add source-settings include, update accordingly --- .../content/functions/source-settings.md | 28 ++++++++++++++++++ .../functions/images/add-setting-dialog.png | Bin 149849 -> 58914 bytes .../images/add-source-setting-dialog.png | Bin 0 -> 149849 bytes src/connections/functions/source-functions.md | 2 +- 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/_includes/content/functions/source-settings.md create mode 100644 src/connections/functions/images/add-source-setting-dialog.png diff --git a/src/_includes/content/functions/source-settings.md b/src/_includes/content/functions/source-settings.md new file mode 100644 index 0000000000..bd6a04fd85 --- /dev/null +++ b/src/_includes/content/functions/source-settings.md @@ -0,0 +1,28 @@ + + +Settings allow you to pass configurable variables to your function, which is the best way to pass sensitive information such as security tokens. For example, you might use `settings` as placeholders to use information such as an API endpoint and API key. This way, you can use the same code with different settings for different purposes. When you deploy a function in your workspace, you are prompted to fill out these settings to configure the function. + +First, add a setting in **Settings** tab in the code editor: + +![A screenshot of the functions settings tab](/docs/connections/functions/images/settings-tab-empty.png){:width="500"} + +Click **Add Setting** to add your new setting. + +![A screenshot of the "Add Setting" section of the functions settings tab, with apiKey settings included](/docs/connections/functions/images/add-source-setting-dialog.png) + +You can configure the details about this setting, which change how it's displayed to anyone using your function: + +- **Label** - Name of the setting, which users see when configuring the function. +- **Name** - Auto-generated name of the setting to use in function's source code. +- **Type** - Type of the setting's value. +- **Description** - Optional description, which appears below the setting name. +- **Required** - Enable this to ensure that the setting cannot be saved without a value. +- **Encrypted** - Enable to encrypt the value of this setting. Use this setting for sensitive data, like API keys. + +As you change the values, a preview to the right updates to show how your setting will look and work. + +Click **Add Setting** to save the new setting. + +Once you save a setting, it appears in the **Settings** tab for the function. You can edit or delete settings from this tab. + +![A screenshot of the functions settings tab, showing the apiKey setting](/docs/connections/functions/images/settings-tab-non-empty.png){:width="500"} diff --git a/src/connections/functions/images/add-setting-dialog.png b/src/connections/functions/images/add-setting-dialog.png index dd0ca6b7e53e48c3b7af265c8bb7d505f1a45ac3..4ed1b174551a838a0efba6e76339577813fc82d4 100644 GIT binary patch literal 58914 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
      r(Wn%KxY7BdA zyfC*)iGL5G<+{%b*XJ}iPCy7eEga;n>hehWl+jx4YfI<0eyd_3?YDjm{2R#%8eBsP zIv{r8CO~rG=GH+5T=reQ3uzZTo7J^M1yb2qXpLWUdA`$IKGwc#OLR1IG36|HPTY+5 zW;v2gXQ2 zk$ghI8hH`{!65Dmg}GW>&0jUgQP_iTF)&o4kuj#sWF<1M6yYYeS%0LU65(&IR~hLN z#0WqK&I5d+lYJ4UsV@%Q(gM?_;2grJYGsp;&ELeF`Ksv0P|6mVKIsa+S0A&_<&!l| z0NsVD@1I1Mrj_C?T3Pfgcb621*Cz}FNSa;^CNfHuYE9;pr>75G=Bqw{HAw> zIJNJKFtpJdnIkP7%@=aa4V{8$K~@a2?t-nsqm{nec5^h9V0s$bm7QnB(RJ;PO!(Lg=!KsTdwUMgK zcH29;i1kaji$4N&A6F{+TMk_IzKK1QB}qx_N7l7YZ)J&l_L`4rp`a)nN}rt#cvuho z5POOXDf9|bXcZeJsvWfxG!s5-$2WI*`Q{3jJDsyUCFi-Wq0wVki^9j{a*G4G<4O#A zlT{-ebwZP8X(Ww9Nl=q;P>7#GsnXLvCNW?omD>a?L^76!dCU#XY7RVU$l*4NJ88-0040jql;{-&!79eA)s~ba=d`9f~x|(fg5;xUG|7 zIxxVV9$7uW#e_0oBZPqmBe6vN)@;BLQe6R&(urY)j;Wn)es0tZGA0N)p0DM#^riP- z*Y${me032p>__pK-$xnoo*KgW3|V4$r0YbWVLYk&d7E)`RxlH^8bT4#N{UJ=?}=#q zCgZIttFxTkAX0nVz$2CXaY+rp4CTbAhHAz zb~bf??N#A9zquIOFbhn4I-N@yw(AyucTdZ9CkD5r7||c2$cYwznw^~*pk_HmGfIzq zpz4@CMNsBAc7}^79odw80zjDwkmiBAHSBn)hEyjypz*4RbO`b?G?W`em4<=L0ke=D+L)nOcY$s0{ZYY?jXL|*P76$>nQYW*Q|C(Wx1P4cD&l!MKcxf zji((t(9y*VWO&-LVQdLQ@ zGal#lM`YC$I&reQuLQi(Nqiyb)hyAkh_ZcaPTq<_-9}ws8dZ~`u94E?%RcXlbw1C; zvzp0Rm3$)^4Fh%deekKu=zNVSE0HaL2-^NexY^wYjAWE;$P&xz-C=ZEff|eR+&AS2 zn7*%IfsY1}U+?I$;yeD7>&4~e;|T!cLnI?&GOF<+mf3WUcK zI7LwuBC@NAL0Jew36~vv%Ilm5nqC9(UUNYmYPW86p~rD!EP*%C!Q4H$RHFf5eFMHS zpF_~gvLqI)8+8LwuP8FU@y}KJd=A)0kdlcfUlX@oaVwB<1gED)M?R%AE+|QFs6?;3 z;4(9LYC-!z%YF2#z323HeGC8ccnOA1cie|K%ZUJX6Cuc(urvA#32KIrd0R7T`%QZr zOvX|xxb-srIMx*rPqejeHqQmJpAP~k3d{HL&s;`wTKpQ4GdP|TiW7Fm*2=*7L93~& zlZ%pB|Bkmed4OChxQ#43V@746>yWm=u!!Jn6g{s;Lz{9xGMI+12PaSsHR_!5K8D-9 zT&r64=mQCrLQaqfDhekGN(Cf%9n+Tvb%A0 zMKB4PgQ{M;62;rGpN&R)-52UbxFI}BnU$D{`g3xVh~SFxzFNH9141gTPrF<%og>N! zUS(9)Lb4_;#3>ca4^09*NP>9B^?5T4f&b7sULcm=?@s*FmB9Z2j9?20OaxaQ`^}$J zXVrqnUk3TVJ`7)co!G4y614_~g?Rt{3n3D|*N}wu41C)DO@EGOQ-ImiT&=xHKmi^l zSVX9;+73FB`({u>Itu}Z-2dWFo36bl39Kgfx?RQkc$Gy4{N*q7sFM;;7gE#|U(GZq z03S6IhR1x18tLwnR`udunp-hlyqN0ciwKYct%f6hZ z1XlEFnnedMt4F$yVD4NpE>xZi)AJ+Py}f zkoq~jA)0vN(@s@I6wk2otwz0(ji19i{sj<}j zhJt=xU^x`6n>4v*`(f2*SRmVD)U{b3owYF*bBe~0OoT$xA=p%Y=`GiH#)F+-i%I0J z6UZ=lT=pL+_Lj;|dfFhURmhPD-rgPH1DT47`iqq!K$WfxrsZ~aj_7`M&nOmojIqim z@V{=r0;{%pi#7kz%eXpohBz3`gtV&m%;(BN;_@^PwA%heA-JAaZn6Dd@U2&vxdJ-< zKF31jxf#X0j~@+IBu`ImeYW?f#{vp^jClAcDdyDf&8arQM(SGO z`NLt+hmreeX#{#ph55*BTXLFX(YlDN@r9bAG@uR zIX}_rHads7z{XuPAA(}qSZ~tK=qYdm0hgcc%@3C zE|Yk>G9t3C;arG;nm?E{lW_E~2Nai88Vs2B=Snf>E)s3V#+^3z?Yu1WRd8jv%)341K#+1@lypU3>vCJUWHC3jF zc7h4vB)ZP2n|dnOZ3^3+)AphKAsA!=I_XJkakxrwKbi&NO51rcS^VdGyrbb}k{f(> z;iCXPXHn*XR31h|g11R}ZJs&f-(~dQB{Hq#`g!px_`9oGY#(kp-tI=`3$yaJ8Q;0@ z&z7NH?cT#Y4Tk;z(iEz=_zi8}NA<>MqgxBas^>3n9#tI=t|8*D?}vG{TAlHyij|YJ z*b8Ngr>*k_7pH^C08gyENWKncoi|*VLm6Q;s^AvwFv!NhYMI$^vp1IzLn)21%VXr} zur>6~Y*c@0DGZ4EqrZQr&XY~!%U-?9N(!Pszz?LJXJZnEzAU4>9q;Q^}C<@v=|u_+~p0q$@e_OCjZf!BH)c-ccO-!v=LQWF|x~#P5a&)-ZB# zEF&t4r!e%`0(lYo{r=)tJ8oodBWl^tpPtM&B~`~J zuk*C)CvlgloO*TK@OQIDc429o9t_6QX5+aA!rZS9HQJ5fa72Z6`-5;sRyunI5Uzo; z&fb!TdW`B9V@dSAw+Va}hVz3E1|k3uB_K4KxEo$@z5CL=^aP(Lk*-0w;&UpRM7q@A zlz0+eOE)pI(+rYKovl<6xMS8^oZUQL%X+Zxhhg0Xxjgw`EcHj{%jnBwBux#f+wRR@ z@k&+3)bWZ(%8kvMiRdGYCao(s8I!7kGbtf*mcDhn&t~NqXQn43QZG}8>5;ijN#-ca zGrcRWTHigmczU?JtLBwWs{9uJbI_7fObvOU3awBQsFT)+5t15n~)D&R*_pV19O< z3SRbEf0IMB0)y#}UX#_7Q|QXzd9-%pP`(WECMf#sGuAy2mPGkfVxiX z=JIm9c6&JGCXVKVXXp`{GNSQHo5||R=GB5rDwg~MKq*e-;w>kc{7#sHRWS2oiQatf zX9%6wPyo+M46fB|32n2&EniQU)y(~wNT+Sxc7%d$iFGv+KZrvD%S$t=6q>9HxPcgJI0pGWrcCHSQSMV z$JjG^;6fauUSelK7V1v}|GKTz(PHQ9V5bKD+ropOIT?#N#S6rRo0EAj(IiCNYvCb(KpiLoa2d0?`DmU! zj-?#7rvj&aCdrZ0_gq4cCB_bqri3)-(Qrj&0?xNbq`c;cg<`ux)+egsQwo%WsOAev zR%Fkjr{Z&4SlJARWaw0@3<5Y&$6*wcWIL(kwMDlEF(^Zv^O%W<^yAji$=^GwX%J8J zvtbt+w4F$QS`Vsp>h-46qCpi!ip?jp$+ID#%vgn$;>A52^@PY?Wa!_!X z6SE6mR^LK#SB$tu2z2>$_N9mCHBH~?MXF^`wo8kW*w2?P6okzit)9oHup1kgNhMQc z;RQ>^;j>&6DphkxmOSeD)aBQ#WKRXRHh;UEw3$t6x*{kf+j#7uq7PKcNDI3-?YNDs zdny1{Hv-iifvEzu_a;_zEoGssDp~Wy*82{AF?Ow}x}IKMd#{4}7}VJHeanDsSmbis zgV0az1~iO}@e)Xhq$(*CP0>erQOQ!B$}VJGz#^5bb$hCCpuIMKYy*@}&=Ql!{AI3v zb9HS(<>DrSLT<|c!R7u3hP0qy1Y?*lM>!miy-Fo=2H)<*4zm<(MG00m#|s`t;eicC zBWbTb_W%k#=MVT=mHPt5*%{0W%QA%1^eQG^_txo@hAa?hv81?}2MZ4eToJw2mMG;u zOu4<(Wm2D;>XeclGw8k{9WOzE+<71NI;y%_*|%gp z|fKRr{)M z(EYQ+1ffDF(dhlz1i@RT!Jo-f!joc1ddl*drt&C_E^_wpgVj#VzH@QvUf&vuiD-+q zwd?g@fPs<9CI3LxUcUV?&AIwYt}GS?6@qI6GW=}smkI2W&uu{9#VQw>I4bM%rw!V` zP~Q)7eDZ;!WYcDMoyLq0A)-+xHPAqXOq)MZO>~;Ch0$5xvd1Oze*&89H()dninrT2 z2mgzHfQTx^cPWng7hmrcg*Y8U*g9yuIH==~j5 z(};Cgle_XF3F1zfb?1S8f`R`p+ySnE>gPL`{d(>c8a4vSd9xc|#m(a(#+nFARW$C^ z@8FMH=zo`b>9XGu97$TdUj-flj4g922^Foplz?#mA-7QoTqntCk4zfj*__c#HWiSTXPU*(?%A%~105)?ru5@3n3e5?UN z6+rBs!pGN!GivNdYc{Hz513&VCGh*4g#vro6h+8h^{OO8IkU(lUvBPwny=52426|3vJ`C0&it`Khy!qw)a*+xYpu)VEd#;M7{G~{CvRJPZiQV{C-?C%p zUwEiEYT2ZB~o_BAL7C!|`VKHMEFQ1MWoEXSo|JW6At(V?k0QU5vl)=cTGU-31 zFN$P!x;`Eg7`U8DB`j5{WbZ#vhdY=V?0$ij zUb~w#fcWzP=LV(AT{)G&L5r~(CQVIEDD$=A8QVhjc13o#p9Z1$)OAwm=;0B%Fp4Kc zM>Hb$>@}cOd)3~~AbDEpZG_2&53&PsETsbvGm~y{0=kw(dbO!#i|JnP6=DNxX}vyn)w|d$5Wf#pcj%f7V0D+iq;a4gYy^1%GwY8kfZu7?W=0+Ov^0>aF1k$@H z$ID(4Kz%h^&1X`5^fLyPOhTE4ym&-bV~ zyXNKABS4Ob&yu9q;#oSt`e?f)m|}j@Ms9ifWR|Grc#KcozjL%9GV1oL&3ek+a-j;< z$$TN;`bba?@D@?(cC?;RVPVoCiChQ#@(AFHyd|;GGrqAH{W=9*V zxXd*X_ZZ|EUdK)2^Yd%9t0DczNIVRez1h$1PPWnu&kH~)k5Adc?+H8gfzxUGU6D=} z2HU>K^>rP49Bv3J4H-oJk_VD9JW<@B&?7&xPEdI2yX-jQ!Q^P?3pNr6ZQ1LJC-3c{ zy(w{JzS_t6=0)kf=3pAbUb$3NxX1+W>qShd7>elo+ckfBuiINqX}GcG!Zzq`z4mPR z$FE4YE8KKZg49nO-f!Y*RpWZTrevj~_PabkVkV!?tf*wW3gfY56X(grf5x0ay*$%y zPOSV)cl|J|nME{N5AU^k4vlyPLV~_pWYB5~Boc6!iq+^RW-Z_?zt_!m!gns%PLe`j ziJDnyGt<(SIs0|q=b>OTKAOVjVG8Uc2+i+x{mw-zt{1J)qPot{q!Y;OhGS-@??_g(?M)mN=+V=kd-1Z4)gIOz#BrGl}5S)LKB9wH#*5l z)|do`x-RVAh-oHcNBBlnkFuc8UrmHow+I$lV^jgytWb5lGS+Nvvmi6MTc_RvW~xk6 zlIwz*9?Iq8%6ERgf;i2GObTGbDm#h4m`^KZ}@fXT!*T<(r78S_4_L z-R-018enItTD&a%LC-ROYhP9q0%|>*y4aF{s zg|`*Ti}G6+vZ4o zyj(`3=#?Ak>U`}&T&&puF`w%@TQ{ipYGS|+vSLfFS9CRoCFPW%m~Z;^Fo?ZEdWx09 zw&f_?h{QIV$xIE^?|2iwsRukSHKgU1trV#%?476CuW5o3OJ?8p2FroU7TyC9fr$xO zqLh3*9Z#uNb;#o4V*ESH{l-?06I7F(DMm#iv3z-4;bpz&f$T!|__F}@24I9uxw;oK6@D!GnQUo-ehw`50U6a) z0>Vj#lPJF>RXrB5Ld85!--9Y+$c6?KA~riud87 zlfuJor-$9Xe7{scTdMIyB(UShm^f$un5b)5P6Xm5*Hs4w{UtS_-j4R(U2Ln+i=P7})vs5oabU`aSLLys zu+-XW=FVqD{hht?yKF1WAc2Q+gZ>Na+f*x4*>k@Bi{xW|05ZNM`I0ZB=ERk(oHc6PFGU3Klm zaK6Wx!F2j?_@&r*o=#4-S)k!J@%%!Prh;rwyu~s1U zBvO@ZK%?LGWP^4=!`MzB?MM9rUnfQ6r$;<};3kihJ2#Qr@S?c|@x^zG5oSz&G{f5!mxnn%6kf z(+|@Z@Fysqg4OhE>Zv}`)Hr)%{oUEdaz_95Z!Z9eWyHZ>_eJp^zP2WmwMz3YIPQyk zToalSCzw-&X0`RTa<#~7HF5c5YzoZJLJB;>?>9!Prn*)47VQ9L@LrPzn%G;&6k91$ z6ZbcV zknf{DoWHvQ-BaJdm&C(G_3Yopb_j`=0kiVOX>PpYokNgWVMx}84^OJg>M}HGc-r6|7*p!wBWwXg>R!mb|(vI%{NX| z)JlmZ?|?N*JxL(soSd!M(2$a>4IJ4`-k<8qs%W%vwq=KZ;dI4NIZM0#c&y?F|Kwe! zYmp2zXiG8w9d`Vux{{8*r&KndJO`xFShix}yGEATvnL1Bq z@d!ERryYQ>LshnDg7)Tp(=8%sYd4>pq3=y?EGDkD-UZ6xc)*3C61GP;Ozv}MvYUE? z(K?()4^OyUA9H=8Ck4=cHfdmOd6+(lYdxJ@E5zY7NvCj>Nph7xVp{{g75D-UR5lCV zLh5IuaaqkcFu$WlOxRNcxgpF=N_;j(ovJ{9t5*7qV->BXGfN>H=RcaUG$rKm{L=?K z3RS!v062x=CB|=#*U?0h26fiBx6bb%c@NVKK4B@7eUPMd@84!@jz?@ysOKBC47I5d zrHqMRPisaV*W}z88$uhevhBomUTp1$kWTW#f>9&p?-r#O2ene9NJ{KZ0z66DUSmdC z>zO?3LXm+O%|2ioVHyt`V3aadCjd?+`M@SwG1kVE{?!~-^-8Vp2|u@Hr?HwS9nT;- zfA*HIDi@L1pP5%oxMR?-RTQH_n_lnI$&sV)7BRIq>EJTDHry(plNz72fCp!BKWAoa zxUrcFMU(-Nc1c_8{$-~7tUnA+~OGX7G32&;+Ice-eWI>UUjBNR3i zaZY&jJKS_bItp*-#yNc<3MzVs%DG3A(PeVF(CD|g10Z1j4dnn3|GdT`6Uz>onWJK# z+9^MJuZApL1#RS|*wEzUr;#jon97_M#0xa2Vx6RHcK;jKsFOmwCy!;gTK&%f&xret zK&FUfc+>pdxy;~xG~CSwHS=tV86WSZj%g_$)zsF3`;B?2_Ow>JJr|>1&)R(1;x^?r z`((X3{&n(bc^RXA9wqN^oGNFgcKy-!Df;{ZK?Wo0p`54YgaS(Se&y=-nhs7+L)Ymk z+zw)V_c?AhdPt>(*^(-SV+mb@o>Tj!1f{DuqY|=PG#KgRbt$4JIPF%=SwVPk^I%fYtcc!s{+R4B>um!NgIj4q)Zg!`W19S(STiv>UCgW94)QVcb$;41g zqm?{Nf9>o=!h0L-CBFPA1AVMRAdQwY#V^Ehr$B0h`bqZaEwX}K5g=YylAE5-)ISfN zi$6483>N9ymzHn~ML*+>pvr5vq}YCk);OR+e02anQu!y;cyu7pQujniuCA^fIuAp4 zyRTU}5osLn-sO<*ib#4Bw%iU9V!3PPuFy9_tL8)vf#z5%ZzO=l{be-*wjvu}Jpbt=33$>l?cXlIrS7 zOAXtb*P%uRGosU<)Y4$WH|$H9hjHeZC%rJ(NGo?1YMj-4tEO#c#cX(y@YBRLP0c$hq|4-GMGmZmM@(VSF2GDPIDgu z$ywM>@}M8{q_I@C1%W7h+wWP)#3PyMliO8J3c1JoI`qLo{TMiFb(d84Yg}n$+Y@!b zSv#a>jE*%|e%L2hs(=;Hi%8NZ$ZQs%qx~?zz9Qs~mQ8g~I9j1QCC*{3`M6Q`$^;;U zrI^_#C?(3t(&B=AhqWu-&!rtNw@D0BvD;2XCPs`Zjie?ONae*4%(x2%(edUOp}a!* zO@-)SrZ~NwGCnp(!O@{4};VI$X#Pr@wlpA+mJSf+@ zR4(Zb8^$2K-C1wBn@8Px9MPuj>cYGih*ek{snG3u?ipl^skHQ8{~AEv=da=OrxVQG z6TVU%U;~0t0ZrLT(*++Gbhw;F4`m$_6JfUY31;mGS$-}wH;LnR?lrv7LiWylJjjc*{{-1Y)%4{3l&pk zD_;`fhztF$!c%Ts>j#_(MjL(I0jr>Ihi&|J0Iz!|T!FP3Vi5LZ^MvduKoRCi!ut7lv1IKgqBlEK7&vYZ4nS7awb%Q zi&n#0{!PiGL;Jbo9_k=NzfhIU~;4#l^Tm3zHJrorF=c|icirg}_ir={3LObekPIGo%WNle! z=$Q+`OsUhZV0b*;cMJ2=ybdicG+UaiMVssY_Dzbdg^HW+vYZ6~?4G1NNJza=aoDIA z^He72xSI2b(svyT<6#nz!725}^!RnE#r3q`-|#TAv6BI82qjc%V<7?4N1eJmzFyva z%v`PZcx9>2o2U~cEPG?7^v2uUCrOCNp^la(D#6nvpc%WK~JBiq9>oqv9PT z9=?%9$bi$(maw!$8XfM!Fy&^r^hY#~YeD)kwk~LSQBw_y)H#3~@PvLQ_&aCrJNLS; zq)7Bfl7L&o9L$xeEd$)|>^(dQN&{(p629{tD{_>kgYjTy0`?ZSQ&H|ABC&oe#lAu_ z=hYlMe#j8id0)jcWxUX5uxG(dj)S0OHLlqK(aVt({=n5+aSe6&s~%1{AYZ02x#yy0Xl7M1RR2)_JeZHS!wO_DmXu`a_5_g$-Xni)(NAejdFD z^y33k>Z&fQ{Fz)L*p0;LiHPR4ihkc&G&(JM{#opH@zE;18ci8J#BZ4S4{gq%AJW>( zl`7rKWr)g9ex+;z6gTV*_!6j?59f#bY{*JIav?^Cn#$k~k(LGmd2)XV(`OU%3aC%- zD`i_j)4Oc>kMcaHOuChdNs#dyr>Rf(HL5n&V>MVnzCIA^RLbubQ)0*xx63NUAF7^Q zX(Xq2v`}l(Q;zn#d4`C{rFt&2!CSt%tv|Y|1tNL!BsS0_#hGDE`+!c7vfHg zxVsa9xVt+EQR43I?!*P+o)C9;ci%~X_Xq#os{OJbw(8a`n9S`t-F>>Jk37%u)!1GO zXRbe;@tW`};S!2)%n)ZA&kpLe@h>4(d-a?K$Q$*B0MD@E6IBD?tz!YP&|I&r?zBOw zP6a*VCPFGJm@J{Suo9{At&K&n2%iV%u{7OqJpKf!R{di;6tgeBHuRC+Hu?iWA;j?t zgu7YVOLtC+biu?*20BMx;hVD_$uCrlRfm%$vE6(*u4q|^6{3M`Q2f6PW)wPQL)qF= z?z6#xL~dut^7lx{qG}L_)61I~An}!4&uQbrpp;dH89r7$evnly z?{#08OCX0`#EHpo^Q1$)1_J*tB?2e}c}pU>d6DS^k&J-jzpPiQFrtO?!A*2h=CsV{ z)JPcv61urFl3SF>mkfeloA9^{K0>I^7!iC+%E)Ea%NpRtrkN8Anx%NfLEsgM@Vx6`n_yx$f<6re!c-XM{9RL|BLA-&`1 ze)$~GLIMiyfY@K2<@nHp`I;h}yw~+d0na!!9yvv9gPq4E@l1;((EbSCu9pe|yUUmW z_WUDlAy5Xey>Zs`t;x+x*+M+W)>_fLk{d3@1`-`4 z^a9X~fTGKpKs6|#z~;0kT*OClAV4#9BKSKdq))K4a}$0UJuRfg#T6V=V>bKN`R44) zh^^>UqY-B^x80y_N_Uv!SvT~JMb`p;{mIrcYJq$%`#iw-9820Odw)Z-eG+|$?Yx8X z{b&iOFX|506iDcfSUJT!&N1JjXc@G~zRw18-; zmv#jo%k%aF0!w)G;7vuNRpZ+mLm@S?2X-l`(&P-*5wQARG?J8IW``nDII>t{?Qv|f z^dS=_wsl|33g39qxHXDXyd_iDYE+3OB{`yjm z!(*8eomPo=zxZQk1{lrG!oBbrz%fLr+88Ewx$c$$9HaOyF6hw7Jr2LQG^*6cS*T0E%j1mKRl>i%Y zntd_0JhT!-JO5j)W+~1~oKXs}iHV6S%LAXIJS;l_Yfu>oqHB1e%O{0jQbzsew8}!G z*%;{H<{>tcF@4(a_Q`mx9y41cUSg7|e4WQ}35shuerRvHQtsA%fC9o|gS;}eRI4Ss z)?%Tcu~f5(1QGGEn`v-xgu>aDY{Bz{<}h|u+`Vyi-({iuWW8^ava~<0Gh{y_MEGl* z$btF6&bLq53>jR0AN<~+(B{qqtYlD2aoHcT{JtExGs@JVv znYJ5ePW6vVgzW6>vT)|#!_wUp=}{DomfO*7PkvzDoLw`Lh`mld+2|9LO#C@n06lR# zU5T-Ebv$MZD2TQHt6&57{rpGIgSE9S5kMK!?QtK{Fov{-ec@-f&J!IJYR%ybysLXsM9i=Wy$@SFJF=Q zjWrmLJ)l>aTu?9&?Po>dWgTFaiw(+`zdwSw0!;Vx{m1=W+3(I{g~}Fr%8w&IZ-?xe z3?8hj^9{dPcjRj(8wXl>243-pa(~a4DyCGZvgFnnor10;7vDHj$W(Kxx7*~V(JD^? z5Tk;C13bMzu}`jU^x^V@{*-V?Jf1dz+tn7uO!X~Y@aq}*$(Rz{gfSo>M?tvQ70&On zz2nq}o$@ek0N(WRg7H!FeVGG*Ywng~!YF{@>>G);y6 z(=ep6@{Gd~8;}qAd1svQ{|^yUndwo% z_-S%unOctZzC`}$^3=X)S44bny;qodR^Jn%D0I}KUnSkx!7qDH-X$k;+t6#&Im^2Z z^;)_Csl4OGD@E!p$u*{n;($Lo!&H?~uJ$brg*nb+u=Y?=U7pewicZIS{QM5Q?*^@( zEa0)8gY@Cvt#fta;^O!{ZqSWI~s(bTF66fe~d?aPVEjMvpDm21%8w;suw*4ysC z#=|O{0Hgx>219&IMx)f{PTgVUJC#YZm78fCtnPbEc2W|Wx-zszCkfxZI6>mHID{7FQ&~@~AY~?t1-Wc$;$@diTA&EvnhWz6$j5xcsWSH{HY*~mHW<%MW$B8_>U9tg7`19+ zu7H!wp4~|cL)OL6B2@O@7neiR7jBrbvo(5ec7|)9_h&tlAh-NL zX~;BYe%g9MHYa>5&u}<8g6{3P6oT0G_La)=0n)~{kln89D5U@vx3tLI!NNUF%|^b3 zAW!>?gV7iZnB0k&^+(gJoM03AT^>;1H=&qR5cd|m$`O*{*!P;=H|N_~z4v$1!3&MB zSEg>-r!2~N)IqL}hhn>|2L!Py<%T~Vo#jy62Rq9^-@uf1U!N))wrhFF2dum_>i2h# z;!uRynRWn2tl^OdqNOT5l=)~9`J7sKk8O{Iu@+l>${y=idv$$Ge?p*`)3Fhx;sV}& zl3B_{5<%dKExlQnspJwB#|3nz9dJPHBYq&uT8SNCXcT_DYxv@9Zy_%Kh}GMhMI)K? zPC2{BhTil{LG5^mv}x4Rum`-1LA%ER((E}S5K3yPFP0X_+hC-WD+)6w;njb~93H>% z^W%)Sqz8_DzkUsdN%< zrV~YAc1xp3PK3)s+J>DWU*G3 z=&9DP;rB*Sa4{Roh$r8yh6)ui*``G&^kLvdV#=crS z^FOT;swe^j5m1HC*X{;(|~-9wVj>PGyi}Yf5M_YZN*lk{0?`PLWZT~<(`CU zD%wzIpCHEI4mrW^&*x4!Xq999+1G<1Xgr$K*0ykS@hotKh_WLH2nY(9&U(zJw8-X^ zN|b$!Gach_m1xA?rnJ(u=m$1CKiLcRN*DDxI^Ky$IJArFhLu{}5RrO@TqbF~31k(I}p_6+i73*fcWs(%#+O1*=EJZEsx@qpmt zl>y+a9Cw?sEHT|<7`|1~^E~iG2(#Im$e6N2PoK-Zg(mNWo(s!Md{Yd{xKNyA9NRLn zqt>^Yjo<2rmaUfBH}G$W5E53%2#C_z81+Pk7%LZNw|d0BHv7Asecje!Z+^6zIbOuu z8MmPW$}#z>)gGs&PYhvC9dnhui4iY)0pk-JyNRf}`r|?woS07ul{m?Gya3&!+h9lF z1KzO1;X;T|1#O2=Gk&$PlHzpJv`=TEvPnf*owN|1rHNdbHl7kkgdu)D>E_`~Hf^cM z2Lk*BSqTY#m=i9z;%?Ih(u}hN6jfX{`xWZ-{-+prQY!FRTW+oV7h1-;m zadxksDbg;_>q}W2_(0eb9VwRNf=d@kwYpCD$GUL_HNmTBBv69b-^}%qZ#7ROy|GtR1*b-Ew47oPIDvwFps3tfDWd{& z1@NFnM_1(dURR4~Qpb$IDgxNGsMBcMu~|q^7e6nFsF`2VT-*;Qd95dm<kYDc8bthE)CM#u$gt2DjmP?Z%_w?)a_g<8dj)h$Y( z?%@)qkO!G?04cHeOS1_r2$@fSYrH4{GjJ{1WZ{@sEb^Nv?LH0{N3t%YILL2YZ6bwb5oUoa3#D;)Xr#zK~96 z)G+kNF@Y$sW3yp_DAaP=&;f+Z8|#gJr<>Cu5S~4sq;T{%^kd=Ve4%(;*)3B>Gx3tq z0zZ%yBc=E9D7_iB9}5(B^TftaqTUbP3G{7#2h-fnZD{a7BiV0!aM8FJ2PouV?>of$ z{47Go6-$6r^gO%wUg%b%fgmj;OO)Vz_ zfmm0&Ua#{2kWF$U9$AZ=4)|G>o3xJ#Tk;sOuNxy)I;7576*S1E*dKndLYn4VOeE?3 zY?`D~YUU~2A^EHf)EKv=Vi?n>R=}<>GW*`3he|iw>)Eenh*+fOfLZ)}R_W&Bb+-u~ zc&#pmNYdNwj>k*8f@w~MP)^PXEnbDEN-~@!nYh8E)A?>^rWoIk?rVwfBoLL$p|}|> zm#0c#F?(yaaF@yun%}?7#8^I7KpKqwD3vKBnWaC#5fNI7NFtu#W9<=CpRpc(>G3$9 zrHStNVzxvB_MSMiOV82%5skA_DwSLM%T*NSxyn0j=c=oK1FZOQd`^9sQcc$lzHpkM zBbOud7G~Rvd$msW#??}|i^K93pJs}XvpR-bg(CG@peV{ho2;dn3~bGJi@CgFIe`eW z)7o5oPW!-wWho$+;e^(3bj_i7>%}1oUX|dfRPTt*OqCVLXcgkh-gJ|T%g*$!hZy1O z-j8zPG2~*0i**Hx@X?_(*`pQT_YTiZjAHX0tiUlIDvVKi+#6pQEuZs6c?ya@j(04? zI(PW!@h%QBc`WlV+1-E!ZlgpNC{qao04l`+6#4j+`PpHBH%6pgr2^Q8fCzW^~ZnuGS8H$o!a@L-~?fd61ft zGLn3m2u08cN0_?+;5eB9mx($DnNvch$K?DT9-O2SP9xjD*!F>Bi6@9ed)%#C0AXNH zSl;g(M)6JQGlJd6m4Z?sdgaq|Cc+AM|MBeY?2exc;}|SA&KK zBO(w83{cEy@#V2)sTtI-QR9(4I&)srPoKTt+XX|7Z@XN*K}jGdE8G2SBc;!~8o19? zYF?z#pt=u9XEf^nA~sNt;1(Ak091~@1s7RE{FGsR_y8sr`&Kdy2cXdDdO!^k+a7LF zx?(c@DYS1w@R6*;i-lUS6M~j)&fqh^OwSC0lAWvLr^)0fVxgz6TR;=K;GS;U)4#Zo zjkEd)kSgH>R$8Qudpzt(4GumOQu$&EgvXSnemeLh6^?mcs@3#$0z0W*w^M_~8&+bC zlR)1j#}!NBoU@D}I5`qM1mH}EsGs!y@W!2SRLiPn62r+J^fqL7v#neYX^YF6DBeu3 zm7(58>6d#>g$M+*5ggrKZf{(Y0(6u%ejNP~Og>{EE1?&4w2Gz?E8N$hi&0mi3rt77 z-fES_Y_Z&rb@gV1U4=zFGL{~B*13Fyl{AAo9>t}ErwAP+Ukk#<*9EEjg&IWq%C~n$ zD-yjOBheD)9SS_}BT36oA7|}6S1%rg-#Cpi=zIcvkaweqHdLT;C2?&%R7_777(6UN z5weKn?-7U_M&v(j=x>_3=8+?Zuj!G?fWrl-To|l6OjXPVPy7bP^L|4{I?ax5q@QuK zACBr~LQxeYIub$4Izqv0oH=go`}x&UrB?6`Do5fvu}GDIN`(M1QTOFs7*)~kWN$1| z5d#(1ClT5ju`6@Roa|LxAQ|Zj+!Wv4S+FPhp6kfl1Jn9FIJv179^PiXp$?>GtR=2X&U$ zjB}V*u`l?t36P+nR2rP?tXS_>$%Q{Zq`^MD!d`$bOYow-AahZ-zP;hv(`I8OoGXZw zYB#!dPK z!GL<@6&F%t3iCs$=bdw;0KrBBrm}y)Yf{9 zAI%V{;8pWW-+zDevOR$(Lds;({|TI^pa4*o7+coiSHHZizrUe`0as)@GD`vI zZ`j1I>*9b%xi#VdV&-3X%Cbo7#OWMKMjU;6xtPK)U-o}J(1r#tGGojl;h~ilH-w$} z@A|KQAccSz6(?s#nq`15tC0L3k9+2z(7eP8OD!!Wse1W`gyN4#fRHsT|gk9@!T zPQV22dVkj)OBUgXl8Izl?OAd!Ug)E+`I*jyqT*{ky%c;kbrU6sHAtL4{ooPj zje2oOtJR(ID8kMzxXPojasB4Ja=*>)X&#U;p|5Uk!W(XtZ`vc@N+BSKQ9zmTm??rZ zbEnflK2fv)gDfBm%8*VR=qU~-Ob#M@hRItCL_XX7JSD2wI603fi}2m9*7&4C?i#Rr z(LvRRU}Jk&qrUh^U&_KhPlzW8N|+*`u&u_PBn!Az(7>u>KnYt^zn+g?)H1J@{tD<79e>d0f6zCr6#$^7Z12|l z&o=Zc{KgxH4Cs}LU+;Uu22~s) z0=&R~>-|R|ASMx)F4*?>MFQ<<0K%hkanJXhNcm?m@DlU`dJn}|MgD7S{#>U{1OQEa z%{+#<|H$Wq3CQ=+_tne4xh()XjVIjE^d;o;8SFn1z3AQmk(B=74DEk9Q)UWuhWhp) z?U$11LE&&%Cz#K>^OkD1WCQ1d$kHCUz#O7$=;0YKigfJ#$-J^>v}!FlIQP_3_W7y!g(tCW9|xvy8u1Ayme00{&Z=SKv|WG0bVj~{XI z3YE_6fv8f_dQg(D=l%4DGz7_{w9?ReB8U4a_-)T$b2^@!y`)jA4|)5cQA%k-NgUfFc}wm>NxjpSBI6X0mrTFVbICe@`RS?=`un7~Tm*Bp7UxSUoYF(p$XK>cHwDmVj8imh`4s)$?V2*{%l1cU-N(YQORO`wnp-!TB|oyoac4#_~%?&9TRw5(57c*b|8Y}00uz|k$y8!ROLzOcYSVt z95p6I5s{>ld9H}MHPdk_;g8xAD$d%Q9l7b!p)3Hr&5e0>F@0A?t=5=>L<%j{(N+SW zv4l|w7j3It`V?d#25KTbN*oZC+L46$=BuW$fdPhR2I+w?=N#ep zw0nD|`G(8yC}Sxjqp@{PBoXOia57FakX-d5%iQ5p>_vn9-u5TTzq zA_20K-Z;W)4w@YH!fB?>-P&l-e6qZ@Z%QfU4*9~a$ZK3IiRDZdYKa+wm6@Tb+*E!V z^nz;j){zI+^kkz^v2t@M0RQFA41r#E3M`*!jVb0&N>4VDpzc;xoRSvT>w*TRmzqyilEGF_)L>P?~9XTq;onM}ro z=l!-uaE&giKGvV50bpcjp>dO19iD)@pAEvp`T{Er^yZ@5L&-Q%A(qx68}HM+w_t*HUunuPUEvhe{}z%|OQq*XTUcjc zgthG5&1U_@YrfEwcauEXA-mSya`c7B;Vp%w)1oZg!dKx)8NNhfpRZ^Q)4Act^unn2 z!&R@t{ELWxtcMlc;8gAERSUc?55$ZlNBU%5?Y7BBqk5SV9!+{YGAuv@+QZyALlpR# zs+37YWUTC!>N!$s=+;QGg2?obfK~ZZ((3Q^YEg)wuf&%s8!)7OeD)mPw=gydOJ%is zV4mA7|2c6|dwRkNfysks8RbBnbVAIj#o}a4M>c+@Lh)rHM}EnxKNuXq#*&C4KbcT3 zg_9f{P?WWWI5k^=TGRL$MW?@dS6BOOX&G7o472G^+X9u6*M2g=T`ov-G7tF4oUV)B z1k}62(*#KI(5(gp42v3P@K07i2A!8mqg} zs)9*JD;@PO&>qbBe;SF41^Dyh$_+|$b!%^LpsTAJ|191IfVc0-_>=%WNdzJ+Eow!@#XVzP7=>Uh zH$rLdKxQU6Kd;iuH3wyP4}Pk2+GTavPi&l{eu(DjW{4%fJsYGT*8|au3tBW2MPY30 zY{P!icxTtA800ToZhW8H5P7nEual#HS(=N(fo6uV!zH2kw6Eq}j^4Z3S_Me4=npGY zRU9Kci*u9=5DfYg9j&aph(%J4T>5A^5?9Jgg@hDAT}3qbvC3{ea^JTvq!~Y3HZq`l zZ?w%!grzPf^ku=bV)f-AaB%m>@v|o_K8)j&^YAb_GO264B|4}y#*Yj)(|^~_&HA~k5@9_l?S4pl(?5-9lRhaeI7-KFAJA{56?n2{Gv?{5FrJk5 zzfb>@mnoh%ve~3Fg;{o~TP({$dp0(othlAZ()Z04m5-Q>{ z-|!eWH{asJ8EP_lIDDqs*F7*WZ))dpy_0`)4p=yq(E*>SBRx}7@wuFCJ`bieykB-} z0lcYNk`zpN<0KOh~AW9nsIXZZ=)w;YmHAq!h(rXN~o< z^iB5i$;4=cn6i0GS3sB!hvSl(qqd=u$nMW*&jvIipi?}tru9H4( z@W9zxX6FgUjYw2(-krh%&l}31kt+uB0e zR3*={<|K^weJn%U$aJG2l_U*dydRmsy)~NqQO9JjTS|9$ zR3+;D#C@o1VIiE#-7u1L{V22WZrZk&w`T?5+(@F2qSPCuvw)@iZ}gIeh$-<>0>s}=oc!rrJ0X=tzk8!?c%$8Uasr%)_r zRG?lMv7-xc=k-ia2LR+RVR48(j5o)t2JW39V_(Es$(?P53w{haUKC*}JcWD;H|x*w zTgHG0?pEi3%MPZwOev*ckbdb2!0HMF-=@U@?gM2bpqP6Oz?YX-#k^ZnXwYERw|E_& zQaTt=H=1WvnXkHGi0+J@p7BdLmGgpOH_Ll^2Re}D>`+!8m{lq6mT&YL^Dq- z*@67wE(G2nCr?BA8pY1iKS#>R**X7GRQ^@L^u*U~`9jqxK;uWFscN4%%GbUZLIY`3 z>A>MxuJK#>_DnFq)c~-QwJ+`ABnx1&^;T9(r!+#P!R^gEd_^Jl&y51X^xXd>PpFEE zlxV>o!#8>l8A<^ZD1DcAnk_0HDG6Pc|!B;(}d z>`kEoOJ;Xbg>T0mFO>qQQe@W1j^MU7%x?3{_r>0+_l6`EK>^i1{Dk0l)Ac_=!Y3C+ zc@58z(t}KwImf7RT}`uedm^AXK?4dclWQLwZ6wvghZ_AUj7<4efm&UaGhX)QlP9ls z+C#T}i@Px+I#RjmUA`MYEc&%2mP&8waep4tQ9*I0_1HlS6a@vU3H7CH`HL9oADXIm z=aozKG1bLx^NK}V8AT=c{K$Pf1%;nA+Cp&A%ZbEP1+zsWDVz9nTsOHQ6D8V-8RPrm z9T*-fvGq4%Y!+`DR!@^04%jz2IOZL;C=useB8$|Tgrqo4(j>LT`3Y|qJL>JQ*FK+0 zMKelsF0f2#IbPG;!ZufyHrJTXzdvZX6uQ0-z?deCJB{h7gIYzEX%B_*e^93jrfhVsyjP5&38KHd_TrFQjTx!8Dl4i<; z8YS?%!gwAF<{9v$`=8T;i=0k%f^p3}+2?&juIJkr9!>*}$H#B(+aM22P(kKp8>o!( z4`1)`U3ZOvcHz3j8U4JBbXdS9({f`JBz0vRXIXosTY8;HZWvLx-q16))<7|~=hEa- z*4}@T$#~DUo(6VNZjs1Jg@Wr@>X5eZmvuMEO548`{;I@)#sIOc}nDdL-&^F zDV?TBgU)|-uXn$OdOORrKVh?t{umZ3+@f>4S4yX&SVjGz>Syx~5AIBDxrcLXE5-35 zYZKK5+I`1kfbbz&6ECd{k7APX~wG)|6H zJGo%yb?fM9L^z@m{M20t^ zop#x)CdM=kvY8q)l0v28>b{%=3N)9?nU3bi2fyu$@oV8O1jE=Mb{mW-RmF_~EyD&A zw%y1keIj4oE^W69=*FXy*G_BYo9hW)o3ngBoFR(U(8c>!HY#klttpswG|yu1I`HrG z8`ih3P-zlg8@`|IWIBsP$92VFSe*Cb@$=kz@q!3PRDe&xgGuRkAM5BC@qMpGo=f9_Dm=2sF1@1>>lEcJ{5x(Fz zDei(d_*Q9qCO4`kVB+{mS&W&6-yiaGg%kbW(S#eM)(c-On6OeX^_{her^`$Y-Z1V& zJFFH)X*g`Z$5=Rr-BHCPGyu_`Ky%M)&-m=@&D#Wpd^&F}_6;EC8`78ch;pCH*JcqR~?}yycuYyvz z95uYDlgKRc$J}>YHYb?@B(m)75`DX9xj|v>KxI>@0Z>d1I<#;a8i`V{S2KZ0=+^65rc`U;i zCB9d#-D7`4B=`aZ97#lQDM8&YuyEeT80J0p2{ZGC-9>tWnB?t5mDXK-eJ7F@#vyhH zuO^*}4pEvx!rpDXMCLaq*$T-$=VZmgw*j6?a+50ZFj2usyid*X5>UPTuumEVjeLJz z?Y-ST(x^Jn!$%q-i2G;D0p@uvqLrnAF^tkW6jyxh8u>D(o_&_^*M{`01-yZvDJ_g) zD^6vYzt{WoqW>x9shbv~Z5r}hRe%!oaYO` z7gpel9$x;sh$P6rTC7GRz|13go%rT|&mNWmf5%g8$nUlBu0mS-drn@_JVC`^V*;e6 zI2+L?JgB6RPbn0nAdwNf-d_`0SP);E5RLw5l>74_uNx$wNkqMna79oPRsp^3g1n-| zE%&K}4?gW1LpUb)oq5!%6mn%63NuWTKRmNq@2OgmfBm@I3?#y9uK6L!4c+Tyi=f_h z0^H-B*81xnZetXNSz-v9AOVgVQbLi94(H$f644^K`X1=Ca#=Td<+NH^_B9bF#>l3> zw3sRrrROO9E~ofs&J-D!xU040p(l<9FM%8UMZc<-B^#wpjHw%|_Fa^}L;_|Edys%q zQLxxgTl8Mtt0d zZ9{lTqkFz_j(IsuytF*|zQR$^SN&0uXngH`Xu1c!8%B9oJGcs`7 z`0+>8=9&4!Qc?`(uj_?^&G!_#A={Cth(#hWXK%eaCyK#(cn6fjs(OMdQo5(`h*;tD%Fhy%{5qiEd zHpL`V59hSh_a5q(08DfsvolavRQ04k&+q0Wz#rU|QsCHhcg=YvcOuK? zSSpAx2?_Id(aolAceR(V=t0d%L94GHIwQhmoZhF=ze0!d4#d8g46o$>rK1ZkO<#rO zBS6hCcNcSlB5K5^(jn(j=Jb3vFBH@ni6e(nAWN%+U>9tFsIwC$NIop>%%Eo{;Z`!h zEd8^Rcs0No9K>4%(sjV+$Zvv-Tju2u6>G=cs=lE|VsDBjpHrm`A^RWVWj+1f4v?iQ ztK7IB?a!(pkO$4LEsMmF_3(1gDJ#1um-@*}F3M()Kd-E_a=^<_Jolj#5zQv>0rap_ zd%51-gE{A_0qmHbv-~vh&kD?<3M<#;%|*1!+|pjQ4XP|vFVDutxOL*^O{LyLOXmI= zyy6NumOneq%3X66HgzMC7y)bL}5w&_w>dCwSSuWQc*w!hUi4_tw)|gWRpc zFr33Cj~b=qI}924k5pdYEIfkVAG&+2>I8*OV+RU&{T_&EYNSb=f?1<8YO7rOZ0T20 zwQRTb=sP43o*_j1IInKU@~Gq0joJ1M$2!rppp%s}Ji{dgP`OYV=ZJ?d5TKLUs- zr)5Nko5Ne(YFNLY&m|8oEVTK8Wl5kVR z(&sWuP-ZGQ$GCcPIk@G4vTnHT>cJdy)c|^29;4ik{b!cb5J1~T4OKuR>L7;G7*9;u zXhVwKCR21b(_6}R*j~6X6mp04#QSL&z>l`Y)Jru$7>x+D29T&W6%Ao8x4c0tv{dlCMp95L?Eju<$={lc++r2ZA<8#Lv_Q1P?#0_mHqUXT z+h#Fx@|GVfD-z8#$g|o6$pO6P%eyXt=RJzR0sJ%eclE4ro{1qI2dP9xL4tBmmgXQB zftZqlZ{lH&;+HWy^Dl6z`(J}xe$B`H-96yFAd+*-MG(Xr18ex^!y}7nVDAh((Qf~) zJ|myvlr3_vZ74_THV7J>#+S36_8VS$w~!ZOe)`uK{ztzSXEzbZWCOHb_{(%68Bt#B zbxEwCD)gH@<Tr!E0&38O*4A5|pqY*hjd1M1;r z&prC}(D=z zejA0)fAp+<`I>QQf0y6(&z=li{zl5nu!Kc}{@1Bu33#`ISZLvA{M!7V#b{*)u1y-| zzy6~YfCLt>VQ`MOH%PdD9a2i5!{ELNiFf?<1V?pG-PYMjzpX!;DbR$aByf#cjZ)}; z9c`Tjy1vlNE#UXRo_Lx7*Gfj@=>K}c!YcyIql#wPX`bM%8DwJtHF4^>#^aM*ELF%EMu2zu#zSkTEP`rHc`M+*-1dN~7 z?-+i=e=D9maP9y0>^6TVP%EaLQ%ipz-+v^90*@{JV78+tM96BHkNVd*(87XqR-4cu z=U|+lFcY!-H5ea|wfjA(iWL4kbr5)ZUOp+AN3cKAUo9wue=hkcmiP6^YcYjz{{UA?{79$v> ztd{6@v6I3?2;8)%F5VaMLJ~Yq)LQ++Lzt*O*#jE$BoWaY2%sbg;gOJ71x*RW@4fZ~ z$Pg^>ij)NBa4;4mLUO2PqL4$amd(@^JcLr1gC{^1*;rq=iEGk?Z6ehqCkE5}2J_>O z)dKyp%0%YYz5{x)T&5@(i-c;1**||Rl45-GCU3t)F;%$eK!q4=yr&H3_h8l3d4?dT znaG^S@|nqD3L`gAwc>j1knFky(;i4ky5TpR9E(6ux*S3OZ*aYm07I)gUVI?nul-L( z6)?yuAXER+hHgy2ib<;bnMD4V)DEQ%5UrU0Qa9LM(;7$+Ze{dIx+V zATC)Grd-yko;dXe>pCemwlelRa^;VrkT0_wE(3?ug~K?-WxA712I7B>Tv#P2l~Pdz zA1gvM;Bf0XedE^?r;H!%?snU~uDnQDs7&Tzs65zC!e(_Z*kUoHf_f6h9gRH?%_40w zf}RWB@h(dl;dWMk+hv5*Y2&_Z&dI8osaINae%a-EeQ6;&@teT~qC!2t)yOangL4vV z%8R7CuXFQ6d~Y`nK=N__%xIp4S7?_TjqF%`<3#~%mX&JINkq_Km=*?g48D8PM-*?a z^`O$`Na4rR3~G(~5B78A0wpaQL`IV})vjD01Mduekh4EbeP8Rz6&9a-i@V-fDHSts zzyDEMXSto^r1iUW-z86f*v0;Aw;o0+h09)Zqz3E96$Q-W{=y0X?B$TE$#7(`DVC|A zR&@@q5VVS0ldGlwfEA9|66|kZi+L(2nCTpg((=L1c-X$p>3pnAVc*}T&S(vPo|S+~ zNqD^@l=7m``RX9~?xZKHtVq*>0aRY789O4sk_d&oQ09>IgNsm#*%_@Sa&*@sT+g>2 zca+CpP{kNQsa_I{K#9y_Vv)iY>u zCt|&lG!>fx>fFZaPg4<|(y=0^vZs)e-d{4)mj?8X9e!CKMfJ8mSsJLwt}^~PeO+fg z6P3Kl`}4moC>XR-e<(89*;Fe9YOB+IY_wrDRe4r`w+nfW@eZ2(VvB!0rJ;m1m^T&9 z!!oPbW;JJkL1zOe{$u^coaH_V(MaCAi#2h34I^^mNq9U;;MDfhF8XXi$Dr=w(4nt0 zIMEc8ZY}ludYJb`G^cr8FDc%4JjdRH*nvkw)}&A}!L`-H_KL+4_YuyQYD`_2#`X86 zbJW)JZ?fg4evr8wei-?QV=2Nb#lt`z+W0D>YXK(6p0J?A_1aBk@Igc7frWs)Nx}h7 z61w@God{cEUaf?kOWJL1oxD1NJR;vFb1Li(XNl@y-n$kddi-R%K-{X0 zeRtcQxISxQZ8_axAfl<6;v>dyeJ^?0y)mG!d(ilW;c-&%r1bWY@QWmDmcbCNUTkth z4{7B=P${YCrWEd)&niOgdD4Augko3g8ya=p^ZGoAJ9?tq!voqD&a{@smJ`t_^TN&fB3|9@IwxrC ziOa;!T9!L$Cb!!mE>d!FWuf(tkpf#*RXCMeybxTCg6=8U^d3ZA`}kq^4zS&o_&&PP z>=!vSL_Ga0Jo||!V~zek{pKwRDx1_H^G0PxgBlGA9IR%^_Xh2lzy19$K*ynM_ok#?#rveyqtHXQ z%D>SHN94Zw5JRI*s9taeGUD4z3aX}7O&Md!W?CN*)!TRto2@FFE(va%ykN$5w$yy1 zq(2l-%Om~RfuJ-owA!VvGu+ zk?Z!bioIC>Fh+r{;q9&(_w8fJtuY4fJ&ER{ElUPZVgnRwawOT~J;|pX45LvI0Z97N z(C`GIdX|U6Qt92Id}_w|n52vVVZPNV>BoKbo3%^}stFnurQ?NZ?pZDGLh(s)1Ec8u zO}@MT)?PIz5GW#A?UW9)+hq|Mt9T%EhFlswULKVh``;;k3sE8fVEl@0nX53WYKro`)@+p%-uwtd#@Zcffho*TuRw zQk*d>e`h~^x6mSPg@Nj^5)?i_Cbajbqn>Xpr_ygl`6Bn%Y8vorS~hm!-ak5@v18tj z#AXD1elW(TD;{3i5WK(yw`gGJ96 zzqube8K`}%?&;jM2(Dg*W`geN9Ifa!z<$`AFBkM}LaXq&aj(Nvarv>}9?#7~v@5xI zM!0Lm$!kBqK$|>!)gR~egAsXK!wVGwt{dKi;hgDIw7HHj zQ{L-F(nb*yS-AfOI_LkY>e}O(-2b@P(F!R_h-|4P*Fttw)^Z7HiY_=hba7j4BMVt% zbSmZeg#>N@j{tY_rbe*P-?N`F(w#@8|RRem~FW^Lf8N z&+B>AGNO%Mo?Ns=->d9pL)JFffH%|VYicscy^(I2Q4thT+EwGvR3eQ|~6fz{s4a&ZMq*t|aE0+kx0 zk)dOeE5PoI8EwOOI=qXtmnI2syMD{qf3HF%BOEz-cJq;P17h8@wT!wfaXnCnw62~-Wea_t~{lBTV+KCBo}%R|6Q)*Ku~nyZtK(^aC6r5|=4roxn-u;T6_RNs~gPn>O*= zj)kjyEJ)mfI@*Diq3?;NJL8+pgokdX8zah`K^9RW_UWslW3Pm7x+)p6k~Qr*No_%O z?_OxSewRMWMikGvx;HraV#&dqxI>e=m$EyTpF<7dq+ie46o%n+3OqcMF{vaOP>xMK z&bL1wB^hAh{Va{F_b0u!$ivba`PoMzz<*)>pzi=V1b6Gv#<4M`nO9XI0N_fWLstBg z1zr1l=6an2Inc0(E$w^mxhz~;R{Vw%u_YB7Rd{?2AXxXu!9ICaTz^KiYCgHP{?bk0|&P*|D;2*`UP z3zHSFP@+1>0|e=24l5ScI$&XqV|zdS!EKrY?zpYk1y+9m7o!4mFlG7av9Co{UXDjzSfJDyprE^~s7 z<_ulfiV3m4h_69~l*Rluk$aj7@wg+0rIV3KW6ID?bM59B$mPX(ji@tGIe{O|=^C#i zoX))6m)pVL?DiR2Gz(oEJY?2KBW}!NGC15VCyuM5v>Io{injS&3PxbE5QNzjMtuX$ zvDAsEH0PdR5PF1II`QFyJ3w?Tt9RKp7p!No@IX0vdv^sR7G}s;#2(o_*Xf;wbEiGY zJ%4SBafd>G3Qv@P(5uKO^nddND=2mlB0IHgymvDkrXX_Ig}hZ|vW~k$!Ee6YAY)W@ zw~uhtoSYSu_-6xPuN0%&yPQT)SYVquNMpQ7aSHooCOAg3j8ddFj({|VW}tziBAtZ+ z$Bkh~Tv90l|}0BRWdrGWTc zL7gJBx!&PcrPrzo_eOfuzE_eLO*tF6?EXbo@3K|{K-P@@y-t+a%bv*JFuy$7Qmva+ z)328dp9<=^oW&k_%vLZk%|@Bds@WrBrKGW4zKDz2_QdgD5G~vMus}{HIEHkPW5v8o zqsX3fMAx5I!a^ZTQJ`H&tvbx^jzhwmqtg>YcYBpuMev-KqRju;1*U7IXfFA>S7V&P z%vay(H-mocusVAMU0MfzW0sWR&vFa_dvdHY{Ud~SO$tGYzkMDI$QlD5Mambed9#$1 zHJs6cDgLW2yBd*kP_vmyuJ#o7kz=q;iiDTv6`o)ch>-+*6*2NAx~VBlf|q$By635r z2IO4(kGT4O8vwZ4Ur&}z^SHWOW^!W3E3ks^Rbh0I&TXX1L^Ziz8~Q9#N!sQcb`(gJ z7jXlbPh}R_MX_?Utv>xlffwTq`oZMuZanYOyf0j`>2JcN5ZAbLR@O>hQJ{I=aL?C=J&4tE%cH} zmv0Y@Ug$gvU~Vdtb`wy+f}yijy~S%XnyZet-*@lH{cdO(j za8>z5UHZp1B<}Nru@3nR1<@a_(m!hO48gOS9$IntestxP1K0pA>%)qn^`V0D zhf7$5P(QzQ2wI6pL9l;#y_SO04f_DQ{8=v_zu-T}0^e;B9oyd6@X8hARQ;%@G=+;` z@k*m8EiAn<4Qcr>Gamms7ZKI-&{u0OE76i6#5hO<)%$WRXA&frU+~XMF|JDB0j6LTiXBt literal 149849 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 z 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 Un3b{q59CWpPF=QC+U(8$0}uw`ssI20 diff --git a/src/connections/functions/images/add-source-setting-dialog.png b/src/connections/functions/images/add-source-setting-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..dd0ca6b7e53e48c3b7af265c8bb7d505f1a45ac3 GIT binary patch literal 149849 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 z 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 Un3b{q59CWpPF=QC+U(8$0}uw`ssI20 literal 0 HcmV?d00001 diff --git a/src/connections/functions/source-functions.md b/src/connections/functions/source-functions.md index 86bc3ccf36..1dd110219d 100644 --- a/src/connections/functions/source-functions.md +++ b/src/connections/functions/source-functions.md @@ -276,7 +276,7 @@ The handler for Source functions is `onRequest()`. ## Create settings and secrets -{% include content/functions/settings.md %} +{% include content/functions/source-settings.md %} Next, fill out this setting's value in **Test** tab, so that you can run the function and check the setting values being passed. From 22bf630834f58f2c1d5f1bc7a24b8f04a5d3b021 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Thu, 3 Jul 2025 07:45:38 -0700 Subject: [PATCH 249/438] Update query-language.md --- src/api/public-api/query-language.md | 36 ++++++++++++++-------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index b00c9781a9..d98e28bddc 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -87,12 +87,12 @@ The following tables list the query languages's available functions. | Notes | Only valid within a `where` function or a Reducer. | | Example | `context('page.url')` | -| `literal` | | -| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Syntax | `literal({a: Any})`
      `a` - the value to treat as a literal expression | +| `literal` | | +| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Syntax | `literal({a: Any})`
      `a` - the value to treat as a literal expression | | Operations allowed in call-chain | None allowed; typically used within another function, like a comparison (with syntactic sugar, this would appear on the right side of the comparison). The outer function or comparison dictates the operations allowed in the call-chain. | -| Notes | Literals can be `int`s, `float`s, `string`s, or `timestamp`s, where `timestamp`s follow ISO 8601 format. Note that in general `string` is interchangeable with all other formats, except when used in a `property` chained to an `entity`. In this case, we recommend using `timestamp` over `string` based on the datatype you're targeting. | -| Example | `literal(100)` or `literal('value')` or `literal(2022-10-17T00:00:00)` | +| Notes | Literals can be `int`s, `float`s, `string`s, `date`s or `timestamp`s, where `date`s use the format `yyyy-mm-dd` and `timestamp`s follow ISO 8601 format. Note that in general `string` is interchangeable with all other formats, except when used in a `property` chained to an `entity`. In this case, we recommend matching the data type of the entity property being targeted. | +| Example | `literal(100)` or `literal('value')` or `literal(2022-10-17T00:00:00)` | @@ -287,19 +287,19 @@ The following tables list the query languages's available functions. | Description | Matches when the value does not exactly match one of the values from the parameter array. | | Example | `none_of('shoes','shirts')` | -| `before_date` | | -| ------------- | --------------------------------------------------------- | -| Syntax | `before_date({t: Timestamp})`
      `t` - ISO 8601 timestamp | -| Return Type | `Comparator` | -| Notes | `string` format can also be use | -| Example | `before_date('2023-12-07T18:50:00Z')` | - -| `after_date` | | -| ------------ | -------------------------------------------------------- | -| Syntax | `after_date({t: Timestamp})`
      `t` - ISO 8601 timestamp | -| Return Type | `Comparator` | -| Notes | `string` format can also be use | -| Example | `after_date('2023-12-07T18:50:00Z')` | +| `before_date` | | +| ------------- | ---------------------------------------------------------------------------- | +| Syntax | `before_date({t: Timestamp})`
      `t` - ISO 8601 timestamp | +| Return Type | `Comparator` | +| Notes | `string` format can also be use | +| Example | `before_date(2023-12-07T18:50:00Z)` or `before_date('2023-12-07T18:50:00Z')` | + +| `after_date` | | +| ------------ | -------------------------------------------------------------------------- | +| Syntax | `after_date({t: Timestamp})`
      `t` - ISO 8601 timestamp | +| Return Type | `Comparator` | +| Notes | `string` format can also be use | +| Example | `after_date(2023-12-07T18:50:00Z)` or `after_date('2023-12-07T18:50:00Z')` | | `within_last` | | | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | From 1c0994dcf2caed3b9c0abd78fa4e2d28f9790628 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Thu, 3 Jul 2025 11:41:11 -0500 Subject: [PATCH 250/438] Update src/engage/audiences/index.md --- src/engage/audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index acf8ea6025..14dbf5300b 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -77,7 +77,7 @@ To see which audiences reference a particular audience in their definitions, sel | less than | Value is less than specified. | | greater than | Value is greater than specified. | | less than or equal to | Value is less than or equal to specified. | -| grater than or equal to | Value is greater than or equal to specified. | +| greater than or equal to | Value is greater than or equal to specified. | | equals any of | Matches any of specified values. | | contains any of | Includes any of specified values. | | contains | Includes specified substring or value. | From e58feb143bd01454077f3245c164e2b5397db97b Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 3 Jul 2025 14:41:32 -0400 Subject: [PATCH 251/438] I finally found this link!!! --- src/connections/destinations/catalog/adobe-analytics/mobile.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/adobe-analytics/mobile.md b/src/connections/destinations/catalog/adobe-analytics/mobile.md index 911d9e5e52..3412a531f8 100644 --- a/src/connections/destinations/catalog/adobe-analytics/mobile.md +++ b/src/connections/destinations/catalog/adobe-analytics/mobile.md @@ -14,7 +14,7 @@ Before you start sending data from your mobile application to Adobe Analytics, y - First, enable the Segment-Adobe Analytics destination from in your Segment workspace. - From your Adobe Mobile Services dashboard, check and customize the settings on the "Manage App Settings" tab. -- Download these settings as the `ADBMobileConfig.json` file by clicking the **Config JSON** link at the bottom of the same tab. Follow the instructions in Adobe's documentation [here for iOS](https://marketing.adobe.com/resources/help/en_US/mobile/ios/dev_qs.html){:target="_blank”} and [here for Android](https://marketing.adobe.com/resources/help/en_US/mobile/android/dev_qs.html){:target="_blank”}. +- Download these settings as the `ADBMobileConfig.json` file by clicking the **Config JSON** link at the bottom of the same tab. Follow the instructions in Adobe's [Configuration documentation](https://developer.adobe.com/client-sdks/home/base/mobile-core/configuration/){:target="_blank”}. - Finally, follow the instructions below for each mobile environment to bundle Segment's Adobe Analytics SDK in your project. > success "" From aeafb5aff4e06f3bc9f74e29fd9eed108b86851a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Hern=C3=A1ndez?= Date: Fri, 4 Jul 2025 13:13:11 -0400 Subject: [PATCH 252/438] Fix typos for Eagle Eye (Actions) documentation --- .../catalog/eagleeye-actions/index.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/connections/destinations/catalog/eagleeye-actions/index.md b/src/connections/destinations/catalog/eagleeye-actions/index.md index f6a1347d34..d61d1271e0 100644 --- a/src/connections/destinations/catalog/eagleeye-actions/index.md +++ b/src/connections/destinations/catalog/eagleeye-actions/index.md @@ -5,12 +5,12 @@ id: 682db61f6c600fdb90251392 {% include content/plan-grid.md name="actions" %} -[Eagle Eye](https://eagleeye.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} delivers real-time loyalty and promotions solutions for enterprise brands, enabling seamless integration with leading customer data platforms and marketing activation tools. The platform connects digital and in-store experiences, accelerating personalization and campaign delivery through extensible APIs and pre-built connectors. +[Eagle Eye](https://eagleeye.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} delivers real-time loyalty and promotions solutions for enterprise brands, enabling seamless integration with leading customer data platforms and marketing activation tools. The platform connects digital and in-store experiences, accelerating personalization and campaign delivery through extensible APIs and pre-built connectors. -This integration requires both an Eagle Eye Source and Destination. The source sends events into Segment, and the destination processes those events to trigger specific behaviorial actions in Eagle Eye. +This integration requires both an Eagle Eye Source and Destination. The source sends events into Segment, and the destination processes those events to trigger specific behavioral actions in Eagle Eye. -> warning "" -> This destination must be used in tandem with a corresponding Eagle Eye Source to trigger behaviorial actions in Eagle Eye. +> warning "Required Source Integration" +> This destination must be used in tandem with a corresponding Eagle Eye Source to trigger behavioral actions in Eagle Eye. This destination is maintained by Eagle Eye. For any issues with the destination, [contact their Support team](mailto:support@eagleeye.com). @@ -18,10 +18,10 @@ This destination is maintained by Eagle Eye. For any issues with the destination To set up the Eagle Eye (Actions) destination in Segment: -1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Eagle Eye". +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"} search for "Eagle Eye". 2. Select "Eagle Eye (Actions)" and click **Add Destination**. 3. Select an existing Source to connect to Eagle Eye (Actions). -4. Set up your EE Connector for Segment by following the [CDP and MAP Connectors guide](https://developer.eagleeye.com/eagleeye-developer/docs/eagle-eye-connect-cdp-map){:target="_blank”}. You'll also need to refer to the [Segment-specific page](https://developer.eagleeye.com/docs/segment){:target="_blank”} for additional information required during setup. +4. Set up your EE Connector for Segment by following the [CDP and MAP Connectors guide](https://developer.eagleeye.com/eagleeye-developer/docs/eagle-eye-connect-cdp-map){:target="_blank"}. You'll also need to refer to the [Segment-specific page](https://developer.eagleeye.com/docs/segment){:target="_blank"} for additional information required during setup. 5. Go to the Eagle Eye (Actions) destination settings in Segment and enter the **Connector URL** and **Connector External Key** obtained in the previous step. {% include components/actions-fields.html %} @@ -30,7 +30,7 @@ To set up the Eagle Eye (Actions) destination in Segment: This guide assumes you're using the Eagle Eye Connector for Segment to send events. Any event is considered valid as long as it includes the properties "User identity value" and (optionally) "Wallet transaction reference". -To set this up, you must first configure [Social Behavioral Action Triggers](https://developer.eagleeye.com/eagleeye-developer/docs/segment#set-up-social-behavioural-action-triggers){:target="_blank”} within the Eagle Eye AIR dashboard. You can find this under **Triggers > Search** / **Create Behavioral Action**. +To set this up, you must first configure [Social Behavioral Action Triggers](https://developer.eagleeye.com/eagleeye-developer/docs/segment#set-up-social-behavioural-action-triggers){:target="_blank"} within the Eagle Eye AIR dashboard. You can find this under **Triggers > Search** / **Create Behavioral Action**. To map incoming event data and trigger behavioral actions in the Eagle Eye AIR dashboard, follow these steps: @@ -41,4 +41,4 @@ To map incoming event data and trigger behavioral actions in the Eagle Eye AIR d 5. (Optional) If your behavioral action requires a "Wallet transaction reference", you can pull it from one of the event fields. For example, an event property that may contain the transaction reference, such as `properties.order_id`. 6. Click **Next**, give the mapping a name and hit **Save** or **Save and enable**. -For more information on events sent through the Eagle Eye Connector for Segment and their properties, refer to the [Data Model](https://developer.eagleeye.com/eagleeye-developer/docs/segment#data-model){:target="_blank”} documentation. +For more information on events sent through the Eagle Eye Connector for Segment and their properties, refer to the [Data Model](https://developer.eagleeye.com/eagleeye-developer/docs/segment#data-model){:target="_blank"} documentation. From 34465bb6bfc6050b336e98b7dc1cb491eddb0948 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 4 Jul 2025 19:32:46 +0100 Subject: [PATCH 253/438] preview deploy [netlify-build] --- src/connections/destinations/catalog/eagleeye-actions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/eagleeye-actions/index.md b/src/connections/destinations/catalog/eagleeye-actions/index.md index d61d1271e0..3380bd9f37 100644 --- a/src/connections/destinations/catalog/eagleeye-actions/index.md +++ b/src/connections/destinations/catalog/eagleeye-actions/index.md @@ -37,7 +37,7 @@ To map incoming event data and trigger behavioral actions in the Eagle Eye AIR d 1. In the Eagle Eye (Actions) destination, go to the Mappings tab and click **New Mapping**. 2. From the action list, select **Trigger Behavioral Action**. 3. Define your event trigger conditions. For example, if you want to trigger an action only for customers who just joined the program, select "Event Type is Track" and "Event Name is EE Loyalty Program Joined" (or any other event that contains the information you need). -4. Under **Map fields**, ensure that at least "User identity value" and "Behavioral Action trigger reference" are mapped. The trigger reference will be the same as the one set within the Eagle Eye AIR dashboard when creating the behavioral action. +4. Under **Map fields**, ensure that at least "User identity value" and "Behavioral Action trigger reference" are mapped. The trigger reference will be the same as the one set within the Eagle Eye AIR dashboard when creating the behavioral action. 5. (Optional) If your behavioral action requires a "Wallet transaction reference", you can pull it from one of the event fields. For example, an event property that may contain the transaction reference, such as `properties.order_id`. 6. Click **Next**, give the mapping a name and hit **Save** or **Save and enable**. From d631be2d357f46df02d92b5817f7de4dd466a867 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 6 Jul 2025 21:44:13 -0500 Subject: [PATCH 254/438] add extensible webhook section [netlify-build] --- src/_data/sidenav/_auto/main.yml | 19 +------------------ src/_data/sidenav/strat.yml | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/_data/sidenav/_auto/main.yml b/src/_data/sidenav/_auto/main.yml index d966da06d2..67d7c1cec6 100644 --- a/src/_data/sidenav/_auto/main.yml +++ b/src/_data/sidenav/_auto/main.yml @@ -14,23 +14,6 @@ sections: title: Destinations Overview - path: /connections/destinations/destination-filters title: Destination Filters - - section_title: Catalog - slug: connections/destinations/catalog - section: - - path: /connections/destinations/catalog/actions-webhhook-extensible - title: Extensible Webhooks Destination - section: - slug: connections/destinations/catalog/actions-webhook-extensible - - path: /connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe - title: Amazon Ads Audience Sync integration recipe - - path: /connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe - title: Google Search Ads 360 Conversion API integration recipe - - path: /connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe - title: Microsoft Dynamics 365 (Sales Hub) integration recipe - - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe - title: Reddit Ads (Audiences) integration recipe - - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe - title: Reddit Ads Conversion API integration recipe - path: /connections/event-delivery title: How do I check if data is reaching a destination? - path: /connections/find-writekey @@ -277,4 +260,4 @@ sections: - path: /segment-app/set-up-envs title: Prod and Testing Environments in Segment - path: /segment-app/verify-email-address - title: How do I verify my email address? + title: How do I verify my email address? \ No newline at end of file diff --git a/src/_data/sidenav/strat.yml b/src/_data/sidenav/strat.yml index 51d8852447..988c03a0df 100644 --- a/src/_data/sidenav/strat.yml +++ b/src/_data/sidenav/strat.yml @@ -254,3 +254,19 @@ sections: title: Analytics-CSharp - path: /connections/sources/catalog/libraries/server/csharp/migration-guide/ title: Analytics-CSharp Migration Guide + +- slug: extensible-webhooks + section_title: Extensible Webhooks Documentation + section: + - path: /connections/destinations/catalog/actions-webhook-extensible/ + title: Extensible Webhooks Destination + - path: /connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe + title: Amazon Ads Audience Sync integration recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe + title: Google Search Ads 360 Conversion API integration recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe + title: Microsoft Dynamics 365 (Sales Hub) integration recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe + title: Reddit Ads (Audiences) integration recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe + title: Reddit Ads Conversion API integration recipe \ No newline at end of file From f3c84b5ad765c4137ce0c2a60a4551a6012862e0 Mon Sep 17 00:00:00 2001 From: pwseg Date: Sun, 6 Jul 2025 21:57:02 -0500 Subject: [PATCH 255/438] fix section [netlify-build] --- src/_data/sidenav/_auto/main.yml | 3 ++- src/_data/sidenav/strat.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/_data/sidenav/_auto/main.yml b/src/_data/sidenav/_auto/main.yml index 67d7c1cec6..e317e7dbfe 100644 --- a/src/_data/sidenav/_auto/main.yml +++ b/src/_data/sidenav/_auto/main.yml @@ -260,4 +260,5 @@ sections: - path: /segment-app/set-up-envs title: Prod and Testing Environments in Segment - path: /segment-app/verify-email-address - title: How do I verify my email address? \ No newline at end of file + title: How do I verify my email address? + \ No newline at end of file diff --git a/src/_data/sidenav/strat.yml b/src/_data/sidenav/strat.yml index 988c03a0df..d5c94677ea 100644 --- a/src/_data/sidenav/strat.yml +++ b/src/_data/sidenav/strat.yml @@ -255,7 +255,7 @@ sections: - path: /connections/sources/catalog/libraries/server/csharp/migration-guide/ title: Analytics-CSharp Migration Guide -- slug: extensible-webhooks +- slug: actions-webhook-extensible section_title: Extensible Webhooks Documentation section: - path: /connections/destinations/catalog/actions-webhook-extensible/ From 634a1b903c81a3b267b609ab3302ecd50d198bf1 Mon Sep 17 00:00:00 2001 From: pwseg Date: Mon, 7 Jul 2025 00:55:38 -0500 Subject: [PATCH 256/438] some more updates [netlify-build] --- src/_data/sidenav/main.yml | 19 +++++++++++++++++-- src/_data/sidenav/strat.yml | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 52e5900904..43d04ab97e 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -188,6 +188,21 @@ sections: menu_icon: read-more - path: /connections/destinations/destination-filters title: Destination Filters + - section_title: Extensible Webhooks + slug: connections/destinations/catalog/actions-webhook-extensible/ + section: + - path: /connections/destinations/catalog/actions-webhook-extensible/ + title: Extensible Webhooks Destination + - path: /connections/destinations/catalog/actions-webhook-extensible/amazon-ads-integration-recipe + title: Amazon Ads Audience Sync Integration Recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/google-search-ads-integration-recipe + title: Google Search Ads 360 Conversion API Integration Recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/microsoft-integration-recipe + title: Microsoft Dynamics 365 (Sales Hub) Integration Recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-audience-integration-recipe + title: Reddit Ads (Audiences) Integration Recipe + - path: /connections/destinations/catalog/actions-webhook-extensible/reddit-ads-conversion-api-integration-recipe + title: Reddit Ads Conversion API Integration Recipe - section_title: Reverse ETL slug: connections/reverse-etl section: @@ -475,7 +490,7 @@ sections: - path: '/engage/journeys' title: Journeys Overview - section_title: Journeys V1 - slug: '/engage/journeys/v1' + slug: 'engage/journeys/v1' section: - path: '/engage/journeys/v1/build-journey' title: 'Build a Journey' @@ -486,7 +501,7 @@ sections: - path: '/engage/journeys/v1/journeys-logic' title: Understand Journeys Logic - section_title: Journeys V2 - slug: '/engage/journeys/v2' + slug: 'engage/journeys/v2' section: - path: /engage/journeys/v2/ title: Overview diff --git a/src/_data/sidenav/strat.yml b/src/_data/sidenav/strat.yml index d5c94677ea..3a7b4f74d8 100644 --- a/src/_data/sidenav/strat.yml +++ b/src/_data/sidenav/strat.yml @@ -256,7 +256,7 @@ sections: title: Analytics-CSharp Migration Guide - slug: actions-webhook-extensible - section_title: Extensible Webhooks Documentation + section_title: Extensible Webhooks section: - path: /connections/destinations/catalog/actions-webhook-extensible/ title: Extensible Webhooks Destination From ef562a0c36df35ecc60b386851d1c273330f1267 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Mon, 7 Jul 2025 12:37:56 +0100 Subject: [PATCH 257/438] callout fix [netlify-build] --- .../destinations/catalog/eagleeye-actions/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/eagleeye-actions/index.md b/src/connections/destinations/catalog/eagleeye-actions/index.md index 3380bd9f37..e4adac1ed1 100644 --- a/src/connections/destinations/catalog/eagleeye-actions/index.md +++ b/src/connections/destinations/catalog/eagleeye-actions/index.md @@ -7,9 +7,9 @@ id: 682db61f6c600fdb90251392 [Eagle Eye](https://eagleeye.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} delivers real-time loyalty and promotions solutions for enterprise brands, enabling seamless integration with leading customer data platforms and marketing activation tools. The platform connects digital and in-store experiences, accelerating personalization and campaign delivery through extensible APIs and pre-built connectors. -This integration requires both an Eagle Eye Source and Destination. The source sends events into Segment, and the destination processes those events to trigger specific behavioral actions in Eagle Eye. +This integration requires both an Eagle Eye Source and Destination. The source sends events into Segment, and the destination processes those events to trigger specific behavioral actions in Eagle Eye. -> warning "Required Source Integration" +> warning "Required Source Integration" > This destination must be used in tandem with a corresponding Eagle Eye Source to trigger behavioral actions in Eagle Eye. This destination is maintained by Eagle Eye. For any issues with the destination, [contact their Support team](mailto:support@eagleeye.com). From e5821167f1a42851bcdeaa96ed6c35d709bd526c Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Mon, 7 Jul 2025 12:51:29 +0100 Subject: [PATCH 258/438] tiny tweak --- src/connections/destinations/catalog/eagleeye-actions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/eagleeye-actions/index.md b/src/connections/destinations/catalog/eagleeye-actions/index.md index e4adac1ed1..3169d1b1cb 100644 --- a/src/connections/destinations/catalog/eagleeye-actions/index.md +++ b/src/connections/destinations/catalog/eagleeye-actions/index.md @@ -12,7 +12,7 @@ This integration requires both an Eagle Eye Source and Destination. The source s > warning "Required Source Integration" > This destination must be used in tandem with a corresponding Eagle Eye Source to trigger behavioral actions in Eagle Eye. -This destination is maintained by Eagle Eye. For any issues with the destination, [contact their Support team](mailto:support@eagleeye.com). +This destination is maintained by Eagle Eye. For any issues with the destination, [contact their Support team](mailto:support@eagleeye.com){:target="_blank"}. ## Getting started From 0e5e56075293d9a72fc330f0c6a302f81233e8c9 Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Mon, 7 Jul 2025 13:47:25 +0100 Subject: [PATCH 259/438] Fix curly quotes --- .../destinations/catalog/dotdigital/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index afee218011..5cb07a6d09 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -6,18 +6,18 @@ redirect_from: "/docs/connections/destinations/catalog/actions-dotdigital/" --- {% include content/plan-grid.md name="actions" %} -[Dotdigital](https://dotdigital.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is an all-in-one customer experience and data platform (CXDP) that empowers marketing teams to exceed customer expectations with highly personalized cross-channel journeys. +[Dotdigital](https://dotdigital.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} is an all-in-one customer experience and data platform (CXDP) that empowers marketing teams to exceed customer expectations with highly personalized cross-channel journeys. This destination is maintained by Dotdigital. For any issues with the destination, [contact the Dotdigital Support team](mailto:support@dotdigital.com). ## Getting started -1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Dotdigital". +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"} search for "Dotdigital". 2. Select Dotdigital and click **Add Destination**. 3. Select an existing Source to connect to Dotdigital (Actions). 4. Log in to your [Dotdigital account](https://login.dotdigital.com/){:target="_blank"}. Expand the User menu in the bottom left and go to Settings > Access > API users. 5. Note your API region (r1, r2 or r3) for step 7. -6. Create a [new API user](https://developer.dotdigital.com/docs/setting-up-an-api-user) {:target="_blank”}. +6. Create a [new API user](https://developer.dotdigital.com/docs/setting-up-an-api-user) {:target="_blank"}. 7. In Segment, select your Dotdigital account region and paste the **API user** and **API password** in the Dotdigital destination settings. {% include components/actions-fields.html %} @@ -27,8 +27,8 @@ This destination is maintained by Dotdigital. For any issues with the destinatio ### Add Contact to List Before using the Add Context to List Action, complete the following prerequisites: -- **Lists**: [Create a contact list in Dotdigital](https://support.dotdigital.com/en/articles/8198769-create-a-contact-list) {:target="_blank”}. After you've created a list in Dotdigital, return to the Segment app and select your list from the dropdown in the Segment event mapping. -- **Data Fields**: [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields){:target="_blank”}, then return to the Segment app, open the event mapping, and map Segment properties to Dotdigital data fields. +- **Lists**: [Create a contact list in Dotdigital](https://support.dotdigital.com/en/articles/8198769-create-a-contact-list) {:target="_blank"}. After you've created a list in Dotdigital, return to the Segment app and select your list from the dropdown in the Segment event mapping. +- **Data Fields**: [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields){:target="_blank"}, then return to the Segment app, open the event mapping, and map Segment properties to Dotdigital data fields. ### Enroll Contact to Program When you use the Enroll Contact to Program action, Dotdigital creates a contact for the identifier you provide, if the contact doesn't already exist. \ No newline at end of file From 54c52eedfe211d2ab3517b8de0d03ef0f29b19f7 Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Mon, 7 Jul 2025 13:47:44 +0100 Subject: [PATCH 260/438] Add context notes for new actions --- src/connections/destinations/catalog/dotdigital/index.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index 5cb07a6d09..23b51e0ce5 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -31,4 +31,11 @@ Before using the Add Context to List Action, complete the following prerequisite - **Data Fields**: [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields){:target="_blank"}, then return to the Segment app, open the event mapping, and map Segment properties to Dotdigital data fields. ### Enroll Contact to Program -When you use the Enroll Contact to Program action, Dotdigital creates a contact for the identifier you provide, if the contact doesn't already exist. \ No newline at end of file +When you use the Enroll Contact to Program action, Dotdigital creates a contact for the identifier you provide, if the contact doesn't already exist. + +### Send SMS +- Only valid mobile numbers with an international dialling prefix (E.164 format) will be accepted. + +### Send Transactional SMS +- Only valid mobile numbers with an international dialling prefix (E.164 format) will be accepted. +- You must have SMS pay-as-you-go enabled to use this action. Learn more about [how to enable SMS pay-as-you-go](https://support.dotdigital.com/en/articles/8199154-understand-sms-pay-as-you-go-and-spend-limit) {:target="_blank"}. From 5021cf2298ad815bb190622c17cab982a9f29b4d Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Mon, 7 Jul 2025 09:17:13 -0400 Subject: [PATCH 261/438] forgot to commit --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 1770 +++++++++++++---- src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 2 +- .../destinations/catalog/actions-dub/index.md | 3 +- 6 files changed, 1439 insertions(+), 342 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 512cc1368f..d752536048 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 2025-07-03 +# destination categories last updated 2025-07-07 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 df0ac9c3af..9bc940dbeb 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 2025-07-03 +# destination data last updated 2025-07-07 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -8223,7 +8223,7 @@ items: hidden: false defaultTrigger: type = "alias" fields: - - id: dcTxBPqhkZDWqGkgympbcH + - id: si6UfNx1DegzKedXf5cXhA sortOrder: 0 fieldKey: user_id label: User ID @@ -8237,7 +8237,7 @@ items: choices: null dynamic: false allowNull: false - - id: rBbRFT1N5ds8vmko2TPGZn + - id: qhhS8B9A23pKhHvMjE3P11 sortOrder: 1 fieldKey: global_user_id label: Global User ID @@ -8251,7 +8251,7 @@ items: choices: null dynamic: false allowNull: false - - id: cfEEkhT9QcxngjwxsPnmrs + - id: 4Ht2Qw1zKhh1R3q23Hkv1H sortOrder: 2 fieldKey: min_id_length label: Minimum ID Length @@ -8276,7 +8276,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: 5Fm4zfEwh35FEgJrCzsUVG + - id: hWoSegsfw4WCdQbU7psxJm sortOrder: 0 fieldKey: user_id label: User ID @@ -8294,7 +8294,7 @@ items: choices: null dynamic: false allowNull: true - - id: 5VKM5uMrEBm3DCbjwx9G8t + - id: i9AZBZ6LwoDPxf8mjG3qvA sortOrder: 1 fieldKey: device_id label: Device ID @@ -8316,7 +8316,7 @@ items: choices: null dynamic: false allowNull: false - - id: q8RBz4LArPTp1LdPvctjc2 + - id: 5VMQHMvh4JBoxVq53npoeq sortOrder: 2 fieldKey: user_properties label: User Properties @@ -8334,7 +8334,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4fLeGB9kd8vEueyUgdq2NX + - id: 2FraFycKKHkdSpUPyDwr8e sortOrder: 3 fieldKey: groups label: Groups @@ -8350,7 +8350,7 @@ items: choices: null dynamic: false allowNull: false - - id: 84HnF51Caev6VCVvG3RTas + - id: vGDQskv8iRsfVauq3oJnVm sortOrder: 4 fieldKey: app_version label: App Version @@ -8364,7 +8364,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8d76qksXHCQQ6tHxiFuRLG + - id: 4dFb9nwPNcPw6zDNeRJ9Kb sortOrder: 5 fieldKey: platform label: Platform @@ -8378,7 +8378,7 @@ items: choices: null dynamic: false allowNull: false - - id: wFcAbUrmnw9SSg8rosbFfA + - id: cNUQ38pGoS9APLqGcymQBF sortOrder: 6 fieldKey: os_name label: OS Name @@ -8392,7 +8392,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8PsDuswjLvZU4L5oaWuPni + - id: r4HkYTB66aRah4DhFYvjDD sortOrder: 7 fieldKey: os_version label: OS Version @@ -8408,7 +8408,7 @@ items: choices: null dynamic: false allowNull: false - - id: yDeEi4uVCqxZxM7ZJ9WLU + - id: g748NcjQveve5BxJ7k6gk sortOrder: 8 fieldKey: device_brand label: Device Brand @@ -8422,7 +8422,7 @@ items: choices: null dynamic: false allowNull: false - - id: krZ7mbTdxTugV4Mzk2b2iG + - id: 2rqowrxyLnkMWkXaWJvFAa sortOrder: 9 fieldKey: device_manufacturer label: Device Manufacturer @@ -8436,7 +8436,7 @@ items: choices: null dynamic: false allowNull: false - - id: i4LAEg1WhYb8rPXQwT3gvd + - id: 7Fb3ZS21Vd4zaWRqqDLX63 sortOrder: 10 fieldKey: device_model label: Device Model @@ -8450,7 +8450,7 @@ items: choices: null dynamic: false allowNull: false - - id: jHTW5F85e9guvFF2Guw1fk + - id: kHVmuLaFYZ8PsyL2PkR27R sortOrder: 11 fieldKey: carrier label: Carrier @@ -8464,7 +8464,7 @@ items: choices: null dynamic: false allowNull: false - - id: bzs1ncn76Qwwe68nryDVev + - id: jYVGSTnQfqG1se8EKDCmpP sortOrder: 12 fieldKey: country label: Country @@ -8478,7 +8478,7 @@ items: choices: null dynamic: false allowNull: false - - id: pGn7uxwhjnJ88pAN7b3Zku + - id: 8ucxxrp1tiLEUUgsAtaLCb sortOrder: 13 fieldKey: region label: Region @@ -8492,7 +8492,7 @@ items: choices: null dynamic: false allowNull: false - - id: obpE9TsEDYEuZziQomzxms + - id: Ga53sumSfPCt4xfZt7SaK sortOrder: 14 fieldKey: city label: City @@ -8506,7 +8506,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6dx7tk1zxpX6WD7GerrPn6 + - id: qSgr492arRBVaouYuyTvhJ sortOrder: 15 fieldKey: dma label: Designated Market Area @@ -8518,7 +8518,7 @@ items: choices: null dynamic: false allowNull: false - - id: xwyUBC7etwne436zYJsv86 + - id: kZ4kXZEvNpL7LEF8JScRBs sortOrder: 16 fieldKey: language label: Language @@ -8532,7 +8532,7 @@ items: choices: null dynamic: false allowNull: false - - id: hPsq8exe6kuyEuSS3MCBMD + - id: gfwD7nbbTNMg2wJyuD1vcj sortOrder: 17 fieldKey: paying label: Is Paying @@ -8544,7 +8544,7 @@ items: choices: null dynamic: false allowNull: false - - id: knymjvKn4GKMDYbfKZ8ruH + - id: e9SCN4deSdQEwcN9x4NmR6 sortOrder: 18 fieldKey: start_version label: Initial Version @@ -8556,7 +8556,7 @@ items: choices: null dynamic: false allowNull: false - - id: oSEyoYpyX3kQY2VXS6Vj5m + - id: 2MQwhv3mUeUvaZfN12YYui sortOrder: 19 fieldKey: insert_id label: Insert ID @@ -8572,7 +8572,7 @@ items: choices: null dynamic: false allowNull: false - - id: rHTnT15rNLQyKAQMw16kZC + - id: 2qAFeYFHN8YJC1HpUpcg2p sortOrder: 20 fieldKey: userAgent label: User Agent @@ -8586,7 +8586,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4LLsHzLjViJU5JJbQr4qDC + - id: 8wfddyDktxM1FubKQ3zvt sortOrder: 21 fieldKey: userAgentParsing label: User Agent Parsing @@ -8602,7 +8602,7 @@ items: choices: null dynamic: false allowNull: false - - id: oVDJ9JA35hf6zGE7ezbuUS + - id: dqimeBsk8wUBDvBuiogukh sortOrder: 22 fieldKey: includeRawUserAgent label: Include Raw User Agent @@ -8617,7 +8617,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4x9jNuFNSQcj56iWWoSFYE + - id: tZShVexGv9Bvz2mXKPnu16 sortOrder: 23 fieldKey: utm_properties label: UTM Properties @@ -8640,7 +8640,7 @@ items: choices: null dynamic: false allowNull: false - - id: imnTpkzdQn2URDnfTSCKVM + - id: 6w4dUCX6EkAgun4Adn8FY sortOrder: 24 fieldKey: referrer label: Referrer @@ -8656,7 +8656,7 @@ items: choices: null dynamic: false allowNull: false - - id: rCEA85k8HBdH5j2X74JMAq + - id: 5fAkwZvVwsKKVUFH2iyofd sortOrder: 25 fieldKey: min_id_length label: Minimum ID Length @@ -8671,7 +8671,7 @@ items: choices: null dynamic: false allowNull: true - - id: mMTtRqguwfbDuft1xYatWD + - id: ew5NRD1amtc7MMj5JLSkCy sortOrder: 26 fieldKey: library label: Library @@ -8685,7 +8685,7 @@ items: choices: null dynamic: false allowNull: false - - id: wJ5e81pc1zbHmzn1TByfjJ + - id: tvUD4qdjyS1aRRrcuNj77S sortOrder: 27 fieldKey: userAgentData label: User Agent Data @@ -8710,7 +8710,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: wHLV7BMVi3ej5YhhP5Hp9E + - id: jLLNnoNiBBwb1jnBKdB2gC sortOrder: 0 fieldKey: user_id label: User ID @@ -8728,7 +8728,7 @@ items: choices: null dynamic: false allowNull: true - - id: sKWihW4p75GRpYaoUgQWR + - id: hbu8rnLFqBv9357dnWvj2e sortOrder: 1 fieldKey: device_id label: Device ID @@ -8751,7 +8751,7 @@ items: choices: null dynamic: false allowNull: false - - id: rWyiKjqdueBtrvmykXeStC + - id: hLnkEXr58EEiwXMXRFyYXA sortOrder: 2 fieldKey: event_type label: Event Type @@ -8765,7 +8765,7 @@ items: choices: null dynamic: false allowNull: false - - id: hdtKY4sB3oKtoDrBFMoMh6 + - id: 87YZwhbXMgfAfdXydG7B3y sortOrder: 3 fieldKey: session_id label: Session ID @@ -8782,7 +8782,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4mmrZzsc1YauoerZfHtR8P + - id: tS1ey1f6EL2n2xPuvx8cct sortOrder: 4 fieldKey: time label: Timestamp @@ -8798,7 +8798,7 @@ items: choices: null dynamic: false allowNull: false - - id: rhNJC8cQUSmoMNeWiLXWs1 + - id: wTveCMV2SNXLA2xon6Zk6E sortOrder: 5 fieldKey: event_properties label: Event Properties @@ -8817,7 +8817,7 @@ items: choices: null dynamic: false allowNull: false - - id: njr1p5ZFfNRbfqLYz8MQZ + - id: fQqX8RAC9Hbw9dGmZHBebX sortOrder: 6 fieldKey: user_properties label: User Properties @@ -8835,7 +8835,7 @@ items: choices: null dynamic: false allowNull: false - - id: swWNKyNteUbKWXTZMCdU3j + - id: hPdU6A3Z6MpRTi6hSJNAZ6 sortOrder: 7 fieldKey: groups label: Groups @@ -8850,7 +8850,7 @@ items: choices: null dynamic: false allowNull: false - - id: dtS8SUZw8xqHEXoGERVTU8 + - id: fsjRH3uNFnM5nVDeX2osWA sortOrder: 8 fieldKey: app_version label: App Version @@ -8864,7 +8864,7 @@ items: choices: null dynamic: false allowNull: false - - id: cgLeqQPJzdz5eci1iDVLS + - id: rYXS7s6BbTta9Us9s6it36 sortOrder: 9 fieldKey: platform label: Platform @@ -8881,7 +8881,7 @@ items: choices: null dynamic: false allowNull: false - - id: x6j5NBrZLA3oUet5KhmmVo + - id: 4YWSy55UrdjFt5eeUyX436 sortOrder: 10 fieldKey: os_name label: OS Name @@ -8897,7 +8897,7 @@ items: choices: null dynamic: false allowNull: false - - id: kazdg5JeAntYS5GHaeUh1u + - id: qzmSzJBNd1eE9toJAJytLT sortOrder: 11 fieldKey: os_version label: OS Version @@ -8911,7 +8911,7 @@ items: choices: null dynamic: false allowNull: false - - id: w3LQW5eyPmGDzf3caWyhi1 + - id: b1K1fLdvmawrwDC5U9Drcp sortOrder: 12 fieldKey: device_brand label: Device Brand @@ -8925,7 +8925,7 @@ items: choices: null dynamic: false allowNull: false - - id: kg5gjdiREwWCRE97xNgJ8d + - id: pUR8do7NoFNpLHhHiwEASQ sortOrder: 13 fieldKey: device_manufacturer label: Device Manufacturer @@ -8939,7 +8939,7 @@ items: choices: null dynamic: false allowNull: false - - id: dv2nmjERk4QhTWAPqtkqif + - id: qUpeJpAFi8J3K6AtGUYod sortOrder: 14 fieldKey: device_model label: Device Model @@ -8953,7 +8953,7 @@ items: choices: null dynamic: false allowNull: false - - id: ftYtHdnG7g83oWgVdw47HF + - id: 6R8ADXoGhzwNtjekpdAQA2 sortOrder: 15 fieldKey: carrier label: Carrier @@ -8967,7 +8967,7 @@ items: choices: null dynamic: false allowNull: false - - id: inVKPuWToXZPs3pAskFEoG + - id: mawvHdyqU5pcm3HiwXiSoG sortOrder: 16 fieldKey: country label: Country @@ -8981,7 +8981,7 @@ items: choices: null dynamic: false allowNull: false - - id: g2NfRC92B2bLQytgmYYgCU + - id: wgzW3BVLATp5PseNvjiBCS sortOrder: 17 fieldKey: region label: Region @@ -8995,7 +8995,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5ho7buQscagZYJeHiTiz53 + - id: pNv4p65i95s7CbP1Tf7sCC sortOrder: 18 fieldKey: city label: City @@ -9009,7 +9009,7 @@ items: choices: null dynamic: false allowNull: false - - id: kAAZv6Zn4iSEhsxg2vNxC1 + - id: rND6gE3LDijLuFADB9AoHk sortOrder: 19 fieldKey: dma label: Designated Market Area @@ -9021,7 +9021,7 @@ items: choices: null dynamic: false allowNull: false - - id: wVFCj7QVHh26FqZzPoWgAW + - id: p2DbmiY6MXcLk48pT4R6Fe sortOrder: 20 fieldKey: language label: Language @@ -9035,7 +9035,7 @@ items: choices: null dynamic: false allowNull: false - - id: cXfvKid1EMSptyFUmN92FB + - id: d8nrfHohuYLoSArE5ntVJS sortOrder: 21 fieldKey: price label: Price @@ -9052,7 +9052,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9iwTzf2ixUm3Q2Pb9PM5rd + - id: sf8cCeipenKUUj7hXa3NKt sortOrder: 22 fieldKey: quantity label: Quantity @@ -9066,7 +9066,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5PmZ5A4QGCoxYM1i7if8d6 + - id: oiHo1cv8r7mznsUmzoc2Vc sortOrder: 23 fieldKey: revenue label: Revenue @@ -9084,7 +9084,7 @@ items: choices: null dynamic: false allowNull: false - - id: 66FajzZjrfWAGmzoJ2UR9B + - id: ffE9G1UPY4G8pERhgraHgV sortOrder: 24 fieldKey: productId label: Product ID @@ -9100,7 +9100,7 @@ items: choices: null dynamic: false allowNull: false - - id: sSbR3woTqthjDGKmkhzz6y + - id: jSCUtubuwpXefS1Ls8tCXb sortOrder: 25 fieldKey: revenueType label: Revenue Type @@ -9116,7 +9116,7 @@ items: choices: null dynamic: false allowNull: false - - id: ixUvPa6isV4QPoQZ1ZN7gg + - id: aUF4vKaU6FAEM5n2H2vRt7 sortOrder: 26 fieldKey: location_lat label: Latitude @@ -9130,7 +9130,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7FcRgvAYvykQ2eLep4ikan + - id: wxgReS4UpGEVYKoYn5njk4 sortOrder: 27 fieldKey: location_lng label: Longtitude @@ -9144,7 +9144,7 @@ items: choices: null dynamic: false allowNull: false - - id: c4CCiAfqUiwrtAPtP8EmFB + - id: osBVEwMRDmZSixmfw9xZpo sortOrder: 28 fieldKey: ip label: IP Address @@ -9164,7 +9164,7 @@ items: choices: null dynamic: false allowNull: false - - id: radeoNUSJWrYVyC7cKFCCF + - id: f28Px2K3tEMsg8yVhwMjdg sortOrder: 29 fieldKey: idfa label: Identifier For Advertiser (IDFA) @@ -9184,7 +9184,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3F9BjEvHQbadNhMVctN1sz + - id: dyGDFJdFhTuHuMRnP6csQ6 sortOrder: 30 fieldKey: idfv label: Identifier For Vendor (IDFV) @@ -9198,7 +9198,7 @@ items: choices: null dynamic: false allowNull: false - - id: ftpZPMsHWU2GJvxPToTCyT + - id: s7boAX6ayC7RppzraZGpM8 sortOrder: 31 fieldKey: adid label: Google Play Services Advertising ID @@ -9218,7 +9218,7 @@ items: choices: null dynamic: false allowNull: false - - id: hLDYvJYYgVxMHNf7Rzj4rK + - id: g7ay4cgbDWsKSTMZdf7Zcf sortOrder: 32 fieldKey: android_id label: Android ID @@ -9230,7 +9230,7 @@ items: choices: null dynamic: false allowNull: false - - id: ozwvtWfEofkCSvvSn7m6T + - id: pxn9XzQQmW4moJvgxKgN2h sortOrder: 33 fieldKey: event_id label: Event ID @@ -9246,7 +9246,7 @@ items: choices: null dynamic: false allowNull: false - - id: 46Ft3hE9eeMyy8LiDmewkH + - id: d1fiGeRj3e3RFk2fJ9jjY8 sortOrder: 34 fieldKey: insert_id label: Insert ID @@ -9262,7 +9262,7 @@ items: choices: null dynamic: false allowNull: false - - id: g35M4fiX5Rf7i8GLfZpn5f + - id: wcSXjysj5rmfB3EKAqr7Zg sortOrder: 35 fieldKey: library label: Library @@ -9276,7 +9276,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7g4Xokei1U1r2m2wHxXqDF + - id: 9BFZtGrd1ijtNpFaUYmpni sortOrder: 36 fieldKey: products label: Products @@ -9301,7 +9301,7 @@ items: choices: null dynamic: false allowNull: false - - id: sbMw9ecTd6wYiyV4tj4YfL + - id: kgCo4dMAmAsumYcVfhhczW sortOrder: 37 fieldKey: use_batch_endpoint label: Use Batch Endpoint @@ -9319,7 +9319,7 @@ items: choices: null dynamic: false allowNull: false - - id: sJZFWKaiYqAGs3b9mC2JMb + - id: vKsqd3HCiHmYPmQaTfiK1h sortOrder: 38 fieldKey: userAgent label: User Agent @@ -9333,7 +9333,7 @@ items: choices: null dynamic: false allowNull: false - - id: ic4wdjTyFSeus4kKBzKNBs + - id: xtobgc4bZeXthQo1VJYxQ5 sortOrder: 39 fieldKey: userAgentParsing label: User Agent Parsing @@ -9349,7 +9349,7 @@ items: choices: null dynamic: false allowNull: false - - id: m5t3kosx5LJrhq2aDCiGap + - id: tijZW4piDcTZ4LEY6nHKZR sortOrder: 40 fieldKey: includeRawUserAgent label: Include Raw User Agent @@ -9364,7 +9364,7 @@ items: choices: null dynamic: false allowNull: false - - id: 77X5a3n1fbHp4G7YqnWoYH + - id: r6MeD2KBkaH1gP8cH8cpz4 sortOrder: 41 fieldKey: utm_properties label: UTM Properties @@ -9387,7 +9387,7 @@ items: choices: null dynamic: false allowNull: false - - id: kjrexi76xiDcsddN3tuiiG + - id: pSb9LCDUV6vqiKFbvH7whg sortOrder: 42 fieldKey: referrer label: Referrer @@ -9403,7 +9403,7 @@ items: choices: null dynamic: false allowNull: false - - id: 225px38ZWZAkYgPdxq3vVf + - id: aTzppR9GC9vGxMmsDY6jPp sortOrder: 43 fieldKey: min_id_length label: Minimum ID Length @@ -9418,7 +9418,7 @@ items: choices: null dynamic: false allowNull: true - - id: b5E6GuRy6HV7ECbnZFEiaw + - id: bWs7yuH4XP6ChjxRHYC7DU sortOrder: 44 fieldKey: userAgentData label: User Agent Data @@ -9445,7 +9445,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: cw3RjDoqJQjdPgdWrWaXCv + - id: svKdvm71SnmT1sbikqi95M sortOrder: 0 fieldKey: user_id label: User ID @@ -9463,7 +9463,7 @@ items: choices: null dynamic: false allowNull: true - - id: ggLkDSjSY9G2p1rVfR9m2P + - id: 8vweFdbSV1BQBAui4UZNMF sortOrder: 1 fieldKey: device_id label: Device ID @@ -9485,7 +9485,7 @@ items: choices: null dynamic: false allowNull: false - - id: fkipge3oiHzjf5wQ5Emo2s + - id: cDuiRCinAfiNFmpt4ygxf sortOrder: 2 fieldKey: insert_id label: Insert ID @@ -9501,7 +9501,7 @@ items: choices: null dynamic: false allowNull: false - - id: w38JcwXV4gQMx12WDVN5HU + - id: 66rNB7khJTMCDHnsFPs4BB sortOrder: 3 fieldKey: time label: Timestamp @@ -9517,7 +9517,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7KCNJgKcDTgKfPfZsd88bb + - id: 7RFbJmbYaGH8PYZJarCpGj sortOrder: 4 fieldKey: group_properties label: Group Properties @@ -9531,7 +9531,7 @@ items: choices: null dynamic: false allowNull: false - - id: bELsu7rkUaLS83F2o91u5M + - id: gkMZHaWtQWccazhC8AoaHp sortOrder: 5 fieldKey: group_type label: Group Type @@ -9543,7 +9543,7 @@ items: choices: null dynamic: false allowNull: false - - id: av69AnWUJHB6uBPWqN2Z6E + - id: 7Qn2urJVx8WeVMdJ3JWwWE sortOrder: 6 fieldKey: group_value label: Group Value @@ -9555,7 +9555,7 @@ items: choices: null dynamic: false allowNull: false - - id: uhfsgTpB1BdyvXpdsEvQw + - id: h3jB7jXhaNKKmnai1GKKfH sortOrder: 7 fieldKey: min_id_length label: Minimum ID Length @@ -9582,7 +9582,7 @@ items: type = "track" or type = "identify" or type = "group" or type = "page" or type = "alias" fields: - - id: crsAcieZw3yHeo8w3UhriC + - id: hKuMNm7wJULp2Vb1pVRCD4 sortOrder: 0 fieldKey: sessionLength label: Session Length @@ -9602,7 +9602,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: t1nG628w5erV7Dxxc6v4a + - id: dLHdgMENJUAjXo9V652Aef sortOrder: 0 fieldKey: trackRevenuePerProduct label: Track Revenue Per Product @@ -9617,7 +9617,7 @@ items: choices: null dynamic: false allowNull: false - - id: tHUMrvU5BYrjFPgULcH8sn + - id: 2nJ4uqaMEgP74UhDL8cT4i sortOrder: 1 fieldKey: user_id label: User ID @@ -9635,7 +9635,7 @@ items: choices: null dynamic: false allowNull: true - - id: ecV1FfHkTWchXegcsU3x8X + - id: rFXmZy8YQqmuNYQ7YUUrrG sortOrder: 2 fieldKey: device_id label: Device ID @@ -9658,7 +9658,7 @@ items: choices: null dynamic: false allowNull: false - - id: c55qmccqsK39GPD6GGFfnb + - id: eFszaRNr1CX8jEtd5M1XdK sortOrder: 3 fieldKey: event_type label: Event Type @@ -9672,7 +9672,7 @@ items: choices: null dynamic: false allowNull: false - - id: rwGqv8rkKhKux6czBMJWVM + - id: 63vVovgJaFUXP8NBGp5MVm sortOrder: 4 fieldKey: session_id label: Session ID @@ -9689,7 +9689,7 @@ items: choices: null dynamic: false allowNull: false - - id: uDnfUsv6QdocpfpT25p9TR + - id: dce3882EGNDnWu2Fg7XXZE sortOrder: 5 fieldKey: time label: Timestamp @@ -9705,7 +9705,7 @@ items: choices: null dynamic: false allowNull: false - - id: kTzEy4N1DAuQaRvYnp5uiC + - id: jLp9nf3KKdiR9NVtoKs3zw sortOrder: 6 fieldKey: event_properties label: Event Properties @@ -9724,7 +9724,7 @@ items: choices: null dynamic: false allowNull: false - - id: pcgC8puTHYJYZiCwTecrfS + - id: rY6KnXuQXKvrNZDvmih6K3 sortOrder: 7 fieldKey: user_properties label: User Properties @@ -9742,7 +9742,7 @@ items: choices: null dynamic: false allowNull: false - - id: n4vEitMmUnjFwQ78Q2ESwR + - id: obeTyNVfjmpTJsbC1EgK6e sortOrder: 8 fieldKey: groups label: Groups @@ -9757,7 +9757,7 @@ items: choices: null dynamic: false allowNull: false - - id: f5ma5MDwr5aPbpSaX1PVbc + - id: sxH7cd199vwWowGNzcvTMZ sortOrder: 9 fieldKey: app_version label: App Version @@ -9771,7 +9771,7 @@ items: choices: null dynamic: false allowNull: false - - id: fXFtapmPYuj19WrCivoWCn + - id: kchtNy4XspQenfzywrUL4M sortOrder: 10 fieldKey: platform label: Platform @@ -9788,7 +9788,7 @@ items: choices: null dynamic: false allowNull: false - - id: dZWrfXB7Z8LfL2cNAkzc6a + - id: tE6s3yUuSGnqEmCNmju8SY sortOrder: 11 fieldKey: os_name label: OS Name @@ -9804,7 +9804,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7xxEzM6m63hmCaypojhvzW + - id: 9zqu6XMAg5gYBdseUaMLAi sortOrder: 12 fieldKey: os_version label: OS Version @@ -9818,7 +9818,7 @@ items: choices: null dynamic: false allowNull: false - - id: cFdhh5aA7dyAUKTJV8CVtL + - id: 7gM3PCJ7LZU5jsdtXzpnXr sortOrder: 13 fieldKey: device_brand label: Device Brand @@ -9832,7 +9832,7 @@ items: choices: null dynamic: false allowNull: false - - id: uaw9LBFFeFTpjcscjkocmy + - id: pynLTsWTeyVz7CY6ebbywE sortOrder: 14 fieldKey: device_manufacturer label: Device Manufacturer @@ -9846,7 +9846,7 @@ items: choices: null dynamic: false allowNull: false - - id: m3xvaug3ZosaEzUSDmhJLV + - id: r4D5YhrBbfrDm8pXeJxW5r sortOrder: 15 fieldKey: device_model label: Device Model @@ -9860,7 +9860,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9fZb4WhHCs4QYoPaz5uYfo + - id: cKKRZYdejMryA2kSXjd6TF sortOrder: 16 fieldKey: carrier label: Carrier @@ -9874,7 +9874,7 @@ items: choices: null dynamic: false allowNull: false - - id: k6gnbasx6WMs7PruXDnHd7 + - id: 7fCSgSFSWrAxrjZDgjYVUB sortOrder: 17 fieldKey: country label: Country @@ -9888,7 +9888,7 @@ items: choices: null dynamic: false allowNull: false - - id: gANNGrU8VbfEm75gi3cfnk + - id: kqGA4FZztS1LwWg6FBwYpn sortOrder: 18 fieldKey: region label: Region @@ -9902,7 +9902,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4p2WNSwmsjGMgLrkhngdhS + - id: YK8fkKUDMsX6bQ9ifMpLW sortOrder: 19 fieldKey: city label: City @@ -9916,7 +9916,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6qwUmrhAV94Q2TMzyDmYW9 + - id: uqiGakJyxPDkkhtyDu9S1Y sortOrder: 20 fieldKey: dma label: Designated Market Area @@ -9928,7 +9928,7 @@ items: choices: null dynamic: false allowNull: false - - id: o72ZvJwqKVfyYaQMEPBguu + - id: qWHiPYmcCVfSyzgUyFMysp sortOrder: 21 fieldKey: language label: Language @@ -9942,7 +9942,7 @@ items: choices: null dynamic: false allowNull: false - - id: huAsLeJddviRPhSz6ms4TC + - id: uTcZ3hrBxfxEa5gWLWTREA sortOrder: 22 fieldKey: price label: Price @@ -9959,7 +9959,7 @@ items: choices: null dynamic: false allowNull: false - - id: bvGayedx4JP2eTBtFYnTE5 + - id: gpt15G61sRCbBhnW9SQSW9 sortOrder: 23 fieldKey: quantity label: Quantity @@ -9973,7 +9973,7 @@ items: choices: null dynamic: false allowNull: false - - id: oVc1GuipE2RAcTBsKCsM4P + - id: phYfzaGVE5XrLAwUcKwbX4 sortOrder: 24 fieldKey: revenue label: Revenue @@ -9991,7 +9991,7 @@ items: choices: null dynamic: false allowNull: false - - id: wM7khBLnfHYxmZa844i8Qn + - id: uZs4sjS9cjoaSHDcVttFeT sortOrder: 25 fieldKey: productId label: Product ID @@ -10007,7 +10007,7 @@ items: choices: null dynamic: false allowNull: false - - id: djPVPqnD9BG9CKtjKowXZc + - id: iWZpmWs5QRt7KdHFEc6Lh sortOrder: 26 fieldKey: revenueType label: Revenue Type @@ -10023,7 +10023,7 @@ items: choices: null dynamic: false allowNull: false - - id: akPwB82i3NusDTtbbVi26d + - id: oF374xjXiWrs693tuqvwng sortOrder: 27 fieldKey: location_lat label: Latitude @@ -10037,7 +10037,7 @@ items: choices: null dynamic: false allowNull: false - - id: c6Nxu4a9MqghURT1uzhqq5 + - id: 52RYpZRezE3PtPJFfDdgPj sortOrder: 28 fieldKey: location_lng label: Longtitude @@ -10051,7 +10051,7 @@ items: choices: null dynamic: false allowNull: false - - id: i5wNUkyEJyMaq1LRsXAeiV + - id: 3iideQJx4cx8cLWWTJbTrP sortOrder: 29 fieldKey: ip label: IP Address @@ -10071,7 +10071,7 @@ items: choices: null dynamic: false allowNull: false - - id: w5CEd8ujKu9Jmj5JKVo5qF + - id: 9dJvX4yxKM6orGXJqWRPyy sortOrder: 30 fieldKey: idfa label: Identifier For Advertiser (IDFA) @@ -10091,7 +10091,7 @@ items: choices: null dynamic: false allowNull: false - - id: e8ZbxECf9VsMDPejxfCnFi + - id: mdBDFXJcq3zfNT2p3Utn3D sortOrder: 31 fieldKey: idfv label: Identifier For Vendor (IDFV) @@ -10105,7 +10105,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9pJeBJskxvwY582kDby1nY + - id: m2hP4ZRhCk7Fpvo8ZEguWb sortOrder: 32 fieldKey: adid label: Google Play Services Advertising ID @@ -10125,7 +10125,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3zbFH3YHmh4ZM6MwvNyPrQ + - id: 4DCUeS5apyCd68Bmhe3vMK sortOrder: 33 fieldKey: android_id label: Android ID @@ -10137,7 +10137,7 @@ items: choices: null dynamic: false allowNull: false - - id: hEcmwgwrL7qQT5Y9TdeicF + - id: i413de89GWwSwfGtHsqtzq sortOrder: 34 fieldKey: event_id label: Event ID @@ -10153,7 +10153,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7J6nk7jaEfzvba4jF7MhAM + - id: oKkA7iXEwMugscjsjFuhuM sortOrder: 35 fieldKey: insert_id label: Insert ID @@ -10169,7 +10169,7 @@ items: choices: null dynamic: false allowNull: false - - id: ij6BdrsBfCH89q1Zj1JF2N + - id: qXmULnJMTXEjvtHLHE1VN9 sortOrder: 36 fieldKey: library label: Library @@ -10183,7 +10183,7 @@ items: choices: null dynamic: false allowNull: false - - id: pzi7tbQGErJv6Rf1S7jzYa + - id: cqPTBacAoF6xwi8WDbS2gy sortOrder: 37 fieldKey: products label: Products @@ -10208,7 +10208,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7J3BpWmFargaGkkY7u72wy + - id: 4fG3zXnS7VSQtcU44XnoGz sortOrder: 38 fieldKey: use_batch_endpoint label: Use Batch Endpoint @@ -10226,7 +10226,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3Y5kLkmjPhqbheka4FqbK3 + - id: 5Q1Buh4DB9JgfTokXoNTUo sortOrder: 39 fieldKey: userAgent label: User Agent @@ -10240,7 +10240,7 @@ items: choices: null dynamic: false allowNull: false - - id: sU8ZFDYznej5KA1YEabNHg + - id: aZs5h2ye4aQvYS9RgBwDFr sortOrder: 40 fieldKey: userAgentParsing label: User Agent Parsing @@ -10256,7 +10256,7 @@ items: choices: null dynamic: false allowNull: false - - id: tGbKTNnV9d4PnkqwZdiZ3D + - id: nhxSy9dE1DK26MrcbiU1XC sortOrder: 41 fieldKey: includeRawUserAgent label: Include Raw User Agent @@ -10271,7 +10271,7 @@ items: choices: null dynamic: false allowNull: false - - id: fRcijJQmYRSVFN5gLyjtm9 + - id: eUTUXywZd1BzEm5ece8Hcd sortOrder: 42 fieldKey: utm_properties label: UTM Properties @@ -10294,7 +10294,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6yCD6A2XHDC7P61i72GLjD + - id: sUmAiMLzZ5s3Ng9RrWRPAt sortOrder: 43 fieldKey: referrer label: Referrer @@ -10310,7 +10310,7 @@ items: choices: null dynamic: false allowNull: false - - id: oNsqFmzgBvcerpCUmQB5Tv + - id: 2YyMtuQys19mExp97Uhwc5 sortOrder: 44 fieldKey: min_id_length label: Minimum ID Length @@ -10325,7 +10325,7 @@ items: choices: null dynamic: false allowNull: true - - id: fHBbGbiG5SyyrCZu2BxQ9w + - id: 8KuN5z1yWdYzqd5YHEEmnS sortOrder: 45 fieldKey: userAgentData label: User Agent Data @@ -10350,7 +10350,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: kBByRF8KHEMQ9neq8Cadso + - id: uGLQrseFHGWT7P8wyvgFeU sortOrder: 0 fieldKey: user_id label: User ID @@ -10368,7 +10368,7 @@ items: choices: null dynamic: false allowNull: true - - id: xao6N6ytixcm2JfVj2m3LJ + - id: fZ1BDorn3sQ2dB7JyFLFK9 sortOrder: 1 fieldKey: device_id label: Device ID @@ -10391,7 +10391,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7nyHbqjVcanz7a1yQ7CTm + - id: xhpmND6qT65bmxqXWWTpn3 sortOrder: 2 fieldKey: event_type label: Event Type @@ -10405,7 +10405,7 @@ items: choices: null dynamic: false allowNull: false - - id: mWGpmV8oZ5zR1XNUYc9mz5 + - id: vSoTz69Hu8e9cDWr6UiBBJ sortOrder: 3 fieldKey: session_id label: Session ID @@ -10422,7 +10422,7 @@ items: choices: null dynamic: false allowNull: false - - id: rg5x21G6ddudqsqQakERsJ + - id: rsY6yzvyH47JPWkopwDTXc sortOrder: 4 fieldKey: time label: Timestamp @@ -10438,7 +10438,7 @@ items: choices: null dynamic: false allowNull: false - - id: iZQvXKyJyd5BcQxL8yWquY + - id: szTxs5J1EpiqgrNVihrqNa sortOrder: 5 fieldKey: event_properties label: Event Properties @@ -10457,7 +10457,7 @@ items: choices: null dynamic: false allowNull: false - - id: 65i9T2JJr1WRPq9YHvspFr + - id: oQRbA6QB8bYUMxXe7ZEZM8 sortOrder: 6 fieldKey: user_properties label: User Properties @@ -10475,7 +10475,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5ot5iCa6xh9hdNghdUQGHU + - id: iuFtM8zbiF7LpnEHyHE5UW sortOrder: 7 fieldKey: groups label: Groups @@ -10490,7 +10490,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7a9a3fwtuM7M9f6mNLxnxL + - id: tkFWHuwiDALjrur2rTdcwQ sortOrder: 8 fieldKey: app_version label: App Version @@ -10504,7 +10504,7 @@ items: choices: null dynamic: false allowNull: false - - id: bCXTV5ATYE4fXF9XadD813 + - id: gwt8CzGpAZJSqHCHszrt21 sortOrder: 9 fieldKey: platform label: Platform @@ -10521,7 +10521,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3bTdKYgogXa8CwEhVumtRJ + - id: QpDeaKn8KGMfAwGJJaT65 sortOrder: 10 fieldKey: os_name label: OS Name @@ -10537,7 +10537,7 @@ items: choices: null dynamic: false allowNull: false - - id: t6KNiiRQHnsVVcB6LVrF4i + - id: 5ytgQSWRMugm1Ji6VZLdRu sortOrder: 11 fieldKey: os_version label: OS Version @@ -10551,7 +10551,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6z2vb9M8DWgQyvaTy7arTX + - id: rEpcTq5W1FpAnKm5iZpgfd sortOrder: 12 fieldKey: device_brand label: Device Brand @@ -10565,7 +10565,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5zSb5us7e7oUyTXoqdKgSx + - id: gqUPmLq7PW1tJwekxro14Z sortOrder: 13 fieldKey: device_manufacturer label: Device Manufacturer @@ -10579,7 +10579,7 @@ items: choices: null dynamic: false allowNull: false - - id: aLoq9SfxCrs4F9B4DQpGVF + - id: pRifRuXjQzmWaEUUYhRTuL sortOrder: 14 fieldKey: device_model label: Device Model @@ -10593,7 +10593,7 @@ items: choices: null dynamic: false allowNull: false - - id: oTMzGV2k4BAs4XjxoZFMhL + - id: 8nfaUWDKYwvuMq2n3fYTsm sortOrder: 15 fieldKey: carrier label: Carrier @@ -10607,7 +10607,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6jGdLBtGd38rRibuyPUjeL + - id: dsYEh6jAYhJii2j1Wn6pCQ sortOrder: 16 fieldKey: country label: Country @@ -10621,7 +10621,7 @@ items: choices: null dynamic: false allowNull: false - - id: 74g9zw1V1ZMphhsWWHRNDX + - id: 8mmpQNekHHqykvw47stjag sortOrder: 17 fieldKey: region label: Region @@ -10635,7 +10635,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8tGcjutdkHEF5BFMdZEtMS + - id: c87SWtSucbN3KDvdZpc8me sortOrder: 18 fieldKey: city label: City @@ -10649,7 +10649,7 @@ items: choices: null dynamic: false allowNull: false - - id: ctLaekK5EzuBX5gaXmaGiq + - id: hDvesLQyGqpFeuRp7uqy5c sortOrder: 19 fieldKey: dma label: Designated Market Area @@ -10661,7 +10661,7 @@ items: choices: null dynamic: false allowNull: false - - id: gEPrGaAMSwTfpQ5c5rREPj + - id: cJFES4ATntJWR6RHpoHWK7 sortOrder: 20 fieldKey: language label: Language @@ -10675,7 +10675,7 @@ items: choices: null dynamic: false allowNull: false - - id: kVuWbRcJmAz5TdARVQHMDH + - id: 35bv3R4dheH7Ge5FpgfXcZ sortOrder: 21 fieldKey: price label: Price @@ -10692,7 +10692,7 @@ items: choices: null dynamic: false allowNull: false - - id: r3PuXfisT4N4FtmgkGD7ZN + - id: v7f9jdMEW7VB6sEu73wNgJ sortOrder: 22 fieldKey: quantity label: Quantity @@ -10706,7 +10706,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3n3wiAYukV9Dze45Ykbf8u + - id: vAA7VujfWH63vvB6rifZ6q sortOrder: 23 fieldKey: revenue label: Revenue @@ -10724,7 +10724,7 @@ items: choices: null dynamic: false allowNull: false - - id: twvM6sdEVg2kbkF3A3S3n8 + - id: rQjhv1aE6HtdX47arzjLXD sortOrder: 24 fieldKey: productId label: Product ID @@ -10740,7 +10740,7 @@ items: choices: null dynamic: false allowNull: false - - id: ebpxVJ7k9datnEhH2DQc6S + - id: rNAt47pG7T5qNNgN4YRg27 sortOrder: 25 fieldKey: revenueType label: Revenue Type @@ -10756,7 +10756,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5bjj8W92iSrP4W69pRqmyK + - id: qdHw2UPM79yFbRkCptPkiE sortOrder: 26 fieldKey: location_lat label: Latitude @@ -10770,7 +10770,7 @@ items: choices: null dynamic: false allowNull: false - - id: tCX8rJKUyh9hrbTyHY6jwU + - id: soBEwS2TwkN6Si29GFcCTu sortOrder: 27 fieldKey: location_lng label: Longtitude @@ -10784,7 +10784,7 @@ items: choices: null dynamic: false allowNull: false - - id: fgvL61S2oztY7Tnk9YyLPA + - id: vgAZdULGfYwia8Ho6duZoj sortOrder: 28 fieldKey: ip label: IP Address @@ -10804,7 +10804,7 @@ items: choices: null dynamic: false allowNull: false - - id: ELXU4g5du6wspJTatxsF6 + - id: pYRMS3N3Cfa3sNjofjTgLi sortOrder: 29 fieldKey: idfa label: Identifier For Advertiser (IDFA) @@ -10824,7 +10824,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7dC3vyq9z3RZGh4KZktA4x + - id: jB2kP4HF7t42kuTxsiiXBw sortOrder: 30 fieldKey: idfv label: Identifier For Vendor (IDFV) @@ -10838,7 +10838,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2bhxtwhyZcX1RdYwr17oJN + - id: vRjZ6vETJczWyFSsjpYxuz sortOrder: 31 fieldKey: adid label: Google Play Services Advertising ID @@ -10858,7 +10858,7 @@ items: choices: null dynamic: false allowNull: false - - id: i7mSB7Z9CQm6jwWWg3WNiu + - id: nYfi6AHChc1sX8fFPCadhH sortOrder: 32 fieldKey: android_id label: Android ID @@ -10870,7 +10870,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9bZYJ3gLwS5wbNC3WsrGFA + - id: siwDF7R9iC49T8dvfzh3xy sortOrder: 33 fieldKey: event_id label: Event ID @@ -10886,7 +10886,7 @@ items: choices: null dynamic: false allowNull: false - - id: tMP1vAt5RgSe5LvvhkwgWv + - id: 75iSVKxUod9BoLey3vLQ1W sortOrder: 34 fieldKey: insert_id label: Insert ID @@ -10902,7 +10902,7 @@ items: choices: null dynamic: false allowNull: false - - id: sepdcyGZG1kYVcCGg9D7h1 + - id: 66utUv7M7ZVH4tXmkPBtt6 sortOrder: 35 fieldKey: library label: Library @@ -10916,7 +10916,7 @@ items: choices: null dynamic: false allowNull: false - - id: s1bZtMaDpn7ZtCRPZpiNBZ + - id: fjfxaRb74UFxYPNDrasV9L sortOrder: 36 fieldKey: products label: Products @@ -10941,7 +10941,7 @@ items: choices: null dynamic: false allowNull: false - - id: 548a4P6dbGzehQid324VuZ + - id: htXCYWCiGoctJ16QrE7s2a sortOrder: 37 fieldKey: setOnce label: Set Once @@ -10968,7 +10968,7 @@ items: choices: null dynamic: false allowNull: false - - id: dSAakTGGKtmbdoMuBjswqM + - id: 25Ma7awmTHeH1mftnP7hGc sortOrder: 38 fieldKey: setAlways label: Set Always @@ -10993,7 +10993,7 @@ items: choices: null dynamic: false allowNull: false - - id: jACojuEwSKDJwXYsTcp6wb + - id: bTpVJekQeP52NgRrTe37yr sortOrder: 39 fieldKey: add label: Add @@ -11007,7 +11007,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9aty1VyVeU8frqEWFcNets + - id: vbSmGNXSCvAHKQznC16Yoj sortOrder: 40 fieldKey: use_batch_endpoint label: Use Batch Endpoint @@ -11025,7 +11025,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8z1Vwom5CZECdvAJmdUp7C + - id: bbQZqqRHwwmFpyidJ7JQdF sortOrder: 41 fieldKey: userAgent label: User Agent @@ -11039,7 +11039,7 @@ items: choices: null dynamic: false allowNull: false - - id: mrUdUyE44EUkC7kZ3wd9cS + - id: 3JUVpgJN7prmfwBSiHEj5L sortOrder: 42 fieldKey: userAgentParsing label: User Agent Parsing @@ -11055,7 +11055,7 @@ items: choices: null dynamic: false allowNull: false - - id: gnaGANHGEqKDRCzHgA37B2 + - id: eZFdSCsnrHufw1JJDfpyGZ sortOrder: 43 fieldKey: includeRawUserAgent label: Include Raw User Agent @@ -11070,7 +11070,7 @@ items: choices: null dynamic: false allowNull: false - - id: hbr2H95LoTsicYc8U1ECRe + - id: 5uGaLNdvy8QFeaWrg1TACq sortOrder: 44 fieldKey: min_id_length label: Minimum ID Length @@ -11085,7 +11085,7 @@ items: choices: null dynamic: false allowNull: true - - id: qCCU8eQWHuTKLGuhouMnpW + - id: jM5ojNAE4Nd6iB7E3PSY7e sortOrder: 45 fieldKey: userAgentData label: User Agent Data @@ -11103,9 +11103,10 @@ items: dynamic: false allowNull: false presets: - - actionId: uhprCN3Pc9fjb89v4xDrfP - name: Track Calls + - actionId: cRSyn3B292uKfxrpKwHRDY + name: Order Completed Calls fields: + trackRevenuePerProduct: false user_id: '@path': $.userId device_id: @@ -11199,92 +11200,11 @@ items: '@path': productId revenueType: '@path': revenueType - setOnce: - initial_referrer: - '@path': $.context.page.referrer - initial_utm_source: - '@path': $.context.campaign.source - initial_utm_medium: - '@path': $.context.campaign.medium - initial_utm_campaign: - '@path': $.context.campaign.name - initial_utm_term: - '@path': $.context.campaign.term - initial_utm_content: - '@path': $.context.campaign.content - setAlways: - referrer: - '@path': $.context.page.referrer - utm_source: - '@path': $.context.campaign.source - utm_medium: - '@path': $.context.campaign.medium - utm_campaign: - '@path': $.context.campaign.name - utm_term: - '@path': $.context.campaign.term - utm_content: - '@path': $.context.campaign.content use_batch_endpoint: false userAgent: '@path': $.context.userAgent userAgentParsing: true includeRawUserAgent: false - userAgentData: - model: - '@path': $.context.userAgentData.model - platformVersion: - '@path': $.context.userAgentData.platformVersion - trigger: type = "track" and event != "Order Completed" - - actionId: nhJa95SA9MXa3hi2Vm2acC - name: Browser Session Tracking - fields: {} - trigger: >- - type = "track" or type = "identify" or type = "group" or type = "page" or - type = "alias" - - actionId: 9STyJcVfDee2NowS4DGdmW - name: Identify Calls - fields: - user_id: - '@path': $.userId - device_id: - '@if': - exists: - '@path': $.context.device.id - then: - '@path': $.context.device.id - else: - '@path': $.anonymousId - user_properties: - '@path': $.traits - app_version: - '@path': $.context.app.version - platform: - '@path': $.context.device.type - os_name: - '@path': $.context.os.name - os_version: - '@path': $.context.os.version - device_brand: - '@path': $.context.device.brand - device_manufacturer: - '@path': $.context.device.manufacturer - device_model: - '@path': $.context.device.model - carrier: - '@path': $.context.network.carrier - country: - '@path': $.context.location.country - region: - '@path': $.context.location.region - city: - '@path': $.context.location.city - language: - '@path': $.context.locale - userAgent: - '@path': $.context.userAgent - userAgentParsing: true - includeRawUserAgent: false utm_properties: utm_source: '@path': $.context.campaign.source @@ -11298,18 +11218,15 @@ items: '@path': $.context.campaign.content referrer: '@path': $.context.page.referrer - library: - '@path': $.context.library.name userAgentData: model: '@path': $.context.userAgentData.model platformVersion: '@path': $.context.userAgentData.platformVersion - trigger: type = "identify" - - actionId: cRSyn3B292uKfxrpKwHRDY - name: Order Completed Calls + trigger: type = "track" and event = "Order Completed" + - actionId: uhprCN3Pc9fjb89v4xDrfP + name: Page Calls fields: - trackRevenuePerProduct: false user_id: '@path': $.userId device_id: @@ -11321,7 +11238,7 @@ items: else: '@path': $.anonymousId event_type: - '@path': $.event + '@template': Viewed {{name}} session_id: '@path': $.integrations.Actions Amplitude.session_id time: @@ -11403,12 +11320,22 @@ items: '@path': productId revenueType: '@path': revenueType - use_batch_endpoint: false - userAgent: - '@path': $.context.userAgent - userAgentParsing: true - includeRawUserAgent: false - utm_properties: + setOnce: + initial_referrer: + '@path': $.context.page.referrer + initial_utm_source: + '@path': $.context.campaign.source + initial_utm_medium: + '@path': $.context.campaign.medium + initial_utm_campaign: + '@path': $.context.campaign.name + initial_utm_term: + '@path': $.context.campaign.term + initial_utm_content: + '@path': $.context.campaign.content + setAlways: + referrer: + '@path': $.context.page.referrer utm_source: '@path': $.context.campaign.source utm_medium: @@ -11419,16 +11346,19 @@ items: '@path': $.context.campaign.term utm_content: '@path': $.context.campaign.content - referrer: - '@path': $.context.page.referrer + use_batch_endpoint: false + userAgent: + '@path': $.context.userAgent + userAgentParsing: true + includeRawUserAgent: false userAgentData: model: '@path': $.context.userAgentData.model platformVersion: '@path': $.context.userAgentData.platformVersion - trigger: type = "track" and event = "Order Completed" + trigger: type = "page" - actionId: uhprCN3Pc9fjb89v4xDrfP - name: Screen Calls + name: Track Calls fields: user_id: '@path': $.userId @@ -11441,7 +11371,7 @@ items: else: '@path': $.anonymousId event_type: - '@template': Viewed {{name}} + '@path': $.event session_id: '@path': $.integrations.Actions Amplitude.session_id time: @@ -11559,9 +11489,73 @@ items: '@path': $.context.userAgentData.model platformVersion: '@path': $.context.userAgentData.platformVersion - trigger: type = "screen" + trigger: type = "track" and event != "Order Completed" + - actionId: 9STyJcVfDee2NowS4DGdmW + name: Identify Calls + fields: + user_id: + '@path': $.userId + device_id: + '@if': + exists: + '@path': $.context.device.id + then: + '@path': $.context.device.id + else: + '@path': $.anonymousId + user_properties: + '@path': $.traits + app_version: + '@path': $.context.app.version + platform: + '@path': $.context.device.type + os_name: + '@path': $.context.os.name + os_version: + '@path': $.context.os.version + device_brand: + '@path': $.context.device.brand + device_manufacturer: + '@path': $.context.device.manufacturer + device_model: + '@path': $.context.device.model + carrier: + '@path': $.context.network.carrier + country: + '@path': $.context.location.country + region: + '@path': $.context.location.region + city: + '@path': $.context.location.city + language: + '@path': $.context.locale + userAgent: + '@path': $.context.userAgent + userAgentParsing: true + includeRawUserAgent: false + utm_properties: + utm_source: + '@path': $.context.campaign.source + utm_medium: + '@path': $.context.campaign.medium + utm_campaign: + '@path': $.context.campaign.name + utm_term: + '@path': $.context.campaign.term + utm_content: + '@path': $.context.campaign.content + referrer: + '@path': $.context.page.referrer + library: + '@path': $.context.library.name + userAgentData: + model: + '@path': $.context.userAgentData.model + platformVersion: + '@path': $.context.userAgentData.platformVersion + trigger: type = "identify" - actionId: uhprCN3Pc9fjb89v4xDrfP - name: Page Calls + name: Screen Calls fields: user_id: '@path': $.userId @@ -11692,7 +11686,13 @@ items: '@path': $.context.userAgentData.model platformVersion: '@path': $.context.userAgentData.platformVersion - trigger: type = "page" + trigger: type = "screen" + - actionId: nhJa95SA9MXa3hi2Vm2acC + name: Browser Session Tracking + fields: {} + trigger: >- + type = "track" or type = "identify" or type = "group" or type = "page" or + type = "alias" partnerOwned: false - id: 668d1cb2a1dcc5ad33228d92 display_name: Angler AI @@ -34499,6 +34499,351 @@ items: batch_size: 1000 trigger: type = "identify" partnerOwned: true +- id: 682db6914f35aafb2757ef24 + display_name: Dub (Actions) + name: Dub (Actions) + slug: dub-actions + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/dub-actions + previous_names: + - Dub (Actions) + website: https://dub.co + status: PUBLIC_BETA + categories: + - Attribution + - Referrals + logo: + url: https://cdn-devcenter.segment.com/d76f7552-350b-4dfc-a541-29e9466479be.svg + mark: + url: https://cdn-devcenter.segment.com/7baf04e4-90fc-4b64-9edf-5409d021e9cd.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 + linkedAudiences: true + 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: string + defaultValue: '' + description: >- + The API Key is available via Dub Dashboard: + https://app.dub.co/settings/tokens + required: true + label: API Key + actions: + - id: eiNgiGWgh86JiGYp2as6DN + name: Track a Lead + slug: trackLead + description: Track a Lead for a Short Link. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Sign Up" + fields: + - id: dcSJsvYPsBNzJkNmuJcuWt + sortOrder: 0 + fieldKey: clickId + label: Click ID + type: STRING + description: >- + The ID of the click in Dub. You can read this value from "dub_id" + cookie. + placeholder: '' + defaultValue: + '@path': $.integrations.Dub (Actions).dub_id + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dRjDcAgJeYArch83wSkbQZ + sortOrder: 1 + fieldKey: eventName + label: Event Name + type: STRING + description: The name of the Lead event to track. + placeholder: '' + defaultValue: + '@path': $.event + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: uebpQeEnZ4vixmFYkzg3W + sortOrder: 2 + fieldKey: externalId + label: External ID + type: STRING + description: >- + The unique identifier for the customer in the your app. Used to track + the customer's journey. + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hzBpUqcwvCyudkyxRyYoaj + sortOrder: 3 + fieldKey: eventQuantity + label: Event Quantity + type: NUMBER + description: The quantity of the Lead event to track. + placeholder: '' + defaultValue: + '@path': $.properties.quantity + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tRaJzpnnyMYroncMdF9F1P + sortOrder: 4 + fieldKey: customerName + label: Customer Name + type: STRING + description: The name of the customer. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.context.traits.name + then: + '@path': $.context.traits.name + else: + '@path': $.properties.name + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: wK9RHgZG5PeDFCUPbHj3Ah + sortOrder: 5 + fieldKey: customerEmail + label: Customer Email + type: STRING + description: The email of the customer. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sWMjpdxWsXRKS86d5p6sc8 + sortOrder: 6 + fieldKey: customerAvatar + label: Customer Avatar + type: STRING + description: The avatar of the customer. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.context.traits.avatar + then: + '@path': $.context.traits.avatar + else: + '@path': $.properties.avatar + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: cEForwWLFygK9q1cW6rFFz + sortOrder: 7 + fieldKey: metadata + label: Metadata + type: OBJECT + description: Additional metadata to be stored with the Lead event. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sqU34US22frKdLYSPu9NQr + name: Track a Sale + slug: trackSale + description: Track a Sale for a Short Link + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Order Completed" + fields: + - id: 9ttoBgxRsx5ioEn1UiAbbT + sortOrder: 0 + fieldKey: externalId + label: External ID + type: STRING + description: >- + This is the unique identifier for the customer in the your app. This is + used to track the customer's journey. + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dwoR4FddipVze3rYe9GSW5 + sortOrder: 1 + fieldKey: amount + label: Amount + type: NUMBER + description: The amount of the Sale. + placeholder: '' + defaultValue: + '@path': $.properties.revenue + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: uk8yeTKDRb4Pd4qfUNfTdu + sortOrder: 2 + fieldKey: paymentProcessor + label: Payment Processor + type: STRING + description: The payment processor via which the Sale was made. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: LeToKxN9ypQpH7GUbA3Ca + sortOrder: 3 + fieldKey: eventName + label: Event Name + type: STRING + description: >- + The name of the Sale event. It can be used to track different types of + event for example "Purchase", "Upgrade", "Payment", etc. + placeholder: '' + defaultValue: + '@path': $.event + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 44Eyj9WoFv31xbP5XAu9ra + sortOrder: 4 + fieldKey: leadEventName + label: Lead Event Name + type: STRING + description: >- + The name of the Lead event that occurred before the Sale + (case-sensitive). This is used to associate the Sale event with a + particular Lead event (instead of the latest Lead event, which is the + default behavior). + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mdpKUqQ9CkWPhngdVKgXxB + sortOrder: 5 + fieldKey: invoiceId + label: Invoice ID + type: STRING + description: >- + The invoice ID of the Sale. Can be used as a idempotency key – only one + Sale event can be recorded for a given invoice ID. + placeholder: '' + defaultValue: + '@path': $.properties.order_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: gFbfZjBLY9ZzWg8bxD69jW + sortOrder: 6 + fieldKey: currency + label: Currency + type: STRING + description: The currency of the Sale. Accepts ISO 4217 currency codes. + placeholder: '' + defaultValue: + '@path': $.properties.currency + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sJ5ka6BkmjVa3jaDJFuTNY + sortOrder: 7 + fieldKey: metadata + label: Metadata + type: OBJECT + description: Additional metadata to be stored with the Sale event. + placeholder: '' + defaultValue: + '@path': $.properties.products + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: jEnywnoyr5ZMjnCydM8Pz4 + name: Dub Browser Plugin + slug: dubPlugin + description: Enriches all Segment payloads with dub_id cookie value + platform: WEB + hidden: false + defaultTrigger: >- + type = "track" or type = "identify" or type = "page" or type = "group" or + type = "alias" + fields: [] + presets: + - actionId: jEnywnoyr5ZMjnCydM8Pz4 + name: Dub Browser Plugin + fields: {} + trigger: >- + type = "track" or type = "identify" or type = "group" or type = "page" or + type = "alias" + partnerOwned: true - id: 64ede9fe67158afa8de61480 display_name: Dynamic Yield by Mastercard Audiences name: Dynamic Yield by Mastercard Audiences @@ -34627,6 +34972,122 @@ items: hidden: false presets: [] partnerOwned: true +- id: 682db61f6c600fdb90251392 + display_name: Eagle Eye (Actions) + name: Eagle Eye (Actions) + slug: eagle-eye-actions + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/eagle-eye-actions + previous_names: + - Eagle Eye (Actions) + website: https://eagleeye.com/ + status: PUBLIC_BETA + categories: + - Personalization + - Marketing Automation + logo: + url: https://cdn-devcenter.segment.com/9ad0b782-15ac-4cec-83dc-21e2600d19b7.svg + mark: + url: https://cdn-devcenter.segment.com/71a5d53f-dab0-4ff8-a4c4-58d1fd840518.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 + linkedAudiences: true + 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: connectorUrl + type: string + defaultValue: '' + description: Eagle Eye URL of the Segment connector provided by your EagleEye CSM + required: true + label: Connector URL + - name: externalKey + type: password + defaultValue: '' + description: Key to authenticate with the connector provided by your EagleEye CSM + required: true + label: Connector External Key + actions: + - id: SqLce3Uc3XxR9ycooEmV2 + name: Trigger Behavioral Action + slug: triggerBehavioralAction + description: Trigger behavioral actions in AIR based on tracked events + platform: CLOUD + hidden: false + defaultTrigger: type = "track" + fields: + - id: 73mf46ZxRXb1TG4aaDnbZz + sortOrder: 0 + fieldKey: identityValue + label: User identity value + type: STRING + description: Customer wallet identity value in AIR for this event + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: p8BViqXrKD2XhcaJ6VCydo + sortOrder: 1 + fieldKey: walletTransactionReference + label: Wallet transaction reference + type: STRING + description: >- + Optional wallet transaction reference from the event triggering this + Behavioral Action + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 6kS7Fh9G35fxDcopSthNmW + sortOrder: 2 + fieldKey: behavioralActionTriggerReferences + label: Behavioral Action trigger reference + type: STRING + description: >- + Accepts a comma delimited list of reference strings for the Behavioral + Action to be executed. E.g.: A0001,P0001 + placeholder: '' + defaultValue: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + presets: [] + partnerOwned: true - id: 556df6680a20f4e22f0fb3a0 display_name: Elevio name: Elevio @@ -37283,7 +37744,7 @@ items: previous_names: - Extensible Webhook website: http://www.segment.com - status: PUBLIC + status: PUBLIC_BETA categories: - Raw Data logo: @@ -37423,7 +37884,7 @@ items: dynamic: false allowNull: false presets: [] - partnerOwned: false + partnerOwned: true - id: 5e79ef31929aef3bdfbc53a5 display_name: Extole Platform name: Extole Platform @@ -62445,7 +62906,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: czTvSAzEiG4BSB7DHRBa9L + - id: cCk3dBaf7ozbok3GGvBwFH sortOrder: 0 fieldKey: eventName label: Event Name @@ -62463,7 +62924,7 @@ items: choices: null dynamic: true allowNull: false - - id: 5ct5wRnEjHvRDZHXobEkKB + - id: 6vZT1YXQ869cSp89qoRkW2 sortOrder: 1 fieldKey: occurredAt label: Event Timestamp @@ -62479,7 +62940,7 @@ items: choices: null dynamic: false allowNull: false - - id: kRnM2fWL4x6AhG4HTR2PyD + - id: mGVqAASMXBM4McoLmDTZsZ sortOrder: 2 fieldKey: email label: Email Address @@ -62501,7 +62962,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4rvxWpY16fe7Mpav1q4gG8 + - id: 8WwNrKwk9eQcQELcFsvEsm sortOrder: 3 fieldKey: utk label: User Token @@ -62515,7 +62976,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2XxkfmSovRTmcd29EbfLT6 + - id: 4kQs341snXbLti7h2N4dVd sortOrder: 4 fieldKey: objectId label: Object ID @@ -62530,7 +62991,7 @@ items: choices: null dynamic: false allowNull: false - - id: iPzXX2wYTaoLZR5xtHB6HL + - id: nmuWH1KF4CrPhyVaxjhNKE sortOrder: 5 fieldKey: properties label: Event Properties @@ -62555,7 +63016,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 3ekVekwDqBSHApuRW9dLSq + - id: 3RptFktQN7rxR8r1YXprGd sortOrder: 0 fieldKey: createNewCustomRecord label: Create Custom Object Record if Not Found @@ -62572,7 +63033,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8xk4E5vYmhkCKanBzS1jPj + - id: 9FJGGxgtwj3WfT91UMqiZN sortOrder: 1 fieldKey: customObjectSearchFields label: Custom Object Search Fields @@ -62587,7 +63048,7 @@ items: choices: null dynamic: false allowNull: false - - id: cshSBZUkCXhvuBW4mt6H5H + - id: aMijiwDFy1T9oVDnnW9yYY sortOrder: 2 fieldKey: objectType label: Object Type @@ -62605,7 +63066,7 @@ items: choices: null dynamic: true allowNull: false - - id: aCdnUXmW3ACzFJ7MqCGYGU + - id: nLbAVUxP3Dt1SYxqs4Gqwp sortOrder: 3 fieldKey: properties label: Properties @@ -62623,7 +63084,7 @@ items: choices: null dynamic: false allowNull: false - - id: nducWwfeQhDhTceYkxcyjS + - id: k9XtgyG81npbutFm5JyoYE sortOrder: 4 fieldKey: searchFieldsToAssociateCustomObjects label: Search Fields to Associate custom Object @@ -62639,7 +63100,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7HJWapxKwUNvxxxv4XhqmH + - id: 7actMuE9uPAvxQRKyk8c8R sortOrder: 5 fieldKey: toObjectType label: ObjectType to associate @@ -62657,7 +63118,7 @@ items: choices: null dynamic: true allowNull: false - - id: vGKMuPnDEzMC4eYY6qDTNL + - id: dVEnh6LdEvsTWSDXQagM5z sortOrder: 6 fieldKey: associationLabel label: Association Label @@ -62677,7 +63138,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: oGbbkgQnztCzmf5DtbrMrN + - id: sVTmHCXQu36x5GX1Jt2S2T sortOrder: 0 fieldKey: email label: Email @@ -62695,7 +63156,7 @@ items: choices: null dynamic: false allowNull: false - - id: f7dGPQffVZMr9MTqthuaRK + - id: nZJiU53NJL9eptY57bvJta sortOrder: 1 fieldKey: company label: Company Name @@ -62709,7 +63170,7 @@ items: choices: null dynamic: false allowNull: false - - id: cgVoGpSUkXzrSAG9nXJ4ap + - id: gHD9zTt6DYT6uFiE3A5wEf sortOrder: 2 fieldKey: firstname label: First Name @@ -62729,7 +63190,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3AXoeDQ6JLyjALachizePJ + - id: rTqjhTGth7MDRd7CeBFPfV sortOrder: 3 fieldKey: lastname label: Last Name @@ -62749,7 +63210,7 @@ items: choices: null dynamic: false allowNull: false - - id: xrj7v6jzuC6mKBWAabUW3H + - id: vUgPi7mash2bcCdqkRuV4g sortOrder: 4 fieldKey: phone label: Phone @@ -62763,7 +63224,7 @@ items: choices: null dynamic: false allowNull: false - - id: i7GrHiDhm5VfxHQ8ERiXXJ + - id: 4TgP5HTFCSi9RPENjS9gXu sortOrder: 5 fieldKey: address label: Street Address @@ -62777,7 +63238,7 @@ items: choices: null dynamic: false allowNull: false - - id: pEdDJxdCb67bb5cTQEQ6P3 + - id: 7cZf9BXbDTLGJjrdUmsv8m sortOrder: 6 fieldKey: city label: City @@ -62791,7 +63252,7 @@ items: choices: null dynamic: false allowNull: false - - id: 96FHAgsadz2zmFZVLwTcQ5 + - id: cequXrVux2yyCuMkZLKJzS sortOrder: 7 fieldKey: state label: State @@ -62805,7 +63266,7 @@ items: choices: null dynamic: false allowNull: false - - id: ewecGfWxuYNg7fhjQJTvcW + - id: dfavTLgddfg77whYKDNGDb sortOrder: 8 fieldKey: country label: Country @@ -62819,7 +63280,7 @@ items: choices: null dynamic: false allowNull: false - - id: ipxiUsTY9ozZkNwKPqUeuw + - id: 948sufQ1vwbFAiXzMYRxda sortOrder: 9 fieldKey: zip label: Postal Code @@ -62839,7 +63300,7 @@ items: choices: null dynamic: false allowNull: false - - id: rgiLioA3dJFRxJjTyi9V4E + - id: 5pnh5c1dwbte1HM32aRr1W sortOrder: 10 fieldKey: website label: Website @@ -62853,7 +63314,7 @@ items: choices: null dynamic: false allowNull: false - - id: qtLdcPQ9v7H1CBrt2uoh4e + - id: cHcSfVA55CepuNb94cxuhb sortOrder: 11 fieldKey: lifecyclestage label: Lifecycle Stage @@ -62869,7 +63330,7 @@ items: choices: null dynamic: false allowNull: false - - id: dhhXvJkeAtCbDCBsnXbJCM + - id: qY3uYXHEdWnap5zLpbkD1g sortOrder: 12 fieldKey: properties label: Other properties @@ -62887,7 +63348,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3wzn5B5sEjcignNjok2a8x + - id: iYvgNFJs3oTxtUW85fqUvi sortOrder: 13 fieldKey: enable_batching label: Send Batch Data to HubSpot @@ -62912,7 +63373,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: erGkp8mnEKAphB2gEvrpdm + - id: w6yyZwYcx74PPF19aXgMq3 sortOrder: 0 fieldKey: groupid label: Unique Company Identifier @@ -62936,7 +63397,7 @@ items: choices: null dynamic: false allowNull: false - - id: 75GGNxMo87Uv8FpYpSBz4Z + - id: 5tNhgZx4Mtup9NpYruNbie sortOrder: 1 fieldKey: createNewCompany label: Create Company if Not Found @@ -62953,7 +63414,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5u4jZSPjQtEtJrL4AUg6JQ + - id: j3RXz85nxrvBYDNuRpRFLo sortOrder: 2 fieldKey: associateContact label: Associate Contact with Company @@ -62972,7 +63433,7 @@ items: choices: null dynamic: false allowNull: false - - id: vKAAmJimTt1UNG5QTbFdLv + - id: rwC4KrimXgnbCjHM4ZzEno sortOrder: 3 fieldKey: companysearchfields label: Company Search Fields @@ -62989,7 +63450,7 @@ items: choices: null dynamic: false allowNull: false - - id: tkLnvayA7JkTwqxycw4NJn + - id: tyHA9htKdT1R6SpDy6JzTG sortOrder: 4 fieldKey: name label: Company Name @@ -63003,7 +63464,7 @@ items: choices: null dynamic: false allowNull: false - - id: 47t5oZEomZVqjFiiAcu61P + - id: jDBYjiSyk7JbqvMtszxR3b sortOrder: 5 fieldKey: description label: Company Description @@ -63017,7 +63478,7 @@ items: choices: null dynamic: false allowNull: false - - id: vaqRPkCaDnQ7fwKXR89bcy + - id: hMVk9W9LCxxo6NqgJQq8PJ sortOrder: 6 fieldKey: address label: Street Address @@ -63031,7 +63492,7 @@ items: choices: null dynamic: false allowNull: false - - id: m3twoja5Vb55fzXebiZAQr + - id: dE2qy9gw8Q2xo433Yrnzo6 sortOrder: 7 fieldKey: city label: City @@ -63045,7 +63506,7 @@ items: choices: null dynamic: false allowNull: false - - id: hhtNv9JwNKYQcfB9kSa3uG + - id: h79BKeyR4CChCpe5C465iK sortOrder: 8 fieldKey: state label: State @@ -63059,7 +63520,7 @@ items: choices: null dynamic: false allowNull: false - - id: gVTYywVfYCKSrpy3T9ABJU + - id: 8PABaaEMjsTHHzHYbGD5KB sortOrder: 9 fieldKey: zip label: Postal Code @@ -63079,7 +63540,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6jXEuDHCc6rVc2Z9myiTa2 + - id: vP5nGT4TL4UWNDFZ3ccGKd sortOrder: 10 fieldKey: domain label: Domain @@ -63093,7 +63554,7 @@ items: choices: null dynamic: false allowNull: false - - id: pkmQ1Wu6DgDs2PXQcYC4vX + - id: 9EagxUiRjucVKF2AE9s1Ei sortOrder: 11 fieldKey: phone label: Phone @@ -63107,7 +63568,7 @@ items: choices: null dynamic: false allowNull: false - - id: iw1Zr7kHTz5DBWCmJkPFFE + - id: oJfuoiCNrypwBTL6zX6vhZ sortOrder: 12 fieldKey: numberofemployees label: Number of Employees @@ -63121,7 +63582,7 @@ items: choices: null dynamic: false allowNull: false - - id: xchzxhnkX7w1Nvfkf3Ycvf + - id: bCvyJKGXBVh5h9WAc1ZTSP sortOrder: 13 fieldKey: industry label: Industry @@ -63135,7 +63596,7 @@ items: choices: null dynamic: false allowNull: false - - id: otohxBy323vsG8ew8hABA2 + - id: qLhE9iajRPf8amR5Scwbiu sortOrder: 14 fieldKey: lifecyclestage label: Lifecycle Stage @@ -63151,7 +63612,7 @@ items: choices: null dynamic: false allowNull: false - - id: vt8MhNFMiXn9mnTUTskt4W + - id: 9aPb7e8pYmHRqeRpgUV7ZE sortOrder: 15 fieldKey: properties label: Other Properties @@ -63181,7 +63642,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 57VZjzbkcq3iLBB1riSChU + - id: oaugWRX3gn9McYhjBfsYW5 sortOrder: 0 fieldKey: object_details label: Object Details @@ -63193,7 +63654,7 @@ items: choices: null dynamic: false allowNull: false - - id: qoN2tQuFVRMYhVsG4Gig4C + - id: rpi7W9XEmse3RY67atmFUL sortOrder: 1 fieldKey: properties label: Properties @@ -63205,7 +63666,7 @@ items: choices: null dynamic: true allowNull: false - - id: kRCTkixCM6MgyreZxv92ZD + - id: eNtBcSmdwa9i7Mi1ekyVBM sortOrder: 2 fieldKey: sensitive_properties label: Sensitive Properties @@ -63217,7 +63678,7 @@ items: choices: null dynamic: true allowNull: false - - id: v4TrYEArytCL3GhuG92aPP + - id: aMSkfvUbPxTJmCsma21Bbe sortOrder: 3 fieldKey: association_sync_mode label: Associated Record Sync Mode @@ -63237,7 +63698,7 @@ items: value: read dynamic: false allowNull: false - - id: cyJ6qgVP7UkWbvCeksBX5a + - id: vfwrHjaqD7L4ggPVDFS8HU sortOrder: 4 fieldKey: associations label: Associations @@ -63249,6 +63710,22 @@ items: choices: null dynamic: false allowNull: false + - id: d5nQjrm76o3RqjJ1def7rN + sortOrder: 7 + fieldKey: timestamp + label: Timestamp + type: STRING + description: >- + The time the event occurred. This will be used to de-duplicate the + events before sending them to hubspot. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: false + multiple: false + choices: null + dynamic: false + allowNull: false - id: mRG4EEHrTjKLyAfzbKhUZ9 name: Custom Event V2 slug: customEvent @@ -63257,7 +63734,7 @@ items: hidden: false defaultTrigger: null fields: - - id: az5CQwKgjnhDXvEWeC11Yp + - id: 7QYoch4qMGFrDxgcvctjF6 sortOrder: 0 fieldKey: event_name label: Event Name @@ -63269,7 +63746,7 @@ items: choices: null dynamic: true allowNull: false - - id: ehcpWfTM7A93LuUaiiqrZu + - id: 8WurUrtQbYowpWKj8XsK1q sortOrder: 1 fieldKey: record_details label: Associated Record Details @@ -63281,7 +63758,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3FjmsujT23My8iEgzLZHUA + - id: cVB6swCBU86YDcJuDvhthR sortOrder: 2 fieldKey: properties label: Properties @@ -63293,7 +63770,7 @@ items: choices: null dynamic: true allowNull: false - - id: gSGcc5rEKsuKARiMnE5dLQ + - id: exTy6yZWLHY3zMf3zKgSbH sortOrder: 3 fieldKey: occurred_at label: Event Timestamp @@ -92254,6 +92731,627 @@ items: actions: [] presets: [] partnerOwned: true +- id: 682db7017819e7e055f55cb4 + display_name: Ortto (Actions) + name: Ortto (Actions) + slug: ortto-actions + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/ortto-actions + previous_names: + - Ortto (Actions) + website: https://ortto.com/ + status: PUBLIC_BETA + categories: + - Marketing Automation + - Email Marketing + logo: + url: https://cdn-devcenter.segment.com/e52523f8-4680-4182-9a08-210fdb897fb2.svg + mark: + url: https://cdn-devcenter.segment.com/412add45-8cca-4e37-b0b7-8e139a3d73f5.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 + linkedAudiences: true + 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: api_key + type: password + defaultValue: '' + description: Ortto API key + required: true + label: API Key + actions: + - id: cNYPWdf9fbiQ4DToUdpQfe + name: Track Activity + slug: trackActivity + description: Track user activity + platform: CLOUD + hidden: false + defaultTrigger: type = "track" + fields: + - id: 52HAKeHzsFjqShY6VPU8Nq + sortOrder: 0 + fieldKey: timestamp + label: Timestamp + type: STRING + description: Event timestamp (ISO 8601) + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: g5YY7iJhKrUQkLEviSrrio + sortOrder: 1 + fieldKey: message_id + label: Message ID + type: STRING + description: Message ID + placeholder: '' + defaultValue: + '@path': $.messageId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qnxXEtZmGuj59GVMF86jDb + sortOrder: 2 + fieldKey: user_id + label: User ID + type: STRING + description: The unique user identifier + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: gSvncYWJ3WPMBnWs9ZoHkC + sortOrder: 3 + fieldKey: anonymous_id + label: Anonymous ID + type: STRING + description: Anonymous user identifier + placeholder: '' + defaultValue: + '@path': $.anonymousId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rxWwCjnJrhBBGTXdNFqrZW + sortOrder: 4 + fieldKey: enable_batching + label: Batch data + type: BOOLEAN + description: >- + When enabled, events will be sent to Ortto in batches for improved + efficiency. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tyBjBz3HiYfDVSxBYSo6wu + sortOrder: 5 + fieldKey: ip + label: IP Address + type: STRING + description: The IP address of the location where the activity occurred. + placeholder: 180.1.12.125 + defaultValue: + '@path': $.context.ip + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: 5BZ1suHh92oR6kYrBG2gX8 + sortOrder: 6 + fieldKey: location + label: Location + type: OBJECT + description: >- + The location where the activity occurred. Takes priority over the IP + address. + placeholder: '' + defaultValue: + country: + '@if': + exists: + '@path': $.traits.address.country + then: + '@path': $.traits.address.country + else: + '@path': $.context.traits.address.country + state: + '@if': + exists: + '@path': $.traits.address.state + then: + '@path': $.traits.address.state + else: + '@path': $.context.traits.address.state + city: + '@if': + exists: + '@path': $.traits.address.city + then: + '@path': $.traits.address.city + else: + '@path': $.context.traits.address.city + post_code: + '@if': + exists: + '@path': $.traits.address.postal_code + then: + '@path': $.traits.address.postal_code + else: + '@path': $.context.traits.address.postal_code + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: abwrMoPcLiquBeFePZ5fCJ + sortOrder: 7 + fieldKey: traits + label: Custom Contact traits + type: OBJECT + description: key-value custom property pairs to be assigned to the Contact's profile + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits + then: + '@path': $.traits + else: + '@path': $.context.traits + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: au4TJ9FFdVDoZ8LpR72DH7 + sortOrder: 8 + fieldKey: audience_update_mode + label: Audience update mode + type: STRING + description: >- + Indicates whether the Contact should be added to or removed from the + Audience. + placeholder: '' + defaultValue: add + required: false + multiple: false + choices: + - label: Add + value: add + - label: Remove + value: remove + dynamic: false + allowNull: false + - id: eKYJGM1M5PGPGv1t7XBgh9 + sortOrder: 10 + fieldKey: event + label: Event name + type: STRING + description: Event name + placeholder: '' + defaultValue: + '@path': $.event + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qWwTmEjBWJq1ZvTnnYhhtw + sortOrder: 12 + fieldKey: properties + label: Activity properties + type: OBJECT + description: An object containing key-value pairs representing activity attributes + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: n1ZR18Gibn1bWH8UGRNWaA + sortOrder: 13 + fieldKey: audience_name + label: Audience Name + type: STRING + description: The name of the Ortto Audience to link the Contact to. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: adZ5jHmCnmncNMGTD3i1Zp + sortOrder: 14 + fieldKey: onMappingSave + label: Associate Audience + type: OBJECT + description: >- + Link the Contact to an Audience in Ortto. If the Audience does not + already exist, it will be created in Ortto. + defaultValue: null + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: false + - id: pdSUgyovrRPP4WeeZVQq6n + name: Upsert Contact + slug: upsertContactProfile + description: Create or update a Contact in Ortto + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" + fields: + - id: jWN8VjF5ziSzUVNn3c8Nmk + sortOrder: 0 + fieldKey: timestamp + label: Timestamp + type: STRING + description: Event timestamp (ISO 8601) + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: pXTLjWoqXwZALmCmL9HCct + sortOrder: 1 + fieldKey: message_id + label: Message ID + type: STRING + description: Message ID + placeholder: '' + defaultValue: + '@path': $.messageId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: pt2HHWpTNZkfPqBKA2CFR2 + sortOrder: 2 + fieldKey: user_id + label: User ID + type: STRING + description: The unique user identifier + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: aLn3WhArjG9t7gFQ7YYScm + sortOrder: 3 + fieldKey: anonymous_id + label: Anonymous ID + type: STRING + description: Anonymous user identifier + placeholder: '' + defaultValue: + '@path': $.anonymousId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: uzD6foKyTgiHBKsGs9xk7p + sortOrder: 4 + fieldKey: enable_batching + label: Batch data + type: BOOLEAN + description: >- + When enabled, events will be sent to Ortto in batches for improved + efficiency. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tXRkkdZ5KELWcqBDSAVEa4 + sortOrder: 5 + fieldKey: ip + label: IP Address + type: STRING + description: The Contact's IP address + placeholder: 180.1.12.125 + defaultValue: + '@path': $.context.ip + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: okfD8oz27xCePb5jpT9JDZ + sortOrder: 6 + fieldKey: location + label: Location + type: OBJECT + description: The Contact's location. Takes priority over the IP address. + placeholder: '' + defaultValue: + country: + '@if': + exists: + '@path': $.traits.address.country + then: + '@path': $.traits.address.country + else: + '@path': $.context.traits.address.country + state: + '@if': + exists: + '@path': $.traits.address.state + then: + '@path': $.traits.address.state + else: + '@path': $.context.traits.address.state + city: + '@if': + exists: + '@path': $.traits.address.city + then: + '@path': $.traits.address.city + else: + '@path': $.context.traits.address.city + post_code: + '@if': + exists: + '@path': $.traits.address.postal_code + then: + '@path': $.traits.address.postal_code + else: + '@path': $.context.traits.address.postal_code + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: 9YrxtAoo1N3VJVZxkZkf9Q + sortOrder: 7 + fieldKey: traits + label: Custom Contact traits + type: OBJECT + description: >- + An object containing key-value pairs representing custom properties + assigned to Contact profile + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits + then: + '@path': $.traits + else: + '@path': $.context.traits + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dGVwgGRDnR7bLbmyoX3iew + sortOrder: 8 + fieldKey: audience_update_mode + label: Audience update mode + type: STRING + description: >- + Indicates whether the Contact should be added to or removed from the + Audience. + placeholder: '' + defaultValue: add + required: false + multiple: false + choices: + - label: Add + value: add + - label: Remove + value: remove + dynamic: false + allowNull: false + - id: pc2zwTLsEokjJqm2eD2ER + sortOrder: 10 + fieldKey: audience_name + label: Audience Name + type: STRING + description: The name of the Ortto Audience to link the Contact to. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rh448sXJELMSqhsc4daCf8 + sortOrder: 11 + fieldKey: onMappingSave + label: Associate Audience + type: OBJECT + description: >- + Link the Contact to an Audience in Ortto. If the Audience does not + already exist, it will be created in Ortto. + defaultValue: null + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: false + presets: + - actionId: pdSUgyovrRPP4WeeZVQq6n + name: Upsert Contact + fields: + timestamp: + '@path': $.timestamp + message_id: + '@path': $.messageId + user_id: + '@path': $.userId + anonymous_id: + '@path': $.anonymousId + enable_batching: true + ip: + '@path': $.context.ip + location: + country: + '@if': + exists: + '@path': $.traits.address.country + then: + '@path': $.traits.address.country + else: + '@path': $.context.traits.address.country + state: + '@if': + exists: + '@path': $.traits.address.state + then: + '@path': $.traits.address.state + else: + '@path': $.context.traits.address.state + city: + '@if': + exists: + '@path': $.traits.address.city + then: + '@path': $.traits.address.city + else: + '@path': $.context.traits.address.city + post_code: + '@if': + exists: + '@path': $.traits.address.postal_code + then: + '@path': $.traits.address.postal_code + else: + '@path': $.context.traits.address.postal_code + traits: + '@if': + exists: + '@path': $.traits + then: + '@path': $.traits + else: + '@path': $.context.traits + audience_update_mode: add + batch_size: 500 + trigger: type = "identify" + - actionId: cNYPWdf9fbiQ4DToUdpQfe + name: Track Activity + fields: + timestamp: + '@path': $.timestamp + message_id: + '@path': $.messageId + user_id: + '@path': $.userId + anonymous_id: + '@path': $.anonymousId + enable_batching: true + ip: + '@path': $.context.ip + location: + country: + '@if': + exists: + '@path': $.traits.address.country + then: + '@path': $.traits.address.country + else: + '@path': $.context.traits.address.country + state: + '@if': + exists: + '@path': $.traits.address.state + then: + '@path': $.traits.address.state + else: + '@path': $.context.traits.address.state + city: + '@if': + exists: + '@path': $.traits.address.city + then: + '@path': $.traits.address.city + else: + '@path': $.context.traits.address.city + post_code: + '@if': + exists: + '@path': $.traits.address.postal_code + then: + '@path': $.traits.address.postal_code + else: + '@path': $.context.traits.address.postal_code + traits: + '@if': + exists: + '@path': $.traits + then: + '@path': $.traits + else: + '@path': $.context.traits + audience_update_mode: add + batch_size: 500 + event: + '@path': $.event + namespace: + '@path': $.context.app.namespace + properties: + '@path': $.properties + trigger: type = "track" + partnerOwned: true - id: 62df16e45ba0058c864a75d1 display_name: Pardot (Actions) name: Pardot (Actions) diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 89b24aa164..d78ab8da5e 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 2025-07-03 +# destination data last updated 2025-07-07 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 1aa783ddfa..8e23322b82 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 2025-07-03 +# source categories last updated 2025-07-07 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 6ee745cfed..63f73ab407 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 2025-07-03 +# sources last updated 2025-07-07 items: - id: 8HWbgPTt3k display_name: .NET diff --git a/src/connections/destinations/catalog/actions-dub/index.md b/src/connections/destinations/catalog/actions-dub/index.md index 266ba4ed2c..2d3baf17ad 100644 --- a/src/connections/destinations/catalog/actions-dub/index.md +++ b/src/connections/destinations/catalog/actions-dub/index.md @@ -1,7 +1,6 @@ --- title: Dub (Actions) Destination -beta: true -hidden: true +id: 682db6914f35aafb2757ef24 --- {% include content/plan-grid.md name="actions" %} From eba65d7afef5059f1b8d6a17bd8714bec7159979 Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Mon, 7 Jul 2025 14:45:46 +0100 Subject: [PATCH 262/438] Update src/connections/destinations/catalog/dotdigital/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/dotdigital/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index 23b51e0ce5..4bf6149b0d 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -37,5 +37,5 @@ When you use the Enroll Contact to Program action, Dotdigital creates a contact - Only valid mobile numbers with an international dialling prefix (E.164 format) will be accepted. ### Send Transactional SMS -- Only valid mobile numbers with an international dialling prefix (E.164 format) will be accepted. +- Only valid mobile numbers with an international dialing prefix in E.164 format will be accepted. This format is a combination of `+[country code][phone number]`. For example: `+12133734253`. - You must have SMS pay-as-you-go enabled to use this action. Learn more about [how to enable SMS pay-as-you-go](https://support.dotdigital.com/en/articles/8199154-understand-sms-pay-as-you-go-and-spend-limit) {:target="_blank"}. From b2131c18ef0028e66491844161aa158391dcc69e Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Mon, 7 Jul 2025 14:47:50 +0100 Subject: [PATCH 263/438] Advised change --- src/connections/destinations/catalog/dotdigital/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index 4bf6149b0d..ee91642049 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -38,4 +38,4 @@ When you use the Enroll Contact to Program action, Dotdigital creates a contact ### Send Transactional SMS - Only valid mobile numbers with an international dialing prefix in E.164 format will be accepted. This format is a combination of `+[country code][phone number]`. For example: `+12133734253`. -- You must have SMS pay-as-you-go enabled to use this action. Learn more about [how to enable SMS pay-as-you-go](https://support.dotdigital.com/en/articles/8199154-understand-sms-pay-as-you-go-and-spend-limit) {:target="_blank"}. +- You must have SMS pay-as-you-go enabled to use this action. Learn more about how to enable SMS pay-as-you-go in [Dotdigital's documentation](https://support.dotdigital.com/en/articles/8199154-understand-sms-pay-as-you-go-and-spend-limit){:target="_blank"}. From 6f970a56247df250d569109cd759ae08a480da87 Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Mon, 7 Jul 2025 14:48:20 +0100 Subject: [PATCH 264/438] Update src/connections/destinations/catalog/dotdigital/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/dotdigital/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index ee91642049..cc4c4d7ba5 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -34,7 +34,7 @@ Before using the Add Context to List Action, complete the following prerequisite When you use the Enroll Contact to Program action, Dotdigital creates a contact for the identifier you provide, if the contact doesn't already exist. ### Send SMS -- Only valid mobile numbers with an international dialling prefix (E.164 format) will be accepted. +Only valid mobile numbers with an international dialing prefix in E.164 format will be accepted. This format is a combination of `+[country code][phone number]`. For example: `+12133734253`. ### Send Transactional SMS - Only valid mobile numbers with an international dialing prefix in E.164 format will be accepted. This format is a combination of `+[country code][phone number]`. For example: `+12133734253`. From 01bb741dafdd699eab1ae837d1a1592ac214dbcb Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Tue, 8 Jul 2025 08:52:49 +1000 Subject: [PATCH 265/438] Update src/connections/destinations/catalog/actions-ortto-audiences/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../destinations/catalog/actions-ortto-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-ortto-audiences/index.md b/src/connections/destinations/catalog/actions-ortto-audiences/index.md index 3a20c0fda5..0a7746af1e 100644 --- a/src/connections/destinations/catalog/actions-ortto-audiences/index.md +++ b/src/connections/destinations/catalog/actions-ortto-audiences/index.md @@ -1,6 +1,6 @@ --- title: Ortto (Audiences) Destination -id: +id: 686799c65fcebef2a98c8141 --- {% include content/plan-grid.md name="actions" %} From dd0bfa6e39a1305feef5bb82711798b9b241ad41 Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Tue, 8 Jul 2025 08:53:16 +1000 Subject: [PATCH 266/438] Update src/connections/destinations/catalog/actions-ortto-audiences/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../destinations/catalog/actions-ortto-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-ortto-audiences/index.md b/src/connections/destinations/catalog/actions-ortto-audiences/index.md index 0a7746af1e..2e847979b2 100644 --- a/src/connections/destinations/catalog/actions-ortto-audiences/index.md +++ b/src/connections/destinations/catalog/actions-ortto-audiences/index.md @@ -5,7 +5,7 @@ id: 686799c65fcebef2a98c8141 {% include content/plan-grid.md name="actions" %} -The **Ortto (Audiences)** destination allows you to send Engage audiences from Segment to Ortto, where they can be used as [Audiences](https://help.ortto.com/a-115-working-with-audiences){:target="_blank"} for marketing automation, personalization, and reporting. +The **Ortto (Audiences)** destination allows you to send Engage Audiences from Segment to Ortto, where they can be used as [Audiences](https://help.ortto.com/a-115-working-with-audiences){:target="_blank"} for marketing automation, personalization, and reporting. This destination is maintained by **Ortto**. For support or questions, please [contact the Ortto Support team](mailto:help@ortto.com). From 6edea436a28873240752c37d9fef6760c83b0eeb Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Tue, 8 Jul 2025 08:53:38 +1000 Subject: [PATCH 267/438] Update src/connections/destinations/catalog/actions-ortto-audiences/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../destinations/catalog/actions-ortto-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-ortto-audiences/index.md b/src/connections/destinations/catalog/actions-ortto-audiences/index.md index 2e847979b2..e8c0ecb4fe 100644 --- a/src/connections/destinations/catalog/actions-ortto-audiences/index.md +++ b/src/connections/destinations/catalog/actions-ortto-audiences/index.md @@ -16,7 +16,7 @@ Follow these steps to set up the Ortto (Audiences) destination in your Segment w 1. In your Segment workspace, click **Engage** in the left navigation bar, then select your space. 2. Click **Engage Settings** and open the **Destinations** tab. 3. Search for `Ortto (Audiences)` and click **Add Destination**. -4. Confirm the source. By default, this will be the source connected to the Engage space you're working in. +4. Confirm the source. This is typically the source connected to the Engage space you're working in. 5. [Log in to your Ortto account](https://ortto.app/login){:target="_blank"} and either: - Create a new **Segment (Actions)** data source, or - Use an existing one. From 781bf0ac4d691cfce5b4b9f740ad44bb5a53059d Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Tue, 8 Jul 2025 08:54:35 +1000 Subject: [PATCH 268/438] Update src/connections/destinations/catalog/actions-ortto-audiences/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../destinations/catalog/actions-ortto-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-ortto-audiences/index.md b/src/connections/destinations/catalog/actions-ortto-audiences/index.md index e8c0ecb4fe..693b9e7bda 100644 --- a/src/connections/destinations/catalog/actions-ortto-audiences/index.md +++ b/src/connections/destinations/catalog/actions-ortto-audiences/index.md @@ -14,7 +14,7 @@ This destination is maintained by **Ortto**. For support or questions, please [c Follow these steps to set up the Ortto (Audiences) destination in your Segment workspace: 1. In your Segment workspace, click **Engage** in the left navigation bar, then select your space. -2. Click **Engage Settings** and open the **Destinations** tab. +2. Select **Engage Settings** and open the Destinations tab. 3. Search for `Ortto (Audiences)` and click **Add Destination**. 4. Confirm the source. This is typically the source connected to the Engage space you're working in. 5. [Log in to your Ortto account](https://ortto.app/login){:target="_blank"} and either: From c5b04033b8553b069b568746eb58b278a5a1ae62 Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Tue, 8 Jul 2025 08:54:58 +1000 Subject: [PATCH 269/438] Update src/connections/destinations/catalog/actions-ortto-audiences/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../destinations/catalog/actions-ortto-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-ortto-audiences/index.md b/src/connections/destinations/catalog/actions-ortto-audiences/index.md index 693b9e7bda..d848c1d445 100644 --- a/src/connections/destinations/catalog/actions-ortto-audiences/index.md +++ b/src/connections/destinations/catalog/actions-ortto-audiences/index.md @@ -23,7 +23,7 @@ Follow these steps to set up the Ortto (Audiences) destination in your Segment w 6. Copy the API key from your Ortto data source. 7. In Segment, open the destination's **Settings** tab and paste the API key. 8. Toggle **Enable Destination** to **ON** and click **Save Changes**. -9. Go to the **Mappings** tab in the *Ortto (Audiences)* destination and add a **Sync Audience** mapping. +9. Go to the **Mappings** tab in your Ortto (Audiences) destination and add a **Sync Audience** mapping. 10. Enable the mapping. 11. Navigate to the **Audiences** tab in your Engage space and select the audience you want to sync. 12. Click **Add Destination**. From b0505ad4a8d8448acfe28a39778364062e5c196f Mon Sep 17 00:00:00 2001 From: Alex Golshani Date: Tue, 8 Jul 2025 08:55:13 +1000 Subject: [PATCH 270/438] Update src/connections/destinations/catalog/actions-ortto-audiences/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../destinations/catalog/actions-ortto-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-ortto-audiences/index.md b/src/connections/destinations/catalog/actions-ortto-audiences/index.md index d848c1d445..f6163b49f2 100644 --- a/src/connections/destinations/catalog/actions-ortto-audiences/index.md +++ b/src/connections/destinations/catalog/actions-ortto-audiences/index.md @@ -21,7 +21,7 @@ Follow these steps to set up the Ortto (Audiences) destination in your Segment w - Create a new **Segment (Actions)** data source, or - Use an existing one. 6. Copy the API key from your Ortto data source. -7. In Segment, open the destination's **Settings** tab and paste the API key. +7. In Segment, open the destination's **Settings** tab and enter your Ortto API key. 8. Toggle **Enable Destination** to **ON** and click **Save Changes**. 9. Go to the **Mappings** tab in your Ortto (Audiences) destination and add a **Sync Audience** mapping. 10. Enable the mapping. From 95285bfb2b675bd7d8f4d8d02bbe237e5ed4aac5 Mon Sep 17 00:00:00 2001 From: piyush-nudge Date: Tue, 8 Jul 2025 14:32:38 +0530 Subject: [PATCH 271/438] feat: added destination id to the actions-nudge docs --- .../destinations/catalog/actions-nudge/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/connections/destinations/catalog/actions-nudge/index.md b/src/connections/destinations/catalog/actions-nudge/index.md index 797fd5f946..93bb95b177 100644 --- a/src/connections/destinations/catalog/actions-nudge/index.md +++ b/src/connections/destinations/catalog/actions-nudge/index.md @@ -1,6 +1,6 @@ --- title: Nudge (Actions) Destination -id: +id: 6863e71f2a1e1ddc4b4612bf --- {% include content/plan-grid.md name="actions" %} @@ -22,11 +22,11 @@ This destination is maintained by the Nudge Developer Team. For any issues with ## Supported methods -The Nudge (Actions) Destination currently supports the Identify and Track methods listed below in accordance to the core Segment Specs. Reference: [Spec Overview](https://segment.com/docs/connections/spec/) +The Nudge (Actions) Destination currently supports the Identify and Track methods listed below in accordance to the core Segment Specs. Reference: [Spec Overview](/docs/connections/spec/) ### Identify -The Identify method lets you create or update a user in Nudge’s backend. Every Identify call should include a `userId`. See Segment's Spec for Identify for any reference: [Identify Spec](https://segment.com/docs/connections/spec/identify/) +The Identify method lets you create or update a user in Nudge’s backend. Every Identify call should include a `userId`. See Segment's Spec for Identify for any reference: [Identify Spec](/docs/connections/spec/identify/) Example (using Segment's Analytics.js SDK): @@ -49,7 +49,7 @@ How Nudge handles Identify calls: ### Track -The Track method sends custom events and their properties into Nudge. You must include `event` name in every Track call so events can be associated with the correct user. See Segment's Spec for Track for any reference: [Track Spec](https://segment.com/docs/connections/spec/track/) +The Track method sends custom events and their properties into Nudge. You must include `event` name in every Track call so events can be associated with the correct user. See Segment's Spec for Track for any reference: [Track Spec](/docs/connections/spec/track/) Example (using Segment's Analytics.js SDK): From d2691081c932c2a7857de88463e0232b83e79b6d Mon Sep 17 00:00:00 2001 From: piyush-nudge Date: Wed, 9 Jul 2025 13:36:46 +0530 Subject: [PATCH 272/438] feat: added private and beta flags for docs --- src/connections/destinations/catalog/actions-nudge/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/actions-nudge/index.md b/src/connections/destinations/catalog/actions-nudge/index.md index 93bb95b177..3946ab7c7e 100644 --- a/src/connections/destinations/catalog/actions-nudge/index.md +++ b/src/connections/destinations/catalog/actions-nudge/index.md @@ -1,6 +1,8 @@ --- title: Nudge (Actions) Destination id: 6863e71f2a1e1ddc4b4612bf +private: true +beta: true --- {% include content/plan-grid.md name="actions" %} From 3f5fe071c73ab5607cb026821af2824204b786eb Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 9 Jul 2025 12:41:11 +0100 Subject: [PATCH 273/438] Warning removed - Extensible Webhooks now available in EU --- .../destinations/catalog/actions-webhook-extensible/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-webhook-extensible/index.md b/src/connections/destinations/catalog/actions-webhook-extensible/index.md index da2f29b77e..a9846e2771 100644 --- a/src/connections/destinations/catalog/actions-webhook-extensible/index.md +++ b/src/connections/destinations/catalog/actions-webhook-extensible/index.md @@ -8,8 +8,6 @@ redirect_from: '/connections/destinations/catalog/extensible-webhook/' Segment's Extensible Webhook destination lets you send custom data payloads to any webhook endpoint. With support for flexible payload configuration, multiple authentication methods, and real-time data flow, Extensible Webhooks can help you integrate with internal systems or tools not covered by Segment’s standard destinations. -This destination is not currently available in EU regions. - Segment maintains this destination. For any issues, [contact Segment Support](friends@segment.com). ## Overview From c71630e04bec9f54e3863528635156cb772a3f22 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 9 Jul 2025 10:30:01 -0400 Subject: [PATCH 274/438] ortto slug --- src/_data/catalog/slugs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/_data/catalog/slugs.yml b/src/_data/catalog/slugs.yml index b8f945317b..0403ffa935 100644 --- a/src/_data/catalog/slugs.yml +++ b/src/_data/catalog/slugs.yml @@ -325,4 +325,6 @@ destinations: override: "ninetailed" - original: "topsort" override: "actions-topsort" + - original: "ortto-actions" + override: "actions-ortto" From 7f3ea2f8a54cf9ca4de63f17b66f3a5dce1f6a81 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 9 Jul 2025 08:44:19 -0700 Subject: [PATCH 275/438] Update src/api/public-api/query-language.md Co-authored-by: Sharon Adewusi --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index d98e28bddc..202171751f 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -62,7 +62,7 @@ The following tables list the query languages's available functions. | Syntax | `trait({s: String})`
      `s` - the name of the trait to reference | | Return Type | `ScalarExtractor` | | Description | Similar to the event operator, the trait operator is used to specify profile trait filter criteria. | -| Notes | You can reference other audiences by using the audience key as the trait name. Also note that inclusion of a `.` signifies traversal through nested structures. If the trait name contains a literal dot, it must be escaped using `\\\\` | +| Notes | You can reference other audiences by using the audience key as the trait name. The `.` character indicates traversal through nested structures. If the trait name contains a literal period (`.`), it must be escaped using `\\\\`. | | Example | `trait('total_spend')` | | `entity` | | From 9552e8f8221d9808dcca6fb9155b9809817a5599 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 9 Jul 2025 08:44:29 -0700 Subject: [PATCH 276/438] Update src/api/public-api/query-language.md Co-authored-by: Sharon Adewusi --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 202171751f..6cc60533d4 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -77,7 +77,7 @@ The following tables list the query languages's available functions. | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Syntax | `property({s: String})`
      `s` - the name of the property to build an extractor for
      In the context of funnel audiences, you can add a parent prefix to reference the parent event.
      `property(parent: {s: String})` | | Return Type | `ScalarExtractor` | -| Notes | Only valid within a `where` function or a Reducer. Also note that inclusion of a `.` signifies traversal through nested structures. If the property name contains a literal dot, it must be escaped using `\\\\` | +| Notes | Only valid within a `where` function or a Reducer. The `.` character indicates traversal through nested structures. If the trait name contains a literal period (`.`), it must be escaped using `\\\\`. | | Example | `property('total')` | | `context` | | From 7929f634b5470a5e1476b97f4d643db96729097d Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 9 Jul 2025 08:44:38 -0700 Subject: [PATCH 277/438] Update src/api/public-api/query-language.md Co-authored-by: Sharon Adewusi --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 6cc60533d4..767e23d22a 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -91,7 +91,7 @@ The following tables list the query languages's available functions. | -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Syntax | `literal({a: Any})`
      `a` - the value to treat as a literal expression | | Operations allowed in call-chain | None allowed; typically used within another function, like a comparison (with syntactic sugar, this would appear on the right side of the comparison). The outer function or comparison dictates the operations allowed in the call-chain. | -| Notes | Literals can be `int`s, `float`s, `string`s, `date`s or `timestamp`s, where `date`s use the format `yyyy-mm-dd` and `timestamp`s follow ISO 8601 format. Note that in general `string` is interchangeable with all other formats, except when used in a `property` chained to an `entity`. In this case, we recommend matching the data type of the entity property being targeted. | +| Notes | Literals can be `int`, `float`, `string`, `date` or `timestamp`, where `date` uses the format `yyyy-mm-dd` and `timestamp` follows the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601){:target="_blank"} format. `string` is generally interchangeable with all other formats, except when used in a `property` chained to an `entity`. In this case, Segment recommends matching the data type of the entity property being targeted. | | Example | `literal(100)` or `literal('value')` or `literal(2022-10-17T00:00:00)` | From b83273b4c45b6efd0197f63c3283be30262abe78 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 9 Jul 2025 08:44:44 -0700 Subject: [PATCH 278/438] Update src/api/public-api/query-language.md Co-authored-by: Sharon Adewusi --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 767e23d22a..f899cbb17a 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -92,7 +92,7 @@ The following tables list the query languages's available functions. | Syntax | `literal({a: Any})`
      `a` - the value to treat as a literal expression | | Operations allowed in call-chain | None allowed; typically used within another function, like a comparison (with syntactic sugar, this would appear on the right side of the comparison). The outer function or comparison dictates the operations allowed in the call-chain. | | Notes | Literals can be `int`, `float`, `string`, `date` or `timestamp`, where `date` uses the format `yyyy-mm-dd` and `timestamp` follows the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601){:target="_blank"} format. `string` is generally interchangeable with all other formats, except when used in a `property` chained to an `entity`. In this case, Segment recommends matching the data type of the entity property being targeted. | -| Example | `literal(100)` or `literal('value')` or `literal(2022-10-17T00:00:00)` | +| Example | `literal(100)`, `literal('value')`, or `literal(2022-10-17T00:00:00)` | From 5c74d0b1f99b1b0abcb748714654c3aeadb55f93 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 9 Jul 2025 08:44:50 -0700 Subject: [PATCH 279/438] Update src/api/public-api/query-language.md Co-authored-by: Sharon Adewusi --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index f899cbb17a..62e7f893a7 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -291,7 +291,7 @@ The following tables list the query languages's available functions. | ------------- | ---------------------------------------------------------------------------- | | Syntax | `before_date({t: Timestamp})`
      `t` - ISO 8601 timestamp | | Return Type | `Comparator` | -| Notes | `string` format can also be use | +| Notes | `string` format can also be used | | Example | `before_date(2023-12-07T18:50:00Z)` or `before_date('2023-12-07T18:50:00Z')` | | `after_date` | | From 4fceccca294fc530f8ab11318cbfc2bfbe95fa91 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 9 Jul 2025 08:44:56 -0700 Subject: [PATCH 280/438] Update src/api/public-api/query-language.md Co-authored-by: Sharon Adewusi --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 62e7f893a7..9ca126196b 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -298,7 +298,7 @@ The following tables list the query languages's available functions. | ------------ | -------------------------------------------------------------------------- | | Syntax | `after_date({t: Timestamp})`
      `t` - ISO 8601 timestamp | | Return Type | `Comparator` | -| Notes | `string` format can also be use | +| Notes | `string` format can also be used | | Example | `after_date(2023-12-07T18:50:00Z)` or `after_date('2023-12-07T18:50:00Z')` | | `within_last` | | From 85a20ab41c5c38d7fae8026552f64e36f139b228 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 9 Jul 2025 08:45:13 -0700 Subject: [PATCH 281/438] Update src/api/public-api/query-language.md Co-authored-by: Sharon Adewusi --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 9ca126196b..3aa8325130 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -494,7 +494,7 @@ ANY event('Shoes Bought').count() >= 1 #### Associated with Orders that have an association to Order Products -This example collects all users which have at least 1 association to an `orders` entity where the `orders` entity has at least 1 association to an `order-products` entity: +This example collects all users who have at least 1 association to an `orders` entity where the `orders` entity has at least 1 association to an `order-products` entity: ```sql entity('orders').where(entity('order-products').count() >= 1).count() >= 1 From 272c282482424e40c08364804e8ee2143fcce159 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Wed, 9 Jul 2025 08:45:21 -0700 Subject: [PATCH 282/438] Update src/api/public-api/query-language.md Co-authored-by: Sharon Adewusi --- src/api/public-api/query-language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/public-api/query-language.md b/src/api/public-api/query-language.md index 3aa8325130..9b60bf4054 100644 --- a/src/api/public-api/query-language.md +++ b/src/api/public-api/query-language.md @@ -502,7 +502,7 @@ entity('orders').where(entity('order-products').count() >= 1).count() >= 1 #### Associated to Orders or is a VIP user -This example collects all users which have at least 1 association to an `order` entity or have a `VIP` trait equal to true: +This example collects all users who have at least 1 association to an `order` entity or have a `VIP` trait equal to true: ```sql entity('orders').count() >= 1 OR trait('VIP') = 'true' From 6b0483ea089c302c6b04afd79ca40a8b20bca768 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 9 Jul 2025 17:52:55 +0100 Subject: [PATCH 283/438] Suggested Mapping T&Cs added + update to destination action set up --- src/connections/destinations/actions.md | 215 ++++++++++++------------ 1 file changed, 111 insertions(+), 104 deletions(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 68dd8bef64..322eb4cfe6 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -3,19 +3,22 @@ title: Destination Actions plan: dest-actions --- -The Destination Actions framework improves on classic destinations by enabling you to see and control how Segment sends the event data it receives from your sources, to actions-based destinations. Each Action in a destination lists the event data it requires, and the event data that is optional. +The Destination Actions framework improves on classic destinations by enabling you to see and control how Segment sends the event data it receives from your sources to actions-based destinations. Each Action in a destination lists the event data it requires, and the event data that is optional. -You can also choose which event types, event names, or event property values trigger an Action. These Triggers and mappings make it possible to send different versions of the Action, depending on the context from which it is triggered. +You can also choose which event types, event names, or event property values trigger an Action. These Triggers and Mappings make it possible to send different versions of the Action, depending on the context from which it is triggered. -Each Actions-framework Destination you see in the Segment catalog represents a feature or capability of the destination which can consume data from your Segment source. The Action clearly lists which data from the events it requires, and which data is optional. For example, Amplitude requires that you always send a `LogEvent` , or Slack always requires a `PostMessage`. Each Action also includes a default mapping which you can modify. +Each Actions-framework Destination you see in the Segment catalog represents a feature or capability of the destination which can consume data from your Segment source. The Action clearly lists which data from the events it requires and which data is optional. For example, [Amplitude](/docs/connections/destinations/catalog/actions-amplitude) requires that you always send a `LogEvent` and [Slack](/docs/connections/destinations/catalog/actions-slack) always requires a `PostMessage`. Each Action also includes a default mapping which you can modify. ## Benefits of Destination Actions -- **Easier setup**: Users see fewer initial settings which can decrease the time spent configuring the destination. -- **Increased transparency**: Users can see the exact data that is sent to the destination, and when Segment sends it. For example, users can see exactly when Segment sends an IP address to FullStory or an AnonymousId to Amplitude. -- **Improved customization**: Users can determine how the events their sources trigger and map to actions supported by the destination. For example, define the exact events that are considered purchases by Braze. +The advantages of using Destination Actions include: + +- **Easier setup**: Fewer initial settings which can decrease the time spent configuring the destination. +- **Increased transparency**: You can see the exact data that is sent to the destination and when Segment sends it. For example, users can see exactly when Segment sends an IP address to [FullStory](https://www.fullstory.com/){:target="_blank"} or an AnonymousId to Amplitude. +- **Improved customization**: You can determine which events from your sources trigger actions, and map the events to destination-supported actions. For example, you can define exactly which events are considered purchases by [Braze](https://www.braze.com/){:target="_blank"}. - **Partner ownership**: Partners can own and contribute to any Actions-based destination that use cloud and device mode (web). + ## Available Actions-based Destinations The following Actions-based Destinations are available: @@ -24,24 +27,25 @@ The following Actions-based Destinations are available: ## Destination Actions compatibility -- Destination Actions are available to all customers on all Segment plans. -- Destination Actions do not require that you disable or change existing destinations. However, to prevent data duplication in the destination tool, you should make sure you aren't sending the data through both a standard destination and the Actions destination at the same time. -- You can still use the [Event Tester](/docs/connections/test-connections) with Destination Actions, and event delivery metrics are still collected and available in the destination information pages. -- If you are using Protocols, Destination Actions actions are applied *after* [schema filters](/docs/protocols/enforce/schema-configuration/) and [transformations](/docs/protocols/transform/). If you are using [destination filters](/docs/connections/destinations/destination-filters/), Actions are applied after the filters - meaning that they are not applied to data that is filtered out. -- Destination Actions can not yet be accessed or modified using the Segment APIs. +Destination Actions are available to all customers on all Segment plans. You do not need to disable or change existing destinations to use Destination Actions. However, to prevent data duplication in the destination tool, ensure that you are not sending data through both a standard destination and the Actions destination at the same time. + +- You can use the [Event Tester](/docs/connections/test-connections) with Destination Actions. Event delivery metrics are collected and available in the destination information pages. +- If you are using [Protocols](/docs/protocols/), Destination Actions actions are applied **after** [schema filters](/docs/protocols/enforce/schema-configuration/) and [transformations](/docs/protocols/transform/). +- If you are using [Destination Filters](/docs/connections/destinations/destination-filters/), Actions are applied after the filters. They are not applied to data that is filtered out. +- Destination Actions can not be accessed or modified using the Segment APIs yet. ## Components of a Destination Action -A Destination Action contains a hierarchy of components, that work together to ensure the right data is sent to the destination. +A Destination Action contains a hierarchy of components that work together to ensure the right data is sent to the destination. | Component | Description | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Global Settings | Define authentication and connection-related information like API and Secret keys. | -| Mappings | Handle the individual calls to the destination. In them, you define what type of call you want to make to the destination, and what Triggers that call. Individual Destination Actions may come enabled with some predefined mappings to handle common events like Screen calls, Identify calls, and Track calls. Mappings have two components that make this possible: **Triggers** and an **Action**. | -| Triggers | Enable you to define *when* the corresponding Action fires. As part of a Trigger, you can use condition-based filters to narrow the scope of the Trigger. Triggers don't support matching on event fields containing `.$` or `.$.`, which reference an array type.

      Self-service users can add a maximum of two conditions per Trigger. | -| Actions | Determine the information sent to the destination. In the Configure action section, you map the fields that come from your source, to fields that the destination expects to find. Fields on the destination side depend on the type of action selected. | +| Mappings | Handle the individual calls to the destination. In them, you define what type of call you want to make to the destination and what triggers that call. Individual Destination Actions may come enabled with some predefined mappings to handle common events like Screen calls, Identify calls, and Track calls. Mappings have 2 components that make this possible: **Triggers** and an **Action**. | +| Triggers | Allow you to define when the corresponding Action fires. As part of a Trigger, you can use condition-based filters to narrow the scope of the Trigger. Triggers don't support matching on event fields containing `.$` or `.$.`, which reference an array type.

      Self-service users can add a maximum of 2 conditions per Trigger. | +| Actions | Determine the information sent to the destination. In the **Configure action** section, you map the fields that come from your source to fields that the destination expects to find. Fields on the destination-side depend on the type of action selected. | -For example, in the Amplitude (Actions) destination, you define your API and Secret keys in the destination's global settings. Then, the provided Page Calls mapping: +For example, in the Amplitude (Actions) destination, you define your API and Secret keys in the destination's global settings. Then the provided Page Calls mapping: 1. Triggers the action on all incoming Page events. 2. Runs the Log Event action, to map your incoming data to Amplitudes properties. @@ -49,58 +53,59 @@ For example, in the Amplitude (Actions) destination, you define your API and Sec ## Set up a destination action -To set up a new Actions-framework destination for the first time: +To set up a new Actions-framework destination: -1. Log in to the Workspace where you want to add the new destination, go to the Catalog page, and click the Destinations tab. (You can also get to this screen by clicking **Add Destination** either from an existing Source, or from your list of existing destinations.) -2. Click the **Destination Actions** category in the left navigation, then click the destination you want to add. -3. From the preview screen that appears, click **Configure**. -4. If prompted, select the source you want to connect to the new destination. -5. Enter your credentials. This could be an API Key and secret key, or similar information that allows the destination to connect to your account. -6. Next, choose how you want to set up the destination, and click **Configure Actions**. - * You can choose **Quick Setup** to use the default mappings, or choose **Customized Setup** (if available) to create new mappings and conditions from a blank state. You can always edit these mappings later. - * *(Optional)* Click **Suggest Mappings** to get suggested mappings. Learn more about [suggested mappings](#suggested-mappings). -7. Once you're satisfied with your mappings, click **Create Destination**. +1. Log in to the Segment Workspace you want to add your destination to. Go to the **Connections > Catalog** page and click the **Destinations** tab. You can also click **Add Destination** either from an existing Source or from your list of existing destinations. +2. Select the **Destination Actions** category and select the destination you want to add. +3. Click **Add destination** and configure your destination, selecting the source you want to connect to the new destination. +4. Enter your credentials in the **Settings** of your new destination. This could be an API Key and Secret Key, or similar information that allows the destination to connect to your account. +5. Next, go to **Mappings** to configure Actions. Add new mappings and select the Action you would like to use. + * **(Optional)** Click **Suggest Mappings** to get suggested mappings. Learn more about [suggested mappings](#suggested-mappings). +6. Once you're satisfied with your mappings, click **Save and enable**. -> info "" -> You must configure and enable at least one mapping to handle a connected source's event(s) in an Actions-framework destination in order for data to send downstream. -> Events send downstream in the order in which they appear in the mappings UI. There is no mechanism through which you can control the order of events that send to the downstream destinations outside of that. +You must configure and enable at least 1 mapping to handle a connected source's event(s) in an Actions-framework destination for data to flow downstream. +Events flow downstream in the order in which they appear in the mappings UI. There is no mechanism available where you can control the order of events sent to the downstream destinations. ## Migrate a classic destination to an actions-based destination -Moving from a classic destination to an actions-based destination is a manual process. Segment recommends that you follow the procedure below: +Moving from a classic destination to an actions-based destination is a manual process. Segment recommends that you use the following steps to do this: 1. Create the actions-based destination with your development or test source. 2. Copy API keys, connection details, and other settings from the classic destination to the actions-based destination. -3. Refer to the actions-based destination's documentation for information about migrating specific settings. -4. Disable the classic version of the destination, and enable the actions-based version. +3. Refer to the actions-based destination's documentation for information about how to migrate specific settings. +4. Disable the classic version of the destinatio and enable the actions-based version. 5. Verify that data is flowing from the development or test source to the partner tool. -6. Repeat the steps above with your production source. +6. Repeat steps 1-5 with your production source. ### Migrate your destination filters from the classic destination to the actions destination > warning "" -> You can only migrate your destination filters using the Public API if you're on the business tier plan. This functionality isn't available in the Segment app. +> You can only migrate your destination filters using the Public API if you are on the Segment Business Tier plan. This functionality isn't available in the Segment app. To migrate your destination filters to your actions destination from the classic destination: 1. Send a request to the Public API endpoint. - - Use [List Filters from Destination](https://docs.segmentapis.com/tag/Destination-Filters#operation/listFiltersFromDestination){:target="_blank"} . The `destinationId` can be found in the URL while viewing the destination in your Segment workspace. + - Use [List Filters from Destination](https://docs.segmentapis.com/tag/Destination-Filters#operation/listFiltersFromDestination){:target="_blank"}. You can find `destinationId` in the page URL while viewing the destination in your Segment workspace. 2. Grab the response and parse through the `data.filters` object. Each object returned inside the `data.filters` object is an individual filter associated with the specified destination. 4. Send individual `POST` requests to the Public API endpoint. - - Use [Create Filter for Destination](https://docs.segmentapis.com/tag/Destination-Filters/#operation/createFilterForDestination){:target="_blank"} , for each of the filters from step 2. - - Specify the Actions `destinationId`, found in the URL when viewing that destination. The body of the request is the individual filters from step 2. + - Use [Create Filter for Destination](https://docs.segmentapis.com/tag/Destination-Filters/#operation/createFilterForDestination){:target="_blank"}, for each of the filters from step 2. + - Specify the Actions `destinationId`, found in the URL of that destination. The body of the request is the individual filters from step 2. 6. If the bodies of those requests don't already include the field `"enabled": true`, make sure to enable each of those filters after you create them. ### Migrate to an actions-based destination using Destination Filters -For a more comprehensive migration from a classic destination to an actions-based destination, follow the steps outlined below. This implementation strategy is only available for customers on a Segment Business Tier plan with access to [Destination Filters](/docs/connections/destinations/destination-filters/). By adding additional line of defense with Destination Filters, you remove the possibility of duplicate events or dropped events and ensure that events sent before/after a specified `received_at` timestamp are sent to each destination. +For a more comprehensive migration from a classic destination to an actions-based destination, use [Destination Filters](/docs/connections/destinations/destination-filters/). This implementation strategy is only available to customers on a Segment Business Tier plan with access to Destination Filters. By adding an extra line of defense with Destination Filters, you reduce the chance of duplicate events or dropped events and ensure that only events sent before or after a specified `received_at` timestamp are sent to each destination. + +This approach involves configuring a destination filter on both the Classic and Actions destinations. +1. Configure the classic destination filter to block events by the `received_at` field with a certain value. +2. Set up the Actions destination to drop events until the `received_at` timestamp field reaches that same value. -This migration strategy involves configuring a destination filter on both the Classic destination and the Actions destination. Configure the classic destination filter to block events by the `received_at` field with a certain value, and the Actions destination to drop events until the `received_at` timestamp field reaches that same value. Destination Filters within the UI have a limitation where they cannot access any top-level fields, but this is not a limitation for [Destination Filters](https://docs.segmentapis.com/tag/Destination-Filters/){:target="_blank”} created by the [Public API](https://segment.com/docs/api/public-api/){:target="_blank”} using [FQL](https://segment.com/docs/api/public-api/fql/){:target="_blank”}. Because the `received_at` is a top-level field in the payload, you'll need to create a destination filter with the Public API and submit the request with that FQL information described below. +While Destination Filters within the UI cannot access any top-level fields, such as `received_at`, this is not a limitation for [Destination Filters](https://docs.segmentapis.com/tag/Destination-Filters/){:target="_blank”} created by the [Public API](/docs/api/public-api/) using [Filter Query Language (FQL)](/docs/api/public-api/fql/). Since `received_at` is a top-level field in the payload, you need to create a destination filter with the Public API and submit the request with that FQL information described below. -By combining these Filters, Segment sends events through the Classic integration up until a specified time and then blocks events after that time. Then the Actions integration blocks events until that specified time, and only allows events beginning at that specified time. +By combining these Filters, Segment sends events through the Classic integration up until a specified time and then blocks events after that. The Actions integration then blocks events until that specified time and only allows events beginning at that specified time. The following code samples show you how you can create filters for your destinations using the [Create Filter for Destination](https://docs.segmentapis.com/tag/Destination-Filters#operation/createFilterForDestination){:target="_blank”} Public API operation. #### Classic destination -_Endpoint_: `POST` `https://api.segmentapis.com/destination/classic_destination_id_from_url/filters` +Endpoint: `POST` `https://api.segmentapis.com/destination/classic_destination_id_from_url/filters` ``` // JSON BODY : { @@ -119,7 +124,7 @@ _Endpoint_: `POST` `https://api.segmentapis.com/destination/classic_destination_ ``` #### Actions destination -_Endpoint_: `POST` `https://api.segmentapis.com/destination/actions_destination_id_from_url/filters` +Endpoint: `POST` `https://api.segmentapis.com/destination/actions_destination_id_from_url/filters` ``` // JSON BODY : { @@ -137,7 +142,7 @@ _Endpoint_: `POST` `https://api.segmentapis.com/destination/actions_destination_ } ``` -After configuring the Destination Filter on both the Classic and Actions destination, see each destination's Filters tab and enable the filters. After completing the migration, you can disable the Classic destination on the Settings page, and remove each of the filters from both destinations. +After configuring the Destination Filter on both the Classic and Actions destination, go to each destination's **Filters** tab and enable the filters. After completing the migration, you can disable the Classic destination on the Settings page and remove each of the filters from both destinations. ## Edit a destination action You can add or remove, disable and re-enable, and rename individual actions from the Actions tab on the destination's information page in the Segment app. Click an individual action to edit it. @@ -146,77 +151,74 @@ From the edit screen you can change the action's name and mapping, and toggle it ![Screenshot of the Mappings table with several enabled mappings](images/actions-list.png) -When an Action is created, it's disabled by default, to ensure that it's only used after being fully configured. To begin sending data through an Action, enable it on the Actions page by selecting the toggle so that it appears blue. +When an Action is created, it is disabled by default. This ensures that it's only used after being fully configured. To begin sending data through an Action, enable it on the Actions page by clicking the toggle so that it appears blue. ## Disable a destination action -If you find that you need to stop an action from running, but don't want to delete it completely, you can click the action to select it, then click the toggle next to the action's name to disable it. This takes effect within minutes, and disables the action until you reenable it. +If you find that you need to stop an action from running, but don't want to delete it completely, you can select the action and click the toggle next to the action's name to disable it. This takes effect within minutes, and disables the action until you re-enable it. ## Delete a destination action -To delete a destination action: click the action to select it, and click **Delete** (the trash can icon). +To delete a destination action, select the action, click **...** and select **Delete**. This takes effect within minutes, and removes the action completely. Any data that would have gone to the destination is not delivered. Once deleted, the saved action cannot be restored. ## Test a destination action -To test a destination action, follow the instructions in [Event Tester](/docs/connections/test-connections/). You must enable a mapping in order to test the destination. Otherwise, this error occurs: *You may not have any subscriptions that match this event.* +To test a destination action, follow the instructions outlined in [Event Tester](/docs/connections/test-connections/). You must enable a mapping to test the destination. If a mapping is not enabled, the following error message will appear: `You may not have any subscriptions that match this event.` You can also test within the mapping itself. To test the mapping: 1. Navigate to the **Mappings** tab of your destination. 2. Select a mapping and click the **...** and select **Edit Mapping**. -3. In step 2 of the **Set up mappings** page, click **Load event from source** to add a test event from the source, select **Generate sample event** for Segment to generate a sample event for you, or enter your own event. -4. Scroll to step 5 on the page and click **Send test event** to test the mapping and view the response from the destination. +3. In the "Define event trigger" step, click **Load event from source** to add a test event from the source. You can also select **Generate sample event** which allows Segment to generate a sample event for you, or enter your own event. +4. In the "Send test record" step, click **Send test event** to test the mapping and view the response from the destination. > info "Test Mapping might not return the events you're looking for" -> Segment only surfaces a small subset of events for the Test Mapping feature and might not always return the event you're looking for. If you'd like to test with a specific event, copy a specific event from your [Source Debugger](/docs/connections/sources/debugger/) and paste it into the **Add test event** interface. +> Segment only surfaces a small subset of events for the Test Mapping feature and might not always return the event you're looking for. To test with a specific event, copy a specific event from your [Source Debugger](/docs/connections/sources/debugger/) and paste it into the **Add test event** interface. ## Customize mappings -If you use the default mappings for a destination action, you don't *need* to customize the mapping template for the action. You can edit the fields later if you find that the defaults no longer meet your needs. +If you use the default mappings for a destination action, you don't need to customize the mapping template for the action. You can edit the fields later if you find that the defaults no longer meet your needs. -> info "" +> info "Destination limit" > Actions-based destinations have a limit of 50 individual mappings. -To create a custom destination action, start from the Actions tab. -If necessary, click **New Mapping** to create a new, blank action. +To create a custom destination action, start from the Actions tab. If necessary, click **New Mapping** to create a new action. 1. In the edit panel, define the [conditions](#conditions) under which the action should run. -2. Test those conditions to make sure that they correctly match an expected event. - This step looks for events that match the criteria in the [debugger queue](/docs/connections/sources/debugger/), so you might need to Trigger some events with the expected criteria to test your conditions. You can skip the test step if needed, and re-try it at any time. +2. Test those conditions to make sure that they correctly match an expected event. This step looks for events that match the criteria in the [debugger queue](/docs/connections/sources/debugger/), so you might need to trigger some events with the expected criteria to test your conditions. You can skip the test step if needed, and re-try it at any time. 3. Select data models to [enrich your events](/docs/unify/linked-profiles/linked-events/) with. 4. Set up the data mapping from the Segment format to the destination tool format. -- You can click the Source field, then select previously configured Enrichments from the Event Properties tab. -5. Test the mapping with data from a sample event. - The edit panel shows you the mapping output in the format for the destination tool. The **Select Object** option sends the entire object from the event, while the **Edit Object** option lets you map each individual property. You can change your mapping as needed and re-test. + - You can click the Source field, then select previously configured Enrichments from the Event Properties tab. +5. Test the mapping with data from a sample event. The edit panel shows you the mapping output in the format for the destination tool. The **Select Object** option sends the entire object from the event, while the **Edit Object** option lets you map each individual property. You can change your mapping as needed and re-test. 6. When you're satisfied with the mapping, click **Save**. Segment returns you to the Mappings table. 7. In the Mappings table **Status** column, verify that the **Enabled** toggle is on for the mapping you just customized. -> info "" -> The required fields for a destination mapping appear automatically. Click the + sign to see optional fields. +The required fields for a destination mapping appear automatically. Click **+** to see optional fields. -## Suggested mappings +## Suggested Mappings > info "" -> Suggested mappings is fully available for RETL mappings, and is in public beta for event streams and connections. +> Suggested Mappings is fully available for RETL mappings, and is in public beta for event streams and connections. -Segment offers suggested mappings that automatically propose relevant destination fields for both model columns and payload elements. For example, if your model includes a column or payload field named `transaction_amount`, the feature might suggest mapping it to a destination field like `Amount` or `TransactionValue`. This automation, powered by intelligent autocompletion, matches and identifies near-matching field names to streamline the setup. For more information, see [Segment's suggested mappings blogpost](https://segment.com/blog/ai-assisted-magical-mappings/){:target="_blank”} and the [Suggested Mappings Nutrition Label](/docs/connections/reverse-etl/suggested-mappings-nutrition-facts). +Segment offers suggested mappings that automatically propose relevant destination fields for both model columns and payload elements. For example, if your model includes a column or payload field named `transaction_amount`, the feature might suggest mapping it to a destination field like `Amount` or `TransactionValue`. This automation, powered by intelligent autocompletion, matches and identifies near-matching field names to streamline the setup. -> warning "" -> Review the suggested mappings for accuracy before finalizing them as the suggestions aren't guaranteed to be 100% accurate. +To use Suggested Mappings, the workspace owner must first accept the Customer AI Terms and Conditions. Ensure that you review the suggested mappings for accuracy before finalizing them as the suggestions are not guaranteed to be 100% accurate. + +For more information, see [Segment's Suggested Mappings blogpost](https://segment.com/blog/ai-assisted-magical-mappings/){:target="_blank”} and the [Suggested Mappings Nutrition Label](/docs/connections/reverse-etl/suggested-mappings-nutrition-facts). ## Static values -Segment supports 4 static value types in Destination Actions mappings: string, boolean, number, and null. -* To create a string static value, type the string directly into the input field. -* To create boolean, number, and null values, use the **Static values** tab to create the appropriate static value based on its type. +Segment supports 4 static value types in Destination Actions mappings: `string`, `boolean`, `number`, and `null`. +* To create a `string` static value, type the string directly into the input field. +* To create `boolean`, `number`, and `null` values, use the **Static values** tab to create the appropriate static value based on its type. ## Functions In Destination Actions mappings, functions transform event data before it sends to the destination. This enables custom data handling, such as selecting non-null values or formatting fields. ### Coalesce function -The coalesce function takes a primary value and uses it if it is available. If the value isn't available, the function uses the fallback value instead. +The Coalesce function takes a primary value and uses it if it is available. If the value isn't available, the function uses the fallback value instead. ### Case function -The case function allows you to change the casing of a given string value. +The Case function allows you to change the casing of a given string value. ### JSON function @@ -224,15 +226,15 @@ The JSON function allows you to convert an object or array to a JSON encoded str ### Flatten function -The flatten function allows you to flatten a nested object to an object with a depth of 1. Keys are delimited by the configured separator. For example, an object like {a: { b: { c: 1 }, d: 2 } } will be converted to { 'a.b.c': 1, 'a.d': 2 }. +The Flatten function allows you to flatten a nested object to an object with a depth of 1. Keys are delimited by the configured separator. For example, an object like {a: { b: { c: 1 }, d: 2 } } will be converted to { 'a.b.c': 1, 'a.d': 2 }. ### Replace function -The replace function allows you to replace a string, integer, or boolean with a new value. You have the option to replace up to two values within a single field. +The Replace function allows you to replace a `string`, `integer`, or `boolean` with a new value. You have the option to replace up to 2 values within a single field. ### Concatenate function -To combine 2 values in the event variable field, you can concatenate them using plain text and variables together. For example, to prepend the country code to a phone number, enter `+1{{Phone Number}}`. Segment evaluates this field as a string, so placing text next to a variable automatically concatenates them. +To combine 2 values in the event variable field, you can concatenate them using plain text and variables together. For example, to prepend the country code to a phone number, enter `+1{{Phone Number}}`. Segment evaluates this field as a `string`, so placing text next to a variable automatically concatenates them. You can't concatenate event variables and plain text with static values and functions. Adding a static value or function into an input field replaces any previously added event variables and plain text. @@ -241,7 +243,7 @@ You can't concatenate event variables and plain text with static values and func ## Conditions > info "" -> Self-service users can add a maximum of two conditions per Trigger. +> Self-service users can add a maximum of 2 conditions per Trigger. Mapping fields are case-sensitive. The following type filters and operators are available to help you build conditions: @@ -249,8 +251,7 @@ Mapping fields are case-sensitive. The following type filters and operators are - **Event name** (`is`, `is not`, `contains`, `does not contain`, `starts with`, `ends with`). Use these filters to find events that match a specific name, regardless of the event type. - **Event property** (`is`, `is equals to`, `is not`, `is not equals to`, `less than`, `less than or equal to`, `greater than`, `greater than or equal to`, `contains`, `does not contain`, `starts with`, `ends with`, `exists`, `does not exist`). Use these filters to trigger the action only when an event with a specific property occurs. - You can specify nested properties using dot notation, for example `context.app.name`. If the property might appear in more than one format or location, you can use an ANY statement and add conditions for each of those formats. For example, you might filter for both `context.device.type = ios` as well as `context.os.name = "iPhone OS``"` - The `does` `not exist` operator matches both a `null` value or a missing property. +You can specify nested properties using dot notation, for example `context.app.name`. If a property might appear in multiple formats or locations, you can use an `ANY` statement and add conditions for each of those formats. For example, you might filter for both `context.device.type = ios` and `context.os.name = "iPhone OS "`. The `does not exist` operator matches both a `null` value or a missing property. {% comment %} > info "Valid property and trait values" @@ -275,20 +276,22 @@ The available operators depend on the property's data type: | string or numeric | `is less than`, `is less than or equal to`, `is greater than`, `is greater than or equal to` | | boolean | `is true`, `is false` | -You can combine criteria in a single group using **ALL** or **ANY**. Use an ANY to “subscribe” to multiple conditions. Use ALL when you need to filter for very specific conditions. You can only create one group condition per destination action. You cannot created nested conditions. +You can combine criteria in a single group using **`ALL`** or **`ANY`**. Use an `ANY` to “subscribe” to multiple conditions. Use `ALL` when you need to filter for very specific conditions. You can only create one group condition per destination action. You cannot created nested conditions. > info "Unsupported special characters in trigger fields" > Trigger fields don't support double quotes (`"`) or the tilde (`~`) character. -> info "Mapping field limitations" -> In **destination** fields, you can use dot notation to create nested objects and arrays (for example, `info.name` or `info[0].email`), unless the field is enclosed in double quotes (for example, `"user.email"` creates a literal key, not a nested structure). In **source**, dots are only supported for accessing object keys. Literal strings that include a dot (like `user.email`) aren't supported as property names. +## Mapping field limitations +In **destination** fields, you can use dot notation to create nested objects and arrays, such as `info.name` or `info[0].email`. This is not the case if the field is enclosed in double quotes. For example, `"user.email"` creates a literal key, not a nested structure. -> info "Destination Filters" -> Destination filters are compatible with Destination Actions. Consider a Destination Filter when: -> - You need to remove properties from the data sent to the destination -> - You need to filter data from multiple types of call (for example, Track, Page, and Identify calls) -> -> If your use case does not match these criteria, you might benefit from using Mapping-level Triggers to match only certain events. +In **source** fields, dots are only supported for accessing object keys. Literal strings that include a dot, like `user.email`, aren't supported as property names. + +## Destination Filters +Destination Filters are compatible with Destination Actions. Consider a Destination Filter when: +- You need to remove properties from the data sent to the destination. +- You need to filter data from multiple types of call, for example, Track, Page, and Identify calls. + +If your use case does not match these criteria, you might benefit from using Mapping-level Triggers to match only certain events. ## Duplicate Mappings @@ -304,38 +307,42 @@ To duplicate your mappings: Segment creates a disabled mapping with the name "Original Mapping Name (Copy)". You must enable the mapping for data to flow. +## FAQs and troubleshooting -## FAQ and troubleshooting +#### Why does a validation error appears when using the Event Tester? -### Validation error when using the Event Tester +When you send an event with an actions destination Event Tester that doesn't match the trigger of any configured and enabled mappings, an error message that states `You may not have any subscriptions that match this event` will appear. -When you send an event with an actions destination Event Tester that doesn't match the trigger of any configured and enabled mappings, you'll see an error message that states, *You may not have any subscriptions that match this event.* To resolve the error, create a mapping with a trigger to handle the event being tested, or update the test event's payload to match the trigger of any existing mappings. +To resolve the error, create a mapping with a trigger to handle the event being tested, or update the test event's payload to match the trigger of any existing mappings. -### Data not sending downstream +#### Why is the data not sending downstream? -If no mappings are enabled to trigger on an event that has been received from the connected source, the destination will not send any events. Ensure that at least one mapping has been configured and enabled in the destination mappings for an event that you would like to reach downstream. +If no mappings are enabled to trigger on an event that has been received from the connected source, the destination will not send any events. Ensure that at least 1 mapping has been configured and enabled in the destination mappings for an event that you would like to reach downstream. > info "" > Events without mappings enabled to handle them display as being discarded due to "No matching mapping" in a destination's Delivery Overview. -### Multiple mappings triggered by the same event +#### Why are multiple mappings triggered by the same event? + +When an event triggers multiple mappings, a request is generated for each mapping configured to trigger on the event. For example, if two mappings are enabled for the `Subscription Updated` event and both mappings have conditions defined to trigger on the 'Subscription Updated' event, two requests will be generated and sent to the destination for each event - one for each mapping. -When the same event triggers multiple mappings, a request will be generated for each mapping that's configured to trigger on an event. For example, for the *Subscription Updated* event, if two mappings are enabled and both have conditions defined to trigger on the *Subscription Updated* event, the two requests will be generated and sent to the destination for each *Subscription Updated* event. +#### Why is an OAuth "access token expired" message appearing in Segment? +Access tokens generated during initial authorization are short-lived, for example, when you connect a destination via OAuth. The token typically remains valid for 30 minutes to 1 hour. When Segment receives a `401 error` response from a destination after a token expires, it will automatically request the destination for a new token and will then retry the event. Therefore, `401` responses are sometimes expected and do not indicate an event failure. There are 3 event flows when events are received and sent to a destination: -### Oauth "access token expired" message shown in Segment UI -Access Tokens that were generated from initial authorization, for example, when you connect a destination via Oauth, are always short-lived. Commonly, the token remains valid for 30 minutes to 1 hour. When Segment receives 401 error responses from the destination after a token has expired, it will automatically make another request to the destination for a new token and will then retry the event. Therefore, 401 responses are sometimes expected and do not indicate an event failure. There are three event flows when events are received and sent to a destination: +- through source. +- through event tester. +- through actions tester in mapping screen. -- through source -- through event tester -- through actions tester in mapping screen +The underlying systems for these flows have their own copy of the token, which can expire at different points in time. If you see a `401` error in a sample response, it is likely that another request was made afterward to fetch a new token. Then one more request was made to actually send the data in your payload to the downstream destination. -The underlying systems for these flows have their own copy of the token, which can expire at different points in time. -Threfore, if you see a 401 error in a sample response, it is likely that you’ll also see another request was made after it, to ask the downstream destination for a new token. Then one more request was made to actually send the data in your payload to the downstream destination. +#### Is it possible to map a field from one event to another? -### Is it possible to map a field from one event to another? +No. Segment integrations process events through mappings individially. This means that no context is held that would allow you to map a value from one event to the field of a subsequent event. -Segment integrations process events through mappings individially. This means that no context is held that would allow you to map a value from one event to the field of a subsequent event. Each event itself must contain all of the data you'd like to send downstream in regards to it. For example, you cannot send `email` in on an Identify call and then access that same `email` field on a Track call that comes in later if that Track call doesn't also have `email` set on it. +Each event must include all of the data you'd like to send downstream. For example, you can't send `email` field in an Identify call and then access it later on a Track unless that Track call also includes the `email` field. -### I'm getting a 'Couldn't load page' error when viewing or editing a mapping +#### Why do I get a "Couldn't load page" error when viewing or editing a mapping? -This issue can occur due to a browser cache conflict or if an event property name includes a `/`. To resolve it, try clearing your browser cache or accessing the mapping page in an incognito window. Additionally, check if the mapped property name contains a `/`. If it does, rename the property to remove the `/` and update the mapping. +This error might occur due to a browser cache conflict or if an event property name includes a `/` character. To fix this: +- Try clearing your browser cache or opening the mapping page in an incognito/ private window. +- Check whether the mapped property name contains a `/`. If it does, rename the property to remove the `/` and update the mapping. From 53272cf2e8a1e5c0b73ec89edf0ed63c525a2c92 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 9 Jul 2025 17:57:35 +0100 Subject: [PATCH 284/438] Update actions [netlify-build] From b87bd1d8800b58ded10d0e07be19a26a298650f2 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 9 Jul 2025 18:47:44 +0100 Subject: [PATCH 285/438] Added integrations and consent behaviors [DOC-1144] --- src/guides/what-is-replay.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/guides/what-is-replay.md b/src/guides/what-is-replay.md index 2d29e99b29..31596329c2 100644 --- a/src/guides/what-is-replay.md +++ b/src/guides/what-is-replay.md @@ -19,11 +19,11 @@ This means you can send a limited sample of your data to a new tool to test it o With Replays, you're protected from outages and errors. If a destination which you rely on experiences an outage, or is temporarily unable to accept incoming data, you can use Replays to re-send data to that tool once the service recovers. You can also use Replays to recover from errors caused by misconfigurations in your Segment systems. For example, if you send data in the wrong format, or want to apply [destination filters](/docs/connections/destinations/destination-filters/). In this case, you can change your mapping using a destination filter, clear out the bad data, and replay it to that destination. You can also use this to update the schema in your data warehouse when it changes. -For more information, [Contact us](https://segment.com/help/contact/) and our Success Engineers will walk you through the process. +For more information, [contact Segment support](https://segment.com/help/contact/). ## Replays considerations -Replays are currently only available for Business Tier customers, and due to their complex nature are not self-serve. [Contact us](https://segment.com/help/contact/) to learn more, or to request a replay for your workspace. When requesting a replay, include the workspace, the source to replay from, the destination tool or tools, and the time period. +Replays are currently only available for Business Tier customers, and due to their complex nature are not self-serve. [Contact Segment support](https://segment.com/help/contact/) to learn more, or to request a replay for your workspace. When requesting a replay, include the workspace, the source to replay from, the destination tool or tools, and the time period. Replays can process unlimited data, but they're rate limited to respect limitations in downstream partner tools. If you're also sending data to the destination being replayed to in real time, then, when determining your replay's limit, you'll want to take into account the rate limit being used by real-time events. You should also account for a small margin of your rate limit to allow events to be retried. @@ -38,13 +38,19 @@ You can initiate replays for some or all events, but you can't apply conditional The destination is not required to be enabled in order for a replay to be successful, including Destination Functions. - The destination must be connected to the source, but can remain disabled while the replay is running. - Destination filters are still considered when you run replays on disabled destinations. -- There are a few exceptions for destinations that must be enabled for the replay to be successful : Amazon S3 and Google Cloud Source (GCS). +- There are a few exceptions for destinations that must be enabled for the replay to be successful: Amazon S3 and Google Cloud Source (GCS). ### Replay-eligible destinations Replays are available for any destinations which support cloud-mode data (meaning data routed through Segment) and which also process timestamps. Destinations that are only available in device-mode (meaning where data is sent directly from the users' devices to the destination tool) cannot receive Replays. -Not all destinations support data deduplication, so you may need to delete, archive, or remove any older versions of the data before initiating a replay. [contact Segment support](https://segment.com/help/contact/){:target="_blank"} if you have questions or want help. +Not all destinations support data deduplication, so you may need to delete, archive, or remove any older versions of the data before initiating a replay. [Contact Segment support](https://segment.com/help/contact/){:target="_blank"} if you have questions or want help. + +#### What happens to `integrations` and `consent` objects during a replay? + +When Segment replays events, it does not retain the original `integrations` object flag, but it does preserve the `consent` object. + +During replays, Segment replaces the `integrations` object with a structure that includes `All:false` and `[integration name]:true`. As a result, the original 'integrations' flag is removed during replay. However, the replay tool does not overwrite the original `consent` object. If an event was previously dropped for a specific destination due to the `consent` object, the event is dropped within Segment again during replay. ### Replays & Destination Filters From 4b9f140b10ffc18e41a64ac921e6b9e6afb678ec Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 9 Jul 2025 18:50:45 +0100 Subject: [PATCH 286/438] wording tweak --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 322eb4cfe6..2e0f1e073f 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -339,7 +339,7 @@ The underlying systems for these flows have their own copy of the token, which c No. Segment integrations process events through mappings individially. This means that no context is held that would allow you to map a value from one event to the field of a subsequent event. -Each event must include all of the data you'd like to send downstream. For example, you can't send `email` field in an Identify call and then access it later on a Track unless that Track call also includes the `email` field. +Each event must include all of the data you'd like to send downstream. For example, you can't send an `email` field in an Identify call and then access it later on a Track call unless that Track call also includes the `email` field. #### Why do I get a "Couldn't load page" error when viewing or editing a mapping? From 4019716fb3d4c53e7f5c94b3c9c08f6a6f0cf6f0 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 9 Jul 2025 13:33:43 -0700 Subject: [PATCH 287/438] removed mentions of Azure Data Lakes --- .../storage/catalog/data-lakes/index.md | 324 +----------------- src/connections/storage/data-lakes/index.md | 48 +-- 2 files changed, 6 insertions(+), 366 deletions(-) diff --git a/src/connections/storage/catalog/data-lakes/index.md b/src/connections/storage/catalog/data-lakes/index.md index 9d96da8d11..d05220b839 100644 --- a/src/connections/storage/catalog/data-lakes/index.md +++ b/src/connections/storage/catalog/data-lakes/index.md @@ -7,9 +7,7 @@ redirect_from: {% include content/plan-grid.md name="data-lakes" %} Segment Data Lakes provide a way to collect large quantities of data in a format that's optimized for targeted data science and data analytics workflows. You can read [more information about Data Lakes](/docs/connections/storage/data-lakes/) and learn [how they differ from Warehouses](/docs/connections/storage/data-lakes/comparison/) in Segment's Data Lakes documentation. -Segment supports two type of data-lakes: -- [AWS Data Lakes](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes) -- [Segment Data Lakes (Azure)](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes-azure) +Segment only supports [AWS Data Lakes](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes). > success "" > You can also set up your Segment Data Lakes using [Lake Formation](/docs/connections/storage/data-lakes/lake-formation/), a fully managed service built on top of the AWS Glue Data Catalog. @@ -83,302 +81,6 @@ Replay processing time can vary depending on the volume of data and number of ev Segment creates a separate EMR cluster to run replays, then destroys it when the replay finishes. This ensures that regular Data Lakes syncs are not interrupted, and helps the replay finish faster. -## Set up Segment Data Lakes (Azure) - -To set up Segment Data Lakes (Azure), create your Azure resources and then enable the Data Lakes destination in the Segment app. - -### Prerequisites - -Before you can configure your Azure resources, you must complete the following prerequisites: -- [Create an Azure subscription](https://azure.microsoft.com/en-us/free/){:target="_blank”} -- [Create an Azure resource group](https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/manage-resource-groups-portal#create-resource-groups){:target="_blank”} -- Create an account with `Microsoft.Authorization/roleAssignments/write` permissions -- Configure the [Azure Command Line Interface (Azure CLI)](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli){:target="_blank”} - -### Step 1 - Create an ALDS-enabled storage account - -1. Sign in to your [Azure environment](https://portal.azure.com){:target="_blank”}. -2. From the [Azure home page](https://portal.azure.com/#home){:target="_blank”}, select **Create a resource**. -3. Search for and select **Storage account**. -4. On the Storage account resource page, select the **Storage account** plan and click **Create**. -5. On the **Basic** tab, select an existing subscription and resource group, give your storage account a name, and update any necessary instance details. -6. Click **Next: Advanced**. -7. On the **Advanced Settings** tab in the Security section, select the following options: - - Require secure transfer for REST API operations - - Enable storage account key access - - Minimum TLS version: Version 1.2 -8. In the Data Lake Storage Gen2 section, select **Enable hierarchical namespace**. In the Blob storage selection, select the **Hot** option. -9. Click **Next: Networking**. -10. On the **Networking** page, select **Disable public access and use private access**. -11. Click **Review + create**. Take note of your location and storage account name, and review your chosen settings. When you are satisfied with your selections, click **Create**. -12. After your resource is deployed, click **Go to resource**. -13. On the storage account overview page, select the **Containers** button in the Data storage tab. -14. Select **Container**. Give your container a name, and select the **Private** level of public access. Click **Create**. - -> warning " " -> Before continuing, note the Location, Storage account name, and the Azure storage container name: you'll need this information when configuring the Segment Data Lakes (Azure) destination in the Segment app. - -### Step 2 - Set up Key Vault - -1. From the [home page of your Azure portal](https://portal.azure.com/#home){:target="_blank”}, select **Create a resource**. -2. Search for and select **Key Vault**. -3. On the Key Vault resource page, select the **Key Vault** plan and click **Create**. -4. On the **Basic** tab, select an existing subscription and resource group, give your Key Vault a name, and update the **Days to retain deleted vaults** setting, if desired. -5. Click **Review + create**. -6. Review your chosen settings. When you are satisfied with your selections, click **Review + create**. -7. After your resource is deployed, click **Go to resource**. -8. On the Key Vault page, select the **Access control (IAM)** tab. -9. Click **Add** and select **Add role assignment**. -10. On the **Roles** tab, select the `Key Vault Secrets User` role. Click **Next**. -11. On the **Members** tab, select a **User, group, or service principal**. -12. Click **Select members**. -13. Search for and select the `Databricks Resource Provider` service principal. -14. Click **Select**. -15. Under the **Members** header, verify that you selected the Databricks Resource Provider. Click **Review + assign**. - -### Step 3 - Set up Azure MySQL database - -1. From the [home page of your Azure portal](https://portal.azure.com/#home){:target="_blank”}, select **Create a resource**. -2. Search for and select **Azure Database for MySQL**. -3. On the Azure Database for MySQL resource page, select the **Azure Database for MySQL** plan and click **Create**. -4. Select **Single server** and click **Create**. -5. On the **Basic** tab, select an existing subscription and resource group, enter server details and create an administrator account. Due to the configurations required for the setup, Data Lakes supports MySQL version **5.7** only. Before you proceed, please ensure you have the correct MySQL server version selected. -6. Click **Review + create**. -7. Review your chosen settings. When you are satisfied with your selections, click **Create**. -8. After your resource is deployed, click **Go to resource**. -9. From the resource page, select the **Connection security** tab. -10. Under the Firewall rules section, select **Yes** to allow access to Azure services, and click the **Allow current client IP address (xx.xxx.xxx.xx)** button to allow access from your current IP address. -11. Click **Save** to save the changes you made on the **Connection security** page, and select the **Server parameters** tab. -12. Update the `lower_case_table_names` value to 2, and click **Save**. -13. Select the **Overview** tab and click the **Restart** button to restart your database. Restarting your database updates the `lower_case_table_name` setting. -14. Once the server restarts successfully, open your Azure CLI. -15. Sign into the MySQL server from your command line by entering the following command: - ```curl - mysql --host=/[HOSTNAME] --port=3306 --user=[USERNAME] --password=[PASSWORD] - ``` -16. Run the `CREATE DATABASE` command to create your Hive Metastore: - ```sql - CREATE DATABASE ; - ``` - -> warning " " -> Before continuing, note the MySQL server URL, username and password for the admin account, and your database name: you'll need this information when configuring the Segment Data Lakes (Azure) destination in the Segment app. - - -### Step 4 - Set up Databricks - -> info "Databricks pricing tier" -> If you create a Databricks instance only for Segment Data Lakes (Azure) usage, only the standard pricing tier is required. However, if you use your Databricks instance for other applications, you may require premium pricing. - -1. From the [home page of your Azure portal](https://portal.azure.com/#home){:target="_blank”}, select **Create a resource**. -2. Search for and select **Azure Databricks**. -3. On the Azure Database for MySQL resource page, select the **Azure Databricks** plan and click **Create**. -4. On the **Basic** tab, select an existing subscription and resource group, enter a name for your workspace, select the region you'd like to house your Databricks instance in, and select a pricing tier. For those using the Databricks instance only for Segment Data Lakes (Azure), a Standard pricing tier is appropriate. If you plan to use your Databricks instance for more than just Segment Data Lakes (Azure), you may require the premium pricing tier. -5. Click **Review + create**. -6. Review your chosen settings. When you are satisfied with your selections, click **Create**. -7. After your resource is deployed, click **Go to resource**. -8. On the Azure Databricks Service overview page, click **Launch Workspace**. -9. On the Databricks page, select **Create a cluster**. -10. On the Compute page, select **Create Cluster**. -11. Enter a name for your cluster and select the `Standard_DS4_v2` worker type. Set the minimum number of workers to 2, and the maximum number of workers to 8. __Segment recommends deselecting the "Terminate after X minutes" setting, as the time it takes to restart a cluster may delay your Data Lake syncs.__ -12. Click **Create Cluster**. -13. Open [your Azure portal](https://portal.azure.com/#home){:target="_blank”} and select the Key Vault you created in a previous step. -14. On the Key Vault page, select the JSON View link to view the Resource ID and vaultURI. Take note of these values, as you'll need them in the next step to configure your Databricks instance. -15. Open `https://#secrets/createScope` and enter the following information to connect your Databricks instance to the Key Vault you created in an earlier step: - - **Scope Name**: Set this value to `segment`. - - **Manage Principal**: Select **All Users**. - - **DNS Name**: Set this value to the Vault URI of your Key Vault instance. - - **Resource ID**: The Resource ID of your Azure Key Vault instance. -16. When you've entered all of your information, click **Create**. - -> warning " " -> Before continuing, note the Cluster ID, Workspace name, Workspace URL, and the Azure Resource Group for your Databricks Workspace: you'll need this information when configuring the Segment Data Lakes (Azure) destination in the Segment app. - -### Step 5 - Set up a Service Principal - -1. Open the Databricks instance you created in [Step 4 - Set up Databricks](#step-4---set-up-databricks). -2. Click **Settings** and select **User settings**. -3. On the Access tokens page, click **Generate new token**. -4. Enter a comment for your token, select the lifetime of your ticket, and click **Generate**. -5. Copy your token, as you'll use this to add your service principal to your workspace. -6. Open your Azure CLI and create a new service principal using the following commands:
      -``` powershell -az login -az ad sp create-for-rbac --name -``` -7. In your Azure portal, select the Databricks instance you created in [Step 4 - Set up Databricks](#step-4---set-up-databricks). -8. On the overview page for your Databricks instance, select **Access control (IAM)**. -9. Click **Add** and select **Add role assignment**. -10. On the **Roles** tab, select the `Managed Application Operator` role. Click **Next**. -11. On the **Members** tab, select a **User, group, or service principal**. -12. Click **Select members**. -13. Search for and select the Service Principal you created above. -14. Click **Select**. -15. Under the **Members** header, verify that you selected your Service Principal. Click **Review + assign**. -16. Return to the Azure home page. Select your storage account. -17. On the overview page for your storage account, select **Access control (IAM)**. -18. Click **Add** and select **Add role assignment**. -19. On the **Roles** tab, select the `Storage Blob Data Contributor` role. Click **Next**. -20. On the **Members** tab, select a **User, group, or service principal**. -21. Click **Select members**. -22. Search for and select the Service Principal you created above. -23. Click **Select**. -24. Under the **Members** header, verify that you selected your Service Principal. Click **Review + assign**. -25. Open your Key Vault. In the sidebar, select **Secrets**. -26. Click **Generate/Import**. -27. On the Create a secret page, select **Manual**. Enter the name `spsecret` for your secret, and enter the name of the secret you created in Databricks in the **Value** field. -28. From your Azure CLI, call the Databricks SCIM API to add your service principal to your workspace, replacing ` `with the URL of your Databricks workspace, ` `with the access token you created in an earlier step, and `` with the client ID of your service principal:
      -```curl -curl -X POST 'https:///api/2.0/preview/scim/v2/ServicePrincipals' \ - --header 'Content-Type: application/scim+json' \ - --header 'Authorization: Bearer ' \ - --data-raw '{ - "schemas":[ - "urn:ietf:params:scim:schemas:core:2.0:ServicePrincipal" - ], - "applicationId":"", - "displayName": "test-sp", - "entitlements":[ - { - "value":"allow-cluster-create" - } - ] - }' -``` -29. Open Databricks and navigate to your cluster. Select **Permissions**. -30. In the permissions menu, grant your service principal **Can Manage** permissions. - -> warning " " -> Before continuing, note the Client ID and Client Secret for your Service Principal: you'll need this information when configuring the Segment Data Lakes (Azure) destination in the Segment app. - -### Step 6 - Configure Databricks Cluster - -> warning "Optional configuration settings for log4j vulnerability" -> While Databricks released a statement that clusters are likely unaffected by the log4j vulnerability, out of an abundance of caution, Databricks recommends updating to log4j 2.15+ or adding the following options to the Spark configuration:
      `spark.driver.extraJavaOptions "-Dlog4j2.formatMsgNoLookups=true"`
      `spark.executor.extraJavaOptions "-Dlog4j2.formatMsgNoLookups=true"` - -1. Connect to a [Hive metastore](https://docs.databricks.com/data/metastores/external-hive-metastore.html){:target="_blank”} on your Databricks cluster using the following Spark configuration, replacing the variables (``) with information from your workspace:
      -```py -## Configs so we can read from the storage account -spark.hadoop.fs.azure.account.oauth.provider.type..dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider -spark.hadoop.fs.azure.account.oauth2.client.endpoint..dfs.core.windows.net https://login.microsoftonline.com//oauth2/token -spark.hadoop.fs.azure.account.oauth2.client.secret..dfs.core.windows.net -spark.hadoop.fs.azure.account.auth.type..dfs.core.windows.net OAuth -spark.hadoop.fs.azure.account.oauth2.client.id..dfs.core.windows.net -## -## -spark.hadoop.javax.jdo.option.ConnectionDriverName org.mariadb.jdbc.Driver -spark.hadoop.javax.jdo.option.ConnectionURL jdbc:mysql://:/?useSSL=true&requireSSL=true&enabledSslProtocolSuites=TLSv1.2 -spark.hadoop.javax.jdo.option.ConnectionUserName -spark.hadoop.javax.jdo.option.ConnectionPassword -## -## -## -spark.hive.mapred.supports.subdirectories true -spark.sql.storeAssignmentPolicy Legacy -mapreduce.input.fileinputformat.input.dir.recursive true -spark.sql.hive.convertMetastoreParquet false -## -datanucleus.autoCreateSchema true -datanucleus.autoCreateTables true -spark.sql.hive.metastore.schema.verification false -datanucleus.fixedDatastore false -## -spark.sql.hive.metastore.version 2.3.7 -spark.sql.hive.metastore.jars builtin -``` - -3. Log in to your Databricks instance and open your cluster. -4. On the overview page for your cluster, select **Edit**. -5. Open the **Advanced options** toggle and paste the Spark config you copied above, replacing the variables (``) with information from your workspace. -6. Select **Confirm and restart**. On the popup window, select **Confirm**. -7. Log in to your Azure MySQL database using the following command:
      -```curl -mysql --host=[HOSTNAME] --port=3306 --user=[USERNAME] --password=[PASSWORD] -``` -8. Once you've logged in to your MySQL database, run the following commands:
      -```sql -USE -INSERT INTO VERSION (VER_ID, SCHEMA_VERSION) VALUES (0, '2.3.7'); -``` -9. Log in to your Databricks cluster. -10. Click **Create** and select **Notebook**. -11. Give your cluster a name, select **SQL** as the default language, and make sure it's located in the cluster you created in [Step 4 - Set up Databricks](#step-4---set-up-databricks). -12. Click **Create**. -13. On the overview page for your new notebook, run the following command:
      -```sql -CREATE TABLE test (id string); -``` -14. Open your cluster. -15. On the overview page for your cluster, select **Edit**. -16. Open the **Advanced options** toggle and paste the following code snippet:
      -```py -datanucleus.autoCreateSchema false -datanucleus.autoCreateTables false -spark.sql.hive.metastore.schema.verification true -datanucleus.fixedDatastore true -``` -17. Select **Confirm and restart**. On the popup window, select **Confirm**. - -### Step 7 - Enable the Data Lakes destination in the Segment app - -After you set up the necessary resources in Azure, the next step is to set up the Data Lakes destination in Segment: - -1. In the [Segment App](https://app.segment.com/goto-my-workspace/overview){:target="_blank”}, click **Add Destination**. -2. Search for and select **Segment Data Lakes (Azure)**. -2. Click the **Configure Data Lakes** button, and select the source you'd like to receive data from. Click **Next**. -3. In the **Connection Settings** section, enter the following values: - - **Azure Storage Account**: The name of the Azure Storage account that you set up in [Step 1 - Create an ALDS-enabled storage account](#step-1---create-an-alds-enabled-storage-account). - ![img.png](images/storageaccount.png) - - **Azure Storage Container**: The name of the Azure Storage Container you created in [Step 1 - Create an ALDS-enabled storage account](#step-1---create-an-alds-enabled-storage-account). - ![img_1.png](images/storagecontainer.png) - - **Azure Subscription ID**: The ID of your [Azure subscription](https://docs.microsoft.com/en-us/azure/azure-portal/get-subscription-tenant-id){:target="_blank”}.
      Please add it as it is in the Azure portal, in the format `********-****-****-****-************` - - **Azure Tenant ID**: The Tenant ID of your [Azure Active directory](https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/active-directory-how-to-find-tenant){:target="_blank”}.
      Please add it as it is in the Azure portal, in the format `********-****-****-****-************` - - **Databricks Cluster ID**: The ID of your [Databricks cluster](https://docs.databricks.com/workspace/workspace-details.html#cluster-url-and-id){:target="_blank”}. - - **Databricks Instance URL**: The ID of your [Databricks workspace](https://docs.databricks.com/workspace/workspace-details.html#workspace-instance-names-urls-and-ids){:target="_blank”}.
      The correct format for adding the URL is 'adb-0000000000000000.00.azureatabricks.net' - - **Databricks Workspace Name**: The name of your [Databricks workspace](https://docs.databricks.com/workspace/workspace-details.html#workspace-instance-names-urls-and-ids){:target="_blank”}. - - **Databricks Workspace Resource Group**: The resource group that hosts your Azure Databricks instance. This is visible in Azure on the overview page for your Databricks instance. - - **Region**: The location of the Azure Storage account you set up in [Step 1 - Create an ALDS-enabled storage account](#step-1---create-an-alds-enabled-storage-account). - - **Service Principal Client ID**: The Client ID of the Service Principal that you set up in [Step 5 - Set up a Service Principal](#step-5---set-up-a-service-principal). - - **Service Principal Client Secret**: The Secret for the Service Principal that you set up in [Step 5 - Set up a Service Principal](#step-5---set-up-a-service-principal). - - -### (Optional) Set up your Segment Data Lake (Azure) using Terraform - -Instead of manually configuring your Data Lake, you can create it using the script in the [`terraform-segment-data-lakes`](https://github.com/segmentio/terraform-segment-data-lakes){:target="_blank”} GitHub repository. - -> warning "" -> This script requires Terraform versions 0.12+. - -Before you can run the Terraform script, create a Databricks workspace in the Azure UI using the instructions in [Step 4 - Set up Databricks](#step-4---set-up-databricks). Note the **Workspace URL**, as you will need it to run the script. - -In the setup file, set the following local variables: - -```js - -locals { -region = "" -resource_group = "" -storage_account = " -```py -spark.sql.hive.metastore.schema.verification.record.version false -``` -
      After you've added to your config, restart your cluster so that your changes can take effect. If you continue to encounter errors, [contact Segment Support](https://segment.com/help/contact/){:target="_blank"}. - -#### What do I do if I get a "Version table does not exist" error when setting up the Azure MySQL database? -Check your Spark configs to ensure that the information you entered about the database is correct, then restart the cluster. The Databricks cluster automatically initializes the Hive Metastore, so an issue with your config file will stop the table from being created. If you continue to encounter errors, [contact Segment Support](https://segment.com/help/contact/){:target="_blank"}. diff --git a/src/connections/storage/data-lakes/index.md b/src/connections/storage/data-lakes/index.md index d2a823fb09..620d6d71e8 100644 --- a/src/connections/storage/data-lakes/index.md +++ b/src/connections/storage/data-lakes/index.md @@ -19,16 +19,16 @@ Data lakes typically have four layers: ![A graphic showing the information flowing from the metadata into the query, compute, and metadata layers, and then into the storage layer](images/data_lakes_overview_graphic.png) -Segment Data Lakes sends Segment data to a cloud data store, either AWS S3 or Azure Data Lake Storage Gen2 (ADLS), in a format optimized to reduce processing for data analytics and data science workloads. Segment data is great for building machine learning models for personalization and recommendations, and for other large scale advanced analytics. Data Lakes reduces the amount of processing required to get real value out of your data. +Segment Data Lakes sends Segment data to a cloud data store, AWS S3, in a format optimized to reduce processing for data analytics and data science workloads. Segment data is great for building machine learning models for personalization and recommendations, and for other large scale advanced analytics. Data Lakes reduces the amount of processing required to get real value out of your data. > warning "Segment Data Lakes deletion policies" -> Segment Data Lakes (AWS) and Segment Data Lakes (Azure) do not support Segment's [user deletion and suppression](/docs/privacy/user-deletion-and-suppression/) capabilities, as you retain your data in systems that you manage. +> Segment Data Lakes (AWS) does not support Segment's [user deletion and suppression](/docs/privacy/user-deletion-and-suppression/) capabilities, as you retain your data in systems that you manage. To learn more about Segment Data Lakes, check out the Segment blog post [Introducing Segment Data Lakes](https://segment.com/blog/introducing-segment-data-lakes/){:target="_blank"}. ## How Data Lakes work -Segment supports Data Lakes hosted on two cloud providers: Amazon Web Services (AWS) and Microsoft Azure. Each cloud provider has a similar system for managing data, but offer different query engines, post-processing systems, and analytics options. +Segment supports Data Lakes hosted on Amazon Web Services (AWS). Each cloud provider has a similar system for managing data, but offer different query engines, post-processing systems, and analytics options. ### How Segment Data Lakes (AWS) works @@ -40,16 +40,6 @@ Segment sends data to S3 by orchestrating the processing in an EMR (Elastic MapR ![A diagram visualizing data flowing from a Segment user into your account and into a Glue catalog/S3 bucket](images/dl_vpc.png) -### How Segment Data Lakes (Azure) works - -Data Lakes store Segment data in ADLS in a read-optimized encoding format (Parquet) which makes the data more accessible and actionable. To help you zero-in on the right data, Data Lakes also creates logical data partitions and event tables, and integrates metadata with existing schema management tools, like the Hive Metastore. The resulting data set is optimized for use with systems like Power BI and Azure HDInsight or machine learning vendors like Azure Databricks or Azure Synapse Analytics. - -![A diagram showing data flowing from Segment, through DataBricks, Parquet and Azure Data Lake Storage Gen2 into the Hive Metastore, and then into your post-processing systems](images/Azure_DL_setup.png) - -## Set up Segment Data Lakes (Azure) - -For detailed Segment Data Lakes (Azure) setup instructions, see the [Data Lakes setup page](/docs/connections/storage/catalog/data-lakes/). - ### Set up Segment Data Lakes (AWS) When setting up your data lake using the [Data Lakes catalog page](/docs/connections/storage/catalog/data-lakes/), be sure to consider the EMR and AWS IAM components listed below. @@ -64,18 +54,6 @@ Data Lakes uses an IAM role to grant Segment secure access to your AWS account. - **external_ids**: External IDs are the part of the IAM role which Segment uses to assume the role providing access to your AWS account. You will define the external ID in the IAM role as the Segment Workspace ID in which you want to connect to Data Lakes. The Segment Workspace ID can be retrieved from the [Segment app](https://app.segment.com/goto-my-workspace/overview){:target="_blank"} by navigating to **Settings > General Settings > ID**. - **s3_bucket**: Name of the S3 bucket used by the Data Lake. -### Set up Segment Data Lakes (Azure) - -To connect Segment Data Lakes (Azure), you must set up the following components in your Azure environment: - -- [Azure Storage Account](/docs/connections/storage/catalog/data-lakes/#step-1---create-an-alds-enabled-storage-account): An Azure storage account contains all of your Azure Storage data objects, including blobs, file shares, queues, tables, and disks. -- [Azure KeyVault Instance](/docs/connections/storage/catalog/data-lakes/#step-2---set-up-key-vault): Azure KeyVault provides a secure store for your keys, secrets, and certificates. -- [Azure MySQL Database](/docs/connections/storage/catalog/data-lakes/#step-3---set-up-azure-mysql-database): The MySQL database is a relational database service based on the MySQL Community Edition, versions 5.6, 5.7, and 8.0. -- [Databricks Instance](/docs/connections/storage/catalog/data-lakes/#step-4---set-up-databricks): Azure Databricks is a data analytics cluster that offers multiple environments (Databricks SQL, Databricks Data Science and Engineering, and Databricks Machine Learning) for you to develop data-intensive applications. -- [Databricks Cluster](/docs/connections/storage/catalog/data-lakes/#step-6---configure-databricks-cluster): The Databricks cluster is a cluster of computation resources that you can use to run data science and analytics workloads. -- [Service Principal](/docs/connections/storage/catalog/data-lakes/#step-5---set-up-a-service-principal): Service principals are identities used to access specific resources. - -For more information about configuring Segment Data Lakes (Azure), see the [Data Lakes setup page](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes-azure). ## Data Lakes schema @@ -128,15 +106,6 @@ The schema inferred by Segment is stored in a Glue database within Glue Data Cat > info "" > The recommended IAM role permissions grant Segment access to create the Glue databases on your behalf. If you do not grant Segment these permissions, you must manually create the Glue databases for Segment to write to. -### Segment Data Lakes (Azure) schema - -Segment Data Lakes (Azure) applies a consistent schema to make raw data accessible for queries. A transformer automatically calculates the desired schema and uploads a schema JSON file for each event type to your Azure Data Lake Storage (ADLS) in the `/staging/` directory. - -Segment partitions the data in ALDS by the Segment source, event type, then the day and hour an event was received by Segment, to ensure that the data is actionable and accessible. - -The file path looks like this: -`//staging//` - ### Data types Data Lakes infers the data type for an event it receives. Groups of events are polled every hour to infer the data type for that each event. @@ -181,7 +150,7 @@ Segment doesn't support User deletions in Data Lakes, but supports [user suppres ### How does Data Lakes handle schema evolution? -As the data schema evolves, both Segment Data Lakes (AWS) and Segment Data Lakes (Azure) can detect new columns and add them to Glue Data Catalog or Azure Data Lake Storage (ADLS). However, Segment can't update existing data types. To update Segment-created data types, please reach out to [AWS Support](https://aws.amazon.com/contact-us/){:target="_blank"} or [Azure Support](https://support.microsoft.com/en-us/topic/contact-microsoft-azure-support-2315e669-8b1f-493b-5fb1-d88a8736ffe4){:target="_blank"}. +As the data schema evolves, Segment Data Lakes (AWS) can detect new columns and add them to Glue Data Catalog. However, Segment can't update existing data types. To update Segment-created data types, please reach out to [AWS Support](https://aws.amazon.com/contact-us/){:target="_blank"}. ### How does Data Lakes work with Protocols? @@ -206,9 +175,6 @@ Data Lakes offers 12 syncs in a 24 hour period and doesn't offer a custom sync s ### What is the cost to use AWS Glue? You can find details on Amazon's [pricing for Glue](https://aws.amazon.com/glue/pricing/){:target="_blank"} page. For reference, Data Lakes creates 1 table per event type in your source, and adds 1 partition per hour to the event table. -### What is the cost to use Microsoft Azure? -You can find details on Microsoft's [pricing for Azure](https://azure.microsoft.com/en-us/pricing/){:target="_blank"} page. For reference, Data Lakes creates 1 table per event type in your source, and adds 1 partition per hour to the event table. - ### What limits does AWS Glue have? AWS Glue has limits across various factors, such as number of databases per account, tables per account, and so on. See the [full list of Glue limits](https://docs.aws.amazon.com/general/latest/gr/glue.html#limits_glue){:target="_blank"} for more information. @@ -222,9 +188,3 @@ Segment stops creating new tables for the events after you exceed this limit. Ho You should also read the [additional considerations in Amazon's documentation](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hive-metastore-glue.html){:target="_blank"} when using AWS Glue Data Catalog. -### What analytics tools are available to use with Segment Data Lakes (Azure)? -Segment Data Lakes (Azure) supports the following analytics tools: - - PowerBI - - Azure HDInsight - - Azure Synapse Analytics - - Databricks From f64912c1f99f213560132294d35d721561c0e7ef Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 10 Jul 2025 12:31:04 +0100 Subject: [PATCH 288/438] target blank Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/guides/what-is-replay.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/what-is-replay.md b/src/guides/what-is-replay.md index 31596329c2..368565bcd9 100644 --- a/src/guides/what-is-replay.md +++ b/src/guides/what-is-replay.md @@ -19,7 +19,7 @@ This means you can send a limited sample of your data to a new tool to test it o With Replays, you're protected from outages and errors. If a destination which you rely on experiences an outage, or is temporarily unable to accept incoming data, you can use Replays to re-send data to that tool once the service recovers. You can also use Replays to recover from errors caused by misconfigurations in your Segment systems. For example, if you send data in the wrong format, or want to apply [destination filters](/docs/connections/destinations/destination-filters/). In this case, you can change your mapping using a destination filter, clear out the bad data, and replay it to that destination. You can also use this to update the schema in your data warehouse when it changes. -For more information, [contact Segment support](https://segment.com/help/contact/). +For more information, [contact Segment support](https://segment.com/help/contact/){:target="_blank"}. ## Replays considerations From 1a731bf1961dc6e64919fdb11c30efbe1e05d35b Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 10 Jul 2025 12:31:10 +0100 Subject: [PATCH 289/438] Update src/guides/what-is-replay.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/guides/what-is-replay.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/what-is-replay.md b/src/guides/what-is-replay.md index 368565bcd9..943fc3b20f 100644 --- a/src/guides/what-is-replay.md +++ b/src/guides/what-is-replay.md @@ -23,7 +23,7 @@ For more information, [contact Segment support](https://segment.com/help/contact ## Replays considerations -Replays are currently only available for Business Tier customers, and due to their complex nature are not self-serve. [Contact Segment support](https://segment.com/help/contact/) to learn more, or to request a replay for your workspace. When requesting a replay, include the workspace, the source to replay from, the destination tool or tools, and the time period. +Replays are currently only available for Business Tier customers, and due to their complex nature are not self-serve. [Contact Segment support](https://segment.com/help/contact/){:target="_blank"} to learn more, or to request a replay for your workspace. When requesting a replay, include the workspace, the source to replay from, the destination tool or tools, and the time period. Replays can process unlimited data, but they're rate limited to respect limitations in downstream partner tools. If you're also sending data to the destination being replayed to in real time, then, when determining your replay's limit, you'll want to take into account the rate limit being used by real-time events. You should also account for a small margin of your rate limit to allow events to be retried. From 3de1d3d56c34addc376a6c82b272fe8893068789 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 10 Jul 2025 12:34:14 +0100 Subject: [PATCH 290/438] rewording Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/guides/what-is-replay.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/what-is-replay.md b/src/guides/what-is-replay.md index 943fc3b20f..be058eb015 100644 --- a/src/guides/what-is-replay.md +++ b/src/guides/what-is-replay.md @@ -50,7 +50,7 @@ Not all destinations support data deduplication, so you may need to delete, arch When Segment replays events, it does not retain the original `integrations` object flag, but it does preserve the `consent` object. -During replays, Segment replaces the `integrations` object with a structure that includes `All:false` and `[integration name]:true`. As a result, the original 'integrations' flag is removed during replay. However, the replay tool does not overwrite the original `consent` object. If an event was previously dropped for a specific destination due to the `consent` object, the event is dropped within Segment again during replay. +During replays, Segment replaces the `integrations` object with a structure that includes `All:false` and `[integration name]:true`. As a result, Segment removes the original `integrations` flag during replay. The replay tool doesn't overwrite the original `consent` object. If an event was previously dropped for a specific destination due to the `consent` object, the event drops within Segment again during replay. ### Replays & Destination Filters From 1db4826d0adf2f0b2e6fad69643622454a7599fb Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 10 Jul 2025 12:38:29 +0100 Subject: [PATCH 291/438] removed backticks from integrations --- src/guides/what-is-replay.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/guides/what-is-replay.md b/src/guides/what-is-replay.md index be058eb015..ef3faba484 100644 --- a/src/guides/what-is-replay.md +++ b/src/guides/what-is-replay.md @@ -46,11 +46,11 @@ Replays are available for any destinations which support cloud-mode data (meanin Not all destinations support data deduplication, so you may need to delete, archive, or remove any older versions of the data before initiating a replay. [Contact Segment support](https://segment.com/help/contact/){:target="_blank"} if you have questions or want help. -#### What happens to `integrations` and `consent` objects during a replay? +#### What happens to integrations and `consent` objects during a replay? -When Segment replays events, it does not retain the original `integrations` object flag, but it does preserve the `consent` object. +When Segment replays events, it does not retain the original integrations object flag, but it does preserve the `consent` object. -During replays, Segment replaces the `integrations` object with a structure that includes `All:false` and `[integration name]:true`. As a result, Segment removes the original `integrations` flag during replay. The replay tool doesn't overwrite the original `consent` object. If an event was previously dropped for a specific destination due to the `consent` object, the event drops within Segment again during replay. +During replays, Segment replaces the 'integrations' object with a structure that includes `All:false` and `[integration name]:true`. As a result, Segment removes the original integrations flag during replay. The replay tool doesn't overwrite the original `consent` object. If an event was previously dropped for a specific destination due to the `consent` object, the event drops within Segment again during replay. ### Replays & Destination Filters From 034bd42d69362837b011817915a1c23568140870 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 10 Jul 2025 11:52:16 -0400 Subject: [PATCH 292/438] Add private and beta tags --- .../destinations/catalog/actions-ortto-audiences/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/actions-ortto-audiences/index.md b/src/connections/destinations/catalog/actions-ortto-audiences/index.md index f6163b49f2..5f1fba0dbb 100644 --- a/src/connections/destinations/catalog/actions-ortto-audiences/index.md +++ b/src/connections/destinations/catalog/actions-ortto-audiences/index.md @@ -1,6 +1,8 @@ --- title: Ortto (Audiences) Destination id: 686799c65fcebef2a98c8141 +beta: true +private: true --- {% include content/plan-grid.md name="actions" %} From 7690170dff991f07cf2f28e9cf88e871a6375bec Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 10 Jul 2025 16:54:53 +0100 Subject: [PATCH 293/438] missing backticks added --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 2e0f1e073f..c6c4b1691b 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -226,7 +226,7 @@ The JSON function allows you to convert an object or array to a JSON encoded str ### Flatten function -The Flatten function allows you to flatten a nested object to an object with a depth of 1. Keys are delimited by the configured separator. For example, an object like {a: { b: { c: 1 }, d: 2 } } will be converted to { 'a.b.c': 1, 'a.d': 2 }. +The Flatten function allows you to flatten a nested object to an object with a depth of 1. Keys are delimited by the configured separator. For example, an object like `{a: { b: { c: 1 }, d: 2 } }` will be converted to `{ 'a.b.c': 1, 'a.d': 2 }`. ### Replace function From 75b2e72b818382310000325f2d1bda64697c6b64 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 10 Jul 2025 17:41:24 +0100 Subject: [PATCH 294/438] target blank added --- .../destinations/catalog/actions-ortto-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-ortto-audiences/index.md b/src/connections/destinations/catalog/actions-ortto-audiences/index.md index 5f1fba0dbb..a6ef792f4f 100644 --- a/src/connections/destinations/catalog/actions-ortto-audiences/index.md +++ b/src/connections/destinations/catalog/actions-ortto-audiences/index.md @@ -9,7 +9,7 @@ private: true The **Ortto (Audiences)** destination allows you to send Engage Audiences from Segment to Ortto, where they can be used as [Audiences](https://help.ortto.com/a-115-working-with-audiences){:target="_blank"} for marketing automation, personalization, and reporting. -This destination is maintained by **Ortto**. For support or questions, please [contact the Ortto Support team](mailto:help@ortto.com). +This destination is maintained by **Ortto**. For support or questions, please [contact the Ortto Support team](mailto:help@ortto.com){:target="_blank"}. ## Getting started From e909f06b2aef6bcd82dd45cecc6c3a9f3b8d3f23 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 10 Jul 2025 13:18:03 -0400 Subject: [PATCH 295/438] catalog --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 514 +++++++------------ src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 2 +- 5 files changed, 192 insertions(+), 330 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index d752536048..9d1dc61343 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 2025-07-07 +# destination categories last updated 2025-07-10 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 9bc940dbeb..c8a1914d2f 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 2025-07-07 +# destination data last updated 2025-07-10 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -37744,7 +37744,7 @@ items: previous_names: - Extensible Webhook website: http://www.segment.com - status: PUBLIC_BETA + status: PUBLIC categories: - Raw Data logo: @@ -45881,7 +45881,7 @@ items: hidden: false defaultTrigger: null fields: - - id: ejWurq2rBDsCgnuu7gUkfP + - id: d8ZX5a19Xv36HNTk5SxWeP sortOrder: 0 fieldKey: eventType label: Event Type @@ -45896,7 +45896,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 49UBKvAQRCHcvU8p3bBgMU + - id: bqoumn1Za2cwqcsb7u4tv9 sortOrder: 1 fieldKey: eventProperties label: Event Properties @@ -45914,7 +45914,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mGVhUaP3RuwTsTZdpEoQPX + - id: d4ukxc9VWsrFEewLkk54PL sortOrder: 2 fieldKey: deduplicationId label: Event ID @@ -45931,7 +45931,7 @@ items: dynamic: false allowNull: false hidden: false - - id: Gjy2F7ujet3ZtFNa36vvB + - id: VBRCSArFbFmTaNmNexuD9 sortOrder: 3 fieldKey: customerId label: Customer ID @@ -45952,7 +45952,7 @@ items: dynamic: false allowNull: false hidden: false - - id: uQUG6igtnQaaHMtkBDLBPy + - id: 7dbozzEhtjFwbmQj3AEre9 sortOrder: 4 fieldKey: anonymousId label: Anonymous ID @@ -45967,7 +45967,7 @@ items: dynamic: false allowNull: false hidden: false - - id: u7Ren1bQoSKSZEX7q31aAP + - id: jmHz964gJgZF7BbQnGsL5s sortOrder: 5 fieldKey: email label: Email @@ -45990,7 +45990,7 @@ items: hidden: false defaultTrigger: event = "Signed Up" fields: - - id: vCYC98ivGTnZFPD2BdigAk + - id: kziVHoixgvK2GzbQ1NawYZ sortOrder: 0 fieldKey: customerId label: Customer ID @@ -46011,7 +46011,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8ovNDhpRH8b7ftYUSbiYuq + - id: enVaDD5pXR2utLkhcHmfEE sortOrder: 1 fieldKey: anonymousId label: Anonymous ID @@ -46026,7 +46026,7 @@ items: dynamic: false allowNull: false hidden: false - - id: w2BSBoSzA6sPjTPhxCimyP + - id: 5VYcjBeByFwwK5bAX8un46 sortOrder: 2 fieldKey: email label: Email @@ -46041,7 +46041,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9RPeb3FwcZ2PkX4kTfjwf9 + - id: 7mWFogh1knG4oBnPXG9tu8 sortOrder: 3 fieldKey: isNewCustomer label: New Customer Flag @@ -46056,7 +46056,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tRnUs96hC8qtBpDJULC5Wv + - id: ms3Vb5UwXcb3XmEoYB86YR sortOrder: 4 fieldKey: loyaltyStatus label: Loyalty Program Status @@ -46073,7 +46073,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8mSVU4ZFrZLdaQ5zhWMCQg + - id: 4CeDLqyBbfKR8MbPPk3Mgf sortOrder: 5 fieldKey: firstName label: First Name @@ -46088,7 +46088,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wmrSZxSGDkg49HzeX9x38s + - id: 2CQGvV5FaGA9TNrsZPhvYp sortOrder: 6 fieldKey: lastName label: Last Name @@ -46103,7 +46103,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pnSYzM79hHRUAnfqmXhPR1 + - id: dRZRctiaZEPpSZdoiFZvZo sortOrder: 7 fieldKey: name label: Name @@ -46118,7 +46118,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pZ8DujrjiSURj9Tgf5G72Z + - id: mZKhWaiZnd8AsnZvdMHyHW sortOrder: 8 fieldKey: age label: Age @@ -46133,7 +46133,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wtxL8ncWxq4eCaL69QZEPN + - id: rNwRi3hVNgUzpNKRHqAsiw sortOrder: 9 fieldKey: birthday label: Birthday @@ -46150,7 +46150,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2nW3vfptTX13YhyjkgTFuA + - id: 5yPzkQBn4VbvZr3R5sH3Ko sortOrder: 10 fieldKey: coupon label: Coupon Code @@ -46165,7 +46165,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9kvGtxJGeTxMBQDW5ki3XL + - id: vS2KjQwtYgtNGBJ7Zmx474 sortOrder: 11 fieldKey: attributionId label: Friendbuy Attribution ID @@ -46182,7 +46182,7 @@ items: dynamic: false allowNull: false hidden: false - - id: m7KAr3ogqs7qoA6tdMZ2Jw + - id: 9NTxhvRdYhfmaesQPr9DXB sortOrder: 12 fieldKey: referralCode label: Friendbuy Referral ID @@ -46199,7 +46199,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ijWBVDgTHCNy8m25YMVW8o + - id: xahUp79NtFA9zY9Emra6L1 sortOrder: 13 fieldKey: friendbuyAttributes label: Custom Attributes @@ -46225,7 +46225,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: 5WjHrBCkCj3edpz7bngu1L + - id: 9AEP912d257Xi9c5DujmN1 sortOrder: 0 fieldKey: orderId label: Order ID @@ -46240,7 +46240,7 @@ items: dynamic: false allowNull: false hidden: false - - id: neQbZ7y9G8D8GBmi6L7TwG + - id: kNo8MNntCJevg9EkC5gJM7 sortOrder: 1 fieldKey: amount label: Purchase Amount @@ -46255,7 +46255,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mcbEjuL8xaFp2Y5feaGzQj + - id: j15ZWtXFyANdJvk71hRi2w sortOrder: 2 fieldKey: currency label: Currency @@ -46270,7 +46270,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hRbLRY8WxGxMyXtnR4Vy2z + - id: dJ2nuUARwbXM14vvepSTda sortOrder: 3 fieldKey: coupon label: Coupon @@ -46285,7 +46285,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tTuq8xv1LZjdK429XHQQJE + - id: umiNBqS58WvUXTHehdiXGF sortOrder: 4 fieldKey: attributionId label: Friendbuy Attribution ID @@ -46302,7 +46302,7 @@ items: dynamic: false allowNull: false hidden: false - - id: d7zKntMD3XhSsyUXycTVM8 + - id: hkozD7eyipEVgargQUVYwS sortOrder: 5 fieldKey: referralCode label: Friendbuy Referral ID @@ -46319,7 +46319,7 @@ items: dynamic: false allowNull: false hidden: false - - id: f5ftrEEpvZodKvCevvxyYs + - id: 56BkojcpCkT52pA25TQSoH sortOrder: 6 fieldKey: giftCardCodes label: Gift Card Codes @@ -46334,7 +46334,7 @@ items: dynamic: false allowNull: false hidden: false - - id: r1qtFhFk8h4czXxQinHwXD + - id: bnXCmz11HimhNbtQVNCZoS sortOrder: 7 fieldKey: products label: Products @@ -46349,7 +46349,7 @@ items: dynamic: false allowNull: false hidden: false - - id: xouR34VFZfRSqVhkeydA6w + - id: 6nvbgosu9x2FaXvyXiSuJk sortOrder: 8 fieldKey: customerId label: Customer ID @@ -46370,7 +46370,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9pJKLMZLpmwU4SHnhcwmfz + - id: rC5X9PghsymRb75A2nGgmm sortOrder: 9 fieldKey: anonymousId label: Anonymous ID @@ -46385,7 +46385,7 @@ items: dynamic: false allowNull: false hidden: false - - id: kQ8ngcFNgb3f7zsHLNHzgB + - id: 66GbxZRJbF6ttB1F2bTDyN sortOrder: 10 fieldKey: email label: Email @@ -46400,7 +46400,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sD9VkFwa7tNc4msLjRQs1R + - id: qArtRrSKhYN11gJPr77rKq sortOrder: 11 fieldKey: isNewCustomer label: New Customer Flag @@ -46415,7 +46415,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fua5c3GJUihvNuS5YS5YSm + - id: 2K3X7unfcYgtZDAz5X7sDr sortOrder: 12 fieldKey: loyaltyStatus label: Loyalty Program Status @@ -46432,7 +46432,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6Y5kFPumK9qLifaG8DxiPt + - id: g2USvWypGhiZFSFbuPJyZa sortOrder: 13 fieldKey: firstName label: First Name @@ -46447,7 +46447,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8PAax2B2zXMw2HanvYJgB4 + - id: j8o9jrMEF1ZTBW9k3mcVkU sortOrder: 14 fieldKey: lastName label: Last Name @@ -46462,7 +46462,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fvujcPZpLpYweszLWLacGG + - id: ha4KHTBeHtxzvci9Fv866j sortOrder: 15 fieldKey: name label: Name @@ -46477,7 +46477,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2raZiFQAUFEXDVJsXmSrXs + - id: i5NDZnXEdeVikZvcezs7rP sortOrder: 16 fieldKey: age label: Age @@ -46492,7 +46492,7 @@ items: dynamic: false allowNull: false hidden: false - - id: efyUW87iUbKEbrFCovPfJe + - id: iD6EntrdLxhf8p1GkeaNGH sortOrder: 17 fieldKey: birthday label: Birthday @@ -46509,7 +46509,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 57iKyKbadLvmSPS7yG4bez + - id: hQtVzytUyGTzu1eDb1ntvW sortOrder: 18 fieldKey: friendbuyAttributes label: Custom Attributes @@ -46535,7 +46535,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: cRpZUanEFouGKUmPaAynae + - id: mt1tsyzXdsgx2q2MuzezJ sortOrder: 0 fieldKey: customerId label: Customer ID @@ -46550,7 +46550,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tXzWmhtx5zMDkzLPqbuWPX + - id: ihjXAgoPZ8wvRyVqRzjTzS sortOrder: 1 fieldKey: anonymousId label: Anonymous ID @@ -46565,7 +46565,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4LBJGNXckZ45Q7DMaNsxE1 + - id: oHNrPAeF3PWfWk7C7A5D7Y sortOrder: 2 fieldKey: email label: Email @@ -46580,7 +46580,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mCHjjrNqWxsrfPTJV8NUkj + - id: tQ23DP7HXw8CuaeDL7ceCt sortOrder: 3 fieldKey: firstName label: First Name @@ -46595,7 +46595,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jhU9DPhtN9NPcnRhfWSDAn + - id: sk3uGGQ6c9F2u7paaNyUY1 sortOrder: 4 fieldKey: lastName label: Last Name @@ -46610,7 +46610,7 @@ items: dynamic: false allowNull: false hidden: false - - id: cW7Z2tJ8BQoMBpnkk9LPLS + - id: 6dDCzVwiMqG89kcYQBbNgA sortOrder: 5 fieldKey: name label: Name @@ -46628,7 +46628,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ggEfxnbXSzb7PH86VvNjAr + - id: vzUvVM9Ymu75883KmjpzfA sortOrder: 6 fieldKey: age label: Age @@ -46643,7 +46643,7 @@ items: dynamic: false allowNull: false hidden: false - - id: BGVd2mbDda3Dapz45iF5P + - id: jpUb81CTqjs1wsBuh79QPv sortOrder: 7 fieldKey: birthday label: Birthday @@ -46660,7 +46660,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 5z8txbByuGPQpKNi79fQjk + - id: f9E9V3HSCKMU6QKX6spNCv sortOrder: 8 fieldKey: language label: Language @@ -46675,7 +46675,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7h2KBTf6Pje2S7qSgRD5y1 + - id: iD3yVFcXbQdH2BxwXAyXTY sortOrder: 9 fieldKey: addressCountry label: Country @@ -46690,7 +46690,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hb4URs3QmKh3BCU4eCQtHf + - id: ceWgsjeVL7GUZbQ2GEPanU sortOrder: 10 fieldKey: addressState label: State @@ -46705,7 +46705,7 @@ items: dynamic: false allowNull: false hidden: false - - id: iQitSpMkfs7E1EAhY9Z39B + - id: ppZPTSRHVbp4aB5Tjsp8Sq sortOrder: 11 fieldKey: addressCity label: City @@ -46720,7 +46720,7 @@ items: dynamic: false allowNull: false hidden: false - - id: j64R2HBx8LC4eBotQ6T4sX + - id: vG9t2zsqR1eLgkWVzjiDmQ sortOrder: 12 fieldKey: addressPostalCode label: State @@ -46735,7 +46735,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jywnQKwXgWqM1Z36LyRxkh + - id: 5VWdFYYiFLzAsCYsmR1cAV sortOrder: 13 fieldKey: customerSince label: Customer Since @@ -46750,7 +46750,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hhsGTynpidBroAJAvb8Xfj + - id: 6GFUvQ4oN9jT6WgyocDEdK sortOrder: 14 fieldKey: loyaltyStatus label: Loyalty Status @@ -46767,7 +46767,7 @@ items: dynamic: false allowNull: false hidden: false - - id: gVYGWF7cBNUC1mbKfb8hF8 + - id: 4HFSh4tmpZhnXr361sgsrB sortOrder: 15 fieldKey: isNewCustomer label: New Customer Flag @@ -46782,7 +46782,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8A3b5omAUfFNiqdXYdFnRa + - id: 6di6K8ZRAzpK7oU7V6tjRq sortOrder: 16 fieldKey: friendbuyAttributes label: Custom Attributes @@ -46810,7 +46810,7 @@ items: hidden: false defaultTrigger: type = "page" fields: - - id: 9m4ebCrh63BiJ5JZfHfLjx + - id: 7d99TsT6iyvqgegs4jDRNb sortOrder: 0 fieldKey: name label: Page Name @@ -46825,7 +46825,7 @@ items: dynamic: false allowNull: false hidden: false - - id: gpbuBNz73y2QzrqcKAssZK + - id: vp5V75NmVcHSRDYBcPPLVP sortOrder: 1 fieldKey: category label: Page Category @@ -46840,7 +46840,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ja1bDYBCX5nbifXwAARRwu + - id: nNSJNxaVnyki7GF3avoBXN sortOrder: 2 fieldKey: title label: Page Title @@ -46856,64 +46856,6 @@ items: allowNull: false hidden: false presets: - - actionId: fk2xKEXiXd9qEkQb24nzXh - name: Track Page - fields: - name: - '@path': $.name - category: - '@path': $.category - title: - '@path': $.properties.title - trigger: type = "page" - - actionId: vj1sYaj9saWmcRUVbFaPf5 - name: Track Purchase - fields: - orderId: - '@path': $.properties.order_id - amount: - '@path': $.properties.total - currency: - '@path': $.properties.currency - coupon: - '@path': $.properties.coupon - attributionId: - '@path': $.properties.attributionId - referralCode: - '@path': $.properties.referralCode - giftCardCodes: - '@path': $.properties.giftCardCodes - products: - '@path': $.properties.products - customerId: - '@if': - exists: - '@path': $.properties.customerId - then: - '@path': $.properties.customerId - else: - '@path': $.userId - anonymousId: - '@path': $.anonymousId - email: - '@path': $.properties.email - isNewCustomer: - '@path': $.properties.isNewCustomer - loyaltyStatus: - '@path': $.properties.loyaltyStatus - firstName: - '@path': $.properties.firstName - lastName: - '@path': $.properties.lastName - name: - '@path': $.properties.name - age: - '@path': $.properties.age - birthday: - '@path': $.properties.birthday - friendbuyAttributes: - '@path': $.properties.friendbuyAttributes - trigger: event = "Order Completed" - actionId: otSYqZFafJi5aae1yTwynq name: Track Sign Up fields: @@ -46990,6 +46932,64 @@ items: friendbuyAttributes: '@path': $.traits.friendbuyAttributes trigger: type = "identify" + - actionId: fk2xKEXiXd9qEkQb24nzXh + name: Track Page + fields: + name: + '@path': $.name + category: + '@path': $.category + title: + '@path': $.properties.title + trigger: type = "page" + - actionId: vj1sYaj9saWmcRUVbFaPf5 + name: Track Purchase + fields: + orderId: + '@path': $.properties.order_id + amount: + '@path': $.properties.total + currency: + '@path': $.properties.currency + coupon: + '@path': $.properties.coupon + attributionId: + '@path': $.properties.attributionId + referralCode: + '@path': $.properties.referralCode + giftCardCodes: + '@path': $.properties.giftCardCodes + products: + '@path': $.properties.products + customerId: + '@if': + exists: + '@path': $.properties.customerId + then: + '@path': $.properties.customerId + else: + '@path': $.userId + anonymousId: + '@path': $.anonymousId + email: + '@path': $.properties.email + isNewCustomer: + '@path': $.properties.isNewCustomer + loyaltyStatus: + '@path': $.properties.loyaltyStatus + firstName: + '@path': $.properties.firstName + lastName: + '@path': $.properties.lastName + name: + '@path': $.properties.name + age: + '@path': $.properties.age + birthday: + '@path': $.properties.birthday + friendbuyAttributes: + '@path': $.properties.friendbuyAttributes + trigger: event = "Order Completed" partnerOwned: true - id: 54521fd625e721e32a72eeb8 display_name: FullStory @@ -70387,7 +70387,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: mq1JBc7UE5jezBA9BJuNkH + - id: q3tMM7GJnQDrR9434wLyrx sortOrder: 0 fieldKey: event_name label: Event Name @@ -70401,7 +70401,7 @@ items: choices: null dynamic: false allowNull: false - - id: xynLS9fBioXaiHxTk5q2Qc + - id: iBmfEFXhgW2y4YDCxB3k3m sortOrder: 1 fieldKey: revenue label: Revenue @@ -70417,7 +70417,7 @@ items: choices: null dynamic: false allowNull: false - - id: d1fFHeUCUmYupZCkzBFhW4 + - id: qmCjcgmFhLVmGUvmWUdkN7 sortOrder: 2 fieldKey: currency label: Currency @@ -70433,7 +70433,7 @@ items: choices: null dynamic: false allowNull: false - - id: pY9vJcUt4Ps96fZu51uAn3 + - id: ptGRqqjrbV2MeMi1rJV6xA sortOrder: 3 fieldKey: event_metadata label: Event Metadata @@ -70455,7 +70455,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: 6aEhSk9Xxi6zdwt78AunMp + - id: bDPnWGcGHWXWj5nANtZYZP sortOrder: 0 fieldKey: company label: Company @@ -70490,7 +70490,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5zBgiK62Rp8w3YGB7VjGg9 + - id: juHWuh64cJFTmu4fQby8Vk sortOrder: 1 fieldKey: hide_default_launcher label: Hide Default Launcher @@ -70524,7 +70524,7 @@ items: hidden: false defaultTrigger: type = "identify" or type = "page" fields: - - id: szzhV3uoFuH1cDpqyMNoYx + - id: b38rUKWz2doCTdnf7uaJ4B sortOrder: 0 fieldKey: user_id label: User ID @@ -70538,7 +70538,7 @@ items: choices: null dynamic: false allowNull: false - - id: kczvBPohUPGu38k8otGk5g + - id: anqafKKQ66Se8ttGaXkRSr sortOrder: 1 fieldKey: custom_traits label: Custom Attributes @@ -70550,7 +70550,7 @@ items: choices: null dynamic: false allowNull: false - - id: cMvFExAeUenaZTCdtPaNVu + - id: uwLDCEbBSriBL2tQ53zKAf sortOrder: 2 fieldKey: name label: Name @@ -70564,7 +70564,7 @@ items: choices: null dynamic: false allowNull: false - - id: d5wyJQybuiaoFJ87JfMcx4 + - id: ocfjoKATo9M2xFmRZDX1YL sortOrder: 3 fieldKey: phone label: Phone Number @@ -70578,7 +70578,7 @@ items: choices: null dynamic: false allowNull: false - - id: ran9B5T8nV1Jqskruk8skp + - id: aHcMwcmDQLK6vtkPdDFYVo sortOrder: 4 fieldKey: unsubscribed_from_emails label: Unsubscribed From Emails @@ -70590,7 +70590,7 @@ items: choices: null dynamic: false allowNull: false - - id: tW4W819YNUhtF5itADRUkc + - id: utTEacb4Z3YodS9LYxFwyZ sortOrder: 5 fieldKey: language_override label: Language Override @@ -70604,7 +70604,7 @@ items: choices: null dynamic: false allowNull: false - - id: uBbuEwKUaikLUw6VH5MQTh + - id: qKZkWiHyT7MD8n4F23XJKo sortOrder: 6 fieldKey: email label: Email Address @@ -70618,7 +70618,7 @@ items: choices: null dynamic: false allowNull: false - - id: d1oAVy86TTzDk3KYxXzvFB + - id: faSozTVDyr41hu1AJJ7K9a sortOrder: 7 fieldKey: created_at label: User Creation Time @@ -70638,7 +70638,7 @@ items: choices: null dynamic: false allowNull: false - - id: hdGhrbjyGsJ7RiFQtbGpG6 + - id: 2VuNZhEmxiTWjU8ka9DBrM sortOrder: 8 fieldKey: avatar_image_url label: Avatar @@ -70652,7 +70652,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8GWMZnfBhwBaoKhhWMCVPY + - id: oSYzfbVpP53GcMGRz6hSKo sortOrder: 9 fieldKey: user_hash label: User Hash @@ -70675,7 +70675,7 @@ items: choices: null dynamic: false allowNull: false - - id: eAKgAWEvqBx9eYghqpZBNQ + - id: 2UMW9XztJGHE7RUwFy344C sortOrder: 10 fieldKey: intercom_user_jwt label: Intercom User JWT @@ -70699,7 +70699,7 @@ items: choices: null dynamic: false allowNull: false - - id: wbgKoz36MtxFcic8Pz3rHD + - id: sc4asvfuszwnTY6nGGJqQp sortOrder: 11 fieldKey: company label: Company @@ -70734,7 +70734,7 @@ items: choices: null dynamic: false allowNull: false - - id: ihytDbuPQgRhpJptC5HmZX + - id: uqrhkyxQA2vRV5s74KeBgK sortOrder: 12 fieldKey: companies label: Companies @@ -70771,7 +70771,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9WCnDuuQPojuykHHxzpwqo + - id: 4yGDpFYKBjzGT8k8DETUW9 sortOrder: 13 fieldKey: hide_default_launcher label: Hide Default Launcher @@ -70798,53 +70798,6 @@ items: dynamic: false allowNull: false presets: - - actionId: 9e8n4VX1tR81fawEiAtGPg - name: Identify Company - fields: - company: - company_id: - '@path': $.groupId - name: - '@path': $.traits.name - created_at: - '@if': - exists: - '@path': $.traits.createdAt - then: - '@path': $.traits.createdAt - else: - '@path': $.traits.created_at - plan: - '@path': $.traits.plan - size: - '@path': $.traits.size - website: - '@path': $.traits.website - industry: - '@path': $.traits.industry - monthly_spend: - '@path': $.traits.monthly_spend - hide_default_launcher: - '@if': - exists: - '@path': $.context.Intercom.hideDefaultLauncher - then: - '@path': $.context.Intercom.hideDefaultLauncher - else: - '@path': $.context.Intercom.hide_default_launcher - trigger: type = "group" - - actionId: obbhMxCCfbwRwxViADd4Dq - name: Track Event - fields: - event_name: - '@path': $.event - revenue: - '@path': $.properties.revenue - currency: - '@path': $.properties.currency - event_metadata: - '@path': $.properties - trigger: type = "track" - actionId: soJTzcZj8roZAwGZow5YNp name: Identify User fields: @@ -70939,6 +70892,53 @@ items: else: '@path': $.context.Intercom.hide_default_launcher trigger: type = "identify" or type = "page" + - actionId: 9e8n4VX1tR81fawEiAtGPg + name: Identify Company + fields: + company: + company_id: + '@path': $.groupId + name: + '@path': $.traits.name + created_at: + '@if': + exists: + '@path': $.traits.createdAt + then: + '@path': $.traits.createdAt + else: + '@path': $.traits.created_at + plan: + '@path': $.traits.plan + size: + '@path': $.traits.size + website: + '@path': $.traits.website + industry: + '@path': $.traits.industry + monthly_spend: + '@path': $.traits.monthly_spend + hide_default_launcher: + '@if': + exists: + '@path': $.context.Intercom.hideDefaultLauncher + then: + '@path': $.context.Intercom.hideDefaultLauncher + else: + '@path': $.context.Intercom.hide_default_launcher + trigger: type = "group" + - actionId: obbhMxCCfbwRwxViADd4Dq + name: Track Event + fields: + event_name: + '@path': $.event + revenue: + '@path': $.properties.revenue + currency: + '@path': $.properties.currency + event_metadata: + '@path': $.properties + trigger: type = "track" partnerOwned: false - id: 54521fd725e721e32a72eec5 display_name: Iron.io @@ -92734,14 +92734,14 @@ items: - id: 682db7017819e7e055f55cb4 display_name: Ortto (Actions) name: Ortto (Actions) - slug: ortto-actions + slug: actions-ortto hidden: false endpoints: - US regions: - us-west-2 - eu-west-1 - url: connections/destinations/catalog/ortto-actions + url: connections/destinations/catalog/actions-ortto previous_names: - Ortto (Actions) website: https://ortto.com/ @@ -111033,144 +111033,6 @@ items: hidden: false presets: [] partnerOwned: false -- id: 6189bc6dc616c2d82f61349c - display_name: Segment Data Lakes (Azure) - name: Segment Data Lakes (Azure) - slug: segment-data-lakes-azure - hidden: true - endpoints: - - US - regions: - - us-west-2 - - eu-west-1 - url: connections/destinations/catalog/segment-data-lakes-azure - previous_names: - - Azure Data Lakes - - Segment Data Lakes (Azure) - website: https://segment.com/docs/connections/storage/data-lakes/ - status: PUBLIC - categories: - - Raw Data - - Email - - CRM - logo: - url: https://cdn.filepicker.io/api/file/blchmYvQ36JOzWPWZ7Qa - mark: - url: https://cdn.filepicker.io/api/file/SIWnw2VqRPqF7abxuHZK - methods: - track: true - identify: true - group: true - alias: true - screen: false - page: true - platforms: - browser: true - mobile: true - server: true - warehouse: false - cloudAppObject: false - linkedAudiences: false - components: - - code: https://github.com/segmentio/integrations/tree/master/integrations/hubspot - owner: SEGMENT - type: SERVER - browserUnbundlingSupported: false - browserUnbundlingPublic: true - replay: false - connection_modes: - device: - web: false - mobile: false - server: false - cloud: - web: true - mobile: true - server: true - settings: - - name: azureStorageAccount - type: string - defaultValue: '' - description: The name of the Azure Storage Account - required: true - label: Azure Storage Account Name - - name: azureStorageContainer - type: string - defaultValue: '' - description: The name of the storage container - required: true - label: Azure Storage Container Name - - name: azureSubscriptionId - type: string - defaultValue: '' - description: Azure Subscription ID - required: true - label: Azure Subscription ID - - name: azureTenantId - type: string - defaultValue: '' - description: Azure Tenant ID - required: true - label: Azure Tenant ID - - name: databricksClusterId - type: string - defaultValue: '' - description: Databricks Cluster ID - required: true - label: Databricks Cluster ID - - name: databricksInstanceUrl - type: string - defaultValue: '' - description: Databricks Instance URL - required: true - label: Databricks Instance URL - - name: databricksWorkspaceName - type: string - defaultValue: '' - description: Databricks Workspace Name - required: true - label: Databricks Workspace Name - - name: databricksWorkspaceResourceGroup - type: string - defaultValue: '' - description: Databricks Workspace Resource Group - required: true - label: Databricks Workspace Resource Group Id - - name: datePartition - type: select - defaultValue: '' - description: >- - This drop down can be used to select the type of date partition required - to store the tables. - required: false - label: Date Partition - - name: partitionBySlugName - type: boolean - defaultValue: false - description: Enable to partition the data by source_slug_name instead of source_id - required: false - label: Partition by Slug Name - - name: region - type: string - defaultValue: '' - description: Azure Account Region - required: true - label: Region - - name: servicePrincipalClientId - type: string - defaultValue: '' - description: Service Principal Client ID - required: true - label: Service Principal Client ID - - name: servicePrincipalClientSecret - type: string - defaultValue: '' - description: Service Principal Client Secret - required: true - label: Service Principal Client Secret - actions: [] - presets: [] - partnerOwned: false - id: 639c2dbb1309fdcad13951b6 display_name: Segment Profiles name: Segment Profiles diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index d78ab8da5e..43df3f3dfa 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 2025-07-07 +# destination data last updated 2025-07-10 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 8e23322b82..595bb73691 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 2025-07-07 +# source categories last updated 2025-07-10 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 63f73ab407..a08d455fe8 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 2025-07-07 +# sources last updated 2025-07-10 items: - id: 8HWbgPTt3k display_name: .NET From 91f0c716f8850183ce2c8801c31735c7e10f1f98 Mon Sep 17 00:00:00 2001 From: Austin Hsueh Date: Thu, 10 Jul 2025 13:47:51 -0700 Subject: [PATCH 296/438] Add Reddit Pixel Docs and minor update to CAPI doc --- .../actions-reddit-conversions-api/index.md | 2 +- .../catalog/actions-reddit-pixel/index.md | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/connections/destinations/catalog/actions-reddit-pixel/index.md diff --git a/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md b/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md index b645afe69d..da658603a3 100644 --- a/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md @@ -60,7 +60,7 @@ Segment creates a SHA-256 hash of the following fields before sending to Reddit. If you implement both the [Reddit Pixel](https://business.reddithelp.com/helpcenter/s/article/reddit-pixel){:target="_blank"} and [Conversions API (CAPI)](https://business.reddithelp.com/helpcenter/s/article/Conversions-API){:target="_blank"} and the same events are shared across both sources, deduplication is necessary to ensure those events aren’t double-counted. -You can pass a unique conversion ID for every distinct event to its corresponding Reddit Pixel and CAPI event. Reddit will determine which events are duplicates based on the conversion ID and the conversion event name. This is the best and most accurate way to ensure proper deduplication, and Reddit recommends this method since there’s less risk of incorrect integration, which can impact attribution accuracy. +The integration automatically pre-maps the Segment `messageId` as the Reddit Conversion ID. If you wish to change this, you can pass a unique conversion ID for every distinct event to its corresponding Reddit Pixel and CAPI event. Reddit will determine which events are duplicates based on the conversion ID and the conversion event name. This is the best and most accurate way to ensure proper deduplication, and Reddit recommends this method since there’s less risk of incorrect integration, which can impact attribution accuracy. To ensure your events are deduplicated: - Create a unique conversion ID for every distinct event. You can set this as a random number or ID. Similarly, you could set this to the order number when tracking purchase events. diff --git a/src/connections/destinations/catalog/actions-reddit-pixel/index.md b/src/connections/destinations/catalog/actions-reddit-pixel/index.md new file mode 100644 index 0000000000..1e477dc756 --- /dev/null +++ b/src/connections/destinations/catalog/actions-reddit-pixel/index.md @@ -0,0 +1,32 @@ +--- +title: Reddit Pixel +--- + +{% include content/plan-grid.md name="actions" %} + +The [Reddit Pixel](https://business.reddithelp.com/s/article/reddit-pixel){:target="_blank"} lets advertisers send Segment events to the Reddit Pixel without any additional manual JavaScript installation. This destination has Segment events pre-mapped to Reddit Pixel events and metadata. You can edit this mapping and create new events - no custom code required. + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”}, find the Reddit Pixel destination and select **Add Destination**. +2. Select the source that will connect to the Reddit Pixel destination. +3. Open the destination settings and provide your Pixel ID. This can be found in the [Events Manager](https://ads.reddit.com/events-manager){:target="_blank"}. +4. Configure and map the events you'd like to send to the Reddit Pixel. The destination pre-maps certain Segment events to Reddit Pixel events and metadata, but you can edit these values. You can also set up custom events. + +After enabling the destination, Segment will automatically initialize and load the Reddit Pixel on each page that Segment is tracking based on your mappings. + + +{% include components/actions-fields.html %} + +## Deduplication with the Reddit Conversions API + +If you implement both the [Reddit Pixel](https://business.reddithelp.com/s/article/reddit-pixel){:target="_blank"} and [Reddit Conversions API (CAPI)](https://business.reddithelp.com/s/article/Conversions-API){:target="_blank"} and the same events are shared across both sources, deduplication is necessary to ensure those events aren’t double-counted. + +The integration automatically pre-maps the Segment `messageId` to the Reddit conversion ID. If you wish to change this, you can pass a different unique conversion ID for every distinct event to its corresponding Reddit Pixel and CAPI event. Reddit will determine which events are duplicates based on the conversion ID and conversion event name. This is the most accurate way to ensure proper deduplication. Reddit recommends this method since there’s less risk of incorrect integration, which can impact attribution accuracy. + +To ensure your events are deduplicated: +- Create a unique conversion ID for every distinct event. You can set this as a random number or ID. Similarly, you could set this to the order number when tracking purchase events. +- Include the event in the Reddit Pixel and CAPI. +- Ensure the conversion event name and conversion ID for its corresponding events match. + +For more information on deduplication, see the [Reddit Event Deduplication documentation](https://business.reddithelp.com/s/article/event-deduplication){:target="_blank"}. \ No newline at end of file From 2e0635b8b7fb0e17757ea9c586d2628939102114 Mon Sep 17 00:00:00 2001 From: Piyush Mishra <162315711+piyush-nudge@users.noreply.github.com> Date: Fri, 11 Jul 2025 13:00:26 +0530 Subject: [PATCH 297/438] update: updated index.md to include hidden flag --- src/connections/destinations/catalog/actions-nudge/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/src/connections/destinations/catalog/actions-nudge/index.md b/src/connections/destinations/catalog/actions-nudge/index.md index 3946ab7c7e..554e7b1978 100644 --- a/src/connections/destinations/catalog/actions-nudge/index.md +++ b/src/connections/destinations/catalog/actions-nudge/index.md @@ -3,6 +3,7 @@ title: Nudge (Actions) Destination id: 6863e71f2a1e1ddc4b4612bf private: true beta: true +hidden: true --- {% include content/plan-grid.md name="actions" %} From 0266f63ba39830f7a262077ee6dd7d690230600d Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 11 Jul 2025 09:54:02 -0400 Subject: [PATCH 298/438] vale edits, callout about data type --- .../catalog/amazon-kinesis/index.md | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/connections/destinations/catalog/amazon-kinesis/index.md b/src/connections/destinations/catalog/amazon-kinesis/index.md index af32a8dad2..2ade5cf926 100644 --- a/src/connections/destinations/catalog/amazon-kinesis/index.md +++ b/src/connections/destinations/catalog/amazon-kinesis/index.md @@ -8,9 +8,7 @@ id: 57da359580412f644ff33fb9 > info "Amazon Kinesis is not compatible with IP Allowlisting" > For more information, see the [IP Allowlisting](/docs/connections/destinations/#ip-allowlisting) documentation. -## Getting Started - - +## Getting started To get started: 1. Create a Kinesis stream. Follow these [instructions](http://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-create-stream.html){:target="_blank"} in order to create a new AWS Kinesis Stream. @@ -53,15 +51,18 @@ To get started: 2. Enter the **Role Address**, **Stream Region**, **Stream Name**, and **Secret ID**. * **NOTE:** For security purposes, Segment sets your Workspace ID as your Secret ID. If you're using a Secret ID different from your Workspace ID, reach out to our support team so they can change it to make your account more secure. +> success "" +> Segment's Amazon Kinesis destination only transmits data in JSON format. + ## Page -If you're not familiar with the Segment Specs, take a look to understand what the [Page method](/docs/connections/spec/page/) does. An example call would look like: +If you're not familiar with the Segment Spec, take a look to understand what the [Page method](/docs/connections/spec/page/) does. An example call would look like: ```js analytics.page(); ``` ## Identify -If you're not familiar with the Segment Specs, take a look to understand what the [Identify method](/docs/connections/spec/identify/) does. An example call would look like: +If you're not familiar with the Segment Spec, take a look to understand what the [Identify method](/docs/connections/spec/identify/) does. An example call would look like: ```js analytics.identify('97980cfea0085', { @@ -71,7 +72,7 @@ analytics.identify('97980cfea0085', { ``` ## Track -If you're not familiar with the Segment Specs, take a look to understand what the [Track method](/docs/connections/spec/track/) does. An example call would look like: +If you're not familiar with the Segment Spec, take a look to understand what the [Track method](/docs/connections/spec/track/) does. An example call would look like: ```js analytics.track("User Registered", { @@ -80,8 +81,8 @@ analytics.track("User Registered", { }); ``` -### Data Model -Let's say you're connecting your Segment customer data stream to Kinesis Stream `arn:aws:kinesis:{region}:{account-id}:stream/{stream-name}`. If you send Segment the following in a `track` call: +### Data model +Let's say you're connecting your Segment customer data stream to Kinesis Stream `arn:aws:kinesis:{region}:{account-id}:stream/{stream-name}`. If you send Segment the following in a Track call: ```json { "userId": "user_1", @@ -106,9 +107,9 @@ const request = kinesis.putRecord(payload) Segment uses the `messageId` or the `userId || anonymousId` as the `PartitionKey`. The partition key is used by Amazon Kinesis to distribute data across shards. Amazon Kinesis segregates the data records that belong to a stream into multiple shards, using the partition key associated with each data record to determine which shard a given data record belongs to. ## Group -If you're not familiar with the Segment Specs, take a look to understand what the [Group method](/docs/connections/spec/group/) does. +If you're not familiar with the Segment Spec, take a look to understand what the [Group method](/docs/connections/spec/group/) does. -An example group call is shown below: +An example Group call is shown below: ```js analytics.group("0e8c78ea9d9dsasahjg", { name: "group_name", @@ -121,7 +122,9 @@ analytics.group("0e8c78ea9d9dsasahjg", { ## Troubleshooting When you get started, Segment recommends using any of the open source [Kinesis tailing utility](https://github.com/search?utf8=%E2%9C%93&q=kinesis-tail){:target="_blank"} to validate that data is flowing correctly. -## Best Practices +## Best practices + +The following best practices help you implement additional Amazon Kinesis functionality like encryption, the use of multiple data sources, and more efficient data transmission. ### Updating IAM role permissions for encryption Extra permissions need to be added to the IAM role if using at-rest encryption on the Kinesis stream. An updated role policy like below resolves issues when submitting PutRecords into Kinesis stream using encryption: @@ -141,7 +144,7 @@ Extra permissions need to be added to the IAM role if using at-rest encryption o } ``` -### Multiple Sources +### Multiple sources If you have multiple sources using Kinesis/Firehose, you have two options: ### Attach multiple sources to your IAM role From 68e70776892de9b88446895142064ddd18fff417 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 11 Jul 2025 10:06:56 -0400 Subject: [PATCH 299/438] update build instructions with info from action-destinations repo https://github.com/segmentio/action-destinations/tree/main --- src/partners/destinations/build.md | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/partners/destinations/build.md b/src/partners/destinations/build.md index 849ea63320..bf63ececae 100644 --- a/src/partners/destinations/build.md +++ b/src/partners/destinations/build.md @@ -11,7 +11,7 @@ Before you begin, consider the following prerequisites. ### Security -The security of customers and partners is a top priority at Segment. Before you begin building, review the [Acceptable Use Policy](https://segment.com/legal/acceptable-use-policy/), and keep in mind: +The security of customers and partners is a top priority at Segment. Before you begin building, review the [Acceptable Use Policy](https://segment.com/legal/acceptable-use-policy/){:target="_blank}, and keep in mind: - Follow a secure software-development lifecycle, which enables you to both create code that is safe for Segment customers and their end users, and maintain and raise the security of that code over time. - If you or your code comes into contact with Segment customer or end-user data for any reason, protect it with commercially reasonable methods throughout the data lifecycle, including creating, handling, transporting, and destruction. @@ -23,9 +23,11 @@ The security of customers and partners is a top priority at Segment. Before you You don't need to access a Segment dev environment to build an integration. You’ll test it locally on your machine. Destinations are written in TypeScript. For more information about TypeScript, see TypeScript's [documentation](https://www.typescriptlang.org/docs/){:target="_blank}. To work with Segment's actions repository, download and install the following: - - [node](https://nodejs.org/en/){:target="_blank"} + - [node](https://nodejs.org/en/){:target="_blank"} (_version 18.7+. Segment recommends managing Node versions with `nvm`._) - [nvm](https://github.com/nvm-sh/nvm){:target="_blank"} - - [yarn](https://yarnpkg.com/){:target="_blank"} + - [yarn](https://yarnpkg.com/){:target="_blank"} (_version 1.x_) + +If you encounter errors when setting up your development environment, ensure you're running the correct version of Node by running `nvm use`. ### Fork the repository @@ -37,16 +39,26 @@ Fork the `segmentio/action-destinations` repository, connect to NPM and Yarn, an Run the test suite to ensure the environment is properly configured. ```sh -git clone https://github.com//action-destinations.git +# Clone the repo locally +git clone cd action-destinations + npm login yarn login -# Requires node 14.17, optionally: nvm use 14.17 -yarn --ignore-engines --ignore-optional -yarn bootstrap -yarn build + +# Requires node 18.17.1, optionally: nvm use 18.17.1 +yarn --ignore-optional yarn install +yarn build + +# Run unit tests to ensure things are working! For partners who don't have access to internal packages, you can run: +yarn test-partners + +# For segment employees, you can run: yarn test + +# to reset all caches and rebuild again +yarn clean-build ``` ## Create a destination From 19d6d0f5e04387904a5ca6fb71a9feb4b7370838 Mon Sep 17 00:00:00 2001 From: saiyamshah1496 Date: Mon, 14 Jul 2025 15:26:54 +0530 Subject: [PATCH 300/438] Add Aampe (Actions) destination documentation --- .../catalog/actions-aampe/index.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/connections/destinations/catalog/actions-aampe/index.md diff --git a/src/connections/destinations/catalog/actions-aampe/index.md b/src/connections/destinations/catalog/actions-aampe/index.md new file mode 100644 index 0000000000..07c8f4bfe8 --- /dev/null +++ b/src/connections/destinations/catalog/actions-aampe/index.md @@ -0,0 +1,28 @@ +--- +title: Aampe (Actions) Destination +--- + +[Aampe](https://aampe.com/)'s Agentic AI learns what works for each customer. Then it instantly adapts your messaging and delivers at optimal times to drive better engagement, growth and unlock valuable insights. + +By assigning a dedicated agent for each user, Aampe conducts controlled, parallelized experiments to learn user preferences and optimizes engagement for them. It’s a dynamic, self-improving system that fine-tunes every interaction, ensuring your messaging evolves as fast as your audience does. + +This destination is maintained by Aampe. For any issues with the destination, [contact the Aampe Support team](mailto:developer@aampe.com). + +## Getting Started + + +1. From the Destinations catalog page in the Segment App, click **Add Destination**. +2. Search for "Aampe (Actions)" in the Destinations Catalog, and select the "Aampe (Actions)" destination. +3. Choose which Source should send data to the "Aampe" destination. +4. Go to the [Data Integrations page](https://compose.aampe.com/configure/integrations) on Aampe Composer, click on "Add Integration", select "Segment" and click "Next". +5. Copy the Segment API Key from the resulting page. +6. Enter this key in "API Key" in the "Aampe" destination settings in Segment. +7. Enter the appropriate data region as per the privacy policy. + +## Supported methods + +Aampe supports the following methods, as specified in the [Segment Spec](/docs/connections/spec). + +Segment sends Track, Page, Screen calls to Aampe as an event. These are used by Aampe agents to learn preferences for your users and take the best action + +Aampe also recevies identify calls and user property update calls from Segment which help in high-level segmentation for eligible audiences \ No newline at end of file From 7f3b4ba04f9f71e1271a3d47c6019ea1e544c0db Mon Sep 17 00:00:00 2001 From: saiyamaampe Date: Mon, 14 Jul 2025 19:01:50 +0530 Subject: [PATCH 301/438] Revert extra space Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/actions-aampe/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-aampe/index.md b/src/connections/destinations/catalog/actions-aampe/index.md index 07c8f4bfe8..73b2bb4c8d 100644 --- a/src/connections/destinations/catalog/actions-aampe/index.md +++ b/src/connections/destinations/catalog/actions-aampe/index.md @@ -9,8 +9,6 @@ By assigning a dedicated agent for each user, Aampe conducts controlled, paralle This destination is maintained by Aampe. For any issues with the destination, [contact the Aampe Support team](mailto:developer@aampe.com). ## Getting Started - - 1. From the Destinations catalog page in the Segment App, click **Add Destination**. 2. Search for "Aampe (Actions)" in the Destinations Catalog, and select the "Aampe (Actions)" destination. 3. Choose which Source should send data to the "Aampe" destination. From 7cab54f19d9c2958c37d7f3a30f2d1638f43c824 Mon Sep 17 00:00:00 2001 From: saiyamaampe Date: Mon, 14 Jul 2025 19:48:30 +0530 Subject: [PATCH 302/438] Apply suggestions from code review Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../catalog/actions-aampe/index.md | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/connections/destinations/catalog/actions-aampe/index.md b/src/connections/destinations/catalog/actions-aampe/index.md index 73b2bb4c8d..578bc17c6f 100644 --- a/src/connections/destinations/catalog/actions-aampe/index.md +++ b/src/connections/destinations/catalog/actions-aampe/index.md @@ -1,8 +1,11 @@ --- title: Aampe (Actions) Destination +id: 6874c64e5eda096bf3850ee0 +private: true +beta: true --- -[Aampe](https://aampe.com/)'s Agentic AI learns what works for each customer. Then it instantly adapts your messaging and delivers at optimal times to drive better engagement, growth and unlock valuable insights. +[Aampe](https://aampe.com/){:target="_blank”}'s Agentic AI learns what works for each customer. Then it instantly adapts your messaging and delivers at optimal times to drive better engagement, growth and unlock valuable insights. By assigning a dedicated agent for each user, Aampe conducts controlled, parallelized experiments to learn user preferences and optimizes engagement for them. It’s a dynamic, self-improving system that fine-tunes every interaction, ensuring your messaging evolves as fast as your audience does. @@ -10,17 +13,17 @@ This destination is maintained by Aampe. For any issues with the destination, [c ## Getting Started 1. From the Destinations catalog page in the Segment App, click **Add Destination**. -2. Search for "Aampe (Actions)" in the Destinations Catalog, and select the "Aampe (Actions)" destination. -3. Choose which Source should send data to the "Aampe" destination. -4. Go to the [Data Integrations page](https://compose.aampe.com/configure/integrations) on Aampe Composer, click on "Add Integration", select "Segment" and click "Next". -5. Copy the Segment API Key from the resulting page. -6. Enter this key in "API Key" in the "Aampe" destination settings in Segment. -7. Enter the appropriate data region as per the privacy policy. +2. Search for "Aampe (Actions)" in the Destinations Catalog, and select the **Aampe (Actions)** destination. +3. Choose which Source should send data to the Aampe destination. +4. Open Aampe Composer and navigate to the [Data Integrations page](https://compose.aampe.com/configure/integrations), click **Add Integration**, select Segment and click **Next**. +5. Copy the Segment API Key from Aampe Composer, then return to the Segment app. +6. On your Aampe destination's settings page, enter the API key that you copied from Aampe Composer. +7. Select the appropriate data region as per the privacy policy and click **Save**. ## Supported methods Aampe supports the following methods, as specified in the [Segment Spec](/docs/connections/spec). -Segment sends Track, Page, Screen calls to Aampe as an event. These are used by Aampe agents to learn preferences for your users and take the best action +Segment sends Track, Page, Screen calls to Aampe as an event. These are used by Aampe agents to learn preferences for your users and take action accordingly. -Aampe also recevies identify calls and user property update calls from Segment which help in high-level segmentation for eligible audiences \ No newline at end of file +Aampe also receives Identify calls and user property update calls from Segment which helps with high-level segmentation for eligible Aampe audiences. \ No newline at end of file From 0d8885a5c20f232bc93a668429b957bd31577f92 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Mon, 14 Jul 2025 10:30:39 -0400 Subject: [PATCH 303/438] Update src/_data/privacy.yml --- src/_data/privacy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_data/privacy.yml b/src/_data/privacy.yml index 80a9090a28..be80df6fd2 100644 --- a/src/_data/privacy.yml +++ b/src/_data/privacy.yml @@ -7,7 +7,7 @@ sections: path: /privacy/portal/ icon: media/classify.svg - name: Control what data you collect - description: "Take control of the data that comes into your workspace." + description: "Take control of the data that enters your workspace." path: /privacy/data-controls/ icon: media/control.svg From 1af1c9ac3f5ea14952454b1910023f3e0cb16c4e Mon Sep 17 00:00:00 2001 From: saiyamaampe Date: Mon, 14 Jul 2025 20:30:41 +0530 Subject: [PATCH 304/438] Add target for link Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/actions-aampe/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-aampe/index.md b/src/connections/destinations/catalog/actions-aampe/index.md index 578bc17c6f..6e59357a27 100644 --- a/src/connections/destinations/catalog/actions-aampe/index.md +++ b/src/connections/destinations/catalog/actions-aampe/index.md @@ -15,7 +15,7 @@ This destination is maintained by Aampe. For any issues with the destination, [c 1. From the Destinations catalog page in the Segment App, click **Add Destination**. 2. Search for "Aampe (Actions)" in the Destinations Catalog, and select the **Aampe (Actions)** destination. 3. Choose which Source should send data to the Aampe destination. -4. Open Aampe Composer and navigate to the [Data Integrations page](https://compose.aampe.com/configure/integrations), click **Add Integration**, select Segment and click **Next**. +4. Open Aampe Composer and navigate to the [Data Integrations page](https://compose.aampe.com/configure/integrations){:target="_blank”}, click **Add Integration**, select Segment and click **Next**. 5. Copy the Segment API Key from Aampe Composer, then return to the Segment app. 6. On your Aampe destination's settings page, enter the API key that you copied from Aampe Composer. 7. Select the appropriate data region as per the privacy policy and click **Save**. From fd13503a525fcc33789afb63442763af0479b19c Mon Sep 17 00:00:00 2001 From: akhsueh Date: Mon, 14 Jul 2025 11:07:30 -0700 Subject: [PATCH 305/438] Apply suggestions from code review Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- .../actions-reddit-conversions-api/index.md | 2 +- .../catalog/actions-reddit-pixel/index.md | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md b/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md index da658603a3..88b1bde2c0 100644 --- a/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-reddit-conversions-api/index.md @@ -60,7 +60,7 @@ Segment creates a SHA-256 hash of the following fields before sending to Reddit. If you implement both the [Reddit Pixel](https://business.reddithelp.com/helpcenter/s/article/reddit-pixel){:target="_blank"} and [Conversions API (CAPI)](https://business.reddithelp.com/helpcenter/s/article/Conversions-API){:target="_blank"} and the same events are shared across both sources, deduplication is necessary to ensure those events aren’t double-counted. -The integration automatically pre-maps the Segment `messageId` as the Reddit Conversion ID. If you wish to change this, you can pass a unique conversion ID for every distinct event to its corresponding Reddit Pixel and CAPI event. Reddit will determine which events are duplicates based on the conversion ID and the conversion event name. This is the best and most accurate way to ensure proper deduplication, and Reddit recommends this method since there’s less risk of incorrect integration, which can impact attribution accuracy. +The integration automatically pre-maps the Segment `messageId` to the Reddit Conversion ID. If you wish to change this, you can pass a unique conversion ID for every distinct event to its corresponding Reddit Pixel and CAPI event. Reddit will determine which events are duplicates based on the conversion ID and the conversion event name. This is the best and most accurate way to ensure proper deduplication, and Reddit recommends this method since there’s less risk of incorrect integration, which can impact attribution accuracy. To ensure your events are deduplicated: - Create a unique conversion ID for every distinct event. You can set this as a random number or ID. Similarly, you could set this to the order number when tracking purchase events. diff --git a/src/connections/destinations/catalog/actions-reddit-pixel/index.md b/src/connections/destinations/catalog/actions-reddit-pixel/index.md index 1e477dc756..0715741030 100644 --- a/src/connections/destinations/catalog/actions-reddit-pixel/index.md +++ b/src/connections/destinations/catalog/actions-reddit-pixel/index.md @@ -4,16 +4,16 @@ title: Reddit Pixel {% include content/plan-grid.md name="actions" %} -The [Reddit Pixel](https://business.reddithelp.com/s/article/reddit-pixel){:target="_blank"} lets advertisers send Segment events to the Reddit Pixel without any additional manual JavaScript installation. This destination has Segment events pre-mapped to Reddit Pixel events and metadata. You can edit this mapping and create new events - no custom code required. +The [Reddit Pixel](https://business.reddithelp.com/s/article/reddit-pixel){:target="_blank"} destination lets advertisers send Segment events to the Reddit Pixel without any additional manual JavaScript installation. This destination has Segment events pre-mapped to Reddit Pixel events and metadata. You can edit this mapping and create new events - no custom code required. ## Getting started 1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”}, find the Reddit Pixel destination and select **Add Destination**. -2. Select the source that will connect to the Reddit Pixel destination. -3. Open the destination settings and provide your Pixel ID. This can be found in the [Events Manager](https://ads.reddit.com/events-manager){:target="_blank"}. +2. Select the source that you'd like to connect to the Reddit Pixel destination. +3. Open the destination settings and provide your Pixel ID. This can be found in the Reddit's [Events Manager](https://ads.reddit.com/events-manager){:target="_blank"}. 4. Configure and map the events you'd like to send to the Reddit Pixel. The destination pre-maps certain Segment events to Reddit Pixel events and metadata, but you can edit these values. You can also set up custom events. -After enabling the destination, Segment will automatically initialize and load the Reddit Pixel on each page that Segment is tracking based on your mappings. +After enabling the destination, Segment automatically initializes and loads the Reddit Pixel on each page that you'd like to track based on your mappings. {% include components/actions-fields.html %} @@ -25,8 +25,8 @@ If you implement both the [Reddit Pixel](https://business.reddithelp.com/s/artic The integration automatically pre-maps the Segment `messageId` to the Reddit conversion ID. If you wish to change this, you can pass a different unique conversion ID for every distinct event to its corresponding Reddit Pixel and CAPI event. Reddit will determine which events are duplicates based on the conversion ID and conversion event name. This is the most accurate way to ensure proper deduplication. Reddit recommends this method since there’s less risk of incorrect integration, which can impact attribution accuracy. To ensure your events are deduplicated: -- Create a unique conversion ID for every distinct event. You can set this as a random number or ID. Similarly, you could set this to the order number when tracking purchase events. -- Include the event in the Reddit Pixel and CAPI. -- Ensure the conversion event name and conversion ID for its corresponding events match. +- Create a unique conversion ID for every distinct event. You can set this as a random number or ID, or the order number when tracking purchase events, for example. +- Include the event in both the Reddit Pixel and CAPI. +- Ensure the conversion event name and conversion ID for match across the Reddit Pixel and CAPI. For more information on deduplication, see the [Reddit Event Deduplication documentation](https://business.reddithelp.com/s/article/event-deduplication){:target="_blank"}. \ No newline at end of file From e63d2a99aa5598f76f2e4b7c1b4dc3768486c849 Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Mon, 14 Jul 2025 14:42:30 -0700 Subject: [PATCH 306/438] Update src/connections/destinations/actions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 06d689d64d..9514fe9a05 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -239,7 +239,7 @@ You can't concatenate event variables and plain text with static values and func ![Mapping UI showing two concatenated fields: "+1 phone" and "context.page.url context.page.path"](images/mapping-concatenation.png) ### Liquid syntax -The liquid syntax function allows you to transform event data with fine-grain control before it reaches cloud-mode destinations using the LiquidJS templating language. Use Liquid templates to clean, format, or conditionally transform data such as user properties, timestamps, or event metadata to meet the requirements of your downstream tools. Liquid templates are applied in the Mappings tab of your Segment workspace, ensuring seamless integration with your event pipeline. +The liquid syntax function enables you to transform event data with fine-grain control before it reaches cloud-mode destinations using the LiquidJS templating language. Use Liquid templates to clean, format, or conditionally transform data such as user properties, timestamps, or event metadata to meet the requirements of your downstream tools. Liquid templates are applied in the **Mappings** tab of your Segment workspace to enable you to integrate with your event pipeline. #### Supported liquid tags and filters The following LiquidJS tags and filters are supported for Segment mappings. These are carefully selected to ensure performance, security, and compatibility with real-time event processing. Unsupported tags and filters are disabled to prevent performance degradation or security risks. From 3782ecbbbe6d1cceb0b438578b02935f6d7b5f6b Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Mon, 14 Jul 2025 14:42:51 -0700 Subject: [PATCH 307/438] Update src/connections/destinations/actions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 9514fe9a05..775b401973 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -242,7 +242,7 @@ You can't concatenate event variables and plain text with static values and func The liquid syntax function enables you to transform event data with fine-grain control before it reaches cloud-mode destinations using the LiquidJS templating language. Use Liquid templates to clean, format, or conditionally transform data such as user properties, timestamps, or event metadata to meet the requirements of your downstream tools. Liquid templates are applied in the **Mappings** tab of your Segment workspace to enable you to integrate with your event pipeline. #### Supported liquid tags and filters -The following LiquidJS tags and filters are supported for Segment mappings. These are carefully selected to ensure performance, security, and compatibility with real-time event processing. Unsupported tags and filters are disabled to prevent performance degradation or security risks. +Segment supports the following LiquidJS tags and filters for mappings. Segment selected these to ensure performance, security, and compatibility with real-time event processing. Segment disabled unsupported tags and filters to prevent performance degradation or security risks. #### Supported tags | Tag Name | Description | From ad858bbd5e287b2e2cafd2a5922a02aae0ea5c4d Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Mon, 14 Jul 2025 14:43:07 -0700 Subject: [PATCH 308/438] Update src/connections/destinations/actions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 775b401973..ce46b3dc14 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -273,7 +273,7 @@ Segment supports the following LiquidJS tags and filters for mappings. Segment s | `ceil` | Rounds a number up to the next integer. | | `cgi_escape` | Escapes strings for CGI contexts. | | `compact` | Removes null values from an array. | -| `date` | Formats a date using a specified format (e.g., `%s` for Unix timestamp). | +| `date` | Formats a date using a specified format (for example, `%s` for Unix timestamp). | | `date_to_long_string` | Formats a date into a long string (e.g., `01 July 2025`). | | `date_to_rfc822` | Formats a date in RFC822 format. | | `date_to_string` | Converts a date to a short string format. | From a1988a05268a5c7bc877315c67791fd92510fa97 Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Mon, 14 Jul 2025 14:43:19 -0700 Subject: [PATCH 309/438] Update src/connections/destinations/actions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index ce46b3dc14..8079b06b35 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -274,7 +274,7 @@ Segment supports the following LiquidJS tags and filters for mappings. Segment s | `cgi_escape` | Escapes strings for CGI contexts. | | `compact` | Removes null values from an array. | | `date` | Formats a date using a specified format (for example, `%s` for Unix timestamp). | -| `date_to_long_string` | Formats a date into a long string (e.g., `01 July 2025`). | +| `date_to_long_string` | Formats a date into a long string (for example, `01 July 2025`). | | `date_to_rfc822` | Formats a date in RFC822 format. | | `date_to_string` | Converts a date to a short string format. | | `date_to_xmlschema` | Formats a date in XML schema format. | From 0672daa845eaacb0371b754694d9179221ceeb66 Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Mon, 14 Jul 2025 14:43:28 -0700 Subject: [PATCH 310/438] Update src/connections/destinations/actions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 8079b06b35..ce79806055 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -348,7 +348,7 @@ Output: user@example.com Explanation: * The `if` tag checks if `event.properties.email` exists. * The `downcase` filter converts the email to lowercase. -* The `strip` filter removes leading/trailing whitespace. +* The `strip` filter removes leading or trailing whitespace. * The `default` filter provides a fallback email if the input is missing. ##### Example 2: Transform phone number with conditional logic From 0c3aada1c3172e84c93b36429ce991a5ba59d543 Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Mon, 14 Jul 2025 14:43:45 -0700 Subject: [PATCH 311/438] Update src/connections/destinations/actions.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index ce79806055..24c9a84ca7 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -369,7 +369,7 @@ Input: `event.properties.phone` = "(123) 456-7890" Output: +11234567890 Explanation: -* The `assign` tag stores the cleaned phone number after applying `strip` and `remove` filters to eliminate whitespace and non-digit characters (e.g., `-`, `(`, `)`). +* The `assign` tag stores the cleaned phone number after applying `strip` and `remove` filters to eliminate whitespace and non-digit characters (for example, `-`, `(`, `)`). * The `slice: 0, 1` filter checks if the phone number starts with `1`; if not, `prepend: "1"` adds the country code. * The `prepend: "+"` filter adds the `+` prefix. * The `default` filter outputs an empty string if the phone number is missing. From cfab08ac91098dd09fc17c3341f790ba47196ce3 Mon Sep 17 00:00:00 2001 From: maleman842 <79479130+maleman842@users.noreply.github.com> Date: Mon, 14 Jul 2025 17:09:51 -0700 Subject: [PATCH 312/438] Update index.md --- src/engage/audiences/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 14dbf5300b..6b18b0d33d 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -424,3 +424,6 @@ No. Traits located in the `context.traits` object of a Track event aren’t avai ### How does the historical data flag work? The **Include Historical Event Data** option lets you take past event data into account and control how much of it is considered when creating real-time audiences. You can set a lookback window (for example, the “last 90 days”) to limit the processed event data, or disable it entirely to use only data arriving after creation. For batch audiences, Segment includes historical data by default. + +### Can non-latin characters be used when creating Audiences or Computed Traits? +The Audience and Computed Trait builders only accept latin characters. From b7be03dd715fbae59b3868d8ef7984373637f493 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Tue, 15 Jul 2025 08:37:48 -0400 Subject: [PATCH 313/438] Update src/connections/destinations/catalog/actions-reddit-pixel/index.md --- .../destinations/catalog/actions-reddit-pixel/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/connections/destinations/catalog/actions-reddit-pixel/index.md b/src/connections/destinations/catalog/actions-reddit-pixel/index.md index 0715741030..c911f76b56 100644 --- a/src/connections/destinations/catalog/actions-reddit-pixel/index.md +++ b/src/connections/destinations/catalog/actions-reddit-pixel/index.md @@ -1,5 +1,8 @@ --- title: Reddit Pixel +id: 68383577d2c19626da376944 +private: true +beta: true --- {% include content/plan-grid.md name="actions" %} From b9edf43b30963e75f2370aa4d8ea8a324cdbdd78 Mon Sep 17 00:00:00 2001 From: tbols17 <113375224+tbols17@users.noreply.github.com> Date: Tue, 15 Jul 2025 09:02:15 -0700 Subject: [PATCH 314/438] Update Predictions Destination information.md updated a list of destination identifiers that we explicitly support --- src/unify/Traits/predictions/index.md | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/unify/Traits/predictions/index.md b/src/unify/Traits/predictions/index.md index 00e4a0e461..13b461d764 100644 --- a/src/unify/Traits/predictions/index.md +++ b/src/unify/Traits/predictions/index.md @@ -135,4 +135,24 @@ Segment then uses this criteria to build the prediction and create specific perc ## Use cases -For use cases and information on how Segment builds prediction, read [Using Predictions](/docs/unify/traits/predictions/using-predictions/). +Once a trait successfully computes, you can send them downstream to some destinations, or use them in an audience. Predictive Traits support destinations that support this list of identifiers: + + ANONYMOUS = "anonymous_id" + USER = "user_id" + EMAIL = "email" + PHONE = "phone" + IOS_IDFA = "ios.idfa" + ANDROID_IDFA = "android.idfa" + GROUP = "group_id" + NAME = "name" + GA_CLIENT = "ga_client_id" + GOOGLE = "google_gid" + BRAZE = "braze_id" + SEGMENT = "segment_id" + +Other destinations may drop events published by Predictive Traits + +For use additional cases and information on how Segment builds prediction, read [Using Predictions](/docs/unify/traits/predictions/using-predictions/). + + + From d694cc1f505251a9cc90b947b2998650f777b1d1 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 16 Jul 2025 13:15:17 -0700 Subject: [PATCH 315/438] Add Databricks info to Data Lakes --- src/connections/storage/catalog/data-lakes/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/storage/catalog/data-lakes/index.md b/src/connections/storage/catalog/data-lakes/index.md index d05220b839..2da2d4ea5c 100644 --- a/src/connections/storage/catalog/data-lakes/index.md +++ b/src/connections/storage/catalog/data-lakes/index.md @@ -7,12 +7,12 @@ redirect_from: {% include content/plan-grid.md name="data-lakes" %} Segment Data Lakes provide a way to collect large quantities of data in a format that's optimized for targeted data science and data analytics workflows. You can read [more information about Data Lakes](/docs/connections/storage/data-lakes/) and learn [how they differ from Warehouses](/docs/connections/storage/data-lakes/comparison/) in Segment's Data Lakes documentation. -Segment only supports [AWS Data Lakes](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes). +Segment only supports [AWS Data Lakes](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes); alternatively, you can connect to [Databricks](/docs/connections/storage/catalog/databricks/). > success "" > You can also set up your Segment Data Lakes using [Lake Formation](/docs/connections/storage/data-lakes/lake-formation/), a fully managed service built on top of the AWS Glue Data Catalog. -## Set up Segment Data Lakes (AWS) +## Set up Segment Data Lakes To set up Segment Data Lakes, create your AWS resources, enable the Segment Data Lakes destination in the Segment app, and verify that your Segment data is synced to S3 and Glue. From 1fef5afbb3932ba50d2fa459fa59eafe67693337 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:54:14 -0400 Subject: [PATCH 316/438] moving the unify direct integrations --- .../actions-segment-profiles/hubspot-source.md} | 3 ++- .../catalog/actions-segment-profiles/index.md | 14 +++++++------- .../actions-segment-profiles/salesforce-source.md} | 2 +- .../sources/catalog/cloud-apps/b222test/index.md | 4 ---- .../sources/catalog/cloud-apps/hubspot/index.md | 2 ++ .../sources/catalog/cloud-apps/salesforce/index.md | 3 +++ .../sources/catalog/cloud-apps/src/index.md | 4 ---- .../catalog/cloud-apps/this-is-a-test/index.md | 4 ---- 8 files changed, 15 insertions(+), 21 deletions(-) rename src/connections/{sources/catalog/cloud-apps/hubspot-profiles/index.md => destinations/catalog/actions-segment-profiles/hubspot-source.md} (98%) rename src/connections/{sources/catalog/cloud-apps/salesforce-unify/index.md => destinations/catalog/actions-segment-profiles/salesforce-source.md} (98%) delete mode 100644 src/connections/sources/catalog/cloud-apps/b222test/index.md delete mode 100644 src/connections/sources/catalog/cloud-apps/src/index.md delete mode 100644 src/connections/sources/catalog/cloud-apps/this-is-a-test/index.md diff --git a/src/connections/sources/catalog/cloud-apps/hubspot-profiles/index.md b/src/connections/destinations/catalog/actions-segment-profiles/hubspot-source.md similarity index 98% rename from src/connections/sources/catalog/cloud-apps/hubspot-profiles/index.md rename to src/connections/destinations/catalog/actions-segment-profiles/hubspot-source.md index 7cf41a897e..c49f61534d 100644 --- a/src/connections/sources/catalog/cloud-apps/hubspot-profiles/index.md +++ b/src/connections/destinations/catalog/actions-segment-profiles/hubspot-source.md @@ -1,6 +1,7 @@ --- title: Connect HubSpot to Segment Profiles -plan: unify +redirect_from: + - '/sources/catalog/cloud-apps/hubspot-profiles/' --- This guide explains how to set up HubSpot as a source and connect it to Segment Profiles. diff --git a/src/connections/destinations/catalog/actions-segment-profiles/index.md b/src/connections/destinations/catalog/actions-segment-profiles/index.md index 1c2c2fb174..1ddc884af4 100644 --- a/src/connections/destinations/catalog/actions-segment-profiles/index.md +++ b/src/connections/destinations/catalog/actions-segment-profiles/index.md @@ -4,22 +4,22 @@ hide-boilerplate: true hide-dossier: false id: 639c2dbb1309fdcad13951b6 --- -The Segment Profiles destination allows you to send your warehouse data back to Segment to create and update [Profiles](/docs/profiles/) that can then be accessed through [Profile API](/docs/profiles/profile-api/) and activated within [Twilio Engage](/docs/engage). +The Segment Profiles destination allows you to send your warehouse data back to Segment to create and update [Profiles](/docs/unify/) that can then be accessed through [Profile API](/docs/profiles/profile-api/) and activated within [Twilio Engage](/docs/engage). > success "Source compatibility" -> This destination supports connections from Reverse ETL warehouse sources, and is not compatible with other source types. +> This destination supports connections from Reverse ETL warehouse sources, [HubSpot](/docs/connections/destinations/catalog/actions-segment-profiles/hubspot-source), and [Salesforce](/docs/connections/destinations/catalog/actions-segment-profiles/salesforce-source), and is not compatible with other sources. ## Getting started ### Create a Profile space -To use this destination, you must have an active Segment Profile space. If you have not yet created a Segment Profile space, please follow the steps in the [Profiles Onboarding Guide](/docs/profiles/quickstart/). +To use this destination, you must have an active Segment Unify space. If you have not yet created a Segment Unify space, please follow the steps in the [Unify Onboarding Guide](/docs/profiles/quickstart/). ### Connect and configure the Segment Profiles destination 1. From the Segment web app, navigate to **Reverse ETL > Destinations**. 2. Click **Add Destination**. -3. Select the Segment Profiles destination, click **Next**, and select the warehouse source that will send data to the Segment Profiles destination. If you have not set up a warehouse source, follow the steps in the Reverse ETL documentation on [Getting started](/docs/reverse-etl/#getting-started). +3. Select the Segment Profiles destination, click **Next**, and select the warehouse source that will send data to the Segment Profiles destination. If you have not set up a warehouse source, follow the steps in the Reverse ETL documentation on [Getting started](/docs/reverse-etl/#getting-started). For information on how to set up HubSpot or Salesforce, see the [Hubspot](/docs/connections/destinations/catalog/actions-segment-profiles/hubspot-source) and [Salesforce](/docs/connections/destinations/catalog/actions-segment-profiles/salesforce-source) direct integration documentation. 4. On the **Settings** tab, name your destination, select an endpoint region, and click **Save Changes**. It is recommended to configure and enable all mappings before enabling the Segment Profiles destination. 5. On the **Mappings** tab, click **Add Mapping**. Select a data model and the API call type you want to map. Identify calls will create and update user profiles and Group calls will create and update account profiles. Fill in the fields on screen to create the desired mappings, and click **Create Mapping** to complete the configuration. Repeat this step to configure multiple mappings. 6. Enable the configured mapping(s). @@ -30,11 +30,11 @@ To use this destination, you must have an active Segment Profile space. If you h ## FAQ & Troubleshooting ### API Calls and MTUs -The Segment Profiles destination is not subject to API call or MTU costs. Any users or accounts created and updated by the Segment Profiles destination will not count towards your API call or MTU usage. +The Segment Profiles destination is not subject to API call or MTU costs. Any users or accounts created and updated by the Segment Profiles destination do not count towards your API call or MTU usage. -### Succesful syncs but no changes on profiles +### Successful syncs but no changes on profiles Make sure that the Endpoint Region setting matches the region of your workspace. If the region is correct and you don't see any profile changes, [contact Segment](https://segment.com/help/contact/){:target="_blank"}. ### Can I view samples of events received in Engage by the Segment Profiles Destination? -Records sent to the Segment Profiles Destination are managed through a Unify Spaces' Profile Sources. Samples of these events may be reviewed in a [Profile Source Debugger](https://segment.com/docs/unify/debugger/). For a more comprehensive analysis of the events received in Unify & Engage, consider utilizing [Profiles Sync](https://segment.com/docs/unify/profiles-sync/overview/) connected to your Data Warehouse. +Records sent to the Segment Profiles Destination are managed through a Unify Spaces' Profile Sources. Samples of these events may be reviewed in a [Profile Source Debugger](/docs/unify/debugger/). For a more comprehensive analysis of the events received in Unify & Engage, consider using [Profiles Sync](/docs/unify/profiles-sync/overview/) connected to your Data Warehouse. diff --git a/src/connections/sources/catalog/cloud-apps/salesforce-unify/index.md b/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md similarity index 98% rename from src/connections/sources/catalog/cloud-apps/salesforce-unify/index.md rename to src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md index 93e1ba5ec9..9fe8d31de5 100644 --- a/src/connections/sources/catalog/cloud-apps/salesforce-unify/index.md +++ b/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md @@ -1,8 +1,8 @@ --- title: Salesforce Unify Direct Integration Guide -plan: unify redirect_from: - '/unify/salesforce-unify' + - '/sources/catalog/cloud-apps/salesforce-unify/ --- This guide outlines the process for setting up Salesforce as a data source with Segment Profiles. diff --git a/src/connections/sources/catalog/cloud-apps/b222test/index.md b/src/connections/sources/catalog/cloud-apps/b222test/index.md deleted file mode 100644 index 69a0468aac..0000000000 --- a/src/connections/sources/catalog/cloud-apps/b222test/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 'b222test Source' -hidden: true ---- \ No newline at end of file diff --git a/src/connections/sources/catalog/cloud-apps/hubspot/index.md b/src/connections/sources/catalog/cloud-apps/hubspot/index.md index 8eab0aa3ea..c1123998f3 100644 --- a/src/connections/sources/catalog/cloud-apps/hubspot/index.md +++ b/src/connections/sources/catalog/cloud-apps/hubspot/index.md @@ -8,6 +8,8 @@ id: 2baks93o Are you trying to set up HubSpot as a destination to receive data from Segment? Go here [HubSpot Destination](/docs/connections/destinations/catalog/hubspot/). +Want to connect your HubSpot source directly to the Segment Profiles destination? See the [Connect HubSpot to Segment Profiles](/docs/connections/destinations/catalog/actions-segment-profiles/hubspot-source/) documentation. + ## Getting Started 1. From your workspace's `/sources` page, click `add source`. diff --git a/src/connections/sources/catalog/cloud-apps/salesforce/index.md b/src/connections/sources/catalog/cloud-apps/salesforce/index.md index c6bf178c47..c3dcc8ddd8 100644 --- a/src/connections/sources/catalog/cloud-apps/salesforce/index.md +++ b/src/connections/sources/catalog/cloud-apps/salesforce/index.md @@ -8,6 +8,9 @@ id: 2baks93n Take your company's analysis to the next level by **adding Salesforce as a Source to Segment.** Segment automatically collects objects like `Accounts`, `Campaigns`, and `Tasks` and loads them into your data warehouse.  +> success "" +> Want to connect your Salesforce source directly to the Segment Profiles destination? See the [Salesforce Unify Direct Integration Guide](/docs/connections/destinations/catalog/actions-segment-profiles/salesforce-source/) documentation. + > info "Salesforce version upgrade to 58.0" > On March 25, 2024, the Salesforce source upgraded to use Salesforce's API version 58.0. See the [version upgrade changes](#version-upgrade-changes) to learn more. diff --git a/src/connections/sources/catalog/cloud-apps/src/index.md b/src/connections/sources/catalog/cloud-apps/src/index.md deleted file mode 100644 index eaabd4027e..0000000000 --- a/src/connections/sources/catalog/cloud-apps/src/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 'SRC Source' -hidden: true ---- \ No newline at end of file diff --git a/src/connections/sources/catalog/cloud-apps/this-is-a-test/index.md b/src/connections/sources/catalog/cloud-apps/this-is-a-test/index.md deleted file mode 100644 index eaf5eae084..0000000000 --- a/src/connections/sources/catalog/cloud-apps/this-is-a-test/index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 'this-is-a-test Source' -hidden: true ---- \ No newline at end of file From 31e1ccec44d25a88e4e71f7c2c599c3b94fa1bcb Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 16 Jul 2025 16:55:59 -0400 Subject: [PATCH 317/438] fix hubspot casing --- .../destinations/catalog/actions-segment-profiles/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-segment-profiles/index.md b/src/connections/destinations/catalog/actions-segment-profiles/index.md index 1ddc884af4..4c6ad82bbc 100644 --- a/src/connections/destinations/catalog/actions-segment-profiles/index.md +++ b/src/connections/destinations/catalog/actions-segment-profiles/index.md @@ -19,7 +19,7 @@ To use this destination, you must have an active Segment Unify space. If you hav 1. From the Segment web app, navigate to **Reverse ETL > Destinations**. 2. Click **Add Destination**. -3. Select the Segment Profiles destination, click **Next**, and select the warehouse source that will send data to the Segment Profiles destination. If you have not set up a warehouse source, follow the steps in the Reverse ETL documentation on [Getting started](/docs/reverse-etl/#getting-started). For information on how to set up HubSpot or Salesforce, see the [Hubspot](/docs/connections/destinations/catalog/actions-segment-profiles/hubspot-source) and [Salesforce](/docs/connections/destinations/catalog/actions-segment-profiles/salesforce-source) direct integration documentation. +3. Select the Segment Profiles destination, click **Next**, and select the warehouse source that will send data to the Segment Profiles destination. If you have not set up a warehouse source, follow the steps in the Reverse ETL documentation on [Getting started](/docs/reverse-etl/#getting-started). For information on how to set up HubSpot or Salesforce, see the [HubSpot](/docs/connections/destinations/catalog/actions-segment-profiles/hubspot-source) and [Salesforce](/docs/connections/destinations/catalog/actions-segment-profiles/salesforce-source) direct integration documentation. 4. On the **Settings** tab, name your destination, select an endpoint region, and click **Save Changes**. It is recommended to configure and enable all mappings before enabling the Segment Profiles destination. 5. On the **Mappings** tab, click **Add Mapping**. Select a data model and the API call type you want to map. Identify calls will create and update user profiles and Group calls will create and update account profiles. Fill in the fields on screen to create the desired mappings, and click **Create Mapping** to complete the configuration. Repeat this step to configure multiple mappings. 6. Enable the configured mapping(s). From a8d79e75f876740ff0d1dc7809aa105e0ebf345e Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 16 Jul 2025 17:03:39 -0400 Subject: [PATCH 318/438] qa --- .../catalog/actions-segment-profiles/hubspot-source.md | 2 +- .../catalog/actions-segment-profiles/salesforce-source.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/connections/destinations/catalog/actions-segment-profiles/hubspot-source.md b/src/connections/destinations/catalog/actions-segment-profiles/hubspot-source.md index c49f61534d..bb39822818 100644 --- a/src/connections/destinations/catalog/actions-segment-profiles/hubspot-source.md +++ b/src/connections/destinations/catalog/actions-segment-profiles/hubspot-source.md @@ -1,7 +1,7 @@ --- title: Connect HubSpot to Segment Profiles redirect_from: - - '/sources/catalog/cloud-apps/hubspot-profiles/' + - '/connections/sources/catalog/cloud-apps/hubspot-profiles/' --- This guide explains how to set up HubSpot as a source and connect it to Segment Profiles. diff --git a/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md b/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md index 9fe8d31de5..c5c76ec0eb 100644 --- a/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md +++ b/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md @@ -2,7 +2,7 @@ title: Salesforce Unify Direct Integration Guide redirect_from: - '/unify/salesforce-unify' - - '/sources/catalog/cloud-apps/salesforce-unify/ + - '/connections/sources/catalog/cloud-apps/salesforce-unify/' --- This guide outlines the process for setting up Salesforce as a data source with Segment Profiles. @@ -60,7 +60,7 @@ Next, add a Segment Profiles destination: 4. Test your mapping with real data from Salesforce. 5. Save your mapping configuration. -![A screenshot of the "Select Mappings" interface in Segment, showing fields for mapping event data from a source to a destination. The interface includes options for selecting objects, customizing objects, and mapping fields such as Profile Space, User ID, Anonymous ID, Group ID, Traits, and Timestamp.](../../../images/select_mappings.png) +![A screenshot of the "Select Mappings" interface in Segment, showing fields for mapping event data from a source to a destination. The interface includes options for selecting objects, customizing objects, and mapping fields such as Profile Space, User ID, Anonymous ID, Group ID, Traits, and Timestamp.](/docs/connections/sources/images/select_mappings.png) ### 5. Enable the destination mapping and Salesforce source From 78a2beeab9dbfd33218bd66e876612a73c20d74a Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 16 Jul 2025 17:04:55 -0400 Subject: [PATCH 319/438] standardize format --- src/connections/sources/catalog/cloud-apps/hubspot/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connections/sources/catalog/cloud-apps/hubspot/index.md b/src/connections/sources/catalog/cloud-apps/hubspot/index.md index c1123998f3..278acefc59 100644 --- a/src/connections/sources/catalog/cloud-apps/hubspot/index.md +++ b/src/connections/sources/catalog/cloud-apps/hubspot/index.md @@ -8,7 +8,8 @@ id: 2baks93o Are you trying to set up HubSpot as a destination to receive data from Segment? Go here [HubSpot Destination](/docs/connections/destinations/catalog/hubspot/). -Want to connect your HubSpot source directly to the Segment Profiles destination? See the [Connect HubSpot to Segment Profiles](/docs/connections/destinations/catalog/actions-segment-profiles/hubspot-source/) documentation. +> success "" +> Want to connect your HubSpot source directly to the Segment Profiles destination? See the [Connect HubSpot to Segment Profiles](/docs/connections/destinations/catalog/actions-segment-profiles/hubspot-source/) documentation. ## Getting Started From 9db0fe4f6f28a0a1ef3a86b4d7428e46012cfb4b Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Wed, 16 Jul 2025 14:50:49 -0700 Subject: [PATCH 320/438] Update src/connections/storage/catalog/data-lakes/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/storage/catalog/data-lakes/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/storage/catalog/data-lakes/index.md b/src/connections/storage/catalog/data-lakes/index.md index 2da2d4ea5c..91b30ae74c 100644 --- a/src/connections/storage/catalog/data-lakes/index.md +++ b/src/connections/storage/catalog/data-lakes/index.md @@ -7,7 +7,7 @@ redirect_from: {% include content/plan-grid.md name="data-lakes" %} Segment Data Lakes provide a way to collect large quantities of data in a format that's optimized for targeted data science and data analytics workflows. You can read [more information about Data Lakes](/docs/connections/storage/data-lakes/) and learn [how they differ from Warehouses](/docs/connections/storage/data-lakes/comparison/) in Segment's Data Lakes documentation. -Segment only supports [AWS Data Lakes](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes); alternatively, you can connect to [Databricks](/docs/connections/storage/catalog/databricks/). +Segment only supports [AWS Data Lakes](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes), but you can also connect to the [Databricks](/docs/connections/storage/catalog/databricks/) storage destination to ingest data into your Lakehouse. > success "" > You can also set up your Segment Data Lakes using [Lake Formation](/docs/connections/storage/data-lakes/lake-formation/), a fully managed service built on top of the AWS Glue Data Catalog. From 15d3239fa2bb34807f46684b231e200c6919721b Mon Sep 17 00:00:00 2001 From: sade-wusi Date: Thu, 17 Jul 2025 12:36:17 +0100 Subject: [PATCH 321/438] aampe destination now in public beta --- src/connections/destinations/catalog/actions-aampe/index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-aampe/index.md b/src/connections/destinations/catalog/actions-aampe/index.md index 6e59357a27..6fe112c520 100644 --- a/src/connections/destinations/catalog/actions-aampe/index.md +++ b/src/connections/destinations/catalog/actions-aampe/index.md @@ -1,7 +1,6 @@ --- title: Aampe (Actions) Destination id: 6874c64e5eda096bf3850ee0 -private: true beta: true --- @@ -9,7 +8,7 @@ beta: true By assigning a dedicated agent for each user, Aampe conducts controlled, parallelized experiments to learn user preferences and optimizes engagement for them. It’s a dynamic, self-improving system that fine-tunes every interaction, ensuring your messaging evolves as fast as your audience does. -This destination is maintained by Aampe. For any issues with the destination, [contact the Aampe Support team](mailto:developer@aampe.com). +This destination is maintained by Aampe. For any issues with the destination, [contact the Aampe Support team](mailto:developer@aampe.com){:target="_blank”}. ## Getting Started 1. From the Destinations catalog page in the Segment App, click **Add Destination**. From ac5b08394cb00d36da4e8410163f94fad134dcf1 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Thu, 17 Jul 2025 09:43:39 -0700 Subject: [PATCH 322/438] minor style change --- src/engage/audiences/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 6b18b0d33d..8b23b00bdb 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -425,5 +425,5 @@ No. Traits located in the `context.traits` object of a Track event aren’t avai ### How does the historical data flag work? The **Include Historical Event Data** option lets you take past event data into account and control how much of it is considered when creating real-time audiences. You can set a lookback window (for example, the “last 90 days”) to limit the processed event data, or disable it entirely to use only data arriving after creation. For batch audiences, Segment includes historical data by default. -### Can non-latin characters be used when creating Audiences or Computed Traits? -The Audience and Computed Trait builders only accept latin characters. +### Can non-Latin characters be used when creating Audiences or Computed Traits? +The Audience and Computed Trait builders only accept Latin characters. From 6132769841d59293efc335b210164e260dc6bb57 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 17 Jul 2025 13:50:05 -0400 Subject: [PATCH 323/438] Update dates for new data retention settings --- src/privacy/data-retention-policy.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/privacy/data-retention-policy.md b/src/privacy/data-retention-policy.md index f4cf16e58e..d56aaa963b 100644 --- a/src/privacy/data-retention-policy.md +++ b/src/privacy/data-retention-policy.md @@ -17,7 +17,7 @@ Segment enforces a strict data retention policy for all: ## Effective Date Segment’s enforcement of this data retention policy for active customers begins on: - **April 15, 2025** for Object Store data -- **July 15, 2025** for Archive event and Profile events data stores +- **August 15, 2025** for Archive event and Profile events data stores ## Active customers @@ -53,8 +53,8 @@ Select the default retention period for the workspace in this setting. This valu - 90 days - 180 days - 365 days -- 3 years (the default setting starting July 15, 2025) -- Unlimited (deprecated July 15, 2025) +- 3 years (the default setting starting August 15, 2025) +- Unlimited (deprecated August 15, 2025) ### What data is impacted? @@ -134,4 +134,4 @@ Segment unrecoverably deletes the workspace after 30 days of inactivity, unless ### Data deletion delays -When data reaches the end of its retention period, deletion is scheduled in accordance with Segment’s data retention policy. While Segment aims to complete the deletion process promptly, there may be occasional delays due to processing times or technical constraints. Segment is committed to initiating data deletions as soon as possible and strives to complete deletions within 7 days of the scheduled date. \ No newline at end of file +When data reaches the end of its retention period, deletion is scheduled in accordance with Segment’s data retention policy. While Segment aims to complete the deletion process promptly, there may be occasional delays due to processing times or technical constraints. Segment is committed to initiating data deletions as soon as possible and strives to complete deletions within 7 days of the scheduled date. From a0e4ad0f7b8c8d5ba9333ffd88d60a1e2fbcb644 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Thu, 17 Jul 2025 10:55:16 -0700 Subject: [PATCH 324/438] edits to Data Graph images --- src/unify/data-graph/index.md | 5 +++-- .../images/data-graph-profile-to-entity.png | Bin 0 -> 258632 bytes 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 src/unify/images/data-graph-profile-to-entity.png diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md index 6859bc08bd..bd83ad0497 100644 --- a/src/unify/data-graph/index.md +++ b/src/unify/data-graph/index.md @@ -204,8 +204,6 @@ To define your entities: To define the profile, navigate to the **Relationships** tab. You'll see a **Profile** node which is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this enables marketers to filter on profile traits, event history, etc. There can only be one profile for a Data Graph. -The Relationships tab when creating the Data Graph - Segment creates default settings for your profile that are based on your [Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/) configuration. If you wish to update these settings, you may select the node and select **View / Edit profile**. Otherwise, you may proceed to Step 3C. @@ -230,6 +228,9 @@ Now define the relationships between your entities. Similar to the concept of [c This is the first level of relationships and a unique type of relationship between the Segment profile entity and a related entity. +The side window that opens when adding a profile to entity relationship + + Parameter | Definition --------- | ----------- `Select related entity` | The left-hand-side entity represents the Segment profile. On the right-hand-side, you can select which entity to relate it to.

      Note: you can select the preview icon to preview both the Segment profile and the associated table or view representing the entity. diff --git a/src/unify/images/data-graph-profile-to-entity.png b/src/unify/images/data-graph-profile-to-entity.png new file mode 100644 index 0000000000000000000000000000000000000000..36fe5cb8026f7bec2d5ac4ac28fcb9f4ccf06a18 GIT binary patch literal 258632 zcma&ObzD{3_C8FClz8Y)0qGKu1_5cQz3EceAe$DDZUuvuZlpKeT_WAF>6Dc2j^FZp zujk6q_j6zU!|7aW%@{Mr7|(ddey{RO1{;GE0|5a6TTWI=4FLfSjDUcwaQ6;SLvsGL z5CH+vz+6&NMNU$ZTIH3EsktQt0pVeoRj9H8k}7^{e*{yMiYiJ5CXp2qW_-A9wD}<# zksqOUZERK!=d%zy+Q~DT&m8x)x;3hqij=zV`ub|*`;InS%4c4bspXzjB~S&paRgu< zo`U)uiM+#~$L2(47@4{;uDQG=^K|CID(vbK&U`2bZLWMRc7Yf^aA97&QA4SZRb^9P zFxroNy}s2kcU>@++#5;q9WAn_${bNGMoXZmY93=RTQ2oo2+FFiJA;;3(3c5~?wdwm> zj20{z^N=t>f6e!rE84Q_!c{`3XS7m|M}S5=pPo8q zQ1)rYvQ=GxK+s#%W^y3dWJ0zUMEk1&k-JoYrCF9&Yhcxd7 zJplwR1<{f-RZ>D=2FiC4kPvYZkbx2+@E0M#90BF;G6Dhv@Gk-aQVP<~8Z>YU^3O7| z!jFeuWgCxx54FufS`J!Dih{;AR_xDBY+gXvovmztynrC=EC>{>AP&!|ovkdb?FF4h zX#ajg5Gens=Afni`xOTZ5n3%J6>3SFR}gAGc20IqT2TyYYHHzECZ>XFQcwT$Iq*Lb z+LsOvwt^fSPEJnjPCV>3ugo~O1Ox;)IJr5vx!Hg>*z8@b9iBV0S=-b7Un4);k%HJ8 zzcROVFt@R${?YF97dDO#BDAzWI{N3&|BchZ-1NUaS=;|-TEGN3emvpeV&~-er)}U< z;UBev%CF2JK+iwg7v&QE`^{T*|LI4V<45Pe4Ceo4`gbibRZ$FKj(@}^ia}zqfQEn| zjvyx`0dhv%oI!I}S|vlLNAa@O-(l3SnK>_O6wKy`I}zsD@Ugm}~Ns!=Ke>O*lv z3>9xA{FHx+T-3XlF5@8-fvc$@=+q(SVmXZ6>x>T`9CA4bpya5#wTbtSKls;o7pMta zg{<(xJfiULyFaIoc-Ler*jlB$rp-7Pf~2|cZX?Bw%5!}zBGZ=?lG zS?`fL;(kdgycip9HnQ57^|%UKpI--!pVG8}XQXm;G;z@J%a=ckb?@@!@5AwBJ&G+! z31j4cR{v+>2BioAHy*u2-T_&^bzc{R^z=R$DU18CP*rh*z6hp4>Z4&SM8$MlZguw% zO<@i994SBD9@UTbd^AxWR6r@Eu=PDjY&{@o1^<=x-vha?fP@8W!+nG!d0QqwRz-X~ zC8s(7!U=zLSg1{y>*B$#ervJt-zg#90UN8wxBo7=I(noP2{nP`qJBfgbSPgkOm!6^ zGLiix7Yl}gjd^PYcjHirLH}P8=tbiA277+@L1>o|lo(g^_ND=3=Lai1L)zW_mr#Lu zS86xiP4btM<)zIRtUBl0*qy#5HJ>WlrWB}NHSQ+bt-<_|>^vJDClaj9oQwq4X1wM~ z_XRrgjqdhaKI242D!j+NE>i#6z`$P6WxLP!l2r69WS;kOa$5ejT&Yb_h(SRlnic=5 z|6AS>s834ONmPQksh!eqZ3c4IrWBZ;#02^6QT*L>7+w*jum@%JQ?2;h%P)?F!I@3! zS7jM@yZ-NOv4*aNQ}wh^XgBP9w*?qi(=_EVPf}>+4$#nKB?3a3yuxp7jfm;Wp`+4`Pm#r}3yM3l;_?SZ;jF zu+S>C){SYPmql2f_bD?MRxNRssH$Z|FBM@I6L8&p6r3y^V!z5k^WXtWEO(~l`xj@b z)Lz?Q!Oavi*&AeMm53GUX|hGM#Z@5B2ph{nW5M~%a*|9bK*(7VMKR%tUQ z8PZ^EyKy|D`ONybu5s6ThIwuGtljqYYgdSyWnm1D7YQ(pP!=-{5Ub&r=K+ncuLud* z&iYN=3JTa?o*H1gUz@APJ8n+cZl0QN&bmoyT1{3_hBG)?ri_k_;e7H+@WYOOT|bmq z-N+&HJ^bw+I9fThi>H-k%Gj;7B|wznK)AY;E1PtR$h$r5cj@0c?>0W(lKwXyr)ym2 zSmb6H*$mG%Gm&jt!5V40w3;YrXvSxa8{iac>jdh^rqvy<%a4h*IIUV<4~$E+1}`6i zs6&{9jwVXQDG)CAqR$2e3rs@fZ2RtGYv zgm;@m!_;lREotZJm7_;8M+~&gPYSxAuUA*oyFyB_#Ns(qJ-Cd}zsYkB{6){*&MRh+ zyMnEns%KX(@6TTI>WCrp`VkS@y~L)WWs9%}axcoP&wS3E4Cae%4 z1(S`b3D#WITQdLG+$UC=s#oNx$qbCSBp(inY zO0#ViemS)wnJ!Q8dToNy^EyVviRpM-%zuO5dgHl&DWo^se=0wi6yCM5DC-Zql%3b; zS})gybJhfe@jJc7A{&t|{Nxp!_}I^p?DfKYsxfnuvt~br9jI$hjs zBcm0?@0`x!W{!QvwkwrGc zDSK#+4sC@X%gGWllMdaqGRt8+CN<~z4Nt?hJT2|Uns~tW%=}lY+aA1P-=XyaGRHk@Gxb(62$fid(;3Dryk^^S6b}p<%^5}2$Da5mE;3xh z*h)>G75d+?_UjbuX-;in-1GE{6WoRFoaO7)lkk{v40@cp>~rR+_?+Ho*!c7$>J*8y zgTMy|T^^>no6{cm6{7Q1?VFSQvPhGvBI4RBJf=)-?d*!nF~@FSnSWSS6>2@7muTQh z>p2U-rgo({Ubc9Sj_G(mGzYbo*7Mkvn+PmXQ~{sPBAe5yn=`F{((iSmcw3-ufGLq0t+$4%5W-$+^R!Y?nE zLj$pBvc6phcRwkiNld`~d^5k}AkOQ!91iiqDt+Q(P zR2K*PV|zAwV(Txjl6b9IPU^ee+c@a>Bt%BopPXJ|rTKi}8$nIq$a}xY+APv%kKgl! z(zs;2b3%jPj4-D;!Q8BYHAjz_On-_1*HDe3aJ=3w)h7nQsmxsD>r8b7s*lG@mb9huZ^y)s4Gs{kF z51YQ+wZE{^{#nU#&J?@6v zecw((kwkmV2Z4487vUmAVySdy2R&2aRex$j@ikI$293jiFEVAJZmw=KsyIU3j9uIpHe~p{QZ+nx!7s=@lqPJompm8wT`Uho#Ycl*e=E@y&be4AMkDzk zS=4@Z{3x!Ls9jsW|MMk z?gK?pU7Pu7nw?xGr>oZW4TIVZX!j_*=(Cw6A9W`*s4W?|6i{YeKGqZyb3FgTay3GB ziu0SAqz*^Ix%8=p4zN)1)(-IS+D60;GCuw2KK*SS#rXk}8Y8M2L-1frvE408s_BDw zX{2MAPUPcajOm;vSow4FEvsx$=a=WOB$bvKQt1_S5r@-=J$&52M;}n+>9f~2H{S%3 z)QxZ!;?QU(;v&=+c$!ohq@kdo5P#&Og2d=EH8gl?eO_69#PL)k$MVyH1EgR)8=s1I zq{!~x`e}u6 z#)JrFS}0#!$8{AF*1X|AT?^xQpfLUr4St!;O;rHN(XD+EV+7$oNq>$6Qxk)&YCeVF z#z$YCy;?sw*mDUig$C<)s{z&=XYK%F(%-k^XS(@Z(=XMB2%#j-YE?+F@RKt7 zagx@Zn5h{8^hx>MpbPmuthOvja_~+J23etx4uricH+m>s9Z0iVS-znGhw?wBqqb#!a{Orq5V1;f=l8 zFLWyOsyq)gBK%;hy}=7PD{+yy`1pZTo=HEnW!wsK&x)aT7jdL78&Ii?FD|W6FkzdjESz+;yUPi z>|Jo-2M5RUSMs{w>(nKEVVVWA?vVIpkBAQ5O^>6ldwLSTo!}yM@e*}qSP0Ef&V;S7 z;XPN#>g-@HgT$27Iv)Ai9;m%>2aR0yMmK>UyHq2MvAh0P=fbGb+f|6NUM=00l3d`m zJQ@!UmB`zYjE{9gM(;2jjyHv#;^fB*Y4RPeO|C==uCNScsNZPrehws=z|N2=T+ z?CO#+)Za+SCuhdaAiwnCdxm}-Wk#KAJA6o&&l={^>!UqEaXRWrC z+?Uq*>yR)d$i8WB_+R=pAp@&~24vD0%dL96V)+q%P-p!E3#Nm9(&e}~Hw}4a0{p1w zQFP3zB8@^$JI&lhP?H3mf{<*S>1V%5@Ey$CBwJpb_akW;GrLKEyb&Di@tMwpd5MDm z93QN^E%VD4KBu(zw^E=-uw_oK1u@s8?maxS7hPX{cICRI25iSJAO@N7zWGqQWQ% z&OCLn)R!876Gan*xzwMtD$0BOsaoUeD*4MWj{xrE-F;F=D-n5y^=}!uhbxxaJhV1R z@|+uS%WrIybQ?yEV2wo&l=NMxAu8YWF%yt_t@rl7LN(x9EMv_s@ z75PY7M7W{Z&3k3hosV~dgt7%BZN&ZKd3_V2!BIJ?)^pV%UWO)Kq#J=U{Slo<-*Sdm z9g~wq!G;20X>J)j*uk#LW^S+$9wNtRw=k@wA@;*c@?q1>7v(@P{h4I>( zY)S@A|HUn_H6g`Q&!|~R@~8LCy2_lseSLqp54Ye~Y9T_qa|f0;2+0&&!F+lHN$jaz z-=Ru5;hA*V|4MbTBgVZ|Vl;@6NN=h0+*qQ|<20qf)=ByE6d8{vDZ{ha{MAem+qF0M zlDdx~H#Wa*2G*1_PrPK>gr*rDCnXo3Jb~N95^4Igi8?J{q>DXeN-qi1{sUUaM%{AV zMGgz6ARYT~D0j}_VR9Rwd7(i)84DW{=@dP3xkM3DHuTo5+<7tU+jtb>GWLnyzCF|@ zaUqqGj@cSYJZIzY@mBPz{o9w;+|yI9nJ@!vo(nBheyUvWtcbYvm{^{S;cisSr7sI~ zS%>bQ(ZIXP{=Jc@UO@s1j`XEoABb4qZSaq7q-+NC)~3E{RU;lh!AumGEFZq%e7?_` zH&sLtU$HsV9@(RWUL-$X<@oVrVRO@DH14Riy79)!Q8I2MiC75c6muru9l`87Y{veC zn=8Kj9Al!yq)D6i1ct(&ANg5&|GRhzN-X_LHnCw(VnlPZ!SEZ0`}@Q9t^gN^5AgYj za41E6d!m```=5dy_`N=zFIW?@6-GizdeQ1db`)~v8BQZy<;9545;x~w-n-n9lsu^7 z8Og@lY`GWZq8&6;W~YzOlrZMpC38y;{|yfXqECAurK@PC+Lg=BrH3%#wZkb(41e_{ zoOw__C+0voA9*(NogbbG_o&pDut{U!h&(ML$A*8nTvy+@V2MUaVFkrk;7Ig4nlty7`GA zM$m46rG>8YvHe?UH%8ahyFY#V}{Jm~C9Y4!FeJ^}OS5oBjU;<}p@MNDogcIdUO`ogd+@FBrF>=<78|R5 zC@G@GL4&OL{&|p4s8JG%uyKv7SAkxAPQNNr@i9IL?D2!8YEiUBXTdJTy@G&|3wTYNp-wp?F^af62&se~j)#S@WCRPb6biQs!$iFA!b4o*f z!(n3(xVrx^{*dm__xeWq%u83Bh@3p|zCMize-kueUE=uLVfYhNRVd>v0UulJOH=z_ z5DH-D?MYET1sZ2u?Xzx^@NsoyPJ=EF)tFIIZrc?FY~ucAKR4|mRqlwjPwG9&( z62(s>pZeJk1eTGbdul323TmKt_Wa*V z2cS9FNJNEa#`EbskDXd^1i0y&-)?yB?km3eOW&TxD|qY#vY4fu+^md>LZ2Na2$rv^ zrvEUqtW{!(9i03a)246)fNWZ9PwL%v5Iy56#K+75`0v$f*SY*vXy|=m*Td7uqi223 zc4Y}gvPxIkpErLdsM$JB=9P?llvGI0$jtK9XdlO3B~_0rka!;qinCo41%N4H9?u%< zQtN#AhuWWws9An(yRUm|tZJ^H;4Up}*ldjl4pn&xWlThhP15wlz^R|$ zL)AR-^mC@jooNpvLC=pN>oS7bu1Awf6uXfe?^k=mS{*L^0)i!dn*s1{AOsz+VOG1! z*H2P$Rh!zY&(;stpDfnifZTrnGbK*;fsqQ_LA&~An59V?;Ui2!M7R%Ry_>Iu zUK~`^zZ@y5NOUVE{byI(CN%ARiVo`W&(ntdxSQc287Cm zG9Gf#hwQxn6$gNja%jAfL5+TJ&Z64E`TF(Z3GDdx^-G9?`#?(6?DpbfE>e@*Zg(Mo zW(*eNnWg~ek$G+1#QtV{GL$KezsAv;LN~zv)J`6si@y8yul~n>7TGx$H3^nC(nlAv zxSP|yb|%L+k`qB1;_kcKpE(uNaLVlN?#EeW{4Dorj(W{H^(I~9LL77TN4OwY`Kzt- zt(xzzARlO|1B6Vh2LMP#8yhBi?BTm5bZ?Dy(Azu9^>oJn$YOGHa_`e>k^LAVxris> z4+Zv~v}CM9u)JFRF_|#vX4Wl>v_QWx=nV5lqlFP|ekAtex?efDD@QEe>yxAw*N3_! znUzM@dJi=oHR`vZbT@Qg8+-&#_2TGOZAVNqnaeAPOgGr$)Sgf_)9|wH0+^X{sJV~#gy>!)|?Nzaj6;TDzOV&by+BF!)W_d=oM-Z56cHlkz|OcZi`m#XLhC!oSd3Z=h#z9xvLo&F8GYHiHRpuCT|1|?qv1dQ|D(^=F9O^ z2vbzntG5y`) zrBqn|&c->eo_@VG*{kIqU)2`36qROSSC91(rXzc8Gpl=WA*by$ndCvi$IL#X1~XGH zF4r2eHET;|y#T;9=Hg;s^ZbE*MHGi7mgJq+{w9dE)$~J-ragLj$VvN4tKTsl#mfQ1 zUh9z;ZWL?6=OD-wl~=*nWtK6>AZVpW*MC}|6dH{~2Ioa>&bk)H0gQl5*9t-grPv^O z0{PE|g~u=VR6XjwWM%LA2Pb^yv9sE0Kl(=*HW~OFGV7MRlrlr#+&4>%tTEanB+#45 zi>Cir-YNsO>Z^qAaM9|9#KOV|j6MFb9e(Op;D8!QQfqm*86d%gaKyfTZ8%eb8NJd! zm?jXjR7Hdri%25dzSqN}O^c2{S9$noxc}w$VJqVr=MwS$vaQTi8%Yqn__*pRDrQCm zyLJbDU9MIG%C&yADjJyHn?ZU-d#1=P%Ya?Kr05<4spOcvin?#WinMQ%GT1a1g)9Jj z9p+bFqR&lTn_Cku0ksL+llEzt7oJ>b8H6SNcmxP zv(U@E;J?xnE8Y(|RQ11zJTnNu+5V6qP_m|jdpGhR)N;6S#I}V^%=*5m&0h3;Mg(B( zi2Hs~h%WTOs&`jM^$a?Q+=}dqmYRH&I`K8R!a6TN=pM#B4T=2$@w|~RHF0b|VZ|ef zNtkMW!o38AU5$c`Gfd4eMyHB_4}8~=-s=N}Lh%*yZdYK_LX-Jz75jaEev~qEM)rSz zPoKLe-02E$qnMqcCVBElQsJrRcI8?)*4HzX64QsYTPAuNs*)&;>?e=_Ghy;rrs(!vccIL>Co8zOU6{;v7 ziwydJb!8F34Au69;buor#pbGWQ_-h^KlGRbaROsveClln=mSf=U4>Or;TgkF+oMtUzjYa__k_0M7?tsPm4(cHrrBQ zlEf2t|FP8m%h$1~ZK^=VDRP)$!`cbQB>0$x)e^>T^)hq5fDT8s5vpT3=|A4ZeNd-a$r=XC`@M@@XLVzdH9ePFWI6||W;aD5R3!!CiEu)StTI(3g~?iD z7~#&=TZ8Ak%7uO~B6j`q3e2&8qU1iZnA2592nU4LU)7JKADfvmUKxO+R$0frqo93Y zo5G@Z*=>OB^PpKP@lRSr3s0-|iV_xi{8cD&xUQsH{F&2I_ja&NmZA7;p4?!1 zFh6tj;hT8UJ6b?!n179UDAS>pqXpwj%hi#)Ug>e`K;zKa5r_YAxp0^xSw-56nG(%G z1gUfhJsWb`30&}i_K3a~ysksoT@y9MmfRg$PxUA}LsOw`O+#0v((>7m);h`9C=X=(sA6*7^`B#YKdI>`{zM5t`P?c);y_Q{ z#R(cWC+m)s;rhhX8X4!|AYZ!9W&~t?wfaXF{Nj64Q)1{<6L>o@*ORL7K9lxGv4&sV z*Etpm9NjS!r{Trlog=e0-kuu^>zu+CyT`OUi3BXKLF>dpw4)}(v*&zAgQq5+ir;1; zZ3Ryxg@=Y-meKwb>GD9>r%)GA5N*pw*Fen*eHM)4Af<~7h!{%_rOPSC2c4-ZvCtM% zOXA#Iw>MU0tPoyV_2G`F9;DP%(?4kt7EsK`XOBUPijB<-(jYWx0MUs*hH9N~t_qr6 zb0-LTGStQpooi!?N7z_cLnJUIGO$#XV(PGI$3B$;$OsI{>$~<4nXD+tUx~pH!jJ(4oA-;R z8g`dvF>L&EVgC{sK*Siw?^s&)=ZSu@x>1(5v_lm*BSZOocAWO1Hno5$Yr_ZYv}f~U z^qNQ0xur4$Pvk=eQZ3j{f`V2p#%#s{!kQ9HUXSML3-t8Q`y|pJiZOAc6k%0bU?B=Q zUB9xNX~5x5*v_9i;oOYR**(DlJRKm)a@2sULcw*;*fE{T&A8FlTkD_#vI+bm#@^TW z@}Tjlt1|i~n_it7$7=5GmBqtz~#%*oP!Zqql2>>mpDpI z3ww;^pyz3(Z1Ot)dWzR*41_F8-9BI5TU%bxW~%wRgS)Mgu-gp#p22yvaanc2d7pm= zrAa7=OfAdVqZw39%^k2Zc_egL4j}A;>Y2OF%Yt&^9`7fqmni9%nq#$d@OvoTwnejR73F#_KRer5wW=ljkBPTP$eh z_HRwH`V4m~lUf{`KYI-nc{--cZu^8u*5tT6ZO>WUZgC5mq%#XAYwiBeCO4UVsTf?P?$Y(8hMw!^sQUcppt#Yc(<~3I8|hAnt&IvC{w9 zDH>}8>$`gW5a>05mer9euvPXXuj@EuR9rGX`)NvT=i1y8eH{NsE}P8<@wYFS_B`1* z9H{JZ={yAkHlUA?Lj#J+R$vdj^$J|x)?!L;{Efg}2%!TpvyPH>5aRpzw)ccc}kNpYB< z6{;)Kam{RSnlF6uf!sHLCcHZm{;W~2RyL(0-;($)_|?RX#_pUxtB1Y(+$YJcK`-uc z(I;~C(x6?-8eT^uSYhJ>aQYTvyBb2hVLkjT6019HhvlRLe8<>3c3;M?L#s_cWp7R! zue)|7RE7V=g1A8<=7k(fHX4@UHpT~ix3(_mCpD=Q&p<%RoA;L8u;SIy^KrtT28m6v zH;P6+DhN9~kVGv_ykQ(OyUPv_1x46HAoKkop6H*jSD%-6Wo!p))UiLm!qXW>xur5xHC*WI@d*wD6h)rzf|yyL&f@{XM>^~2ZWuXNuFkxdegZCK&H$xHLA2wvxz`Y)0jj6c8I7(8O4`v(;W zpy=4JjJKC{O49z_<&_-+wX+6cfuO0WsvuYH9-C2C5=+bSdO`D{2VodrNDp!+t@oA* zJKsf8$q>=ujSp_=SoFi;ZxO*3oO(Y)z)fUKO$%Og9o=1@ey3gkt`^AYn-sw^awWgV zOaBiRsY^u?us8MTL1&>4)BVhU$m*i=&petc0Dg6aRn?!Ey?>g!SNA260Gt(Pxa51a4u`HusX_QE4b9y!nIk;hyeP=WykW8aFfQX7 zPOH`xJl?CU?OfruR@z{@avQtBj~>5H7YOzyU@rHQ!#%30es0Zw#toPtMa)JRpBu)Z z!qGD5DC;ulh4R!#(z~EhR5Y}JJ6dqTdh*Zfb!`CmMHo|~C9!R=xFOwUNanu^;m6fZ zZHkK9W_e)wN2BqpAtDa1}na;SPXdow0a47w0vdnGpPSd3%6V0p78B?qBPE#-)pBs3m%k44RO==C|?Y z_ZJ6@vQR{fOJoN$d@Cv6KMA;4CWmq5^j7?XME!sr^Z_RN2D_fZEi>vrLdnCBRr%zj zl>10e?w7|t{2Jc&u!iF3D8}2Y_S>TTIq%0$fF5KXmSF$EYWO+wpVFESA^^DVLG@+N zl{d9j##i0{|8y|U*dzenvj5;z?(6HbCG*7VIQfqCEHb5Vuv1p^z4mZ%S|Vy2LTWF* z6idVu*Y{e2oPWyoxP_5^^8wEN-aM^z#YbH6D=XBZ8DFFWk39B@x8ElMZ8!&O*@qPgF~!uGc!zKQ#&)1RuS zJzz#pei{9riawP(e~)CpRuGv|&KDqO9Qr5xrA)_ux8o{8aYplYi2l}o{reovTM_<9 z6sb8!huh|ppPyjYq}a`amOR5RKHR=yf1bAgE>m4Ea9cO@Y9_D#;oAJIC#i?PCHY3m z#_+8X@8m|5WYgx2w-C;jm{*RF%vLFQiwyV0jc4AkSH^8g{p{DL3WzE~^%?{Vb8H&( zQLeRcoZXOS7$)c5dx{}_S3_*fM_4H+@e&*T8UFbB;qT3f>j87;Wj9P58{sE1OVP1Q zd2QZw!?Zij@hw=`nOrB!lqtoXrfGudn}?R)|JYf;+U!Y)zwIa2yw)wnQ;4>a5^v(E zC3Up7mrlC_R?X7Tu3aaKWY=#9PD!C&%=tdZ19_DW5>sUgp%iH|^eU8WIfsYQRtLZt z`V#8j)n9}xEN1TL%v@*YU8ZmkI8YZEvCVJbOoLm_85D4@C**)M1*P)2G3L7$QjnV9 zyNwOSN5wmM(+wW|&KM`@a`VfPlZVquZ_$8sn`TKWlm4jAq;-vrOTe{%s9lEuVC7K9 zS~|@;D8jAf86*$$hR);-^KPr0pQxcRB`Mq!6p_e;R$DS;-{dl zdn*&-K4{UjB#Q=iJ0kPbHT8MCNSs^-eZzNSVIquuVmISY;R?h8mJb(;@yvEN@>)A$ z>3EnUSb_nF-njSNDqFi=cqmiVcoJ6PI>X0$X2Cm~uZv1ad7PLw%awFRhd3flhZw7S zB!@6?L;1bn` z&gX98MXD7jsydvNfMfJONz)FT^?$%-<~${Ts#5Mg@$J-N5Jxta_L0I-Td&Zm%lVU~ z{^((R(A8&s`?AaIW-l##3Nm z7!=Dk%gK5FV|0PP z2}7pR#`}H9hg2X{D$`?e-`6CEQV-k}kHkZRJOt7PP5q-zbe8L>bY$32rrx3&J!b0bAdHy(VPQ}X z2!o(II#elhvGYi2HSrDsO9a*@F!RM|j`m+TRA)v&d_Ocbi!8^&##33I?{K?5AdFf9 z$>Ro`10wA+{nUFWmnIJqGl$36Pivof=&JQS9eQfav~m@8;j+3dd79^l*K_6(+aRVu z$nmbGoQ3B3mjUyz#e@1x<(Qj4>4{&CvCm`H`Q4QDJafM<2?Z$HY-6#S@7_~yPS{5m zLwgAm#JotpgHpBu4)u7EIZ=`*=7iwa0_a}aV(2IW&g z{+}J4aIhWZYIDb|c~HUpRug_SEsZkOC9Rfx%pRbGS%oVmTZccP( zYi8lPk4UA>Tm-hgDZWxEvlU(3wcFp@rkgi*B>4ohga?{~ybEPs^4sSaeIFb4rehw5 zg}WCYaSr6{b*r!Kvf0kbpgy?re%pemyrDkaFx}jj0T6ytoozp*2X?>F5BUdK&{7A;i3OX!6mlc}~&iLzyUw5a%_>O&)Yz>o>Fgx_0M1 zs00qjUw9m;LJ~QV&EQv7CKl~uZoO}sQU8b4dp`h`oDvk2Z$INT|5(sTGfb#-sL=^6 z5&SS0;7qQcffcd?0dNFqJP*QesVc$I$zXYAhrBuE1;V+RD)u8C)`;{Ac(x{U#^_X# zw>FZRVcj@P#FlqQf}ZTv$awOeUFpfdcB!eWA$m&r#lFSntUa;x$EB9*tM-8!I9h16 zK}JVttK6qLVolA$_whHD<7n=wHPhJ`yFR4rC!hXOAqi`G!`=iUFtWPx)n8HZ*u-&2 zx-Zxc``GnNpBv-!h{~uQnkL74(Z6%~HWzwt>^_0}acd2>kR5=?L@5nvV!J9AVy06sriEvlV^qe-Fr)}9Qu#ppqbWIl22_oQcnl~cWfL;l*(yZ zmBwd}kTEOlGA=9>9X^62&9*ZaSsOg?J3dg3Uk886>}ykt1Ya$^rwX(LAJl}uKc5wX zgW9aH>st?%G<^h< zK1wTSz!G4mRk`iZ$P;oP#8$%LN3G-4nIhk2pLn(kdI(S-z%tb)GKV4ez~E`Hx0$N@(}_t+$84rYCBWz@H!yB68dg$@-}mt6@nVMKBl_s4 zWEoYYgsz>2xsI&FCsQ&eA{ zBL<*>^RZVgtn?j}UM+(r(hbYXW&$x@caq0F=4icX?$5Fk)8VU-Y9~ z)IL==lGExilSzt;xgU<>gB(4%oC++RUST9ofub^gP%e7U;!t0SiYe)O?|8+eac7Zj zxTs57h+_*`-CQv>>yl`UKa?{t5mqoQj5u{IBw20woiTk|lJ}#3+%@G1Vn>cWIZ%$% zgZsQ(FHu@GDCiW9Tb??qrs)W%vxI;KlvbWce!KWewbP(Zu*08?4j54m=TPDmb}h

      T&|h&aLtZ{^n|$B}#^&Prk@35AOF?~2jumuHO-#*?uh z@h-pH;kTRTIPhEfbt|FHhoHUqu4tu*{Q;?;&s+y>|6qln?d+uzW$*a=C@0-(B%kCz zv8^7&Q7V0trq(i#UmYbO#s5?=*OcjKIKYulcb(Y3@Qcvkt2ESTG!K)Ge&YN{vYxaz z#6eI>lwIknzs%&9nKp$_qxQRYvW)x}h+7W{=k%(H)}jExLFxH{wD;k6#i6}+OH@fD zThV^P%!tXQYIY?%>=XI51h>tZANW2;`}}6lg+mf1cRR@_!i~QO$nh=#@912KgTRQ@ zP0Ar&nF%4IPb7%Q(|8e>tR1EjDFc}!*$)kJtk7m9ww`YZqj&1iqwEqRGQ*w`(R~qUD6Bm_adJzB6(|U zNwmQC4BUm072M6HOUVQ8d5weh2l7_dv-d4m7Ws{vX)0VGGLT9naC6!p^p4-#{U*fr zX!_d<;VvxZF>dT#5^9)Nz;V)Y4;BX37|ZU>+bA99K((<>5iuDAfQh{ za_bGVEA<_hi0}6}?&KTQoBVi}Px?eeO2zC|flPIOQ|DZhvEntxV=1(mpK%aj648T| zV0h_q37@?JL(giG6EfSHCP+%l=~+d`;0Z zfR=o|dvo|6VtM$7@g7-cTs`oiYCYJCW65TBg)BXVqRp&?CPfIaR#{L1z$Iaa)%e*K zvGsIbsVr)ZaU7LsWfFHsYW7LmHPj*9CLPy`s-+6sS!UWV9Cxo^1+Aw?F%7D`@#fd+d^lcD5%`tdriK>QI)8`~DUruEjUxj0jzkV6$!^lQZKiNY&p zE{o-w_)VJ2Ia_C2<*mIA$JIj%6qrMRFYqrY%Y-2v^dLdG`OI>>(yWR3%Eab!G4}wu{rW zAr_8)<6G3G4a<9~@L<1aWW~M1P9w;zY^iH7?{35<9zuiZ^>)F@x+}F%sWgQUHrWpehl_9A@G5vDV-uO*WT!(wQvG$+PaNbao*H9 z(x)_muiX1Hssnueit(-@3f~el7M6RE9sPVV6d5Tb*cdPu+_2Spq4dFNgD^Sz;Qf}* z;76JRWgFg;N58x`h*2eQ_eQpf@9TnfiFkok#OemMO^%^j_g?Xh#_!OEP>f&Ql5mAM zk*;!>JIU&`Tw7?wJofnf1wr$c_jJY@H?rO%L%J-gIv_XXf0k|U2W^=U5x|+wO6s;v z$8fPWQDY^9XBPCcWgBVpz|=syFYP<5sLuO;aHs$16iPZHv}D{k@YMNo@jqvfBQsYF zpDZyrNpeDu+qAtYeYNgt8@%8?-V|t06Fe;!wNL4gG?Uyab?v--7GMQ+dvmk;xu!^SSDz?RNRhq8qNXDZs^CUibrRf=adx zE{{TTk+=RRTM!u{Qf0dxrE~7juf7UOfp&gO1Jq(zToU z5CL0|M?G_HcyH8|K4I_wxn?o3h5NIFWlG$FbFyXE(L}~+_=z{U=O%m^TNaCWpg58E zFDtB?FZn=*n+PVP$_il_bv^j*^8(`x2(AB(s!Gjqp;yWLz_M0m07MPH?{qKEY_dHtT zhBvOz9Bq?zA5`9*ZZ!Op1wj4q_(b|>;BNC#m2#}m=vD&0@s7g*Za`Inhln&`iB`{P zPW<$qTHKz?8UtD7PAAtwO=X^PtklW-nC1lM7azqIuej_VY2K-^d$93TzjjSuRBXZ} zXALr6W^W0pz>^Sar9@Ya&}n>{+u%B7hPNL4*m6#QdTcPD#1B|e@tDglyp6Pl$HI7L zeJ0U%$NC{HV8qZucPdGv669~shu1FQJF-c6NeRFIT)Oho|4xsVzDlgG3vexD*qoX4U(swOU4{7ubx1)|~F+tZfC5~e&xsX4*?hb}5JZ)U;PZTu( zl)+o3iuxSrvJ;Ew>I33v;pBty8Hr!NiZH)Yx)pqNZQXxt%e8HtO_O;{$*ioL|LT&D zH|9!jot`X7+!+Z!OpDULBU0{b_oG?zW<@b@1W25jN29i;y7JGyWVZ!%6>nhXssH{9 zlwc0M4l{RRkAD6i3jj}(wyv-yM&CRO?mmpp)M9wg6c2ASG-aQFxX8pwst%SrIv|`6 zGE~|2^?$ftS2b2Gx%PMllVB`1XWbW@0x=bY~DY{zsC3#8G}mM)sAeP;=0;Z_z6=GU(JrHuq|jg{9FW~fu_eXDPvvdR zK@M78j&-3E5pl5)ZU`uo@h<**3Mvme+7}nPk9y--(AEreNGI#@et;P>Mpp7=IONeb(%16dw7FM5M!{Z(ftNMCbu)JJC& zqx$+VhQj&n-Mm+@b^M^~eUA$ab}lU~P4Wa(Suy)GW{^4^`d`{+Hc-mmonN3l^e0Qs zZ}GfGMdadw_(>i9=HNFeWB-8IP9F9fsZKIDGZ@ht^&gof!>Y;C=ONq(5fNAI#f6m$ zf(>P3&5bD?)JQ~>=DYCKHR06?Hf`-lIM2TI2mc?kAaNpfeQxZZQ)~$wD$^5slVt0~ zRu#3RqP(nO;NR;5FFDWmDCeoM1c+oeZ~daL&}<|LnbxysAgjyNr4k!33D#FvFUf?~ zcJ*~qiDgZVR+Q@{aY>V}EaoFGh$*4L@C*3kh2i+C3Cm8A9>fDgbu^%bz}8RVWO@OT1kadpAS^UV{ChhO zs3azv;SL|uK@OVZ>O*29{+I?+2_1J_q>q8`uYW!l(S_i$(DdL~pNKbNVy{ftx=2ej z3`psO9AatJ!X|4zdj72Sx{v5!4F4!axgsx=-qb%5by>Y3U`P3QJn3e)E|jK2X5yOX zS7OEoW?96US1RvpvrYL-|Gn~G8uth#pf2~ZXWE@k)bficUwx7WU9pi(E=k7>#9`!` zV9C%e$9J(UX5PZrot|DM8|we?keIfQL|*g8FFZUYSz=V5fSL)P14kc4&C)H1vtKeN zD=jULIFIGiTDP(=#&+xX<3HrM6!PgFa=3S2z`LBe{um7DN>2Xf3dy?XFS4kE+g=Z{ zn<~EBLAo@qMNyC}vu6he{!N`{JjWzA(?1v4Z_(2$b73SN-!+|Rex}mE^ZDksqa2s% zfLQR+Z^hay;$>-U^?svPuWR4_qU$Y797-TaKJkC&_};oZR|57bmEfqhKKYuzQEuFe zX&G-jQs24~Jl7Xn;MN@kb`>}Tx9x`3;$t-Ow)#xcqU;AW-%*G;|GK5wHM2i=d^Po6 zn7>i|o~ysVLCmeVrr$igh7xjwydM%XWUh%-POX^xB74WOP16SC6(DJ^Oozl|R7h>D z$oIrqm*t8H@>&wVLqjzbrnQmRD{ZP}bgCH%SrJM7oj#P4#OKdyeXtO0MLti4-aqth zJloG;tD^_tR2iW${{qIMQBAiDnoM@Fc8EP~imZDxX{iJi+WpK=v#3aMH_QAlEm%ej zUooDbUx~8OmaX8M2r)Cp|HivI{KMQA-Po0h_d=3RIZF`U)zZ_9{ApDZre;r?Q&p=> zN0AgKC~m$I^*(+oL~BkBwr*M=!&urFhqsVjAS04ekf}dpXhiYU&`*(@j>iT#!+)7s&Hq%zFmsw|t$fX<9k$8L>;;AFuX$bvx z6XO4)C-|Qwl2U>T@Uu#BjvdCo$JhUQ{fn6;)Y9SOSrfYu{8ysb=sudM@b+uO-=A2p zeUM*y2USohd;34Y-~YWO{Aa!5TiHP}`xSxzVb1cO>BnEUbeFIvJ%;=`@863u|CiT? ze4s3`SFeZd_`5>!mu&p+FCIO+I2n|AJ^=JBa7+Qm5iu4527 z1)@6%wyvPCkds^Td@BK_FV?53PeTdj@35XL72zNBP1724xoNEIDMkeGaiFyUv~KV$ z6UYVXKk@A<0roDFa|N=qv*4$=uFgFKgSWHbUEblf^YChRK13`vM+uAy%`SimjH;`z zxW6n|TVB5MhGP8{f3SXFtt9KlM#hM`ABcqW#$fJ~lxHBrD*dX#QypDLL>VZ-o!FE6iwx6n?J$zG$GTSDv-U7_6^F`Md0e~B7L1##UPB2DoF@O zR?wPafj zJGZE|zK&F)Q_-GVoGR#FWf(E9pf$+`$z4&=Dyu_!6AxINb5UR&!W0cxqSTDR_|P=| zrALy6;LhSDfUAeCXIH^uGW&pKrAvfQvme;3Vr44g;D0@q|Meoj`ig@<=Fq_MRp`#Mb#ra)FEv4Cd&QwRf$$H&xD!1`lCnb+c0AfRF8@ zwy?lUy*g8q^cSBcOw(uGF6hpZtb@7l>7OIpoXVx%q|fgr-TtG%ZTV{sNv zFQ~^Gz3dYo!C0Ia6cqH__NbyixmcT~%lO0few23V6!UpXzDK$zW9;vmR(kz_PtTaZ z7%AgX7W~@>{Vj({ym;R-8E{mvfqG$vfyW?Me4yFm9wObzY==2u#CQDOnE!X^SJ$)y zNw1$t4nFj1=#nmY_$- zR`zoBl(`kFdUX*PeUm&WrT}q6w6%*Y5693uDP`9TJmYE-XJD9#dfLM#h)2?N)j|YJ zLcuC1fe0#b5ApLFd63K=vNM?QGm<;g$rWmmR#M0Jv^kDvpjlN^%wyf(UDw2Xg>gVE zC$CoFT29*tnWGGhg@YZ$=}wWaw&&_~b}_%ygZ=(7drm|JytGZk5&b;^Jl9_Fg8N0- z5-adXiC71MTDqBzBrvuC_tbh13ihh{#1!l`v0^`rz0GQk-~{BywDJ+RE`JvyJSc6eV|jVpJuYBk=A7wNP?8L^|XAZn7GX%sN&dk(s zXZZ>WYGKqz<%7v`mH7Jw(=LMpLM=H?5AVW;7uw({asWq>vMy;I=?;MDk&}~KYM9M% z#qzCW>IGi(F+5WN)p9mCJQanvpLl1kY4duO1UgCWg97IQi~rX2!r4x{^=DPdBYqKV zx=-aq9}a`b+G_PQaM8>?T)^K#d+A)Ivur<+;<;&9xZ07 zQ|mM?R`>ic5IW83&m^SsQ37KK-Sn^>p1)spJhgNp{dT9u)fM^}-8p+WngbsH9a?FH$ z(Z%H9XQ8G)7lh737i7o2DB-1W`O!>9abgvq7%TcB_jImN*UtRcO&X@=;K}OgpiJ1% zQmdBJ*$x^h%jdBo`kk}hVQw;VhLaQaEk9ik>AIq6f_lMnl5=X)_+%Ut=|SaWC%$S` zyS!cuf92&!AC1g);k8VRw>S zhe6zRU|;F^PxwKl`uAoA`}gbOu)+fdVVfkN>f{0#J~8b|P|h_=b>wh$cNIyiMBr4e)iV>?rJc;VefO* z@#)QIeyi~H@@BXM2h|nH(}65I|4R1KwVdqiy{!8Lmmw@u>w)vT61B5ON(mH*5`WEUEU)ENdoGhZ{rzIZ{ zG4}qr$x~t$Q~B7Blwr30UcxVKB}lGHBiO`HdbL_QJ3ix?jUwSgxk)MdT(=z z02;bShY^STs^=U)PoKOOTTOm4WjkHax6^}v+{Tn!rHYvL_^cSm*A%fZG`Qnj^D85j z;Gs2o&D`Z@81)@U-s8oNgjG!*7UIlNN2Q;Ih#!40R9~S`K`-v0y5m-Ii7(G-B&4ZZ8`+#5caj~8dR2IfUbjBW zXxp!oJDt;_Zb2S*EoVwWa2M4dnt@3oQ~ne8{OqmdAJipf8Ueo==2O(N5^lp8`%D-YbzKP*-qUh zF={2_8UwjFy@k0(PBWC5`PF_)Y(fJJ0^glIK%vd`^dVEn<>$eum2~SO@Cc50r zw`0mJ)9KNPlZf$BcJwDeK0f?#c1h*ig_mok@YA)DgVt{W#tU-OXW{E}vz1M@ziqu1 z**;{Me>X?Eb6IBM?3(H0cXc%5v>|k;%JIHK1qmjU$lONZ!kULozIHX+_*t^Mglofv z$*(1Czi_E*6Q#rPb_HCC__=Y0H=2aHLUZIHxzpsN-KWRgw1Rf;^iJaKU-O!dG>s;p z%5uy?PFlPqtoc40Y-p)h+>b$RDIWDvO9Z4Z{MhMo&^={bLu(4pxhW`g7d5C3+A|5y zFwOIdh{GlV@la)yGtKnkP##;we0AZ~d&FN`F^8%|xbkmHo^!t{V)CYKWvQ(-8NX}oQf-fm9!vq=J3+c^l%9{=McY;tu3|Ft13&6;BZVH|aY)o8&XSu*^SL6BJT{VT>>o|XPyRXvJ5fOx{oDPS#iXQFKnobisT+%8<)!}rw0Z66~|>`x>#Mw{{iJYPM*;!i*9 zM?d}zHB;~3mY7?mP;+>sQbw7NHy5@2*Gy1DF^XlOmsaqP<;tRCg=``W&U3`phHoyF zx|_pb6qarjW8N3XBMl9`xp~9!H#asm;B+6&=z?FLX=OK(yz^rdJDvu^KjDw)_GMgc z(9d;jCCgZ22sSXoyJWprLJ-V|Hc zzj3oFIc}ScyDLJT>NDtFoh;Uwc1pBss36`1>pWirfhMdsOz0_a|g)Ngde- zNWT`7UKy%q@Rs3+#a=T=CAB{jwDEr)TDI!8iG4!r zTEOs8S?8=(uTt!;5Ui-bz3&-}6Y)GO1}UWt!*+pEo-1HfZH~*O$EmKo3DmDJe-gK{ z`X*REQz-ly1coIwS4x8_q(avV2aZeBK=;gWk8&vrkU&z0^Y)Y>Wc#kH<(?m!F7-Tj z3w_(G!zIV|Qb})!+*Gmc3JVKMfGcZGYi|%#l;`HsKp>eZdh7H5Ctk`zJ` z{3Lm+miZxEHr8>1V1Iol35r!Ue1!cjaQ{bo0jIz?T{OIA?**ECgRARjOf2;Fd2VoG z_PRkzXE?ikdwhs3O>D4aWY(cjz@U*N^Gb;Nm+gozt=m?eTX#P}=!^>Vxfl5yNrL+p z9ZWhp{ihxL8l9pZXTg%!UKljO6^28%g^*CoPNEcbce>YQ-3Z;{ruvUp9>SzgXYWs1 zNd<}ea0kzEdCnn|RXR+`BpniT@vDXev}a4F;_|FwO998@*W8X|Xj9zNHsoTTWHZj_N>GE!wp>LYW`;XA56IzJQ4~99u&o6KU zTr~aisKyHiPpg=aEY|Gt*J#zY>Fzfd$iz?RfF&!leJ70|%d>s*s<9<61GQyhT$JWm zeR{?5a#(KX0+yQGV)f?h-f=D*RmZl?kg2(L1l@5-xn2B_BQ0_CQ!)%ABvWUPikC~z zt=`A(&}ipUlci;FoG`UQhpycyVsh7qm#_AfIzn%;Y#-f<^Uo>lHTZ82Fis|ET(viUH*P#rRW&XwI@4EQ7*T&bKF12}0g4ws{>@4y^CG|++WS;He>~%4E??e8s;HpQ zE?sxBFY;dVQ%8r{S2_$74X^fmejS5XxwvSi8~xhTMrM*o-q_g3Sn~!3b0Doh{Mzxm zL03AH^P?N#eSI&}pkKLD!*ReSL9go@pVb_R)Gm@8W~Ku0Bll*WY$#_Nml}YfL?Tb!1JWiG`Z)d^gTD0d(uZ(5Yf}Au5JXtI~Vn7 z$se*#mobY2mO$8r6w?mi5X}T^pWb8OH;j*;%v;f`<5_IG!^$D|+4N}-;yIbLw||4S z`9AErSXEV@Y7)!M37PWHL!?q~XOFxqx>UZ0M-begDS>zo7&izR(coaD)_Gh5RiF^+ zhhk44z+vTG$i>({t`K>MA|4DpwW*K(pk?IJ>V&=peRxcP!TdOgo3h@D zA^UNS{H*>cL5n1M0+*ult|719bhcz8m+2~P{PAscz*5SOqz}~L%zPYD`6f0G^$(GY zD@+Gj^HpgWGK{3~$^x&oniJ$L^eH*X$Kj{;| z8y{wB?s(sS5`714LrAsl>f@a4dK_%8;xulNIH&pkZ0&SuK~Az#!!SEIP`z{;Hk)Xe zz~L-~?-^h&zq{o0=TXjU1B8LBM1Lk^y6Z4*aU%<>lvs1bojV`c6igSpKCtI@`0M(8 zr_J@;=~gIdg6H!>)#0rpBGOH4!b#%?`@Ggq;k;Ye>So4DqEpa|HqL#SsuD-`h5AEZ zW#^Y(TxV+o5xXKy)M3&1!F3kdGL(d=qkZ66?YHHhN7%=PUUl%qa{Jld-NU&1j&@|I zvU*0h^_h{4>t~}I6j>4nr;LJA@DcFgj}trXc{ zjA!fSVeo}rDFP?SHP-D48Pe#)^XqvWOjb3jK*$b^S0BVre&L7P@v(_K-lgLz$#Krv zrFRZZ2&q0upsh)^kAGmkqubs}4LZf(o1N2>;qf?Y;!QGPn=`O1$iyG>nr0yt<3*nY z+plZk#}V;&R1;QrOSpO%D@g=9OS4fcew7+9iNRoL4_x{9+ihpmZX3pVx+E@$01_ zx}u%y!^Gl-doZ`na{uv*Dr>`j-zW35UG0Xlqw7xUd;2;y!1|RYVEhIKfiuZ#Lef?N zsnRmFc{OnZsWg24rv#$}^ywip*+Q=hVkJB>b-Farm%+M@wGN8SL3W;hKa-#-zIYM!RM{ne-yFbbx{P3e4ytQtMzKJ!@+UqsePAGNxM}t_+b)z z(k!TgXO~fdf_0adEvWcvSMFFp-Y_sS``L41Ww0Hsm^r%LRZa;~v z>l$*e*ZUb&q2c;*z&rb81WkwWKDIic4=!OGGH1+~1)vL8Eo~gVATUrWc^w zU@$>seYxE*|I{wWw!^*Aa&J}-Qnk?xq;*}~D2Sxm|IQNHm zh9J2(;)fdD@UvfwSCM~W65M@5g2};8B`!zQVcBqWJYGqpulkbxL3MZe;7sS~7B-eK zJS(pfMet5-xGRQ#G_lqBSYPER2ineMamkk3aeSi5f;!NV6zs_jm6HydhDHUdI4w-JL|I}T@vnEu=0G(J>;=9N-;Rd^-ENfIq(1W%JRs%FZ!T@7LrsQP4_&H}yrEeV(B7^h)0+3#UN?4KQi&ore5MKXW== z)4qFbSUKZ1(Wcoz>*;bEX|-Hbn){;btZNGwSFZOea3B)4Tvfa*3fr8l-Xy2VEXv$ghRVA2B(mR$!go5wze++8Ed-VqL&FXdS5kP3H=fHWY0WvhQr4+^TL7BUU3|;FIe*9$V4K=iV1v zO(AIIG*zrTJUit?SD*aIwSQEwz}v;IG=-(Uo_G{Jx8UUuby!M|ET5#5Z7n~u&+I_> zSzpoUMy^$z?VrHQ=j0Qo=0e2PBwR3IQ<8&{SI#zey6v{l75*Zf2~mwMx`wAD%u8g)A$@2saJSICO0X4F__YQzRGHZp<~)&wl)n zv11xBB!V~B5>|i0*>h;o*I)z1^<~(#Z>Y2g0AW}7)9yElkD+Oa9@T5%^R5pjHb^5m zpl5AqzpI$-dbnn)34!lh3*$3y>3giUVA^yx5Yud3MU@>sp$A$H(=GQLKkYxnBT_&Y+k%&ewYn|gL} zzJw_+IprO>yF`7%?$_kNfh{s3?Px|Pdy_7d-!Q8*^~sknx)%a>j0Ih0Qc(+&cVP2r zlA@^bJ5PE0d>$N>ur4`vj?o{DPcwz0PmjXk*+%dEyewMB4zJAGYqL%h+q-8Ka8^}#{M#$TfKG=-NI>7La?)h+*_BRgIro~O{DE6tX zOpX<^8ZdQp1sR+nZ40VSR^7k^7C9$@bT)&Ktw<@#Qw@ok#Ao^9mezL?@^S)9Vg2zR zWR|Bq!cfjt=X-(Z8igrU8u+>YYJci4C*UH$in*nVIFkN;LUa zS9;Pbtjg|d{CTeXSD|j?4&l#}KBE7_+ndKj+4pbbS5hjX60#RcWvlFKAxj}q_GOZ+ zW9&uiesu!ZuSosv(H@~r1h!6{nPt2Nm4EQj?+Zl4Vvzi4`RzAx$ zKK<7ygjc6dIl39F%|y{==y+^bUG2tV88(mj$xoj?JwfyjcnBta3D03VJ1@6JfNmh zKzjmd6P0gfPEJ$=m*xpTwVFegXrM3ImTen4qhj%AHTwGGKAgJ3Q zM=fd!zp4c22CwiDn5U@vfUz|_#9Q7b{VI7NrXg#n9tzi!ny*tN-LIs3`TJlX= zWkCp7N1Aa2s6{{vjii(D|4q+3|(|=*jKBz ztHE3j3Wj-HO9JG9-TQm2zNAZ$d;n#Z?a5PB^?lxSE<1F3dOE$l45$!+_I(1xb$evf zsh~gSi1Tkd779`!zUi4g7A0Z5R{%m+PCs+u!bjr=cG|*vL|vr-WGvEkduwQwu$(J1 zFOB*F#4Rxr2v?*mi-)*f*6npziM&$Mci632HM7705m zNMSlgBKGDJVc8>UmeyQL=)DqMB2YQ^ePm;&XX;Dp?v)yg6m9gMA(V;&CfEAFHHTn< zBYGH+Lc5-sk@2H+5b(A71|5P+Mtku}t2ic;#GB*TV5wR2M<5^-0%N@TGp0=2L<_-_ z(uoBaCy;7_oOJGpgH|Cl`#QS>$CSgMOqS@fE;%mI zk@zv^$KRc@`}TUXSa=zhl&7&uHzJyM#rx)@R2RZV%ws>UstT~^;=uRC_F2d&iOIdU zM%-*N+VbBY>_GkLAIg0Om9L{E|KSs!qatbMyV>A5MLo+x=sx2cu?Y1exsLt*!nVwPd(w-&2z~M5Mbi%>Zt(*iXI+aKiAeZmJ*5j%IO&U*)4wgO8 z)g4MrOqauoiXp3!?ksEp@jB(DL>rgw5ZuLEB9ef{&A+@C@p)yfJK#mOA@!#B zl=y088UZL#=pV6A51Q_Zyan3a_klX8tf5q!?^zw`yC11rl&CX5Yvr^!E`4`1_fpZ& z_ykltQh}s5sSQ2UIue-sBfPT7?!jIwsnZn>bLX>X&jJSOY^SxXx}F}_*Mch+Hmjk) z1o&1~4o%j(GI|+W!eD28k0d}AELDWHPGKDt0Wg}h{2sN^p|0ytH@ed)HFc&&Pe#Gi zY?hRm5UZ8l=>!r>q;~bgWeoT=;9ot^i#XE~4z|mnx|N+x+v^=#SXj7~4^dJ$DxqWh z2>1yPo(KTsnuuvD0_@Q!t#L*aZ!X1=BQ6!I4U%TKOV~l9uq4p(e^SPxjCl z51m8Fyg2}RV|f>eF;en6xq z5&TzhHkTmi)}Gh$$zl3b3pWQSfE~>=OC(g5*hxcbe(nKVfk=?;w>4(UI(SuU+;(0}L-j&^`IA)T&ndKWfJkq$lb#Z+)V; zbnEgCPJe&m^8SYtR5EKIBwViaI_~BxD{)HzKu&InK0F*+U$nK^HG1ujd>VdY+uLD) z@6Nq>i)BZPzU~iF;wdI>UpQ&RkrLe5nxe@Rk39hj*Jn`$aUan)S%mefZ(pw^7TT{c zi)RL zM&}ecW3$~WOIxONGwfAjWjrnRdZ~?*mh+HSDwCy$;sbGNkyRE2o#zv)GlgNKR?cTf ztQH|WA>s_;nH~vQ-OHG)a_hZ8{UWhw>)0SiBUh(8G~&V+Ml45|iUyfM`zDHOJ&(tc zzlGd$J`l3xnif)|J`ZtkPh7-}_KRmSo5SFG5vlck49PnBNc&*ysaYmn(d}TwD5ZMQ z?DXbk=C%CqT00f}0X6BK^QVmIdYiZ4+xBw4ZjZ*RogLvjc8k3?sNDw+c4m`M?>=wk zH6>tKw`V2U!5pIU$!voVd50_&1_r$s`vYnfhPY4czdXu7{SiWN<++P7{4ao*|6pSY z@9z!2V?ep@JHMC?GTc-W%J@#jm*)6=q5SwIjo1-ivDrhlX;nHqAInOny+sEt!Hh|h zH{I)EgV4zpqEF=Z)jwa0V;2TwNG7f(>0SC1^=EdfDO<%QGWw z4`<26krVnFfA*e1j`A&76+m>EQGuUie%;0I9_jCEFAoktWV-u(7Wp@H@IT%!*a&|` zB9O7NV^VkVZ~pWz7yDc4w8`#eE#KFdd8aQ0ND)1Bb93uN0a+vLciyVS2fDca7k&La++~A@zblPwjbLF}Y8X6Del1pB_TmGeP}-yfwA}U~O$F)cY5>lO zK*a7#%6i!98K($xa%usMsW;L*@UI~zCNnj**8?gm_m8>>`GpJjfNv70*rE#uYR^EA z1N4f@{lyr=DV;sqfj7Fsw`y8+z7ToDvG?^z&&i=`Aea1_=S`UlzT&!W$xfZya>7wj zTBjTh6%%5^qCo#bw$buA9;%}=m<=IcH2oOSpK}FqeKGX1XN+|No|ZL$tA(9*Xp|U} z4f#fi7vdQ-(q05MMWcl@ja6X;o|Px6VwwHrY|q+ z=|yYa1qe~(DiCG6ZF&kQ3IK{fr8!Yo+9NE%lj?NC@k?}XNvBR32s>}e2+xX*WPx8g zD;=n*K{8KW?F;DubpJletgR2L4fo5fvz0+bb2zrzx_y2_lx#CCHI|16orl#$w|}l( zq;qHwqs}^RTL?xvD49D@f>7Nd_!A?aMo5TE;W$(G_O897f^AXJe48k?P1FwnsUP*A(~oE(C&gh)bkG07RQvf|4j7W2 zJebUf7_y)S6KcF)?EIKmiyx69qhz`)>qi*@P_@=8JGZ~>o@J4^f0B}Epq7u__%#K+ zg!Vb-e2Pl|QRGWu?l3(gXn=Vb!k9XgF(ezk)CocSo zw}I=)icMcqqi>fvjw9mhDR)ohF^b%JsQQk%J11{L-;aVazt-JKidKBu?o)zQxJf9N z*+-4*$kN$!QE|7#8~Y+s8$d7Ik9mQ)<$@ExPAE&tiES0y)wJG<(cFNNu*ZM~(Q*OC z@pN?(#!<%`#}Z^v4kNXY)A8;0cl&PBnGm<658Z~{hZdaTx6&4akviSUf+Ptg^;LWg zG6&-t9%W`j1l;`yckAZ8&WVqi(!kGaA%mxh7R<=jeL9a;pOt48B6B=_2ae zCynP}Z)II&@YV@E81D#IPF`t{LljyPPQ2Q5_1mO4y$xmEj7Ti}es)PB6+!AZ*QR(fNGs!=Z&ZDIB?xai_k6xw1rT04-w$i6{R zaAawyU@&Kppv5)&v|N+{waG-iBeXcA*kSkTA>7wGcu~AAjJs=~Bik7Wn5P28>w)FV zG#H?Wfnzdf2i?I1gy8Hw5vO*eUhy1ALaagA=DD^Rea6#4X_GTqeaM%tu66TFN%lfG zrtFX!!R9w^SeWK2Ai{UOyeR=08U%q!n(v_8RMcbC$#y$Le4E62&ybfvdsii!z_oXd zy4$IqBc5uTMQ)r7a6#k-Yh_a(NP7o6I)rZdx(yFMRvdFyUj9oEbgcQk|g_ z{`R1I$&ZavgovK9*smmL$)5DibDrgiRI3Vo&FCxtK=+-8UoYIPmkhUU zc(TOscEo1fR|A8{%@z9-8*JxxwW86TlHlLOD2%uLQVYLkyLp0*YX#dbJo2cdl`kXG z;=}gvBj+jD?+&N?YNx|{NcrvCOuw$`fATN?PR-sNrDi9{BXs^*z0j+gEteNEy=8Xa zUWstC0U;je$Kr12vDKP6EIQ6C?kxYw^|$-9Ugh2ex5NMtc^CgnnY-li;WmWE~q}QitE6>!W*_(~GllSKU zyu0oEjqF5)qste4&mPJ41Tio9zQT8R&i(pfmzYS)VTXE;AAkK)4hAd%Q629Cz=gR0 z4L(5xe)%U82gn3nqoL6NnGh}A{9cQ;$2)2}KT?aIkpUR|?pOH=#0J!{2GNdi%cYD| zQCd?_UJIqIP>B_aUh+Q^P-LYD$}@#UK7&WIo}N7UWZ>|mz*vhqumqG=l;OLsRX_7Q zpy^sxBI5)Hl14R~AmdRqF)1BQeXgbb_+lV+FsN2pFUEs(Q$+u5cApwrY^k!ngeDwGbWM2}H2-MuLV zQ0VcBmdCeNBmEJyx%v5GJn)y^Wf?cKAPKD9CR)0>xXmY@m^Y&vC|z@b+%$SVpNqE} zuLM%V9`uAO9pGhDd0Y1nTvUvY9Cm=)Ez8>3C& zeg5x_WY+V!8w5ZmPNl)iu3|o0!--mok6F7`eMs>lFnImd8w5cFqCY1Q0VSMR@;?hd z(XewBaMu9CC_?DS#ST-z=NC=gm6?NL1xNIALSmVJZkvl2$ZG^6;@=LYiqHNbz9}68 z&<^XeE=!6IlzPHiWkQ)Du|=+ABUxySdQdEE#HvHIa97s`#}rwuBslx+k_bm9PmBiu zJb)yR3kh;NA{GdnYtKJ$1}#%43cMY)gi6{S~1#r6b zNEZ(}wx3s6Cb|bm8Qh2Ehc{NYF^emqO1wk^jMM(_qS(36^FSA@FYrs#`Zb%26n9C7 z3)7#tH~BOdn-19JmHXvS_+2Ya+xkZ9fvt_a&NNApR#fmrRW+kfp2F5I?s)-u+KIf& zlJw=y9gI$8msyQuVHa~I%zS&Ojn~&~Ml6l^1I1p4cYjYDo%i?}?vL&qQ_XZfb$lhp ze8RR06oR#QB&AX&-xm%z8Su3R3k<1#Y($!!%j;=MtjsE0@K8IbonOO0N@xE8kb&0h zv=y89fNXL#(Zcc**+Sw5s%%-;A|V&AFT~C~k|2pc^XoR?odrbVYEt3bMa_>PxvVSc zGqq`Edh>KAve>ipWf20c-E(GYs~5B~F5B33wVXMi6^An6`s-8THGNb*vZUOITklN6 zS%jPx3sU5fsz%=|DI6TcxA#)Zi|Q?R@4f#byIFohV7^~Gz@U!vsc&^kAN(}4MFTXj zh+FbBPFL_v9FDIg;O^9zZ?6t#ZGayi{i?DVM>=ppm#lecyiAjZe4?=5)o=^L|Qi z71egxl$@!`h3J)o%X^Qgb;gVPeJYF8r?pB-`{Gv&<~k79)h9Uq@s5fXuA(v!JN1s9Qw=vsB6Tbx5V|w7;I5?^&AN{Re8hSAt6r zZjk2vGPYaS=_&*;!g!6Wst``$oX50P1i)zvQZsp3C?#hpPIG62jg$RqW$WA+$ z#Z79Z8akn2>+Nn_`)6C3I)^2;FC=AV@tY}!&9i2`M2Ne6X}kLpHOlFK`***$6#6r$ zY58d7r_4wFkJB%5sn012eQxknkk=SUekKDC;TYzmC|skv@I%Jiv#X(O!bGuD6*0LL zzRW2)$HitdT!!&AX&>c`u-=G1JjiP@3!y99`E2gQ6R*`xlcp$#EfEwjnA6M!c%=|INAW9$!qiMhXIs2K@ys>KK zb>TzenL+23tZef~QfQiYA1bVgACzN6Mm;-P`64fr=nd|BZ+%Fl+>9yGv9CEiP(PUc z+|dL;%nBZ^gBn1L=<50;e@XLrjW_5c$44yMR4RDvEh-I{WjuKODsb!Wu3X562{9Z|=>+nxuO8?+N80dSR|x?_-JKC?o3E zGmLDQvEjTyI`TZswDm!djUBs{vsQ_^BYgS}ys+u*Z8jg)&nLY$RPAKi*mLBq2mCK} z4_|QK>O-w9`znMiWnS957B}dox_aj;Tf@9{<};?{wSf3}y_q{^?ftPs0D>DRdr-=7gDP6n9 zZCU4n<1C+vB$>D|m!RgfEbWd5>83t({)8q3qhTfo|OQE#*|> zmm0v9Zr|Qgq3|Yi_LSIKLeaIvAFNYFi#dfez5FJ1$K!Lsy(hni&r+MDWeI&4PyE)zwm(>@^3houQ?C zH*KxjJD$VsFfA}XDS5>Jb-^po$t1F=brt5a!&9~%=NVwdeX*t(_5S1t&*_S)oEo7T zc7@>3A?pKg3j6m4MXptq`L=c~FAD3(xn?3Nf4`<@W}y7E(5`K%%>OGO{Ph}qdnEnG zY|_I9TnfvrC)0Jc$pvaQ?qXuen{<$X;vZE9SHg@bX=}Dh_f$f@4UjmzXAEa#3;FIWpdFaQbl+>4!`TR zdgPGBb#I=xTIG(WG;&MKS&5W2b!4}9{dBCkJPVj2~ET@=JAxfy@2%F^IeXp>-tmm@uxCEJukx5@0M;=ZB;kYx$}62 zHGJmlylD>P;>hqkr9i=^5)3Kjk+*(~Xt`*rf^vLWmEFg>2w2hz#&3S?T*U!}hqZuJ z%txU&`MCqBmh8G!vLjs!%#H}5IIJd~a*72xs$+Z?3@9m)AsHEFgeQtjn9kDy2~A_v zXi#jCy|0uKz|q1ZvaPc-dm4Msi>C%Hy#_)LLE6SBnBcW{n@X-gg!0;eCgEx~8vE&T zl_(k3uzZ6(&`p3Ct}YCk0nba^XPF|cS8R>nXmd-HkX9hnR@~G`xzwjTZE}L`*P=Y% zTiIJqi<`-D3Fi?C8))j!hTK2cn3ebK4R4ui(g;0Vh>Tzezp;fQRK>lBrmdteV5txPiFg>dQmMFlKuEpdWG*wP3@&y zog8;NmW`4XA3TV*yp)xZp~<=_xAdLLUKdeQl*HCXNtL7wKOrQ(>_t9cK~-s#l9_&* zai#{yvC1T}hYMA-Fhm&0$|k%0!Rm4AHCbdtgtceN>(>T$b{5|_?QaSUL`0Oird?`+ z4j+dj3_jFkkGudGS=JXCr+aSW>S}5;13s+S$q6@i_krtg{kp;KrcCE9(La3X2tTpw z%J_a$X~&3WA)(vVeS%-{lvH23MuDsngkCb%!`iw>bE9vN>e3CY;Bad|6pFr4Zh=qPG zU!AeC@J-34v}-?$tFrtDS9oF)Pn6T+FLOLI1C)^}Sv|}q`9hhgqpx8<#VZ&LNE#f8 zyc1;k3kAxeE*H9DMn_G-Afrw^0&La5pv5Zs`#*_YQ%r?$!$HB=lF`e$-!R{+LUXlK zRo9q=OHy<1Xp5zERc+~Ij?P&POH@BlIaERoOqr?(D=d9)AlY=DU%(~FxGO(4-!YO% z2Sa>7;WG|_&2dUWQ??1hFQq|Y91Ox-#w24oK8@(FbRbH^F@0_AG`KQ9^0_tx=sVPC z%kV2II0XL~$Pos3RBN4O`lTgNh0>rDpmAb@sbir2v{7`?fl>tpHl%cbxuQVOH8y9$ z1c<^ONjpq|Y&8G}^|yvk-GCWpN2~@fcx@H(aa9ke(^2nUZSBkvSUqn0&u$tgk8v{55+Ch5&y6>& zmb1!duZ^u$qTt?5%cyg^HFSh+?!F_rFc-W}g~?c1S4Q_s7Q>eWp|Y)v*2%j>z?gh8 z198^Bp(c9J5 z_yZF9yvVH|>pcc{D%yTd^!?@S{uK#*+qxWTWgB$ZkhV95IyGKB5#VV=&Swc4OInVT zB-`so3Tb;Q!)cGAOC`gZDjTKSn@%6UlInSy$=z#cWheVUrM9@-%|oq7Iks}P*gtOV z_cqPu`Jb4F>yPCB5s&a+`YlK1f#Mj0hI4e%3;Eygh^BmX;Y z%56QDpym{Hn(;*5#$8r>l7uJzolmg}JtveOrDm$;fz`oEbki z-TAzI^;9xDKMoC%T08zExgPRz|qgOH7knrBDx6T6p>==&R0bDT;EPR?iGVSh@8L|7JO> zi1#yQBRwr->q)zMc3+-9ON}TOCE5oM_$;d0v?ygB2i&m#96ai#q-IsYWYNB@D!4gF z#^&Xf(3CT2Bh)K^TvoJs*(Qc{Sn%#!rTRZGZ^6Cp#Z46Z>}jv*dT2@^3&-PPP&8&X z-Ijfbr`y9XBx3Ky{9-fx``LH0l9tnJ(DAt{sMNO5WP;&&f^+d;=tW;&pET+SmT~HU^v7#afcHAfHaPRcc{T z(FtNfzCD;feQi!lUH#gT>Kdw{L0$*tAq%>Et0*F=d!c>^FMk*;NDBM~)LS*Ra0hEW+62Q>C@i==He^XrIn|8UQ z3kaabTxKQvZ15R^-4~#z3A12I`cW&7Y6XBZq*0#&_#E&tM{TxEZoT5~dE|^_!d3&< zot&I%Ue+K}N(JV~M#ot$eEd*vz4p8+2q3l67ovuTC8UXG9)P-`vDUfub^O5dBPa=w zAAh%%Ea|9QVqFC=YoxVcF6}8G<@1e~i>odB2&iQkQwhtJ9g<-re*oq~J=L&Sx{0vn zr8u!caDc@C*-=R-COhiOmxgi4#8@RIrx6MR`tbgKA)P#Z3_4)68xQbi1sWrPQYpEY zvtnZba03KP%O2<>jc*`K_teQjgN9Hv{LEhc$f4*}zw${K_2pQ=I3AG_tGdvdZiZ7w ziaA7GIe^{7|Qb8CH0V*nUroz4$Cx@U62vAZY?g&3+u`R$c0kn=Ih}KF)V;tT#g84}_ z3jl~gzj0ipyAM6bB{(u1E9%#mvux`SoH}IMo(PnE9D+5t@Ss()Mv|fHQftf3am5y(aZg$BIELZfiZuX*CWFU#1k=) z_z{*HQvn4m=(GtzK; zW7c0l0DqI=pkjhwz6aJjmrc=AGXVcb1iZ6D)l-0MKa!BQ85!)UPZ3b$QPMPBVGF zYnsY={{m-acg|3eMDKn=A3}DtvzM*b@9b#OqRaW;k~YA62Qx)HcQ;o4yqMn?;K$ACCRfzMaaQj@s1ch|EOpI$uWo9P2}|-vo@!It3;c1uyB8^75j z)vfTO=}*n=5yz>-68u=1XshtWOfJ0&Z#-3e{D{6wILXD`Qq?64*$cuHc4)^DNKRo z{AR(x5%LQNeP0EXGg;$sj-iOYcjs$OChJZ=kYWP^4}jTacff7FpbMzy;CDb83!@Z7 zL@JAasEBTrhMXXd0@KTC-I*XQxzEp!X-@e$P^ZC3WB%}~?#d%4f9h^Vi%r9V#1k?Q zTH1jVktZVazwzc4rY?O~k32AoV!7NKnu>YcZQS_4sx|!T;6jzNMT|i5A#wD@MJ2IW zWr=VrodZgd@Bi!pcg&U2=QrMD=}%D|75x`YwYctQS@)joq$yOg$ZIM{KvSv+mm7;5B?H>uO*g z((~x9h7b%}I6eTTecw29DDFOFLH>%JoxPj6VY8kNQu@u0oON!IRy+scyqf(nfVcc{ ze>PG()J9hJgVkuICN&@5hXjHcVT`|;TIC`e*K#bSHK%$jPa;Pgtx z>idO69xLcpUrTXkjsP5Hq#POf@xIk8o%zd`_Xz~T%y;sR_|@?Fd5iR{tZ)ShHVG}| z+mKkUV|x0nfM9WpNz@{?l9-K<_B;!tEGLS{ zmSkpv(RlGLO;`y50gmIxWxIA_wB#P7s;kooj6HW=rB1<}2Bf{m-H}vk~s?I?@XLd`%_bjlFrZU*1(@?6fsId#$e!r?(I$ z#%_6QXoUis)p0uEgO;I-OX<17$6yu}<$Yb}VY@~&U$CPST!Bu$L&SK9WK8=Vlo^J& zl5K&NVDA**%67q4mgMWUqsE65_+o@g?kiL2fbqGqk~Q}V#I478RbPc8(Q`RhrMYm7 z&u1*s5Em>)UqKYyI&rpnDm}QaF14D^6GLKfLT+~G9vn8N{9Vu&^zt&Zy8hFwd~c!ctu3ERjy3y9 zCt;7sCwr1v@ISz-b}<7y7rkPuNNQCHBk5{MNq6bkDWlQ-&=XR16%D?)1auVdk1I6+ z(9XC<37p!(i6QsCB72-{aWmkM(oF}HYSK3BrYAz$h1;UZPM*|&#l^&gSGi@Xz_tdK zu|*2JRhx+!LT*sXK(80?PH)8|^JIxqzzpkRYP)guS)yCZnPGl_hJ|73#BqJEY}9pl zR%wZ?EEQBRvP0h73~}fXZ`60VS8%%{-sT{NoxZS)*Sw$_S30#-@kWT15Odr$B;RWA zIa0LS2%UE;J198#fmvD+?$c>#@Lros0Uc&vP(ewcqq}er;!sx`lU$?k@G_6B0{8Mh zh~Y6{XZ_a7-%gt`hNkm4O*pI)_@5TqN=Ki29HjX+0 z{jV{_zdNMg*W{;cpEw=6aP3#H@IO?g|NRHwj+2(A6aFAS_{ToNKP5Z=FV4_5_!LM^ z+1HTSpLTL0dtqsLa~s|cb#wCz3<^R&Xsx1WVhUf$jvF2l%~{jd2aw>|6z2UemaEm? zW9_>YUr&z(zOz^;mr=`|Nc8UR=}99z z&(nT}Ng|kRz0QJN?OPiv3sJZ#a`)rAXu3%YNv5K&;^FWjHX^2v)y8ZY)?*-Y( zI7v7v6FJB?U)Tp*6rt#5RW_cWhGZVk(ZYj)S3&aB`J6rA93LY$L!7FL^ug8((bzaH3l z7A_r2cGA(^OQ<9oE3s_3k!|3{oz-QhsV}RiV+VWotsnRDnct-s(T$A(E@#iGnCg2A z>Diq%PLmA0g6_20TFt@etHlhh%IFsq(lbmz3s^Au*x{r|vpg(Q$f6yfy3`jx)_*ifi8Egu$!>95uynJddHlB%t5DkD1UH+_QpZXB8HeRkL8T8U=ILCUqyU zRs};^utvc;C$4PiSY)YhH5Quz<;Pk3GzbRrY*M2W(4T}YghWKl+heH{S!Kz&H*n6Q zmFG4dh-c${ONGA1-RU-E&sI@YCC8y6%Lo@HV^Yzd(n5k4ppf@T8#p{`e-Vx0?23wVMSGQ{G`7bExPpBJ=dw&cZR=o{ zkfQn6%1tPxIX|v3#swODpKU%HQz`g35lU%WTQ19=ThQ=s%jL`85wYJU*dBjWeAKbR zH2(Ytwg}qiF!knzTs^~$n>TgG8+``D!zX{_yzru;)3Ci=n3ZMaMHTRXDd3f0tq<`` zvP3o?_nFq#)|Aqh?QwRFXY^B~nI9@C(S5!^_iinxvhtM|mD9K94$D}7V9Z}G+15Nm zGa#6053iH&poK#W#1N+$i+Zk%`IrQ?Pzyz1viY&yYZH?ie+3a=D)+Y24571kd3mP24BF9Yl8fbjVxvk7Tl6e$1zmgT_loi*Ttuw8v?}N^A zi&u@gEHg!L7Cw;k=~}H^Cxt@;Z!Z>Y^!7Twl{20#;-_54lG9mXko;IthJu+yPYc5H z5`Ny7$&$B6XJaw#J6V{>I4WaWtHRsis*uNq(6*$*Ps>Yz=OM9@@PIB;H+^0|A-Cnv zHi0`t>-i$l57F<1)X%(!8lq(P^Coo@v7he(_iEKRYo*^)MDI%0^Zdtp&|qo^bkHN} z&Mcobic2JW5WAEY(6Ue`Sduj%Vjd~9y|GET9GI72;ZS{hG1!}ADu&MNJVqY|$F?F+ zrN;d|xS99RI3YI&wH!oMnfWOE$Wz4xxGo3Y{w_$?&r~dwjLyO{;C%b{>lq8;I${H8 z88GYh&z#%Dj1f>u&(XkLR0-}L=;@9IR-cp=pHkgyjs9`BvPN4@{JDgz=fhl6DvNoF zLOc0lM75w;~hcAzbu5^B<)c8EtLP$O6QiJnif)XC~B!{Si@m%=iy)X$t5|(T`6gQ;-bIYudM8MWY~YNy&_~@$7XP)Ue%`jt(ExS zfA{AWFPaBOJLKzVU;kh3@PBaz@JuX09IDf_wM7{n_bBt=;NTdbvt-yUsh`3`I$A)MnLs!xp!L-GRxUSdg(Co84-MJmGcq$rOiUQz zKfb@O?pp4qG1k@=2q09z1`7!meX0gF{6XrMr-$R?p@AVGnbpnB59lvldg>0^U)^1! zsf5shfdMN5s25!Q5UoZ8LDPkhdf*L$0t3H-XqfXlibxXpVFn2->pwQR^KJ%0C_b+7}e58aYbCncrY~o$@uYEWlVgO7O-`A<$-oh9g z&%=aPN}_tf)0f9CxXf*aRK;h1~OR&RW#nmsDj=*SA^GgY4 zmtte2$;im?w_}yBZI~AzQ9L}wR9K4TZYy*1fiB#GC$WjhXU}xNET5SR=H;ni1Z_P~ zdSS*`!Q`c5VqsE-@ucFL7U)|ivr2up8ZUKI5F3o6__7nnEPXwK53-}_Ft@TROL0L; zAqGO(;Dl&R{Z`9@Y`%9#pH3c$*nFOBU^m5W*o(T(sB`3ri!oOyFGuR)>d)uO8VJe` z=T9Lbgm;2=g}mVJ2p*kV8O!{lU= zs70AD;BlR<4nGQEW=v+()sy!80|HEz%l$>;@9v;|&%#~$b0D5S6lV8>B*IEeuS4If zY4#>2CFzTEXMkX)*ly}%>s68LuZm_RaM<;bnzXE}w#t{<>gwDy6WVB?*UxAr701{5 zh>vUF7f`PNmKc9sgf*T|9uZan=dh@uxcVArVgyYl9K|-DZ&sYC z09DJ)h7GI}*eBe??+#C4cV}c09cMSkG<4AS>?6HwJ=P#e*zoh=2!^GW*48$u*SDX~ zled(5R3U*iZf$+E>O3P2;YPf@=7L=+D$wfpzqP_$LK;_-^B6zj`rR113Lba(C+a!a`?7eQxNk!N&_x-E+_oON-YzlD zb~B4Ble%3Dk|&KMl}E_?Wu#g45miAp&(_lxKD43%*Q>SVGg z`q66R&}x;R{6u5)G>y>{=+n34C16{#9$PWBi_QT$4liA2>m|&;78M6R&pofOo+G-n zGhMF}=(MSa&c$87jaz%h`MhmP7PWz4g6l|T4|=50(b^S<3X(OvE5ZF}@Jc%hWK0mz zU5je^>KFSJ;QBq-_ZI*4riz@pcs0C-aPx=lXTg7#jX83uozaLYNUM@q^|7CtARP;w zM8BE2x%Qptzy(%T)~FYEQVElJrOJ;UWmKo9-=L?bS94cfT4m*K@;mx=KYXBmbH~D0 zEP*#BaRr!GNPMGp(+goCTtPtn^MxB5d5o8?2af#s@lIJat}K5WN^^9xa6L@R~(4WeDka6#Z?K4~LL}g7`dp78`=a1Yt*+JvCV8n*P!+OtdlC(~#rb10CY>)^ zNR>{4^9SJ%0_9|d=_U5HTYQ}ql|1gvbQlTuH5}<6@CSU=LLd{`z>!v0U(OyRJV%2_ z5o{k>m4NSJm}tczvE&Hqmy73BA)442_Mz247YA)d9YVf7G?-i5ZFC8Jy0R2rm?fIP z7x%>lR7s+eZP1{^)cX;Mjy!qiH@fk^3d@vaUZSxXQ&WT!q8CZ&QnJvwC_^bIs zk1Jd>v>*CSFDyiz8WyZ&8^M}?pRIy7`0y{1+~f^UR*so?qr{fDXKMtrSBKnU&&j*( z=1twE#)@WxH=MlHVu`O%9#G6BFt_^zJd4z!v-`0-z%ejLY-eCs+#a|BY0V<9*{Rg) z?`$7Wpyv(OUF!A{Zm2NbB_Omkd%FnTC$ZgFBx)27{r^31~5`O;KpAAae@?fAuZjauww{ z#=#%btK0!Tc_w+s8M(5((go!oZx5tMZf{^OV2$%-QT$Wbk7X17rL_Fjn;(~*S;XDi zo?Gdd$e{`*b>S;%A%jbmgK^X^Ve@G6wNwfvNRo$H8}Tt2SMak1++qL{9ao(&relJ( zEU0gf+e&HV7~v$%$q8I2Ct|1LN`cH#PGkV=r7HM0L|Yy5UK|9y$U$4G{sN}gnh z*7#@fp+6Ia|1AE0PB8wJ9ZXVZ8zUZcq#~;pzjBF_|Fy`b;Q#HjO5aOv>qz!!RtX96p-h|1&FJV+xw{cV^qHph@g<{HxpWytAP=yJ`qR zP(GBhIOfXT5HBs3-rAc~gfc;S3Ao6~VV;ean0I^2RuPRoQLn%VNBP|FDM; z-A|r@+>#ah*evK3?BIg4Il1bpKKzlmo3T*5ke&%T_`Kd~LT>oiLdjGXIExMY`l44@E3{nIZIY^u#;jz%_MPSi!2kmg__APVlhL~a zIz-;Fm|BL8uxb$p)c2x6W38W8qL(w%W9l9pkD#7gt`vb4w=M+f6ryM_kNfM*3%;-_ z%8uQ58jCEu-taEX;^^5h<%7Y5K&L z6NggxK^uv$&zZj3gfUw0BOIOZQeQjxX8pEU%_D6*_T()rSF~*z0{MG4;tywx!}zwP zw6@bEH~QAgg)3F1wo`4CWS*jo^kQJkiKddVv3h8gjL}g;P-1%=!c0#e z;dOAVFN%V05j!NV!FpkFkx^yL>-gC(R4!~b=*P4lAMp1krYS&%pLLO)jC5Jj{chLq zBlXz^6#CF`(6|5&_9;ZdO5YK_u$0?iZ9CYP>B5$WMAp8*j0s;(PBvc1Gd7-jow zq@=4W0VgZ0O)C7-aP5PEmR3pK^V|4=#4E7|Z0D&0wD*QeMbb>j7GQ8B64oV0w>)rE zNeK!HdH}IO!L#vE&4GS&Z()X7_QAmwPSi{TeW_Zk}*@vK<9MsA_d*jCi{t)QRAq%8 zD|=YAfFRUQ&O)%LTF5xi!uPgC0V6q9;w$sDblbe_D))){h+)6QMHmt9$mpWWNTLJl zA5>9(ZJ@fc>0oGgexwH%gDpQwU{pX}1j(1ybFqWj-ZS$H(&fvh$v`*po4h)GdfD7! zqwXydy*m{nX&NizS=3;qr4^FS2M&fmF?9x;LeI-0+&hG=9HZ~(JhmuvyATsY{cLFy zzd*Pn7-5f3wMNzQ)_sbmcRx;^*BlJ3KB_`Gkf_FPv*xy*f%nTTkH$$!12sfqR|s^g zUMol9t6x!b0AUZCwJrVwxE028=wP7=2UMg`tbq-rlP(rPk6CYvt+IRU`7Q2=@vsi$ z+ME8Mz&UJSsVO=Z%&vm8f)JvgslSqbMgYU~01{g@P$U5jw)?RL?q2u73dHpB0Bdk{4F^tphs~%HJC}n5BCX47gPw0#``^?a{%WOk*bD6t3+sbpR~lwI2L<^hru$o`w`*jjxrO_3#ux7Dhl0 zaC~vImdgC?>&{0v{kRqmT~L~!v|Twf>RoJ*QQ zZ1$0r2St1z;)#>j(rwHmAjD0s^|AQF$R%V3wbc)gwbrqSn%w5YEHjA*hFjsYO$7X6 zlCce;huOaNkZ34Ydkt@q_L& z32pZOdu8|E7`QtZUapbH-$23)*6}t(4zX6P>I3%qMb>aSL${*O_|Tr2Hdvbc{45yQ zsc+{3?{REwm+Wfb61oG~e`BVo`cl2Y?e33ga|c>hmb0q9_u}Grzn8pte&-rh#rov+ zkWpJL;qJWKuKhYgDPO;8S8r6sx3V5MnoW2q!m zYtigRP2P=yz>ORmEuB?SfqrSNoqzG%&x)w88!XejApT|RpML&X`l)eYIjZ7q)NIhY zma1o^{#GaXwCIG|x6+DD0_$gb*t6;xm7Ks8Wp~08R<7d{vobepM^Z5odpEj9GMlE{ z?(U>Ac@CTIE~Sk!!d@G?p*7Ygqfi;tz716`U)xPcvq!z8tQdIcu})JXlmA&w_u~ zYVXHKzz;igT$Jc9&C65Cu4Jp2sF+iZ{;Nt-)?*N&7$lypeg2QXV3q_)j%$69!x=E& z?1_Mx&AuNhY-qJotJ-cvb$WlJ-G4<2y^BLlo^RCH%SYK9yjS&f>PMUoksS4WwzAr6 z{N!nY6057n$5;Dnu`|;j9)-5ARL@Cz9127{Z0_*Hr~TL&tDaM%U*7B31S-Ix?yr&|I19#U`Oa!Ky#X3eP^)v)rG5?Be1A;j(;-!$)h%KjO5- z&6O5+!nKiuaT}$Q7k?J(*lFnKeAs^C;nZ!lmbSlFW;x^-pvSuOQFiY8q^Y~gR-+gB z+!cO)-G`$oGPHz$_>#d$c-(7nuLevs{got$cyL`05_ z*`s9^Skz*kguW0xThR!cLe9u3erWn!KF4Lq>A_TZ`QGvZm%XI%%nMlg)|T-8g@yj? z(1ptNqcyOF${3f@=^}Kn8dJnh9h(QQDrT|M*pqRzLr_4H^Pf`({>19I?E9lGEgUfa zWi-MmYSxr*k05UkB)nq`3>dYL(GB~JJ1Q#a^RYl}`&P02lO z^=R{Fmibp@X1-+KAuw-e(4r=@|DyT0YEPaHGJ8 z`-W`(^31+X!AgZYvh zjx`I5#Uq911tVX%e3Xj;;^NWkW__chS2z~+WB4cZnM&XhVC*o{<|?5XhAR{!EAza6 zh_V85C>X2v`t1$$^n3!6Y1GrDw8!puhz&I%98i->G65?2K>YuyJ7XN90%qTbCpGfH z3_UHqMGgzEZG1eOdlm*oB%oogHNrXE9?8+b#5-N!7EWk7zKVAmmt2HLj z^}=Q^5Fd-prl0MXmVOQK^NhLK4o1>oUn?B)F~q-w^5h7JcUlT&YXTeZG++Znpcr>Y z%I3RV&?+I}f$-zlP@T{>9zH;0B$uIG4;$-G|v{SCN$SnevGg^np-(1bE#Z9B8 z?Gil_Wp}QSLrl~ zE@!O1aq30Z?**sQVfHI}y=sgG^N>#pqRR$$>>4M929N&~sV20C6A1q%Qff|*BfiNw zYwTS3zw94lUKKSVCyq7>N{?-^SYk_zJWh@MYZ!ax&a*bew{uanjDKf|{n`Hi=h*qY zm%0j25z~vzwMG81`}*%^gP-MSZR!#rrwvN*p^VX@BR zw6J-Eg~j`yKTq}oNl=)BBmSH4xxl;nBcK9)2Md4+c?pduo>NHpp(_@4*re;2gPFB; zuim4Pn(Dko26RPuuc(AX3MY18-~unNG&&&xNN;!z6lIm!-Ch7arqd$Un7mXvBiF5| z`-BfbETrN>hdV&fn`dKX{Sa|3ULS~-^WRv3PPjB+w1IAJuK4gEwbz)9H3qPK_emuC zjeC(b)^2Wk4D4nPQ7tb-^IVHD)}U$womf2T2b)ZCD!K5x^D$E4zd zf+nDK&Qo_6LA>>68-digIBbrh4oZxUW+6Qcf(FTBI%Zs4>>YV|lV8iF4-$z5_{@wh z0E0*>eOq6m$J<+3Tl+#7)3?@1$3erRi#C*H@DJ?70p(O;EW}YaHtD^pDrVj$4a`_( z%n15Ll{dNp7!qlaXZ2?mfa9c&sdA)FLQ~UG$t+}U%cPEO{#X!vaj^q;uu!H0#-C+U zh)i^0KULwOS(NXME&(){5}FZnE2}39@9$hVRAv&L z>eO);5G970B{WtI@)#K_B|Y6B2;ZqPh<9)%#!*j25e$N1&^DedfOymw-ieJb>FfB| zC_%JAjf8MG>ZNDBhAiN(8P*Q;9K!~QWNM2e4BkL=@z)SV1uQzInAjvtaBvw!O_iHM z8)QqZ`yh+u5N%mf86~i6sfSh5Z{a`0&WTOLpmEHQLY4(VB3BF0CkqAxL35b>UBZu} zKSP3+*i2am0AlhHa|!)XFak1TX!leHgKt{}fojYxs7cLp<8Y~W~|Mp_7LAC!g@Jf4Ulvu zelqlFv?VUnO*8ycaoUbPAuY8fWYYCh1Q?prK;G~edU{q@`BIi33gYVig7R*RH1KO~ z*Nfgs#c87Ske_ai>?i864h$RW9c`xd3bdzQM756x3O=%`o#~3UU%~t+>MrJtJG+1B zU-itZ?g0hdFp`I=-T5bk@yCjobM+_%+z4;^1KiLwd2&|G;m0`j@Ka3EB>z84Z8hEb zhhpPobP}A@K=XIjvX9M3OL?t z*EV`J7NYS|f%HS1y8SO!<>lK$D;KY|>Ri=6~ywvX>uw!mDxt5v)`X_-9$}kY{axiNE6jDkx8I5*%0jeqK zI3uHq;n=Hrl?$gp+BKN9X=yrrJpZd5ND{al3j0bu|A}RufhGdbeT8~m9UT|u>~%;^ z4vv1hD-I%{ct`AccTUl{fB#8Yi+WVv4gZ+GLWket3?xoOgRp3ks0PsB>8yJWp z+ArWAr(H3(uy}-0cy6T{KbM}32)lnNnGA)Ny|8_}?}!1l_t>#x-x}*DZOjqhg*T3hrGEe~en3n+pXva4%Et!koJMv;N`XPh?Q&X-PK>J2H}!pMdQ;j&9iZ z(2h9ua>)7v%vrLtQinkV()f@=0Wl>Ntyz6X>>4ACBT4wokP-48Z zKo)FhO#U)}AfZ8aL~YEM)b5*xG2);#Ft>a1B>%peT6&`kHYk@;{A6ZT;2l&gbiKHu zqK_DE1gNJpP_q=+S9BxT+6Tf_y+)GYfV=IGe5lsqW>sX&iKTYe$*+{tjV07eP)eUj zUqL|r-6bv&8fFqNoDTi%T`(Z%`HDkT^%xE%&pMs5WU+3twg&0v= zEXO+w?#n!%OPIK0m(SHNV8zM8a`w9{=33+BU(e%wej4b8TfeA3^jX&aYs;$>F|vrF zLZk=*rsjGr@jf#?&qg&-a;6(L`^LmTug(qqt^^_@^E_MXQwa=C_%wkP&5$Zb+R0fN z%>TkZ2sk%NNj}jZVT?IAl9vG+`>Ag?6$nqL{8g&U6ozdlV{&mf;)s)24|@0+;|?Zq zpwN5cVyN*MrHPISb?<%09@g`E{-(sgEI3vD_f;O|HtxN@_fzlO^t1^u2fufP&J<>3 zJnhTS=H0ZJ+|tl_%rgydPPtItRy;BB;iX=5ScK5dmd2EiT|{JLyS#u4%Fbna)$KCe zW;ITB@-h(KCtg-cB+2M#|KyL%%gZ}F-4uRy%R&Q})6&=ZO!M4;&)P>l!tv?$2z4V( zy)z}}G&I;v`*^R>QU}NPx81(IHK@IaCqXw`J(#c^7J%_fA3N(e*?bEsjCV3KEvN!z zou6Ey-gl}XMM~+la9sC-lTQwzfw4KDG6nRJJOgINkO_-*=utp;G~cRPYp^Vm38;MI zC=}T6Ru0zx#!W?`Djs2`LUaJ)g9yCvVu_CNA=W64eEOCEk-RUpocTWMP`YtZ;mjQSDi%Y$4Mf+9)+Rz;Jn^Z16Wcd42h z@Kz<`3qf3&8J$t}I~RLQl9DnUp~-t1NL%+C9QmDbH&8W$BF|CUJtt@45!V^9hjx|4 zHZ$^YAx~NYv>pM8h4XT%gwmS1SV(vC6UTiwx~+D}Ahw<{PTr!*DJGkxx0NMj9O26Sz`X%_ z#vhGstoftNP3wSYvNQg!V>f`s2fx>=%5V4)bFH{@g0@-40nOB=9gTY9>3ShsZ zK^Sd(`@{n};@}NS;4;=Ux~2UTyK>#C6rM zK4wCis%OHMN9G_{+OImI)Jcbk4RXx?c7> z&_FY|1>=u;`Vp;C5&B(u9QR=A5>~c@7fm^vxpxHqULiBCQ^j>>lw30M3b{o^U)AP$ zM&tGEe=o=XTAly;(rcOrv<=fdEpGpqn*Y8S{`0ZMVZe`M1;Ach{D15-A_9Sa8W|`+ z_&q=7|JueJJf(H^5YF;jQDI?h`25^lxV>~H+0WPa;>rJEha4R0?rBf&0f-R{uE2u9 zVHo*)PjW+FT!GS&04}oSqU=b;ho%=4Z1LH%$cOHyPoKVoej$1hK=AW6Vq#)lz2^A~ zX3I}e3OoaaK3BJxm zLBc>1<1ebPeYYC(+z=nXJfgw|!f(v^tHgfLw(JbZh z%j-vg-9qr{Rnd0sr*Ba69_%pu$Q$FFG-D3U3-$G7jE8LkPP?t!{ODdY?Is0Z>Zxfv zhit3y;gP%C-5voI@2SfQ&}L+}iaaX^?S8#*@<8-f+bgxK2L!|T$xkj(wAdN+{uvEq zhL8LDHMCkSVw#0xK^(SzeV1Ar;wYOxElu2~nfLQ}c)iv-U512e$Tv_v^LfSX5o3kW zxWycO+e~3(s_^A(6A#%qJ74O|HD~gv`1VewVovFz?R0>dR#jxI-)PX_AZ+FNtdUU$ zEX!_#GK>3VjV{Nnh>dOzt+2Fy-mzRq!Rp}<`K`9O!W7R3XwJd1S>kq4F6gjzbrJ_Kq-aH?3&&C$&eBqx{NH zmz>a0JE`b9xH#Ua_M=+*>Yy{bm&2GA+)7a{q*iy_LqkG5;US@JhA?AJ$W4=rawB!Y zw!=NzEVUgH6NaeM3_MB9Q^KeR2O9@xi2cfpVLDqaX&&}+{n=1=_tl}UK>d4jrlI8` z{7W&^+Owp$G7utdXTNEn6?kja{xyAh_v*pN%kSfG7Pn37p8i>{|EhrCffv=$*8M#AlB_|lIakGVCaLn8 zky__ks;(8q;A3(py1M?90I5`RH|xGxV5jm_+VtF%TH@;Zs~o&#h#v^kt0?!Vf+B~e zka*Xrt@et0z&IyBh>n*1vrboc-WWHF?q)wOpbg;RSMCcfxh-!b{?ikC-YePn0OZrY z?ZU|8(qf^jggr8BD=~ZT{7#S8UN@DpYQ5IOf4mK?n}_acKGfDa^N;WTU1PlzEZF6EOXz(jPVcz)@VZIY z{iSf>w{r3l5*NoxmXt~tLtI}x=efjW@Um#9Wyp{}HNp1rlxGWAUs0aJbyH`BT}Qny zbIAXmcu2W>zaHA$98lVme_`XhA+4fWgm)rPKPur3K3nxpXRTzm*l!l$J_AqH?5x>Mxhem036<~vBqlu^#paW8nFj#A1N5Ti zBnWqpfu98B9jv8$XG?Iis6GsH(e8>x6kJlwINL7pW3U@+fAuTA%-E zk>9}rP;lS+Ys zu;qGihHM!F*^Xt9wrT>$yk~$j!1c4{Chw^#aP8NiJTGP=Nr9iB%8A=?sZFkX)1TMeFXC7`FMOfi8xWWwZ}r=o5tlST_h z5=kV#z;?24=Z_ULt@~JfM&1KjM+Jqtc_|z2^wd;M;17hlx%TD>KzCoam<@~ELXRQ663E-2C|I9tfW&PH+>X_K&#>x^I(J8ob8lNM$_U^Brg2pQfi zZMH66uV8>fLX#UJEj!MQMlCMoO$v}-rC{ok_P`E>mwHuAj9pCpYx~g?{eW;gri3pd zkKB2y3rvR675K-6p^g9{t_$jk{{Gjdi!lO?P*1xqDa@4Q|0hZrX_fmxm(OvehsTYq{ zD7VA)@jSbN4qdzRS=tM>2#ib#bBn zq)g|zq%syE?6HOJoS6{Wjj6S4*!kCJ?%CZx8Y=b9i%kj9e~-WZsQSPDWe+@rLzGZh zp0WKP3d=*jb-1#?N8C;1qBr9k;gZjP()!BBjMPVbc57`$E|X+`cJZc443|L1@FwOR7grlQa_SJXTT+;(*(f9OLURdijQh$W*; z<;29=$%sYe5ACpP%c!+AQE(1OCLWtFOy=l~-}trQ78B&^i~o9ye>`ZRxaC^zMk4=n zF=r1ww6~~_c*iePb>|mam2R*tRJxnBJypl$oF3;m-{jXyT~$cVMtH`Hix)MIRqc&U zsqDK}$m}CEIc()*{@J|V`S_A*N42+haP`iAzCrH;oKCJe)8P8anso@@`!ZicYCwDs z307;i(S>lt>2-`fgFqnMv62XZS!YhgKj+#n@uz@B$ceUUj}hkZl5+a?{1bx3t@Lom zPCIZpH%juZ=;F4z%(t(%&rBaRyd>si6v@vvZ^}V$C?{9yhO0W)%rH|BHOa1_{gbeH zUu|d+KOJq7T6|Z|(V)`D_BK?gzS#IPkRPPnK9d3ddw%* zc|ja%NzLB4jWts9O+O z0g0?NB?+$NhRB}6(^<{9xs}VA_i`a&gL76NQ1Ow7pYC0KXg7R$uBI8XT)Nf|{EFNb zoBj|5og|anyA^BBa@im-Qq$Ju?%k#jmR~=Glo*Gzed8}J)Q0@_m-OnrPZ1qJ)<=v( z=Ab5DcX#)W}tLq_34)mX9d{B0yI1Q}g~9bAv1?`roOSjbXdQX}ZSV z82U~CUaSaq17NkX^5EP&Uc)^!G!%@$KZ7Z`c4yH1 z3GFzDpSRdh`Nf|gmXG0m)yFzIatewUDE^k7Ue1Rog$ehKMTon)dM~bCCWo39Q=M6? zY$_=yCxpQWVvQaFynXqJ`1eq7o+NcIY&Wx3{-fe3o#oR%Rq9c5l#2Qd^o4mgC(JipF5H5I6baC7tHGlKWQpc-dE;M6r-SBRY~gUq1d zi&y)fT3nrN@#yta6s8#31E;~rc{2xh$N-on?ZUM+5Hicz>5*@0vcUA-*O#~jwr{}w zaH8K5`1Td}GU@9RATxn*3J31`;-q*x{a@7Y!1I zv5kj;qvR45hyVZ-OHWUjisz=>6=8xEX9_0vGP|I__XA*M3mX@LtJ0v@8gN12 z4Fo=a9RX~nuhN9U?7Xp!VA9Vnl6idsPWXz(t;~S82weH?K;-mkDCEt>yWGg9E-jk(OipH79oN2m_K;` z-xdL{I>lG0ecAgTk*vR6)_;~?Fj5>3d_=1Y8r7cx1}Lw_ea_Zbo_`n4>i0a=;Colr zWR@*>uFX8??R_fJ_xrJg|Eh-n{4(M-Wl;B;hw!gW=Kt+W0D_hP4m396?EfRw@c*y5 z{qx2APlW?!xNlZE8bSZ;SpUzb{_&k>S15CxifP;sMh38N#h)Kv>Gk{rd`qiLSTZm- zH-AEz0zNKuN(8-^zSHR9reoBv_6uCMXDQIT(f*zb=4>y=F#*EBi0iUYbWF@+#>{l+ zv%H0Qd_OOXH+>+SCxy#h3|U#4w~_15q3I6y}>FE1_qt@Lw6g#xfStB(OIT@T32 zsI-?BG!t$q&s!SRzv8cWOZLp}w<^zvBrkm+T+J)UXAM6AZtdA%YN8i~WEi02XRM~O zko5p*fC~U;tDs>Wey&TUYIe8Hi$`t!=DdY2h86*SZ5IF08-vNTs08KjW^6jZIb^Ly zJt8xQI$(hu1zG5HUD=uE1%L`2{(|#YG|NBRe}bNd)`2oYh3Ns%n==u*oHL0XZMKMx z>zUL6fgLRU9eW87w9Vo<*9SRv;D{T&bO(SfBxh#oTb(u&Ylws~qlSuy+*{b%DXarH zUs6R)Ez$Ab+ydLn0x51Z)5-oWbN$$)Y!KOGf&AFA$X#R(5f#?a(MGvg)9J? zokl6>PqAl`g0TtG+pItwm z3|`0Lt6ZVtC_yI|pq0G{BGuR?#%}#q4<4WRO`HsH3 z;X$QmGh_N)?e`Ai5Y^=A+?A-2yMyJ(3ZVH%n4R`}25L}_oK#lfVp{^aoi8u>q#EZt2Yl1hT1!I7&nVc09&k4UmRgTPNr}(I%$di{pZjdMY-HPSyuOzI zp%u1o3w;sv31v0Md&38A33PYfdFAwtGdQzB^tabwbm1DS5YHrcm2NSo6LWj>6Mzhy zxi$V~64HFfCU-pW1Ydkk$~yt)V@Kb;x_N+!7kRVmRo#of|H@#IxK49qML8$LO9=)N zF#asqA0JYs^%PwAa93*XJH`iAGYLLa2C;*d$8w`pK~aH5 zoyM&5zZ4d3n^;)f1GrdW%k1pec{XO|FiN-u5MDkfB|Z9IdJ)J2+NL;8GXR?W5LizA zfCThMCAS;w?E%BH0v9tl+;!6`Po%dW$ooJX0)Sg=7$Apx{TeT;Yc7Ia(_hI&Cp}Pi z#d6r#*}L>aMMZgj(Qx50AIi$80V{@fToiGa*tWPB-}ZGcA_Bs~#ia?%$ke~0l`iq| zrKF|ZCjDG}0=9hM*{5e zamZ3aLHDDoKzc^O&?)!x8)kW1jmgU&8O{5;yV(Ygn`N2B6&Dqy$;~QQbsPo2!3Psl zb34CejKUX4qw(rTjH-ss_in>>KbgtZk{ICv>t_I^HM>yo7#x9Up2q($)`mT#Uw{pm zor@+xgwS=h-cew7YZFR@6c^5cFeFeLN26|g7EZ8=*9O3uxki*I=@*o2BM4NDeqn)N zoKViAnk`JzeH2R%uF6{CoMyeZ2(&h4{EqyXU^%*U^4N+tYnDy^(><`0QCY zj_INcN@f-PLPt9_wfm=-n1y!k3EH7G+xU2=2bK`^r|d3JZw{fa7FC!x!R_}iWfs{* z=wHq0W^u;nR2PTTU6OCMoyEhb&{x7angi@~+}s?S9`3Kb?c4!5y^kKm$B!(FMn~t& zP38vriJ%?#=00s)<{y|dhMaAF%(^GY&RZIM$|~sNm{HuUv0^QA?hwBrG+7vKg3055 z)Dpvy-x29E$ztViya<$jYQ)YnUOG#nhu`tCPiFVq5n=c!Rb^@EF~5ybDR;*r$jq`6 z0NDy3QbxgW!qc8Tohk*Wg7FD&oUUW*m;1r>G^<#LKIWUAz1#YgCBC+1Ci?fGU@xz6 zY`t)>FERtdbPily2Ik;mIv0~NM^9v!D}xN#2tt*rvvNvcbNU|cK;3Upmdy220~@rr#A#P(>hpJfdv)kORny9}@Nk+7_DW-HViFiyJ)1to%o%;e@KWoKFRBZg z*4)~8>Z<39{bSN!P!`iF){3^Fr?+*8(|6s#>_f`l?O)2c*1<#PM!ytM(bfM0cwtF1x(|({wyCH7sj-6DH;aShc1Eex<@RmtbGij&NAF!3;GRlN#y!<5N` zq0G6+gam`$$fH&Ly;$rQFgh?q6x)Gpzx%3#c%Za^1Z&6V@|jVST)SVa#*!B3Pl%8g1)v3Mq~?;1xk=#u63@0 z9${b*%Pu*1lVbav(79?-56IypXoofCqo#*mKIt(2V`PjMhrNc_Y+fTnSr*FxHwZ9l zC_I5q4HkJm-DnTCHsN??Xm+1 z77D0EBwAt32&)5`V>u7N!4z`vei}z#Mh7iZ@rwhQhKT$j061s_U$*MLl+(S)0S3VqLI3g2O=ikF(WSw{4t(Er7fpXk>VJtb-y&i`x-F*GLP@L+feK z0dzqJu9#)44{aC1Ma!o`r6TQO4V)ip?5Y0k-OH(&vg(&NXd>}GV( zy{-#Zu-stMfeQ$@#t`5j*t!mNrxy0C$|qS*HXJujE=>xST!Q=Vj;PF$ z>td?NfcI-eVU6b)uqRy#N8_so!104IMduB3_;Ybj;LUY>AWAV|d$+9*hLBOlvOj-` zon5{x23YLz+4Bb~@^P3wiVvtm6fugQYat(Bce4A+iEelLkKm#K2KZhfiM$M7YZ89wxU$g-*cRt)7g)!!BMECZWX;?Z2)gq4z( z6dv-eo@PN?&5c+1bgK`3amawU(#12S)9dZ^CuGOs)>* z>TS>l5^=iAp(?^s$`7RHO3MA7F2jQ=gOE-2rZcvfo&f$`M9!S`2&u! ztPPHGG*_c!{Jj;Dfw;)8Y2a})L5&l-q{t(oEL<2PY@&N!1Ggkm3Re!7!3WT{3gh7> zMt>NetGiBjAgr{>glo$GUCysxJ!)Bn)~O_865Aqn$LUAzxb3?d@TSJwesbH`t_t__ zIsP_f;OTCCHX<}}Zz5vl=?DB1$*Z-Y2%)lZ?zMj5%6sSXe-4hx3vg`>NKU;+m1sSX zCtaB1VvdmCG56E+m_yoP)A*W&J?+pkGtnr+9x2#Oj#{qb(MnxTm!?76iKFYG)ePL| z*K+f{yP=7ta@Z2|dJJFF9vQN=nOZ4}9?a#IF`D18YdUziUc+~|qAF}^U} zmx0ZHMAmz4R@vZG>FQ}I6{(^^JI;I9oi$lz8ov+na`eI5*kTXvc4WgO1F1uOcWcWf zI$Q7@^`vQ4xw_*U5n|K6n_U=YVDt0NY=e9=+<-J(|DwhCkHzmCMc4>D^rP-S*Fp_R zuSQwi;~IG_Wz)p+{W`<<*>0<2pD-zU7(PDIm{R)|J+dCw<2t(aZMLH_hsC8kaVY}j zwiCNns#fXVR?2vBxh#j#dsOl6Og!myq2H;AAEeRKDtcr%mY|ZB;0r+)}`bmg7!&-Ou9smkmlQ ze0#j;8p5-C9xu57C@efBX6C21(KxC9*Z>_#NaqS4Q(N#{ky<}d*mTb;< z_QOTgAKkJR71c$q&G9Nv=c8*z=l*Km!GrXmYLK8wyxst$n6~V^`8??hIrB$8Kkohz zbFT$Ux9c>bsqdqmlpJ$o>3#KA#r53kPOibKI*uosi$mehOLS+2i--B!UE5A4qgQOF zZw>EYmX|-Y2t(B>*D;ALjGk-Cz+}(p^eO?26ihlBb5>n;89n*Nwnh=38u1f+-R&+v z(nP}U8x+)Bm>@0FEeR$t_v~)7--W6f~P{E%ke{${2 zY9t@;&j7C*o;Ok#Tc&{YWD7@s$-4bO#v{LU)gL|NvAUo;4gEP>;`;Jh7#CYz z{m)^;swJk^()#C?-uif9W-5uirBk2mYL!+cUxvFsX zPeDYNOWK;fq^eUz$#; zd92UO+6}l#4O~s1pZ2WUd*a_1nzWdHICd&E(c^>LtbC;q%H#V*qfnXjUgsV>t=wAg z*Vbom$YBu?hcx7a$ou*;`J&u#M9kK^*Yp#?=GMbeLY zIMK?oYYd$ZVU_GH#N^HG*_ur&7!sJL7EH12hj!K^i<^)$aVO1{v-DS(P0Z*kWged8 zTy$$F3N>lL;nj{EJ05&{l5TevH?(xxt#f>W9=O$F*<4=P1gsgyO=NBBC2lkzmxi%$ z2h~vEdX;QOS#Kr-)m0vArpV=moTMrvC++XJ%$`oAiQn|!+0iU+cJ5F$vq5&;hzgf1 z5K9Hf(+CGWxw*#bk%rFI{XH(j&_J!`*UXJHlDrm@0SGg(v{=f9UI{k4$<| z%d4MT?##WrL`emFs$1mBy=w-}vX0(kSSc7x~NC?|VLwJBnHjJ_;Fn7Hnj96g4@*2Ki!F zgto1+q>pvU(Tf&uC~e;tC93XlPRmzKBVJ54IIPuopd?(IPjhjSG2uqWJ0)-XQy68P z){RvpiWX`kX)CuD4VzCVzVs>Q4Wq5P61?_|!0cPOyS)-+LQE~D-ET4y+xM(m&7a*! z$y`GoTO;KU(s2@%t@Kq2PR6U$BCbsap4_B5KyG45O%&KCr7bI>bQ?@7cM92(G5em! zDwZJ`46ksHe0a0aYuwCn$K0sV<(!v!AW7+Cwk|ICeNqzlO??UK*phmo&${H-9(rFv zwl3&v!R#sXYp3&JdCavoS@$bp9QIAdrgQY<$*IpNAk>hO=&l~rCBrpv6D{uD2MmVW zAP@1gb`tqDIVm9m=_bQPtOTMh$pkqOlPwHLsgkt;(uV7$_mHA=wz8IY4`- zV0d{s(I5w}tnx;?O$O|`W)jGjTS|=&r1*&VBM;!t_r;yB1i1n}tw&#Sv)bKjadE96 z#mFPttT6-qOO0JdK2)#y(iHr&t;*qN zv3k4QY+Flu!ur=)CmG@E%dN9ZMGapbAPH=Sr$!!at>l=Kv6}K~)?~s+r|*LQ&)lkk zXWFNitatbE@wBh>Z}&E~uVbv6zicFQ+?uU8{O)Sk$-|EXj(nn`;<@^D(<|Wh`Kw2G zc#b?z3Oth%NgRa?S}s>a7VpOHmk&p3!f=a~m`kx!p3exQv8CM}PPo=qStnSIEuv@r zY)sKH0gZGqzO-=E^ zDUCYAKQgM`pw3L+COxU;4ii{AmE9InKi_EHtVKPig4N0mEa%AC7hw5Pa^srhF1D9x zHax*JebZ>_%_CY-P4|6Lg=CXW^O4}*^h7lAnAN+wZ{OoDYNcs>ZJRn4DPBmRZOia! zje^|GhSfXuc=z7)b;u~G(@xORK4xyd+T_rDBj{|^H98M{HTt~d;Q zVkZLom@Hs2E~_7ZIMCIte%f@-?YW7y_#8s3zvAcv`rGm=ue4nx#Da`1FdjeFC zXwW}DyzZtx<6Ymt+|QoAwB_H(#k1X>$Q`L~UuNJR5Xo43*!NmSSN**4O6@&$HAjsh z5B-W`FSDeJo!^U+lOGst6b6RB&(^RdsFZ&u-ov(k?OpkrdW~#U85XX8IctYIC-`Q8 z%egyR?l&teEG)uBZl;Hi?JPf*dctz8{raw1d}?~ub>+yUvOf9!U0h-0Jd@Nr!yGyC zTWXV7tOfgHt*6|fmx9!VOLuP2wqL$2-sH>c@0)+3Yfef zZce9iegCXDYW!wlY3V7oOuk4_aj~-M62{l~P5qSTgd#!vKuNoC1Ci#^>5|dY7@;ON znxmZ0iC+ah?%xKdX0m-qK304PucM=5GF-BkufXERD2cf1<1(ZAwtUAm(fO?xMEv=i znY_u<8)NI$T$)=$8POb^??~$*kLH%%wr~3~9eMl#vvG=1#1grvj(7X!9zDQq{rQS$ zgUTgPq?@{Vtu&>C^A@oD{>kbIZEq5EzmK!FiYGsuCnFWw&#``SQkvZ^0j)DQEY_N?1 z=@U|TbSYo;gb;7t$0JV<^rT;i@4Um|4GG*f?+U-xW#Jxa^q{xCaZIUI&qlthtLy3h zSr*{|(zo(2N-l@VbfF$chfNi(Uzch;RF)Y_@9&auY=qtaLBG^z_^E3?)@|1m1FvOO zwxrQh@9KPhZ8HZWo?VeVN@kiB3@m$sbm)c7-UY`tRI1!9%3XLYU7^|Uy(06|%DliS zc5@+KJGFG6F#UR{fV+>NAmu2xW2#ggn1QbD3rkYUC6Tbz{qgA2#r z)Zs(p51BE8tCw}ioar@oQwYO0Nz5F8X2u@(5{by8940Jwyql)E4Kj1XAa??DAxnyO zO)N*M(QI<(pnE9iX=c&Sjlvb6=A4ttT2i+=PxP-lPT*B|s?c>**UCjyA@i!m<8;#b z!?&kh9<0==EF(wrF7g|)u~RV^8AAAZyMl}NbkNUx$6lI@my*8lQ|mshHJ%USFuubq z{H%n2w9GRL%XyaOx@Gu0i$L9n+`Zwi8tO*%tVKGc7mH+pNm;)~KT?-Qo}0YXFU2Ah zZ|EL*z{dY5cjTgm&ZtA9M1ym=J^4e?oL-H8v-4>;2JWSU8WXpkISXFN{E*Tj`7QGG zLZJ=A(pNjEO3vaH4d!+A9N^8$F3)bP9bj+>7A+foxjXGOKG}1%{@LWYpzjs)@|N^; zlg{EeueSn*bm|p5J?6?jn{7|{KUDNqaB~{TliB(l5VfEBhNO(?H8N&>MMx@|9y-}w zKHO&-lr0}ETJ^GW_7PpdTeP!au3XLd{0PHj#JrG>&nT*}-i44RjN|8H9a~LurSo!f zZn1H`PaH1`mSZ2{A1T61jW^%a9R)e(~kH#~j%Lj&97>j@g|_Fad|4w7in z!K}rsklpcz2X_Cm$+P-zYv`T`v@)m7E03Sw`3(yk_olkD)3)_l@6gip#P&232gUdn z&JyK!nz)E6N3L)84p}op50zkjBrmP4z50=BOH5wmSJ$_p742#i9^YF_=eo?%oz@`f zKYth{P)cgxcbGLJ9dHqNw0oF72zSl-eoOmcCm(?^QUc6Q&JYH#_h|&;azu&0&9j#^D9(% zr z>AeVq-fIXo1V}={Z#?JTb3Ny~|8ITkzZQ!%napG+Z|2?av-f`Xvlrda27~|&O%BHg z{Wq?Zz@+-j0!`3Bd$;Q!=mwf?E`=caI>`~uR^n7cEY@g)o*!%;qU`UIqJrO0DzPDD zlSOQ=3yO3{F&#ty`Q%!I3wd=knh{Mf&7jvY!4d?28c7FwXRjE(0Ue; znzE^zi*%V{rAH&lLj=MUt?jaVopqIOrDq@uOl5cH&1;Q@_V6%{&e9Ine7$kTZ#yAr zU1^M`fwSHqF^Aqb#a!0g)C}lcJs5w2W_tM(gh?C}^o>0wT7T&prbkoy9!r!R$E{0* zR0XVkeD9J{eJI0bYRhPGo77rUwGZk6!K6KV$HXnhfFO!YC9^^pOsFT@am>ZA*mBUL z0joj-=Wb3VGvhwJDvD&2ms9cOw@}}^C|Y$~%|_Q80y4mwjb9LZZy~z5*C99}qbAh4 z$lvE=;`UbX7ES)Adv~gPT_ln`>dcXXsY?v}-omjW>R@SK3J?p4?c8(5%@B-#>7NZ*h7SH$+jA=j#74Jj7-VE^Y2eW3n56SUOgdi+jZMJ5f@1=1b*IF`I)-=7oY?B9-#TJLpQMIqjZu}oPd~@U#N;c80$%^DZBi{ecV|M-+X#B=I zjU#T}ekrp%7;iUK>0YV3n6N+CqS@mW-+0#+f@*!Ud3ZHK-^@>$bOL2q{*KYqR|>g@ z;?Fkm2p%(s@CB zJT?R^do$@!+c?2;3fXu;&$!_jMey~=JDP9EYDEw|0`Th z$rN?B`4t6}&bZrhQ_tZhei;OcpK`)!J((z7de1{tnWCoOqMur|WHC&|Q8vGW&+AqX zeOJbSO6|&*uYK%h7#YhGY`)uMz6ZBq%Z1C!Z6{GQn@Pns^9`v!<*O{U&!6O$eBSVa zIojvRi>W|zw@;sGd<h!fUux%=?BXCDe=+eL zdiC5x&Dqz?tX{J|$>pT<{HDCaLckPVU~W}Z_^f*+bp_$2WhBd*YJ_Tq-{+cwYwNd1 zskz4S$aui=D~+0y@qb^))-TEWGuw@pJ1cG0H4)%r-u-JZnIIfgJ|LqaD{P#te~a9z zDe)u{T9g3nGAyjsh(E1A=#ZVvcvl7_`gCQV$eE?x_DGgm0*BwvVdr(q;4j^|PGxwbo_F1hFA3aP0<98N1K0(h1o=$7<@v}Es9YrAIj>2O&ro!ZiXcpHB zqpfRT>pWh1$|@J_nAz*}1y_2y?a8OWjeBEpZ+a|R!Vf>}aNT|fk6B`mkfeh1Sb<8(m1{?5!XG(RvKC3N z=24)g+Y0w%q(BT)Vdtpzh?XAU5Gm!-+8nb_zK0$jHd~Omd^jn(T}Fa^$4_F7K34iM ziHPsO*K17kI0U`(qa_W!xM7jmb}_L2+3wD%|5f2*_PnT*@hgm2-@|XDd)unMv!doY z`S2b=Jt59e7VZZ7V0pq6T=SW2UE}^_1gd`J7Mpyx`^-hepiR!Oq zyuRhUeEIxlL~r_?7F4drROyw~mRS963G74Lg=P{aspJc$EOJ20mK|5s8$5*F@?z*g zRVMpx&YL67LkJ8t^YuSo%uXk#>=8Hwp_QBWSER*F*v#1>>P-p(L36f1l2Go%JItZ4 zTi0o5V5r^HX>%c=Ks)SsFKgsZy;`T>3?)_aGY1`90)vA z1HYDaSnwZ>rGu9DODN^KO|c<<@Xg|3@OugtF$^H*{7Kv*$9^Gf=ZEoDpbC?>#e9@v zNdWd}`?!Jjorq4U;)bq%Dqp0A+%z*A&F8gG9`$$Eq$izmg`0vukd~@19B{^lhPeZt zG%>&NX}JiZ3+Do#0Oc14`F+KKE8m;A1XqJ1gBwHLA!!+KXgg}-*t^nw^oCe_xN4yWVP^-Vg8z|DRFMnB8M>Mb zqJG!DQ9OgK1Pe)RI5$s}AP6mptmjNUKYnPhbPuGlmEIltczyaiCSnxXY-u&0Z`-`E zN1Uf{;{+Af%Hcv4Dv^Mupbj?c5qrQQ*Q;j*eHKp|NSo07(%QKuFH){%+#G2keR%2z z-}$>%$0{8h`5kqXCrm3x$LXL%mJ!^bxu}#?s7c^fw$!Y_6wV@Io2LUTYp|_#M5(0n zZIaZ@FhIAQi`e?z)`lQoRP8bs%r)82R5>rFz-Ar17q}}~G=zEtu}BuHx8if$Ihj8R zzAyPSO;z>JeBF2e`J(@pDQZUQ&)CAh*V@o4yZt(8!j8Lh;gEy9wXBD-631;bRpj?w zdbW=8BZ@Jj`5LDRP>c{x$=u#V#^iW=3o$}xb3M(!!nYh@P*~=z$xa}izEW6=h2Y=I zMPMh312j6kes~4uMCT94V(pXfTYs5cEz)T`!E$u+0jbU^23pQqBK7e1i5#HM@_UN& z{Xh6#_3-7dEJQ%QTx=3*JOSYdnBtx+s-@+t38d%U!ZIG+f_Tk`3659 zApeZc$o6Xj2j5D69VC-oI2LN(=$dSl;QGc_LRSb>b9jEg`SjBe?@?~lg3qec6-u5A z{qL3V%?RiMpq^m^5Vqw&Cx}}A1x08e9e7n)-Ua|P1>0I@+ zYQD1ip5Z3R4-!k4&xJQ%N#&!oBBLpgRxldT%aFj-3GG=_rf3#QsB3bJ?PRIjo;&2( zYUHFOO7N>EaILGgHHJGM<>eDlWEIh7O6?oak?3x_s2j;PjUI;*3bz2dG79g#oBCIi%RLD zy?(`u8gz43uh!N@O4Ro#+Xgv_V1{Ow$C1*K#0eU7eN@hgG#lc& za~hypd?4DUApQppA*h+>()}{WSFcKQ*6lGHUC|rCo}x^Ya`iIDDT3Ih0tJse?&j9c zHB54Sg|V@{u^QwJy$g)o=g}v%;QJZ;+>ewmoD&1|4J&;%oGG2+Vq$1zGlX#-o}L#- zYQX{m{&J^@65N42bz;h9x~a{!?BpHM_2c6gm*wilYr2PKXB`W@7~NaH3r+?&+PjUY zD6_cC*wWltaJsUbE3oQ|ysizyBI`(1mzU?(=9g**UY2i*S@y>wW|Jor!M9^P=kvW@ zdKHNU*V@K8VwLWpzNvf}mFAIdn@&t0_YgTyb-?$x_0QS#tqni^(N`q4IM!E+wSO`& zQ#`Smwk5YTTX!t6Q=U1iXl1*JJOOjU321iuhvKjuw{NwQ%)m|ic~$~-lYrY_h366*lE<2eZk5t)Uc0eTFC<)&H2?C$@;;2QzUiGw0-QfoHFK) zB6qsN(s3WnuK58XMLkZC(~q=n`)`%IHgef>^%hg}s_wCi+C9D@_yhXV`a#%d7OEu5 zYP|XBxYIzo8_i?!I=roXog=-T=p18bYKv&GGft639EOp4FBxG^8w%+Yi}AwR53RDo zZ7JJXN+YB!xhBk+b%MCKxV~zh8*IE4dO2I@oNnuRtIu8Q!_W$IN?Ir>i|uEW$Kq5~%MBPc8rEyVMVrSk`ByX{nbYI-XlSv1bV!Uz`OHy4N2{cGx z5iBZMKyJUAYmTx~r&A-?qtQ-N?TI5q^%g$OiW3Tvb$eijwELuM=S1l%>pNgl&!)rS z(NfkTdAEe4Lc~Juo&XcWCI3CJwTO1Ad&sEyrESYJV&Jcdu}hOriCO5de=($@JeXm3 z_Q@Y}Vmyre_o#eB!-=sh4E2S=bCvn|cRlnXaLpbH3YjBg=rkU`slr#Cwb+p!b-@ffb!u`K{lbsWrs1l%p+%`gdYPX$ zXJ!WZd2@!wTi~p$tX8{^UZwVSb|3S*QS&d(&g}`GIcnvem~wS6%cos7=5Pjx)yB~_ z^LqNWMPB9+CEP(l+?wE!m-NU0C1Q!J#2MJC%_-U8ZuN7H<}pt1H`*o+#a7jnPngKB}c?YFdrx8S2gHl{@8?Sw7G z+fYX(oCz@n2yax|5x+!;#!_X# zw(xBU`X%KX4D{tewH7Qh6XiKQ1P*@W^9BM*%OhsYq!RD;m9(>8SbEWxzon#W?Hsl+%GJT)<=w;;{GCO}bWb+f_=MT$Q(PXSwX!P%bF{uO~?cN_0rR`6>J(sfI zw92a9?mbjIvC1m!T#K&+PobB*k5b8qDL&{3Ngyy4+&Cz@*4bCNxf;|fnUd0rHgTgp zt)7ru8(;O-cPQ3Pn^2Za3wCufuO%{n=b07VK*^d-wG_RA2HZiXyg zs*F4QRM&V}n366z>fY_=RMn_tf!$F%KL<3e0uwX2`TNG@@7fVcHc8Y!my_`bDrdr6 z!0~GN`hVQM`CBD?Ri}z_BSht-y=V)+y@0L*?Zl{U7 z@jM0>^UaRY)88*;+Ua>V_NGh!z{DKOm?I>8b?r(z^ePo7`)xeHBCP%ayGM;5?;ZO> z{=2x*nJbJkXKzlO(wg0mO8#5z#WcD3feflMWaSe`<_mmPcKX#D8TB-E{AVLxJSn0F z%hV}Q2;L`32MWZ>99BKNC7cgA=(@Y1H5F{>XVK|mx3YmS^S+H5LsTE)ptB=W#KXK5 zopgRf0VhPAfrf0GzBiD+8$t5d*5@M&KvJXbfm|FrjL@O$}3c3 zBvH?5_A%*Hp|E=aWojuBdbH998Ly{Gl{xNe%3@s8qw+!Z`?qQ^MRQLStm30sB~2V_ z_V`?PgKf1uOIJ+aC8rCI=uJ?`VkRTXuW7}0lcoSWCG#zw|^#_us* zMpm-|n%oIDJwsbN+G+$h%je8LmJYnde3wo9Z9r$n%4x_)=^enTm7#b-N%<0f%QLhs^5LR_|dgjwo%MABIP$iOxx2^3;{a9uOs`{ zw%^U5_aeITC-e07m-UOy__ns#lup4@u7JAC*t))%-c1S$MI}UH;`NDYi}E457}Z4n z*e*JkTaNL|YYZ3mUtIZk#`+#rH|;qwmr~Hvru5VjE-(lUOXFyEkH?zS`l|V8p;BaOl21A`yUq8IAZ)(anF;Sx=pFY524|ER4 zH}7TAF&Go|zCByZ__}qXR%Wf5ID!;Us?W-*9_cOuDh;}ea&wgvg+Q;O=ws6T>qk%k zGyU9NB`%6oQ-jkoGz1@nNS~+&A73g~H^H3&nhA0m->VBxaEY=z<= zV1W;fjI?a_hqwGU$G}SRBQEPyu~;=h#Y{994r*S8qefD>rBP21J~`&9hrEtPc8XFT_aMTGJH+xh>G1^BOf zn#`|I-pdy>tnW=310LG!%*>Yc^!RulKz&0A@$TJSKp#j94>X{8vbrjuBrj29P%njw0ck8yhZV#jiusHZX9A#9XxE4Qi& zxgP5YXk0rSD5UWT6$s-;kx1hSVBoqYD>r}6{^7ot##>u9GpR5bPi3XeOcdPVM_*xK zNH(lWX{awj>D=H4&zWi7O;&Vjt6%e|k7~STm375>Rr36*J$x^cm#y~K zdXS&bX;aayOKbK!7Yu04AHRu=6v^4zSNIJkkG_(4$3qJ4TqJRRagENtKb}vBOvUZS z-YrvD^&%UM{Bp~6ptPx{u18)^ULR8LuAcsc?ux1@M^t_7;$t~e64{>Hz1Qg~@7Y7q zXd1QY`PEwep%YUJQ%I5bSC|!o=LLhb^oR=V8REDmI99!5o7NKy-WvW&vrgY0UB;#9 z1=La9RLiKTQBN_RvUYEOlV^2V`(7R_A_uU7^zhQpeKU1Cf~P^pVG(UklyZBzf$vCP zqRVAv8}Rf(4k*5aW_Vq$aSgV+;wyavdjHS7*e_Y?&RCIRD}ZMl=ixa7q*bDZr$Q9rI-`-bg|jl%0E9@ z;9FmSFos@0U1)1};N^k|sT3c!7K8vSTDaU9eZQ&|IU~lOpW7J;968g2=m``)`8mc# z2hI(DjCg&Kgz3V$9=g3ra-X(z+t-z*%D|BQ-I|S$lK&1rof&;ABKyy`{&D1AFBwtf zFLl^ZUT<*!M=2A)$iLK?DLhV=_$34IUya_MJDZ;IJj_HrLn!oe{2xznE-Mm0Q&sIMt!PqaL$wh7k4NesAjJ zG&j<-EAj#mT^tPNbRlQP1lQHwo%rb!yVW=#^zaHST3(Q!{{gVoRua2_-MAr;_3CFF zfJs_PD(X>l&gaiV>-wO%8`kd%Rh)(P_b&h#rf-z?+4;d3H7x@JPB6HTTPS-ozYsmx z9~t>HYT;SOXC8+#mk?9&OfV22WDfbFE+&>TF*-U*Jz1fWL6$-7P}cStW?Fk*in_Lk zbFlBHA*JygOyCZ3^w?MhOm#}|EAddb4I5)bxc{OVtQC1~#$g9(;%{OCfJEJf^7Yks z-FJv703@1SUT&Q&HuP}&Pyi~>{kf}(*YhQa`;lK1aCs1LEi>tN7|wRuV*D?y6dyBJ3xC0Rm-7<;mper%!vW|zyl^*ta`l#|7&3Y59GwzY*-FDYAEe&OUpgoa*XDQpzHdGk?3i|E1?29DyB zI4)jZ-f7iSCA0TADkc!1sg0EU-d;{U9uwjprt0q>oRxpV$*s70&E;m_^78VoIo|8t zeq@+w*;8ut;WGgZxSj{6zB9le3d= zLfBBT8*+X>NovL{d*fkH4n+L39UX`owtt{sZ|CG_qE{mo-0G2TijEtReaxher3GJK zdF=DOZB)s*Fp}=1XiY^#y1FH!;~+!Z^k6F4Fzd?ly_w;CPz^>GMx_ zAseD~@CjotaZ%TRubn@-w3jlDBZ!tnI@}%_&!#O0c3tohMN0dbWmaDP*fOHzE!Gm(z`w1bA0CZD`c&Mxlb$9pd>Abw5;LvZeqnzPox@2>dYGqzKFJyq_^5hhUzN!&{t0Cb?!Gb5e~LJxy(q0kxEe?ACul zJU>uCiY-PPb`-#x`p(R3N$x`DVfb>x1tV`peAjb7uz?JjVzaq@}%P+xLm0Y9C zau(Bf2HvIv_v&{kXmwTWl_MBB#B}>G!$hROk3MKu_uH(~z_WaLMcKG#?b_&~*J&a1 z;cWMO%`J2tXJk=zuIXYPi?gBO*8kF9`S+?YPDb@uFm{@Zx|#n!f+zort^NrP%r67b zwxsjE+5c??32F%bEjr(?4gBKfKfd?>*UNK}zzHFWiF>~~$o~s|Mqm3G6UO1f#(qzL z>OS%Esu}{kRy_bJMnM2cG(eHg{9to^{UZRQ0c#r>scN~ekosnd6N|+L%OsOqKQvSe zE(-}#zi{E5gPE3*7PqXdtWqEYAV|l}S9f^m`Ssg3vG$3nDZVyEPfx%nZg+N$YA?#p zZes+L_;u~2W-{K0SC9MD8IYED66`ck%!e3-QB~NU0&Y9 z2rnu!GeM(Jy=W|vF-$YRpbt!rrS+KM4huW6d!To~@t@LV~( z7xXhkI|v1qg78nGDi1sUQ#NmvV4_5H1NkP2)wVHY|1Pl{7iJ;?Xo#tOzTvX(xx* ztPFy!dzt=@7MdC#-ndu&{w>u_`H%)qxtpyd=0#}6$>QST@6+`h&Q-XDl-5@Ao#8hF zp~vGVCNAwAb(nW$o}+w9{*TOW%KJs{YLUH9xPP`}ilsDE6;SY3Uq@7Q~)p`tue z|J7v6+kE-b8P(A8Q4VB7Xgb(6_SnIP!ihzHYb`%ss(4j8{J`W@dt35O<*D4%M9ri_ zu${4(Cl%G9=UZX8v$I!1OF(*`byPR2$!H+=8F4@9M=Yh~Zk1%V5)m=ZrP|MQA-yXP zCl*<^W<1g}D?fOv&g@rtU}X2^Y|AyP>79>kb3JY;Ck0X^Fh<`%xm{KgT!!H~7Yju`J*$nSv@p8Q1IpH&`iQpPVnpYW*k zIJhY`!&)dGC1zHFHGT3U2WIL<`##oij(5gE{l}30>ojoxXN=WmdIHbt8z82nF!!P+ z0dF>O@;)&@?X~3l26^Yzj(h1|F*`a+;NIuwVCm6JGynA1&Gj$6!Blz~_6F45^2zzN zhpey;RRtWMr47hT2s@4l_T2Jh;nk{B>P?a}jEjr=l4GoA#?=y@{iHqb!*+?NhiOhAfr2rIxaXNlog|Fyrm60;{u(zM8l~ZO3BJ4e zT#}M1O0h9pkn2|ypFXm9o9a3|)PC%hlc`T<;%^p+A(K2zQm{rRMWrPlm|fF%bAvso zg7>UPUG~$hF-Ve)cvw9&L5S9@e~~4x7&ugiHjkjFwh;foZj#}tw!Zy*E`b2}A4jRd zBDwzv8u)RYA!x-nlvVRz{pHDSdd9uG8YmxEY<8sJb40Wb=w2m51Zd5AZ{A+3L_#)| z&$gh7t}>E2R^uFb1;4(pDYsqMHP@6UysO9Wc)5$cQ|PW#FP$IR zV_VHkFj;x&V3(Mi9$=VQY_d}u1^LI92zk=fxHfo$yF2f1KWx+E`NArBfCQY=X?#j} z@-rsDz={S3X?TAu!0=gorMN2a5rSOsGfRPYpzVEB=EpQ$|-ES`~nox z&*n!mv%pr~B4mUBu1pTA+sMs;i|w2LSb02eonhAXx}~P{YrEh}(q|l?b=LMpGKae} zu3O@PoC&(3_bpDw-%~=14TLx#Wm|GkKY{G+%L$+z}M+wR-3M0HR|LIq~6|0AE=5mUpp-B5tBu}mLJ)5>;Y-IBwP z+g-W_#7u81vwFTyE$+6J-Wg8Gg|r5Z*4+`&%hb@Dx*d2J=XN00)p$sY!#a`pJv=V% zm;0UG$Q6{*b39pPp!f!VvC^%pZ<0|S4K(W{m?xWw0-9d8cvu6yJ3~keBk#U_wX5p~ z1if%Cy6n0-8F`^5-Z_)s-Lx{scLJ-`t_zuFR{5U8(8tQ(nvW0?R=dsq&BWAum*hIp zW_!Nh=w$15pe|xS%UDr!2zf)m!SG^uJa;ryL_^wamG|(E<_wH?$#=h8^t|7MYx+mC zh9KG4->Ob$FxyOSzk~$+xPq!kN2RPDt-mMd_A|-4FOc>TUe_Z&Vgh&kZ+XoT-b6jO z4en1DS7kq$(f0M5nU7@GQR)qB+zn@SpO;~}Cu0h6M>-uy1~end1BLkSCLqlMHMjkC zsggzfYNI&hl^{N+OZ(~Kvvekhvjo)@c59PXroav-ak!vatr2+PID?a$v-=ET;KLfo zUlo%5{SkK*3%#(QrRWf;o1@H=c)hDjU~sPG)UejSaC$HPytRQ{J}YGXQTI451}Ha< z4Fg?226t-*E_U|wUUG<>o|xbQ+B|$4xx2IyT{U}qt2-kl>3zmN;#qFk2?u072rq3= zXi$0ceMHBn;|McRQTtULYhkvVi0YktJ_2u8x(UbWr(Aq`j_+G&C7;2q*Lu7h2{mS) z!=9KuKQ}WcyC1bEu1{+w402i{068PFy``Q2x)YW5JQ3{=?V!`ccPF^73};E^&kAS| zm$JgHnG}=OOeObsDHiSRp)5`{%4KfUWJnD4PwPY@7L>Dky$00q(Y0-~s(Y=d))0c* z?8q)^y!Rd*f*?ft<5H%us4>>;^u~kAoek*k?0Qo`v1yG{*Ou3`P=THkjmZu^c(e%U zoguUW6DR5*UI*LneW5-;BXjf68u6)*m?6(n6aQ7Uiw|AsBSWDm5>2{IS>;0(-oDQTHy*po--8OCW zyuFM~9a!Z$!?(P$(YjCUC6Vfg$5s*U z>R&d~5=_z9{%nv5+L;54KB=9UR{FAOQwKRC4RZ{ai_D(22ulS3*m3n_xi;eE4B&lL zp9;>P$Ala`^QyRAj_eufld#n8anUmm52zPI<%FqF03WBNq3=F~=}Cjz27|mb=9t14 z$XwJMsJeR|LddaX1+P34ZWNye5UeCI+C1x=r6_tn4cQ?1sJywl6=oc26pFeQd3v0Fcq-`4iT>bV_$xUq@yIj!hDG#pyqJEDD(qBVRw}6M^c;#sHUEf7t(Y24f^ef*) zPLK=q1sa)M4M)W1+b1M!tpkIpbGVH69NltAY@+l)@WlaO;xS5lR-B-7#qB@6S&Nw} z)(4m9nmeegsXaSdc+6B7g|y8-N%voTetDwfE|LL6DxN;VOf6&5Wi{PeE|@V^mJW~7 zGa4fTrz%~8j5Y|E(>ldsNZ({)aYHlpD=RFj#y0I19SL>5yGd$_I$s`&*bPIFV31clX91bg;%d8zGDu3TIWl8y)!@}&Y{9!zZ+(lo% zTJT|U_6Xk^p!70*zKyxs0`315Md%(CB$uzoAZs}!A2;NMR+Ple#dFy~f2(G5Z<6`b zJ^d99Jf{q0)aC02LZ(2HAWX*KLSsqkXTyuree|I8V)b2kj*76PhwS4bE#tjFyvTYJY!ehc8tts|0qu0 zu*b~G!!D(#t9xEL%)j_s1)({EGV`@c%1FqoDKb;WD(Ch{6>~;+CUg%QI={faP>Js2 z+@Ub5QfT7!^2<5e>i0LRitQ)|gtoOkD$`;k*}7j^A;(`91CckmwtisVlosTbAf+of zMkwMlPSVn(*}cz!$Q;FP3w?hu0*kJHQcycNYr{9<`Bp55z2ql*r<57^Ss1DE)SPi8ctiWNUv)mdnig# z3=X$niL8dC8H>XvnoIPx%Ud$8^do1AN2Mkv4yb9s0@p(xpu%BkM7g?Zz&PMVrvvL8 zl@K9j_R$>L0N3>%;442()#<^W` zxJX0R?$W`Y6S$PlYu96xirb(nnh7MK-wT9X~&^KZ&{?IBw^?{AM8z zrvDUpnIm;&fAuLFXnly+%{%Wmj6xJ=KGd)&t4YMikkkBJ2tDK%2&G58@LKa>L zVyfttmqGll)&2c1i0MGYM447$a2qRqnHo4(-lq4CpkaEn22p6@6#>5bl}m5X~eaHO;&0XD}(8oDbyW-Fi&WhjW3Ayh)xg$scCzZ!PF3LvAxkx@P5_M#rV5 z@)vp2Ntnx9Nl5g=*5>R6-Gd6Z=O;_8I+B840y3}s1)PlbQmzM{Vc@A{*Q{KE3+Uw?#`8tvw|>$tf#q3Q!3`L%owlI?RxC&J`aF%RL(% zHPqEzP&QDK2Tna*ZdAvAOH2;k+X`rY)k;3vST$^hM)-SetWK2MhMBOO+#Z8mto50E z;3sM7(bMMGPU8o9i(vu-T-LWw#iuq0g3eEPlovGC5`YB%r$if@HNcFI3VF)T4+}wN z9Q68yC#w$lRTUzg7&go5vJDZcaWBOjC#YXQQ zTbX~?+a6?}G9`-|rKP^D{P@uR_Q#tNNoVlY=5J$TTh0my7+@m>pdc+ivp^z@hXP4@ zSa`*(+PveK`w>_Xtx_RE`Q!WcZPf1tzEtP1lm$*l)-D?iNPxcT815L;0DRrmpgu`f zVv3cFD5D!KvRcvzvC5oVi%(xCrqo=cSxs#@ymEb&b&!HP@W4Kvn@8ES@ReZSw%be@ zkt@S0R_ej~w^k#nQtNYNBh>7(stRWYwm{ceE0!kOgY2Xa^g(|5Pe*#B2Ya}EHbzfh z**XlwFucEEQ1i~M=H^j;;kayb&vWBZ!}0e&G-WkN8G1WTdgrE+?NqS>sFft@0r`-% zI^U9GmA@tY18xABr>z!jedyn&o9Ep#4!Un5nyY3HbStlTbhNC~$r;_$l*g2by=y*R z#dxe=D=;v;&};`g`5xCKnTuKN{|E&I7#EjdX};np+MerAU(es7vyjoy5*m6`lIhhv$vvnP2#ZN$q>Z z46`2x{P7POvhOX1SuD}TvcS8s{23N+cMx-_lw$_!7r70ZCmEVsNRs6_U0^#^+pJgt zXgYpV)%CQY>WIs`Ra8$ z(%w!K(l`M$>>qpzrQK^t1g`upxXkR|S^%?Ot{b0`-yfg*z5k5-aRzbZaBFYBL;h5| z*tbm&PA89d7)i)yvzx;F^oEQ^*MCe2&K|*dmd7*cbfuF*i+r&cVn@5vrMA3lPMdiu z&RnM(PA7EO+p(NTNv`IF%~}VL)SefZl?JcR5;%~yF}H5OR~qKaHVO4?PJv5|(qal1 zBA;TDcZBcAW2Or(Pld&Dh#QT4E#z0XHCsZ)37Yn~2Hm$+i}>11w3dd3YS>M9HT%e;2b|C6B|vL+6}G-(F8WM3{S^S`fImV;&NL*K7-{ zyzbN+JP4TNtRYSE9Z-u%oIgn^_SZ8v2zw}QrHgj0+!7)kj3KDE>JlzKNT<>K+r#g7 z8wisewbymu{|{lHi5-aSoCfgc3P_1r>TG&&5fqn`o!#AVG=2A{mx>W0hMVBBjYnFRW&j%Dc7In zY(Ukoa-8nM7NB7#q*(!wHeHs;vMSPFQ}EfVhNI^DxRrrMzD(t*svNqvH_#nhRc4t3 z-wEHL2);El@92}?!E?tzxNmEg$&0WHBseOS z*y8iyKl4TZ`5RRJnPw{5%4NphBNzHL=Q++p>1~^@!N>sn>|AoAvJ!V-=r8%5y0c+YQJqPV=WP(3{tRdaEf-gt3rOtiDQ z^ibqYX4_o4M7}+01Xs#?*>=eH)oW##ks>ohuW&7P;QC5>9$cv1Zo+`PpuzbQO4vit zG-Wl zz^Gy{)ZoTX_ZBxH#E~G~7}zjBy0u>eKbseTf%qEhywJw>k2!5 zy#JkR_Qw7c8_uP?#mB%#u9FY`H8Pf`ZoYOQpd;j|bRBzJze&}zV&U`3L+GM6j z8@kaR+{}Tz*u{$y+|C~OED)LZ&jfLh`&<;yw{(b*Uy)pn%I_305f6Uzz#L!~Zq|Y^g#GQuP2< z97U;zs@^=fcQ+DXX#g!0ZcZDX7JdDiP&VwE34-|+$V*Ej0WKJJQ(Wpq3}6KDEQ(R> z|B*(#15osQHhv}&^@`!;JpfNcp7#N{;GH{KYx>C(Ku@YCK89g8KjxJe7;%Y<4*(x> zkwwgqI93Rx1-rXHc#58R03haMOMTmYt+l{WK2I(s1dx5~nyl>ujuo{ZGa>>VHduvw zBS1ROp4|X4n+yGTFM#N(qo?ze+h=sO&OeibyAh_7BIZ)2ZGC|AZ_nW3%1-&vRSt)1 zsCTQXo8f87!G;q6fv|SJ{FPNsf+?gi%~Y3bT$kyGgC6=4P&Tq#`YJPR24KRfH&+;s zjX5m&fOq)?1>e3kt*d1)r1i8%PGUk1mt=RT2HZ6?K4s7*XML&HN-NX{@5kljC_PFO zrJ~_YhKZ>EB%CM>!b@hpr~o6G-Pkz0oIO>hE}qHWk^hrNf;OqGshuo>edbdi28w2k zs~kjqURCK9=ou5?FC3rK9n?mV03e*==vg{d(mYx`K?F!T&%v$J#R-YO1J3a%5}=A~ ztkSmi7s2$4;hQ!9`6JMflhypuqtC;A>cH5DPbz<_^~qE~RJ-3ic-;Wv)8&)w1!olj zCkz$WxR;GJ z3)|lEKm54A;L!BpcK8nO#LNorvHUxLmG|WjvPpY%X`duO^z(2_1}MI(tZW)HXl6}- zX@|q%`T=LMAIOfv`y?}9R@+EcfX4^BS0((`zCUR6wDicHEXmDayfUw*2#mJ9J5}V_ z;&{#=2sJD@ek;I>Nv9dm89G*tpgTDfa&4GoW(!Ae7U5Vg=GWCO3ja#u0y6CnJD-j= ze0j`I{%ZzF`4c!VyBskuc#SpXh+iO|cUzZY--pnqB6Ef7-~0{qKDqJnHPD83(Ed2`@B9Da)S1(9 z?IsABmPM?lPW;-;2FNNZ+;~Bl`y4N@`gb7xkGSryF9F6kvu;FtfVtqWd;gd1@H;uM4U`D?9FX0e7;z#O1oE(h*VZBQJ;Z{<<&S zPhi@wfy^i+i+Cl{aLCEDvdO!;VSpUMJGD>uCBGNf*6IP0YA;TSYs!F7Syc}n%d)bb z85^}5(&D!Rxs#g)c{k*Q+fQ&kUWj7f}qzMJ#D=jeI=zxA!fVm*r)o_U^`x%a*I zwXf^i42>Fq%(s>usjHo6Y}3|^Zy$>o>FIU6^K3U{`oemMu&Y14b3!O0LjGJE3#ydPrbH-d3>c) zX_uMQ2aD`R0PA_d@p#{U8VDma?iLoZ^SG`hU6rUdGns2O2%xz+jfaP-(Z?d84jjTH>$(_lVo`RMj^ zF160#vodYFh|Gs|WE>o59b%U}C^DXxRWxqj*)gRLNx*nKwXrFq5KX*>|~4QGDun;V{qmjeJo>^-I;JZH!(3Gfk~pM=SyPjL$uXe&0k#TcmbcVKE|aR z?%0)iwL+36vHZL@nJ}2r?wGA!b!-}BENyxFg$&INaQm8d+k2J)xlndviZ8RiHYqty z$%T-WwWZ4Cd4?<>Vm*qHA}~v_z3(3DuYJ-^_(2AVL}ZjQ_sV>QB`SBTyJ~S>6giLy zfX&y5%KT@#-+o3g|2*!3AWgwb!I zPKJ=;sR@q8#C=Id=?RV@Vbv`qT|)4h!6Yf)kZd`+&kx9&pg-9nV^~fBeJ?M z`VMKNI=MKvy|<6#oW?X;aa#a>hWJhMzq8{T2TxS#GNw$JxacoU`^&5gh#N!=q^1Mg zAwy4(sfm2ZFy{M}m*=jYpZ)FCsU%I|282IA?-OuYSFHrV9~K#&_Rw=Z*YO{DuZKX+SJRW<4_MOJid;s~FBfC9)H zxv3|HMv5o8Y>;71K<_AfKKj9HDegV2?Sp*Rh!Um#Ag?X0fHMK-uL)INZbN)j$g%bZ5{l zmjoxT=%t?wPmDi712Q(DdZMCswO!?A0LvE2k zSw75Vaej#3m!r51?(A|>15MVol@gG0jn6D7*EtV5i>8b6Kz0+KSQS@Wo)}CMXLKd} zJRNK;l2Z||f>WYeMvJDQ<+(?OH+L)t2Tf02Le`g2!Z_F#W*C2sMMgfrKuya@v=O*2 zLPC}2Kynm&{>+eD}6|C`g4rcU9($ASXd45 zwKSNE~Ye`^3}Xh2&d!EHTxG1S$7uQUUVE#>UXzqdrdgL|l>@n)tn9~+0JCU(&O_e&j z9yN8t!xgMj%(Q87IL-Odw~oA}4;1%q9t6fDuZY)-IOhSs*;uFxph}jGt?@2r6;6Bu zx`3Ii%i4M`paU}6&~YqGVNk@8D)6)Bd)}(cu8GcNE4_1sMcU>I)hs2y`0j{QL2nG2 zB3CJ$hf?S~MeOXISIGCg{p~M1|6t-sp0{DV+zXmN)v+*sD#d_dY_fuYpKk3N#;;Hu zz;ZOjYwU_a?eF7QLOncJy*~sevlel{a$NE8dytXZf@`#B%(7o^(dwIXNl*`G&y9H~ z5^V~&ku^JLz)>%QN_t8s>~c%)K#9CfP1KX0C-W$MVi)erM4eOHi#_q9KcnRH5=b($ zN&1Z*CE84goquX!-d)pog5fQyyY|NofRA}x%Ij2S9U?I>Pu;3)M;B5m#iiG%xsS~| z+h~%YTUY12?6eY#JIigRxxH<}M~qooim^~-S*w(;FmU|BCTiYnqmYXKN6hS^Z{S9D zrL_v~I$ydgJ?Kq?+wmtHcwH{-TbBB&aW63F4dbu3x=#6y1BA(%sK?HV8BV#e-=xh# zhLcD1N14(fnZ(UglW>}>olO?LL8$RYl1msQEwZD6L~V8hUp>#~%SQ=poE47X50EAG8*`+sS} zm^z%!BbBwfIg_?OgQ+1sm%~%|g#0)7S2^p;<9U_06k~2Vzn6N#FxeY?k;N~fL5cD0 zpx5wxO+|%nLc*BwkB^VqT4g6KHhCHTul?zw1gJQ)NdJ6^!>9DtukxmfDh65D+uy2A z_NI5iSC&*?oy(HB1i=!Cj}a8Pli$XoOwGFKzukt%V$v-CuRH(G-g86-PQ6!ngzWo$ zcMWgxGqWDd<{kcCmxMHzw5#UYR&1g4lkhbH&^60MC?|1ggo(~feTkC$pK5DY|I*!~ z3TreR`8v9>kzr|hnddMzR#RRUuCD&IoA?;h{%vE_WFa{b{(=y&)(bANMj! zvg_=sbY$mvs6H0pOwptPKoJmvK{ftuq#agPrl5lXlDJU&Ms5kjV-Ge~{dO8am0r%Q ztn8vFDk@ZLm+uIL_6}Q*eKsP*Ynhq(6gSMr$9FCbUU&RqAYuXA)9C9fDMwV}cqTWdLFqP%I2NqkrKEXi`16U%X737;3Lhjyu8AurU_48d)VjO;?mjHomb z{-awb{20y0zry0K#Fh~Ni7W^RtVOGvGz6l)1ZQ)?s0R;owD7VN?kb*+c^ z7J6n)gQ1(UAd5E|UGKe(E?w-*XE;sqn4gnu+pV-d*gD1Q7#!}As6SY7ENVXj0}GXHJAt3yo{7TkU~*?q@r-wat%@)0OETSM;7B zrX=sS-{Q~@5H|i~@J8YJQYfLHMyHSr>zOBWw7Uj_KC;RVw0(-FB!@8t`s%wwj z(_vvMz-oq)m}aIA`H^&tGyw-w?EOXVoI0ktKQe-S51P{`knV8t$OYxORzlh3Dp-Na zRR@UGW1*C$tEtv|bncQ8JPw(`fViT)l5A>5OPZO-?fWA>hIcfkZsOT_4nyhDpt0W9 z=da~_btkwm#4cc>G%z2TP8{b%F!K&tu>^`ZrI45F(xIi{ka26AS#rljY#Hy$laLdu z>8Z6oBqimpC;rKd;R28yoETCn=eFko?LcVtTA3vV&xJxDp6MC(yPVuSIoYEciWT%? z?~7&}CA1Z-Kn5XLy5GIec`sPvPV3q9R}0jOD4-}4=Lh=vrWk0+AQo7$NQV?xjev)i zmU=kn`B#!0^`XWVjMd#7;xPM%J8uyQz%8FA5uB1>bRK{cv);8Lynm zy#G6N|0l5`B=!}Ac*Y(q%}-^vy!xLm>3=qs-HVr|MF`yxn}M|Y&O0-PtWfHMm7o40=8R4(*PoAw+eEKxwGi~c=T6sLZxxmCyCEFZ|jBxDMW75=t zrVt;k0ZwdNHYB2j?wia@Rn=cX`L^ozoDtf#hk4xI!vE}37;PLwntqIS^sCo5?MS&0 z9&5x>kpFZ01Qp)J>p3u36kt!c1H#WQz@~=y6DdRj)5@pNlPOY%H7%BoZwpBbT+yf7 z9|W8pDk9k(wyh;lxc!MSo7f&H;s}`-U#wrahWXk2yv75zhyBuv7mb4@|L2Wl1L**T z7ROiKf5ngAsqN#*s|DJz56rv{S?`h?%`JZ?n8zDmgKtaMr902OFWIUSS&Qm`Nyt#D zEBBsq!EKQ3{gWj~tS#MfWM_(yBF%OrlUWkz z`#H~772pJtArlU0HSe#U0S+ywLIxK+-g^S6l$@q!>^WpLt^kPhU=Flaa|q=*{hHw9kcwg|o7ia(OG`@^1=bY;JUYlvnO&xI)zukEnM1ZYNDiDz z@^f3@Xhwr!LiGRJbtgD^>h7mo_|E{vXrzdAc+0JWXZ>#j$Pn+~T-e0_T zYRb!<>P*yR>9LH$H5xxT7)9g6tFl2;1Ru?Ee?J)~x0VR-M6o~9>&E)|%uL6^CoiEM%r0hn= zcbw~|7P&J*;FQjIC$9l=Pvu*`qA~lR%m!B^F-k80RQ?lz8(y<;A zvw@9FNHeUUdw|%v1*f+KS>w_*ZMZ-y;F>Rlx18*bS%Al$^BXB)LIE$!q|qTI1Wt3Z zem2CgjH4OXq@qy(XoX8SgwtAL?|%fwY4i0T-!s%qr&=!PT5wx3LQlpZ4yF2*Zo4&w_%kUV52HN*`LT;LtYbv0jI% zs5|pAbLaH*?CzXci_!VCemNGM>^}J*HQwEH-rIEkp0C&w{T{Z;e$fqAxmfq9fk}xS zUsBjQm>@+$dN`nMaI5k1BgKv4Ya}mp-vtnHe80>UOaJ_RAwDxb2Y$d22ItwfjGO+{ zC#7&mmAn3eJjt+$>H9(b??faTw`$V7(@2`~nE4Bv1u-`%!gTx4gGNn5$KRDauZCC} zIIS&hMwf9{!+&&i4P5*s6HI=Pnn|JNw^JQAD@j*f^P>eX7)R&k1GDJ4o)36j<>n;S z*EOmotomjjC>Vt}%C)L~ZpBORHKoAt%!yjuY`0u&T96f5;r3VbcB=XU-PRvX*02>y zJiN#lV@mPVD?#Mtu-RBaqHee!>l!wOm+Y$fxE)>lHLNZ#;giX4?cXMUb!)GSVuWXg zL^7>%-qMgonqNA3xAW#*>01uFK;^T;;|L#cg}%l3yOSa&P|ART%cT`G3OZ-21@xskdO}riAin#@=UhN)W;T(-IK>VP;j;ViyYw^J;SfgX ztNZ*;C9i&voGs%{d_-^-!f$XmOv(-u@%@l){DC-R$p3iu)Tm0|wKTwMyQDvKGm?I0 zu*P`gp!#q*xhTmSNYj6`G_-VSLcB5lcbfeS<3$+N!?c+lzQ;ds7z*@re&AGAw7wNu z!2s7nxki@cl$Iiy-Y6r5N~3>r=)d2oZoV1U@~xS(8r8xw0+vJW11(_@Al}|#Oewif zh711@OA>8jEIOCqDA+fOTBpv2_i;y}OD@dDFX+)k|7arCeb_;)CE98&C}DSti!8Es zf9ti-a;wx_Dv5+OS?K-zul}SIMgJqXmW_KXpOf#pff1ahcf0&Y`qA+8u6~L^NB6pN zOn{zjB(KtSq1mUAjIlwT)Np&Jbf)+vu<+vE;^-T(7TnURQ~zaeL?XQT5qi+ha%ggJ zQ;Cj6-(GQ;>F1qfzsdbaXWAK$T;yl*$R-W$-a6JVZsvGCt4}Wcoo1aDt@^31?x_Z~ zk#IlGoC3-RQd+e}?SL}lJo%_|xI_YoEVa*;JC|?~HCWHxgjJEPxjarEO`E!%Aa(3W%rV(PpUl%R5vL+~aZ&|7i7216 zJcn7Q^b+Hnh~lZeQ$sbPEwRy5n)zzCq{=UKHU{OhhHn34M@Q$0*j{p}vC=N}#gon& zu~^#XKXhhH5lp^R&?x3@Bbg6xb6=P)Q&;BXF3nJ;`f5RR#Ca76^|t< z)xX6kfioLDzEGoLp+a-HnDEo@+W?u?%=NSve8lt~e;{oWkEb+AGUI1&K7-o*oQQb+ zH4=2MY?Crw1gBUt+VD&1Q=}NzP)z$cq9E5mn|2fM)2U7TiJb55fBdVJritP$h z!VhT5^SM88udc2x52CDG6}yYPh#IGMcW@DXXHUMkaz;F#_+`Gt&2X zxEvO?wyy3YUO4Mvfps~cr+|6LJtlt(ZD$KW4l_qP|`iPI@UOAId}%K#L@-y8}Rn!XxY zMY}40`!9L3zSGs`?Y9onMhXvySs%!SC(d>Y?QE(Uk7L$Q*I^3BCkfiwGR;WXX0*?^ z=)}pL<^-6%l8uc`9RrJl7moO-Ykz;dna|w9b z$S>KmsXP$^4F6P{uqK<>8VI;`$2+Z-igk{ZAA7}t{#Z>^SNCo<^g9t0t&{1GFH^j| zM82r6*y94s#HM3D1BIU?^!$GOQk=r^--yCN_o7HL74aF(l3ipctw3_VxGB^xu_|A8 z7ZZ5q;2I;`gvDBJ&Qrsly#T)_xP8q;Z`*=)fWXnY3~V3#%C9kIawH}P`&kA`1hS2_ ztoPENm@*`fcU;`AxGLg}Sum9Tf83!cNG?720@L%>T5|i*CHN3e@ft5r(y~`KF4XRW@^%iK*i6ObwhbFuA zDuT(z>IOD(48dM}I8>|F{FIh4{;z$g%qje5_s8EQss5v@cF%e5+@fqgRnqTK8a$!F z-TtHT;K}Gq>^L(w(B^5>9&dWy6OMfBk9v=@WH z0V)54y8r)!Ba!nhVed}E@&B&4zZRe%KJaV)C>A#Censr}+oW$u+VBe3=+1c`xb5zXpRbQ; z!kO<(Vdkq)94~~E#B!JY-3dS9xrllB^Y=x7a1Qf0P&YGAFwkJS44D(FGm zkTy;Jihce4`4iV%LPHhvASTaZz)0#`C@7{sm3e1_2my$SA}1P%d7~;_P<0P@1_#M! z0;&==Ki@Lq`1r}-xfqwG zPSzEq{_MP>r@8JoYgq)dKeQgHRezG4oaZAc83}?(E);Z%FZn1wNxs`QQL4UOYE!>M zPuCjGEF|;|P?gf%Kp+pQ&YXPj9^6Lyw9xh=`h9+xBt{D;yC=>livY&Nzmt zv=$|L8@-rJYRXPzbR@2WG`$jO87Ydl-}cz69uZK&B89FIw3v2Hub{jfiHo<9LV(UR znDDXw`s{EZQ<`kU({%YJAo|7XV%#BYcTDj{g*`u#2UjaJbtvJs-t zs{Yqf(NDUX1T{$*cc^O(YLXUcw1XgacHdt~eK3y*q<6dWT>f=XW>&Ur-og1uBMjvw zGYF%@n6rV9g-~{s=U1HFuvbRp4{-rR$``V$iXpF|e?;x?iO_v(JZbQTEO7V3Q3wRV zruWDv+zg)kP4~{7vCNFJM1q7}Hw&(d|3rq(t5Y<2f?MPwY8EP?GQp=zT%wnjnrcEc zf6E`hi*w?5Jn`-$y{7H=W|RuI6WXgRL1D}6c6HK>e{nC~*>{OD_Y)tVZXb`i4$ZoQ zzSsHbizRM0G|7rbjMFKkxc^yM)B9cp>;B&@MBJDkmbIKsKAi2lSUq*(gZ{*{Qz$KyYEEdSib`2p85&i;agn2@dpUNM)1v<&3ZW z`EYZ>*X|F1juKi`jthMe;z@PG;r z{l6}=fqn#i`?Ce_%X=n zS#1D_S;&rg8bX~dunu+fN-g@ymX>;5m3{%kKBJ5-SZR7Y(DWB7Iyg8a+rzZ?;Qh9M z0;42R4A^~YC&9s>`M*MynfBO>{F-yyXQcKZ*Yy4}t7Q_Dir*@_zFvG#LO?({At6Cs zq8PZBs+<$Kja!KS3Vk3n=1kzVp!6Ke#uDmug+-js?WbO9YZv(w>@_w5A)#?QgJ%c- zAW2xh*pj4p1f61pk6jNA;4!oEaRMVlGCNde5hrntCVDQZ&LlrA#r&m;3KQ`DNQedD zQ{LV_a2eIxdv~nTMiYcROW=}xa&jnjkd%}REMfEf30!hK6VhPt;dA1ie`sPkz$r9= zTcOMH{IS=fX)?_Y{b)Hzu2IO9^M{lL7OW-*?_j9%j!ED zo4#7Bqx-DvnkPLlFSz^3AA@-L2l7B#FsCyQ)tJ2TlTQR81#;+-dJLxNQs53p>0V` zsG?`hNMWF+rf7Nj&sP5TPM>~57T?)k=+tHj;L)APF&IIITnF}pxzP=l zrtzbzKR6EYf%m;7#VQMNs(?f>{UfVGrfP$WFDb|=s_KgmY{tns6A*hB^@ILgrQrH@ zA6)Wt$y-wuGBW-1vS)5C@~*6ae$K9k-$S0D+Qmy^|r$6eL5N2QRUpGe084OU+B&1QlG(E$Lr(ZuB}Y5uc>N6^O~?s{M2-tm zi)Uy-m|tsC;MaJcOt_g;WUs8r9!TNUSHH>NjhikfT0k;xv?5s}lW3kXUNxBfHmHdg zpn9e^SuNGxZrM!OO2BCyv7F%VyP>Tu@+(U{5%(~uaBR!OQ)&9G#Ch)sb95ffs;pc{ z9&c}LWdVTs-b-Ne4r;wT2pE2%roI$ZSeBt06cjXgG!<9oE%Oq3mDIrUrLHa`D1lq0 z+_kdiO}2?~IY6#7ICrncWlq7is0&t5paYnGgPtoON}cCvz$uRlBd>;lI)+V#B_)H} zvC6i?{_r*#nH)%&4l}5!KtUr>oPQrR;_SL73rvkYz*9_Z9S>K>zbPCZ9;%)7_3>C( zTB@D^>PFVruS(#Q=CLy~F9*9z$0GBAIqKNZsuBXkRbI(HmTvW!!M=gaGCxm{O5U*n z=6wbWYjNI7BL-VHhyw=gK+pb)vnVhvqxM2KjRLZ+&|Ajse*Lw;o%z!4vv=lEz{F4&FbKyFxzj4Gu?NE?hi% z0jwDKBx$ zG=a6|m(bU6IYvrH3KPGN=O!w6!@o`BCd%{`Sx?TdZL84c^d~%ZDyxA2Gt>d9af6hp@{2;1(QDG}B78(*LADkoXnm-n1E(?sWEx zEuQ~P&vv4Kucla-3}SxSZw7h(U@@y>$cc3R8Z&8^rDbKiiRSTS!(>+M`YG|A?m?D| zxZ7UcS!9@t_xR`MwT#~uCc_bI2UiZMjhUvE-g{PAA)|ENYZkCSv(&e`W%S~%%9UB% zXV3p!vEo{lJPMa~UydJqIe9&Ptoe{7VdLpK9dT;pK0SK*Q4alaAWZM^Zq?n8W7Z#R7jc>hrSB0G-bbqzB%CcO4= zyjDEVS;J*KSm;Tq@zTtzY~M-ozwncIKFhC}Ux`cak?8Q7wBKs$?7Xv2 zb8^KU?{X}g$jbjFlwNcxr4~L=6gRw&&2o^-fzOyxTspEZBN@kwQmIH(6b6vOj zI9KKsxx=T#gQu9b^oZu7t4uyJ?Iqsnet@+-}v zu<7aX(xX z+fgb-;$pzpNiH~cb=bss5pH+5L&^NSF7)Z}x3Plo?mj=XH*I@UmXSAnWU@#SQ9W|7 zoUDwXw!3i1R|o4(3iQY>^8=0o4)~*43SRK*9u4X~rrq(@PGz3YFC=Hn89$#gS^#5Q zTs(9Gpw1OHK+mIZsZR^$+1y_T`>I_Q=25Jxbp#|tT9;}U)X3MnB+v&526 z@m)|Bam{Zcg=RwWbqITkYUVBD9IHc0^j+Ul1}i=iT8*B?@wtxqc;GWxqich}Ch}PH zt-0HI*3|Diq|cc^WV?eoZKK^C&Dw7S)GWk%@}!D51e*-9CeHn;qBe>uG2Zk#7*sBz zl6_fl_O^u!5wde?AkB;EkggF;08_eBj#46GvXk|jS8B$Fi%HArAcCV9!<9Aj44M_V z*AOKO{^=#kRrsCvD@W9;JexmbaweZDQEl-IVL3l*vXO}5owe;1(N-70>gC#5-^}^g zRI7bePBcVwo^|5k9v^%Fng1Dm#O~_)@%rAo0yyn(BONI_>aqw0QpaDO;*$=ErhWLz z7rvRDtd@lUF5M-`*E-GY% zg*eJIHZ3W6DNuXe3$ufF`msZ^$_u*LK7yU1T{C*I?q%__i3n2X7~_~Zv4oi!6oCk} zm}SS#$u1{{hj(+LeH6T|{Otv>Opd0Xv1I(5+|={v6aUR{&@*bOnYde6zXJlYC5UIq zo}X5WTy0Kn7D2YN2C*AldQ_W(B0fSj&f7liL1ltwTW zC7vC>%1iQ0XgwCXBZ<(4*dpE|Co|jNz9T+WW8}Cy*|f+Qi8GsItFf2tF>{44HTu}J zLw&I^XM$|0qKEj@D;OT?qPfdh19+jBW317U3c= zx7k8t+Ahk|Q~?(?#^&b%$g=7@6O0VqS3yBr#R@!hz2$h+&S|g4E=6ZX27+Ax^#s_j+(SfBcO8p}1 z?mDNZJ-jbMe7?$gKx((V2Wfx3=2_$jKy@*#@piwgJl|*kK$*2D}AFwcYz$d za~_di+O?&nA2)Hlg7+&@2J)#rPguKIk|qqsDf^!D>~i2ENcq-d?{E~E%i6=p$%)Oh z@x7{SMV&F@<>6|(scN9s*#6$^X6vdx#sQ-<%O#vLBEELh-vIj z*BveAw90C*NER9s=fEOs{TDwB0yyrNE8NdNJ2_pS>+Dy)Gw{`~LD%Ag#ORYq3z2+1 zwDDLMw+uV)>^No9yr$+P+vLf2I;#oWlhw)dex_|kvViO7u$}7RFDGJK!@<&fq7O*Uj-Dmz4G=}Eiq;JdjPt9wax3o+dNWbWd`lo`+d-}WGJKFHGK*Frn*ya*6HT2B8YpP_nYNAzK(~rx;?HRC0@~|w6W=Zd-=%YAfM+0i>})@x*Mur$tt;9u zc1@3-f1LlLo6aFo%R+i5b3EK{_saJdzm!D*CH2;?HC3{c|B7KHTQF4d4j2+S!PSEn0Vo8B~V4S9LzxObb6*U1x+_BrhFp94WHUJ~(q* z)apmYw!M&{wThzQgepRC4v54xGu8#L5)?9Nss4Jt)lN!woD!f~YfgD9K6~fLjq+cO zV)5rw(>_*FEvGSzc&djU)`>%#`17|~|B<;5 zL+~3^Hog;ded>m|_fbLuVTYy3?P|rlL*sDz1;*IO<{SrjqI+JJ`UR;LwEFe<`osRDp=_+$Q-tCi28D zJy$@)=AEk-KUK!B{%%<0GXmmbdlS>I9o;tYmiq1WLr(7}6Sjn{K4%NOm)8rMu*wOu zR%R4N)6UIj4en*XTz!sXx79wmSrq15ma-M|ZU#g4KMuqjIh>t#o8e^%>~H3Vr!oex zYqPN=7mquWkeQY|Ljt9mJn`ClWRj;s%BG5Nr^Crh_>NO2BY9!PM- zHR$7PX6+Tk*nZ;GOfh%S>8@N7>7pQRY`%VBmcH-HL6d%Y2L+|UA|Xz5;0JCrplQ`HndoGx2E^46@Yq}0=RjWoPKp(=4uve$Y$_2lg>3aKBEkP_V} zw}bHd7IoU{=0P$Qav%4Oy5?6N@4Z%5V%u_Aii-W!xP)hl?>Y3!Od4fW&p6UWJ3bc) zyiKteDL_GR+1=T>k~>;jsVY!&@;XUKpl_O&-xmJ(J7vggd!o@xglhd?l_FQ__w9YB zg>OK)3hu6Dr)sgrdLMdkZ4yjchdLqPt5BgPiUGvIphCeW5dkZGJy@V($BV(cb?J0G z9{BJ}xYdcz_j_j^<}bp7SG=9+PJ3KmU2tg2?uzP=aP;L1nn8cz`qUDn5qtDpYuq%X z?G=;V;2hoOaIeMWO5L;BFAIjYRfz9r^JBDJ+1ALIBHg10WyQvU}A{;a=90FU-%xU6&3V+O@+gHgV6Y+i^~*1m>=75zu&~_nP_CAHB%9%uqBd zpGkbML#3oDc(iI8c@(-y%2xdL0(SajA!W_Va&tzSX8*{qyS0tE2=Z;7A#u>nyOA-x z&UjM9<6EzoCItG0JvGgi@Rdbs36|ufr&&>CZbmtUHMM5vlKXcy`oN*Y&GwF1B~2}Z z>C0jF#SdGheyOGkwlHtEcYC+86$m#$Tb|_emwmj#leBMy{ZPlfOjnzMRW>c@1M|Ag zj*Qqe4r6j>CB>wvHyb}*3xk|5&bMzpJ4Ps;Hq-x!tL%DTy7wV;Ydp%`VLx*Fmjc8) zais8;R*Qgz1Dx76>{QI^0F3h3(~IyCk6>>};evea{#XE?+-u_s_z%KyblI1n(@z8Q z&~NJQV!vq>8BUGrR%eZ-?ZHn?<4+@Vj_=t@M2d^YaBEf!udD}p?ujUWcCFhk93rT( z`x=i)NPksd@x4#=@|LQQ+G_}zSq^=Mx)n@rfMsmC<-s@)Z zGpuu}S_i{%GFP}q;38m>ko>&&lGJSUgQx;Y0S`@bmqzd1Pur_XEEK3>$J@0xY|=4j zMj^%vDck&>oHM8I+}}c1i3H>%UwlIo5ejH}lpK+Z1eJDjG|+o`Cug z!5!m8rDCbWWo)Ao3Fg>=Gk_klzGNbeo$c%QBsrQ2*!*{60l z`^x5V{4I-4;|c^hN5^qQf3PBbrnC(N$(S{iV}@tuA2;js?~pEX~lZKHEjpo9hl zXBsb6Io|aGqJ@pwJ)7HKN+tV6b5R_ec3{cP0LNex3}n)`x=KhJAEro681n}>r!T>< zF;jMBH|JYN{l@%7zc)_1*-9PJ%6cy8$Mdm8?QoR*T=K$G=AXT&4Uzw%fS5uYGWH;f z!U!nEtzxO`FLhpp*+tnrAA zW0nbUWc+4)Im7aZ!j_1R{kPp!20U@}f3$KH$u~&-db}a#;R@NXqdXOCyy5@$b=fS( zP|j=Jey)P@nQ1rrDclULvJnH%x7?zHGV^zgOzlJ;!dhNrxLqfbi$0lWud&iA&fvU` zxz6z*kh+AhD)OtqRe^m`Bu2h*vtn4%KUs5Fmzv`HJ4>%rK|{Cx&pO(t!+cko#sgb8 z>8h{b<}LF0-KEA2D=oeAU1`LeQt33K$kp4m;>rLy^~JE+Nc#atPtVr1W#V|We$x%i zgm*_`Sf#W%#a#ibEWfVp`YJ!21L8BPN)&4QsEugYmanc&!o?=na#|vreA8&E!%|6Lfu}o5Vbkx!li!y# zPb_ZePG+nS^#$_>8r9ql9QZQ5D8QDpzZ+VW$j>vFl0GHhZ#Sz~&SiK%jF?4OqQtwg zlT!7{dN;CzHHO(S??Tw;mdLh1S!cyMYdo1aqqWPD)x%lTt#%;PchM&qOOS>_g0r74 z9gzr#6!%u)-AoQ>2tD`2nms4NZyF)ve&gQy2znK@9wq{EWQ5jyT`q?fbVsx%Dm^Ey z*BSrs83p=9Oc4pCo-FD+ekb~SdUiVOJOMO$ZYa7iZlZ}3O5;1y?}uHxaiLtr^qAqj z#hK(y-_3i~Ls&|0r@XrPP}gucEZn)J#uhJ_w!yCdj&=0Md456Sy`tzi8mnFdrgqwr z29=w-8sC)~>8~&<+Fn=M2z1>>yLTH6#Rci+)Kp$EPc&gWkWYWtua!xm6!u<@<$CNEuUTnf`o^5OF@ z57%|8d`lkI{+_U^{u!QVCi_!&V%9?WLFH)3HN9d{LP`yf^v3U-jphVWW0nKY=JWFl za3Qx3=JJkIL%1nKj7nHNM$6IL7bvs?Sno@)Eq)|h6vDh4bfQ`oC&T+usa_l9UOm%K z(}XYa8bv6eq!XJUT-_PjVoqs8b0-YyXD`Cb*t72xY zInjS;nz2AEsvjmMPmUnH;W{>PVzWIR9m|;{{GGABmk>_qt z%m=~n+LDqs>VCVah@&Z$moJ$WVx=bnu6z1+7v<$OQ&;eG)K7`*)&r;S!~lQ^ws^!F zaS8)tafSJ=Q0mDW-WPH24l<8_2qt?fLgK~w@Zo1EVmW`^IxTO$XUxhYV#8N2T@k58 z8O(Qn@lz-UCT5>6lZ@AW;;kmR9Jl4L{b}uIB)Jpb+IKTi7svU|O3r)|7>PL5ojZj` z)9DKt_8@km!)@;X`hWOA$}dE*ocl@ty?@ z)Y>{(DBU!{eZ=FJV8r4PXd_}CD;ber`_NgV@jA*-6KL!4=nAqc@=9ONcO@EWESf%L z`3c1nskMVH59CT6kB*HY-;!c&?u$5OVx6(`-cH*A<9Go8w~tCevqoibK4dNA!eZ%p zWrLF!g9hTZ;<%0Aly1agHa9Tzyrvkv+m!FAfOtNCo>)+S?_qHR3E=u0_Rf6p?N3vt zt7#8snaEvuUNTq%1GL?q@d3!GJF5YMS5+7xM-EDZ_<+PH`6?M=;HDaRAKbg>Je$h{}C& zadC;_L^02=y^QgG%ec^2XsdQQYhevx5n-gKk+4aM1*GJrvOvo^YM#XX`Uk<~=QZ0) zrawe1KMxf-$JdrK{p`|Y=`8}zD+(s4;bC)Z7%WjF#D+Nc@QUBbXu>FW4-&iU{RB9b z_9Jz5p)MvSb16X0ox+F#Kt4u=jt@QF+iT$D*lI`jdOgi`89Cfin27ei0!)MNl?S>$ z6-b047i(WhrrOe0ygnga3E){`sxNIL9+svR#7=`06mDaq& zSgK=7RWBrSuNi5INwf%S4vFzL>*_U`r)KXGk|~{?-**fn>@OmsQ9c0b{-VJ_W{HJY z<*(LJT#%;yAAAdMZ%8G^y2hVYjdY?+6Wy2UnH7*6nP3gHdQLhnrE_MN?_F8fw(yZTi;9Ucm>3)8 zntH#tKP_fAdpGc_bG1dIn^El8na zE*UT#PaT;3#1&d}-8ng!Zyo3>eRF_Sgis9^2E+ZnnbHqqgV9A?l~3#l@4HMkuO0hA zcn*{^MTcOM%y@Abj`q*3=))y87t@+Bl zb*eG$H|wX%GhQw|nM#OQJo26lNKAQ)zErkC3Qr%#j1s#P8*x-m)OJwf?)Tn`e&AA$ zfSU$SRcl@i!wDY}d+pWhOexYyceqEetL0F9|AGfm`p_UFNl8n3s%MwQ>z+Jq24`#z zQ==v$UzlWk^>GH8G*_yr*LE+_b*uhBQD!80DO{}N%|~dUk~V|AO!f$t#=HN#HE4+x z3Gh3`{EQW7S1NPlyCFH|KTQcImPwM@z>tWqy%qHtd&EUh$tKmzwO{>ti~ei5;w#(RMacl*F_Nz-N(M#<~MYmS@$A8&6R)pY;={~I7G z3L;8KsUWD7w6utnlnR2x7)UcxU`P!S5or*~k&7aM*6)i@x2mlb%5aj6umYKy>v(E<{4`9QEXMGZ zI>A^kZTY41UCGF&%{-ro@+Gdk@Lsw+w(#TzvsfSE6XChD#HOA#%r*yPq@czuDN{Pi z(>udv{1vsdP2#v)q9GtW>3TaefmNKb&|DCSHGA3Ko4D?Rk3uPZ&H{rKl0I2jrNPusCVO3g z#7|Y4(u(AlScY>#53(iP;;IgX%JzCW+Z1cc$7!MWEA^M&hxDH>h@W4XJQUyWa*GWH z$}zH`T=OsM`a_h(SV)hyp4u|0At4bINi3K&;d*c1q2um>?<)_hP>+P}=~ypSv_wk| zIe^|#MjG-({ZD)PryQW)qEPPcaWT%(%QQ1zx!fbeO{bBzQ%)8{T9*Q>MCK~GI^Ah! zgx6p6^N^DC7M38UZ+urRh{vIJ#ZCP+?wR1{1Bm9-YpS8>UTQ1hr=Zq+)w%H21iOzz z*wJ$F!Rr01F3McO+iTV9=k#+;3Y(Ih(Ms1b(mrBNJZGtzmn_HCbo~ooRD${vr|huE zB0Z@bZ+5*Lc>ocbZ=KkatAnrDhlJ(nj+OB0YscBVaD#BJ!EfJ$Cc1E*oIi#)eMyG4 zU4tF>pnCM!`o(O~Xovkcr_H?0srs&wMC(97r%2Y<-c@ezxd!W>oMHZ8l_*F;DHAVE zY}X52Lv&O(m-JX46zr2QYGFxgrf`q8;!GT;&OW0WHCu_wdO8cXLCq;t3JH6Vghd4y z+mG8cugt5@hsHFGKyb-w;$UUXN_(T(_D4tKdPt4vp5NF` zgvdH7=QO@{{?^~Yf+3y-fFJUh9z`bfo$yFIV@^n*Iqa`%2-@6a1Fuqy+K2U#` z^N>_?N@wKrDgp5qY(7uLw?ewaQc4WT{RhxG5;t+--CFstF(1BP7lRLTMTPR&Es(9% z*T?K{ZO8O|cUUd%fg14h`sHTwg3?c8SqV>o33@5O9r@iHqaZelF7q&+>7% zG~kTA=zy5M7GIe0y~B?K=wSMMi#bStx@nk_R^(>b$u^70o#Rg`?^yM z!hvytF~vMWvaHyAs6a*EavwSe((z#^73xwh*o#`i5q`ssCM(zMVc*1!8`LYQ-+NuV z26L{)GPQ%_){;nXdNZ+3Rx9x5WP<8Z?sJZ+L$u___XFQZCn_4Nt+r?TfT4>!OJdT+ z5_iaq{G?gnkr^NVBGyeW)NxOp^M}KXz`4QM5KbNzxXZ#Yz7VjI*y}Z5ViYje0X~y)F97pds9LRq3H?LQ8Cf?OqeQ8lfnRXPHWkDZR3{k1Kj@ z8!!um0w?|ZRJGrdGmY5>V7Ve~b;mH=@C0bR5E+^Qf30-gmsqa5#APnZcQycQI}J@( zhiGW`8~aIkwNZ-wxKXq?0bf23!+qZ=({~@5SgnKsPsb^! z1)HrTrN6b{I+fOND!|s>)dHmu8_cm3iBl@MU(!BmPcwTUUfN2#A*!-gwjyvkd|`gR zU7%+Bv@_-~&<$%LxHg=K;dq8QQ@8PBcsx2B3MvdyiFAnp+$aImiAC<_Lry=(i>Gw_ z-{>QTa=zYXiG3aIvXRlH$#|DyYU=E(vwj@IXq;zewUL|n=66wk`h)tz)B2C(Ov}a% zPk2(TDT-mc;B$|RD4ELu4E*=jHnm@hlxp=5+ zUMT%MQUBn}e1#3PQr0cId7_QYKuPSuq`TKQP%Pr8ueVn0rqtWLLw}|@q_dNwKt%{$ zt6EB0ZH`*Is`t+K@17I0Q$Yy#T5ckG*O z%n>iwi2^zFA4QtMJ`eGy*|+pprS7PCbqUGm*ezSK#bI@ z6{{Z{0zVF&`24^fU!j`kJZ7J-SbGB8nA*e&*q$K+=f$WW znVALXQiq8*3B-OV0bhn{Co~Iyppx`h=2_<1QwKnpvrQ)NWs%6lv)IfYTIVPi=G;7b z^kt|wGt?Un$pW$X?WcH(hPlTe)+W*`6C;yBrjxcV_bplnci9zqH>duPd8Wfb-(&h= z*Oh65NN>iqVR%md*weirkltMyX=tNS`5jc1>vh&;`XjkNR}by;J(u9hombv$FL>)k zYU?XpzINDn;5UnTNW&cB92)2!L#BH;poj=s#NLgMAqDM+bDD|E7bi=5vTj;_vO?gm z?T@cIM1?l6Z)X1}Q&JM%X5T#YMYT*G?Qm{cR@|kbhGS!FJB4RIE4vIIRUc*kfT5ZL z6_LelbI?5>ZIB_hwe=}e8$2qaY(6~gQ6J+VcD+mVN4}$grth}r(`{dMH#H?88>xGuAhtlacI#01ia_kPDf!+?Mp zeuhx4gvru@9!5f&vfeP+F^LyB$_-qa-!8JmG2Y>%Bvqf_-3@MFcqijw_TX(C)4jao zVV%4-kMv)|y6&!TYq8WCo5`pc4w%lJP&CcmBwck6$9o@{S*q-Vql-6n1(#p!25*pG zec+{mCyC^@SdM3!Ks3j2H)808=7$;4!tp8X%Y3MIw7{gET5D=+q;aef{DDGnI8=vy zcl<|?YbmxTQ2Y8q+z_cAUd9I1D{D28ySk#54*3Y|xRpTDh??Wh zNH~V%tCrP%!U(#^`nopa?+-gHe3qBDczDKf(q^z*odrWDNY$(wMQ8OoZq1A1bwxD1 z&1Qy*E73=0%C)J*e^&@>jk1YWRqgCSD~VKiqMC@oXu}^(wcs8ASAtC5)AZ)w6IAZ5 z?`rR)a*`dcqI-Kr?kJ0FWL*jWG-6I`+Y#)MZ;S1bX%VQg$#%86B9c?OnYlyN-i4SC z*>oqKfT18|n^*RC91v`7_!aS4{JL|X%b`BQCkp)w_}xV1*0P0ad5)^tnH?e8-IWj= zPI`YqGO+c6ekFcixds+^r)isr6T;@UHzR7~fMMJmKxxkrzx|~+N*;7#g7q;q{Ygx5 zRZC@N7&q5B+M+SGcwV=^^dpBU&s`9bOw7rti)>CwF*>l8t%$Fx8mC%{r2GR1YW?)>n2tFdj1O z%-_v}St8k84a_pUyiTAapXOSWz}HwO9gTyV7@9Ey4oe zRpQYm)U~DSA#vrsM-aQ7tFIOyq{B>zDr;<3d9R1`kAyC{3?7 zqwY(Sh*-zE%INCoNK8e4HwH}4Dx!@n%_3=fXN>6qrJo8I8M{mpA`tW-pFopt=Ha`A zKF`)=qfWtw&WlZMon($(1!~GJGj4wPkCC=maHb1kn%9m|iT~^jpOL!Wl%~1hM;UT! zsD2@gLZozvA;{j|6XRQ1^kzo1bXW93^Ig~QsT(2fi#-$c+@x_3=|D?;^DXM<<7W~_ zH5r6=Jr4NEp~`_^1T-#>=V6GB{w0_xoTlWXKn8BOjA6{d!C@raA7<*Qckgv~>i*C` z8OxH+Ojx=@j#pPqf|98N)m>+Qz1)GZ%ySn!E?%sD1y8-Y4aQFez=*YbjLy35g^huV zd4Y-0l;ok^+_vz*Fe8;t5)a;C`}-6R-#FxBT;}|6-?-;zZtaNS!JJ$C=|jwz5Wy-7 zA?K4P1Q;jUGmM2pO6o{HfLWQ~bGNiGx8oG~fP!K@FJ))zrqbMfx~`3RLV@roM8+r! z2p}CYOX;(U>LaX{W0{L51V^@;_0%&7O~>P*+W2eBW%4z{2z0>|p?$-xYW|fiNg5k= z3Nx$bmp33a@oqr6NhCUauu_^=D3V$l356;0$k%@ymz!nL4+xx*29;PMpE7 zU$dXP;B}&@hGPTBo1-~ghb#j|;OrDpA8bi>UD)?+Y%MG{ZAqXt^YrApH&QD|ceV>` z4*0sFPj8VZ-qW%3M;5It{nx#AtA8LFIckxh*iK-?j?w=-}0O)xst?+dYzx$rUs@`2h8af=|x9ETyu8 zO=xAMWL>RlF+ap$t@4gHi%wZ$b+I~gmuxt;Ljpz=%4(llw8B5^5CV3=f5xFWDXUVQ zok&jkDvb|Y^$afZx#U-Sjg&;|NYtsq7)sZ7x$T$NTwHgyhR*xl5lp1{I4Hta@jR)UWeD%zoQ56 zYr|b;;L?ksLCQ}{amLWR2v7x?|g*5QjD0?016(rN%mS zUb941?VNWU67Hh4*}L$^SFVdWtNMJX-8Yjz077sf@?UpC$Jy^O8T#+TPX3yLuHCyd z+_$cZZzR?E`1$Zm*`BS{Wh%K4GR&*Sjk^2%d-{}dK?;|4VuPzy_?AA<3A`7Q>>cl8 zy%5X*~`kEp-c~lv@`pph_4RmYo6<>>|m&& zEyGE0pFMcjglPZq?ACGJ{kWlx!DaU`=-(d!+a1ixZQL^ToN`Q5I)Fp+yYtB zeROL89;}|XEra#F?_ke49hzSyqII(vV345 zD8LFcwB{3g;W17f^}^vy?K!BfE|R0DcsA)To$6s6;z^C+^q@x>U~s;4#nD&M#k0AZ z`ctMh(OOm?bdwyK+K1m-8zA_$KaDLRb3hW(gd^N7H}bYZ3s7`>n`EX1^XGzYRu|qR z)o)ai^Rf3qLB|Xu*@PL?p-xZ2a$W`G+U{OGDg-oxNmuY&q5uc2qv`76f{+bFp_$t) zEA4IHL0)Zl4sp0*tU)~s#pa4LtQ@()4%*DHwXaJT76!FEmN({I(^{{o26t|8ifGPr zMsRS7LzyhHAv3{P8*lyISvh^9CsJpOIwK@JmPFs@GYGLtw z9ZbH5M=f6)Kot~7g4wI*;`edG$4FgAC<2k-$e=E}jmk<3dw(VdVryIQDRc?*{mFGJ z_1J67w5}NVT8sTP&Bu=)CxHRdizPWE7_;Zc1F7{nkGAVi`>cM2ry;Dz@(nZlNHGuR zAx2TEs;Z9xO?}>Qj7G64Qx#ucUe3gcda&)07zpXyp;Ll4Ha053i}>u{mZzS39scQ) znGSyronRR_HCN0Nac$CxZsw;oydc#5*w%Iz-CnIuVmN&nD*S-XS~Tk}8yi0^S@I%< zeP<)dYGt9SF;OB3_MN=TTqP?d#;#s3Qg5LT{XDeXlEf3BK~vpa%Tsf6TMEfaEORnp zPsrZT;iwhkq3|{9g0H1L<6tJqHVN8iZ|mynQ2-^T#z(pwPqh!Prkrc*89*hh0%_V& z?R@+-yMlJAb9CR>5jY|Sv3>BCW4T;*b=NVqYYpSc4%r4BqBs5Df<_;PUmCLd6 zHhC4$Oz%V_L{ErZ(1#u=@CcXd5N*5n;UT(3HYC(aykT<$FrSneeclKF%i$+<($80W zng-SwXS+CKG#Pz*CZQ4nrZ{Mn8ujgyUBz2YPe;i~opgtas3GMG&O|XQd z8u)!!%AvD=)vm1Wzj$`a8-BR{;mvoW%MrE52O!{xKKH3`SW3Lk%H>OoiFhL-&zCnZ zk-~B~{aO>@{TobvAuycb#^-%!UgLY8#I_DKM{@6|=ae7Ta~lT;-q9VsQnvOUDraVv zQMo?WXV^M@+Hn7y{M>=~enCeppJb=-0&jXY>|@0mK2RGAnqt8&kc5t-h40})y85c+ zfKQtc$oE(b2D3~zCmiC8CTc{Lxw(6HO~j}L|2nNdhBn_IPsprT^8dp{eUOY#PmrAN zh~a+eard)Ep}~9q>~x9A0eY4@*gps8-MJV~FfIde9VS*DNfI5W?)cZ8h-R%hOi7Jl z?dmcs$0rS*RC!I!4BB$@VDqj!pCA>Fv!2>d-P|IS?!Tkb!L`wsN^*_|C-fVY{HF^A zyBa2{F;sK4s=p>lYjxz}3kuW&?!Q_~OLA@NSBP|&QeC=GHraRoE*aOQKbvwA0Ks%!HGczZd^U=mUmw#Q^(i&DF5!%5N_3-Hq>a zs4B%21-g;Enx4qA=_nN@cD`Gq-hatx>OLfw4Iamx~(?~XvJCuIkm3{p1NOF;Yj)Cm*dCo zZtXTqBZ1H>`xN%P9c6`!QizQl@FTqFKcyJ`g$ z*gm@b6;je2^Us6ol9B-ulIzY0WpwL{iXD3}m-`HF`|1?{gz9W(-bMky`O5(mFtdNM zM>geALU^?*%#LKlS*;K-Eh-VkD?ty(v<&<~MCuaV{oF1;n5DrYDk_@c28=5pD#hbM z!=KAOeG10rM@R2!@moFrNii9UMsQZ``Se-!rLgx-OyuAe7APM-Hw;}?S5aXtD|5_% z8XLZFLN$?NF2|6~Aw zk$Zq-0Sth&({-o)hfm~}n3DtYiI1Nu8VreiZDWYd5E&< z6lgE3gQ))d zpsDO z$M?)5CV&rk#CA2s`DMvrPEo5oOHO5Bi=lH~w;b3h7L(&ze};}|_?E5HX7`_nXz(3VopYB^jv35> ztY3f~6w?BEf~R<2A0Gf$mfOw*fvL~t;{jA+q9hQG1B55b(Za^15}O&LKM7Ca&(9tc zo}OrHfBu8;G??u?K6eY?Km^wBt~|#R1Kq~5GL7xboSab5zc+xYs)B58Zh{ckasp#? zY?BsTg&o#DJ~2*RhN@}au(ubg0OqVdN3{wCSStXY^yDW^iO(5{-QG^$r2sl;p#5@L z9Ris#0L$BG_-fkj_U>-`yy6ImP@!(FiG5bh0oqHL3+YF|e*Lt#e7wA}Ko)ZubTTrr zfH(T7y?GyBY~C4W{le{jY#emTK>fJ}J5W6`E1iNod6I-nhz8c{7~~|+x-0|YM<**e zx%7C1=`;1A>!4vTDm=aUhJ-8J8$}mS0>}XQF!kzqyy@E=A9&`uQAa(!;CVx=WZVFG zMyd_AC>TWHRQRLsE(7h-klnbpmX?4tJ_;(}00$NZjOyFl1~Pp`0h;fG*(ti7V@}n`&bQ^E z=@p=hK%p!k$zTHH9{i;RR`8mDy(lbFJ`zs9C|6<$--U(R0NF}o)BVA*XZ~ETda)PW z_3~MhcIif4$r~>==^h#?%E#T7dnqIf`k8avc^EeQi>3i=(53(d1;j;eP~rj%r&u3> z1?ycH-`l(b=4!-6d@Z2T6ajt(cIul+_j`!jE+ zJ)88d+=+;d==Ht0$jEf*uYG;2)YLeSyCR>I6cvly@&xq1oc;PpbM*Q_cGU&a6M7%y zl!xj)$pmge>8?wB1AbfCI`C?#M@8mQgTB|Mb?B|-(0NL#mk`j5({ON_(tzcIq6)mh;Sj9x*+Jg;9St5Ny%h`fKn_e>CyOhr+Q~K zd}`*JX@RL)V8ft&!@^_OqnZc@y#GmI^{*g9mX3=F%;XfkEuUr{j@Vc-dbiU1wc2T+ zqAOf2sc`@$)iyF7xVN`=7(}mLLs2tP*2nV^_?vYX+^sJhWljsQa4~pkSEyQzr8IbZ zp&ndOsCsfc`w%Ekv8nOg+Nr2WRDQTx#cgi}A}S%ftWPgY^xgPIUwUy7I7I2YrFOIg zVY9sB=JQg&P|51LoIT#_MOBZnTZuX?mR`E^eQ7=z&>})Ccl@PX@tPvy(3-H1Zyoo$ z9lys$+CGXUe-ya!6mhBlq)X#)SI7H~Ao?w>j%LO<-JrLE6*en8TRNqjI=qt;?QZ|D zy~pNP`8cK;SMk=Z{N0kZl7o_F;Zv@Rn}k*4dgqF^&(pUWM<&|waH}whq7Sd({KWPN z0;f7#Ua|+ra)c;tg@?u7)llhWV)r;RK&CsF%@lO+B-L}P3Jx|F_CTuE%Or0EFq8zx zu+|Y!G1OBnisO=gURrmZu8EL0)VI=>$0b{&&!;@CBf z{C*kck1Ro4cND)9anX1(8Ge4D<}Wo6Z7KJA`RpHsHg}s_z(JHw8yWm|++DH{l|G2K z(LXA7zv=&*!}Ir52f_~83pJ!yZWjD~s{ii?_u$7w7za#?eG@1QupLuc-GCNOVNp>! z0>}eDQ&&gfJRd@UVr34Xt_zBLT@Hjmp>a;IP`#n!@by?z z2PEywl*<p^9Uqz0eiY4ha(1JVNq3BSeUk3TwMIv-adPIsIQN) zvGEqL;|>78gk`;bn_Gq?iihZGdRE%UfB=$4nWVhDp4`3_h_Otn>Zgj4xdqA$y)QlC zg8&x;9GBX9c6z#P{%IA4ijNwof=cfmEP69L`2XiT@x(_P+^!i6XA$8Y_`0&q}_XE;wB(#L6{ z#R2a&7K5AgMZE!gA`5e60P(W>DKtzzwFeUQKtOWA^c3CFAlmhr>g*t=prCNk^=u>x zjFBLNbrc`oSe!o(s51M*`^!wr`Jf1)3;^s)OWXNif6N5*8lh20I)Jl{!Nj+3ZiN6s zUU^yZU^Y-29_U}hYdQ$v_)08ymMQ>WHuYP)9Dw%ppe^y!y}Oz(?2gBDkKryl34zBE zY4rJV4APcYU>#_E0o67@t?qU^?#I+6nL*k%tPE+pJ^>LbY|O7Zca)2BXj59?x25ni z?4ja3WjcA(`2%6)U~q@qux)l+oXAx^7%)HNd>jLxX94j(StFyAq-3dy3cg`+DQ@l# z;WBRSGs0h?ciuV|;R_){e?`e7B3{Mrgg>uIW#Qv@#QjT0uD30 zvf?#KO&#!x9|4T%(DSesuS|5xFu$*pK%xJKym}*}2>zG7Npew%(Kgwf+131~#EmsY z=gcR*FBnj!J2=ruXu8hP$|;9stXo3|lh{Ir5-@(@1_sL(1UsvRSk>n>*Tvo;6=?F7 z@^B=1q!j(aafnu4)92g1=a~8U6bCpZF66-9VDIB6x_6b}X%2FWMs8K|+l6GxRXnDI zG}%x|4I`(~Ecu!@bZw)p%`;vi0Qa)I-8lxtYGhe)x{GZuBsBI%$`1I(d|j@KOE%m$ zjL7dF{)YQtNuL2#c$PiU)9Z8p5F@hPnM5>mp=g4-25VP^zA4r(qfXf9eB8NiSnrbGT%fM9{r)z=RpFAJ2xReC%I~6njW>{P zx{r7XcqFmC^K-3Tg5BfFk=(a#4@$&+xAnJxciDRdAh{M=J}i0YMK=yh`LWEi7LyiR zlI>FSq+Ikt{<}aSt6O>Q*z>Oz8dfqI{iGTGWuy`%r?9MjvtcVzYP9@9-?)D6!hevN z!oVI`{okOaeD_>{EBr+=*&ch}I`%E+5VI9B!D0X7~eID~W1gAhlHRL82qj>uL>hI1|z z72p3J>OMJe7t!uKLVq0z1mqT{WEgrmM+g(??$-Yty^pC4a|w=AkqV3$1|~Mn;0*f7pW{R)b|TK)^P9nV#*G^lv%LpKj)O z%Yi#X?UTAt2p~AKxVpM#xPeOXyN5S^CIFgR==~=?SS(f+81`v$8-U@nIe4xn{F8M^ zVEVK85rstZaUvb=S<8vQzvUiv*EQ#WW{K7u5XxV>_R&y%uI+vQfI9@WObU+y5LRd! z*bgb@*MJxGPNE86=H|RWWl@oIxaipZKp>Xz51Hko5FnxAf>};3Q8)H-8W>3coG+j* z7d1FBA*R9%(5tkrOA-g5X`il_V60X-rS)uu<|;p676Ap9kHDHnW8zOgiGw_w z>$w4_F)=0%t$8aze?#%he6m67GG*?HZKW(306!xk+Z;KTJNa8H^On(9(_|kBtZe7> zEmAUorF;jF6<_+^|0b3@l$3rBV~2k$){qPhs=+xaBe(OmKr<`fr^EuNZzgiw6rhy{ z28xv6-C)2+NEkq!v9NN41oeIs0oa5Gd)#OQJf@TDeMMcHj81ID z!f>V3cui;LS3mn{Crit2wF=6tM|22&q!Z9r=pIfBM9QR6@ch-)@^`!;8vu4T%);wi z-o`uANk3j0qTz3%!PoI#$h&vJ^ps>``x~zn$a~_I1v%0$cGO(K^x-yCj*EOh=Qtb! z#d@S)ly)@|nd9irsEc46M8A8*^fX>=%AU{}w|2+c3Hzn+XU|LIwO=C2;edZbI0$~l zzMjVHgeG%6DecwYBE96(z-e5ibn|w&1pUte4v!vIj0vN)Ly<>t?h0QA1mom{i?$%J z?|j~g*DH+6Gi990JlET6b<{^-YLhZhOa>LUE*YWki&c46NcB{F4D*B~W{FGN1|{z# zf*XRa9|AI(WaS*Dhf~%qP^M;YRQZu{SzB+e?czg~;25BzQrWDRCZ##ELaEKCs>{3L zK&Ab(iGvX`hG?hU3Y>a*>>;EIhp`cPX-xb3tBKN6 zJ8sEsqRPoF{^7pSHeb>R+us~Vln>fE^f-R(8du5}K`pCv1e`9DpKG}MfiIQ_6o3eI zcF2iuqe-bW^DdpYe4+4;P^qbot4`ue{GwLs%Qda8}o z^A;ncRQ3K>Ra@TFmgY_hjW5RC`c24_A+<*jPNaSl$9`;yJ7Rw|D0fr5H2TZ{K4C0U z=9jtr^Hz3GAShL_zfE5L%Uaj!DC*XCUfJK8xs>H={`^3DKQJ*wZ?t7XbGmM`$mhSkrIpXV5N*vbh{?~*%_Syo&kwvM z{;Fw~Fw9(GV*BIPm&*)2Z@7ks)jF@48YQ&~Dl4z8MJ~mv|FGD_DC`QRCe!;*L$B}J z#c0`QR%hUp2eO?HK#zbz;DhHX-sTr+Zt|gTao-oIs*H#tke$Nbyl2G`YsU~y!*R82 z|CMD*tWLHY)(koR2t6Nx?^GOMBSZY&VF0dGv;x82Rt<{^EHCTViCGg6aOjA0P@-f` zS$?2B$xr`ZdZK^)x+8&+VgNNQZS)kuD5CY=)KuCGZMtIIe4n=Ew|}Od)cXEiN_Dd>uS&IIEui%35J&p>8MXu ze6P@Y`~ZL1207l{9rW=o`CRB#Os^?kRPMHKBgsaZFU9#h8Y-&pk5V>iUIXiwm1=0H zsqfTwa;$U*iIQl;H}pd2a082Je9}!FTyKj%c)4Uxg*LC8);0Dg!wP@zdzdo0gt4x4 zP(sCUNoOIv5Ocf2t{pdPUN&c`lloPtF1IwFZQ57xBZEReN}1aBulw{H1;(VJ7i|}v zHQ(^pcbVLXdC&jVX<@hGM!}@vVN^DnhfBJ0LpzIKxf!*O!3at;p){Np_KV^jq-#7F zzT?80N%R}86;N9Y9?;n}N7WbQJY)>ge@44j-OBwRbt9ard8~RB>{41*>Dx=XGu&@coQSD0T7LKmzY$1erB8rj6 zYH)!dqUHte?bhqL4fAULxVx|btX#o-E!D<6Vj@DSh82$1LqjVaZLMKa2Ygu_+Q?_#!L^<%IQOL;=J>I-4TD>_SWWS6-HFE({uQ`MtghBz`ms2ZUphL zySs#UBd*^?=8II$P5{Zk`DigqDz$rQb*U z=v1~EPgNK3RR*=5-L}8@UMeX)y|L1ydt|`S^4az-sVo#)6J^C6c^0o^>_y=3&u%94 z$jQ*c)Kow~$@#P}tbk&JLRcFkRju~Dt#5ePJbz^o!^@cg3X6nroU{PHypT{u|Mb)} zNvEkNPN-rM0LUYeZh5gfDp2bLa`U1$#ETXd#nrFpOwW$$Ltenv7tiZIsxk2uGcNEY zZmOUF?P}xa?TdD(+^gf`OcI2nyUI(?x^5JfWdm-t=?CNbQW`#frKe$a5>=CiSgE0T zJE5z*gM;CtQBD^XuMG9~n+1^N7Fe24Q7v-TcG4Hn$Gvy@x{x56rI_Hy{}pjjOp}<} zHE+Zb-`N-5*=ebQV^?#=;=OYJ!y6VknMLhBLYe{udesKw-ESPjveAipO1gn$D0a~w zez-(Z)03m-Xnbu>I~Aj6QQ3X?L?tzXouY3+Wtg@}1bsfX`t{aBlLB$8!6ItcqD++` z%CVLcKMV-n&^<<-NLR26PtzD(y8)wT=u*Q(okpOwY+qw4`H1E(4=UO=<_JnlUtWt! zOsI=JaCFTt%I=Pm+=Wd^E3Zy*^r%jacN5Uc_5)-tjDiP%-@9)C7x4d0(XsSX2_LG zrQ`Ozao-6A3Z~@j8@`=!=OsC7lWt8;H$8;XvejO)-&sV~HWxh+`S%|4W8H0^TV{uL zjQdIhOP39t{>LXB=T$0EwF;0=g2@Saul})`tbNELHn(b0UyQ$?`>#LzXWH_IlZ)U# zX_=u!bA#va@a_No;C|>iYn5$POUR)Ae_VpUuf?wix}yZ8=|UFoI{r#5e!cXc&rGQT z6$%ym8Ah#+^0n~_WocFFgOB~Z{&@QOQJZZ zVX&3wS~m-&ma0!@TnyHV-i)VD3#51g$mpj^i+D@Sn3q;o$gPJS-hKXNoVg-Kes`4; zOU@2}=s=({&) z4%gS$&xh^Ovuj*gFx!fKrh?4OOaLtK#p_Ll6t$g0^Q)Tqw>$ghfyko@@*4}_-}bvC z1b^qzq@t$w=T$4XkrTwvSVbXHGdMW72D42|y((fcQ9dy5vqMEM_6jWZ;zLdDa~2#$ zKFelXYvay@cs1hC(C&F1^cDZWlqREr_cn8;TLE+x{dOO)O$8|QMG2YmewVtO;$o$u ztD7(+U6lvF7Gia(?y(9op*@UWvMX4Pm=Hh8{1s(bD41YK<5Hc9hCEYGh4CDY9z6q+ zM+gen+TQtxi0mS%T^M1JV|X?i$uG1uACGQL6036ah-MEYR|%cgRlQu7gI?$ zf}AB~c7(-jNcFLIdKh{xCM@wzHz(2r_1?ce#uW89^-FVU7PMqODP4g0UvZSR+2x4M zq~&xCsX?Fr+X{U{;KNd@I50iJb?bkM3IAKEINohEeeedEkt)Gh;PVgr^UpZ;_m>*U zr&7!|FcJS09s700|FQ&Ayw|}8>WdH7kox!K`)}*yK79@Z5w5e}6pfUecQ7FauO1bt ztEtI@i3T&U?t;J&#{fSsFB8#DcqacN%klE@LW_}nbm0x<*=$dsyC4x+_(n+e`G84E z+M2Gerx!#1$m(d3jI>O1f08bx?{-GHAWPkUx@`t<2%I`Ah&H(sp_(xq6m8wEll zFOZUEnyxHgORB0;DFV_hvY_y6CeIv_@1UG+COO+AQyftY8WP%vBRbc>J-@U%Faj35 zoQl40lvP8HwsE*ps^P&-42Uc&Ckh7&SAoU3yisa~N>2|72;dkP1j3iOup4B`vP;$Y zs5?GeZ5~eXVw$%(#hLJUe3V=iQuDK06j@~*gg9MQ6OI{6j{JNd6|=j_9{T8JdI}-( zSYhY=(F;&_AD!O#R=f5F7>{Pluf=rSVq!Td?3|gGus7I&T_tYHrl?)(PPmJ{vTd{Y z?&^71LFcj3dwGSu#Tj8JvOR0MC5*k8-?6;b@9~G3t#{ z%CkG65>kyffZ0^Bh~?ki-X`ufJBiS3CecC)SQNTiOC!lOi-RZg3(FD{Rm@-)E$9O% zv%!H<_`Rz2O?hzI^0t|pq)?>FTgMMq=^cmZ8J&06c<`F`_KM$OvHSvQsgJ}bpk}Zw zBV&Ym3rb_u&+#^|GI8FE4lJyD{w4kzud6|Wj_r$Mm7(!%*mnuF+d4>JEn6T*S20@Y ztZaj@Q2!1Cro{GAVI)OL!Tf{C{I@0Z!_Z|@TgmQuMyM^*F}unjG+T z6tyeX%)<%&}mZ3vVRxSnkDpj7a7sFG)(jYf?n zT294^;2fqQNP}ZfeQYE^EMw;D zg#!UXX7R>`4TxtFKs-}}ePepu*zj5;Vf5=m;T`NE#>x3W0S*?^GYyUGdGD4g=f{d# z;J%kjwu6I!hx`8hw3OB5<*;K@!7n1h2H-;(7cp(^=J4c$oy?_68bJTq`_Z$alHx)+ zHVPGsyceiK-ja-B18(ZgqLJ0Fu<+E+hw({$rhL$THxm=tB6~Z##~@@eJH38vHs9NZ zdf95$v9c~lCM#;(W+P=^ALc6M75nTR?OhWt}X1~WDPs_V@3evpzteVQ}ptg%Ed`WfMe(wKv?Ml3-Zh6lRH*}ulR|o@msxUH2M$qEU zSzx3%;^iOE_}Q{EdgR+=bY)@bZEmsHFvqR=xe;qUb0+g7wil(>yWXE=o2F#fv}@qk zejO{|7OSbIJ$3iao!~Ott#%=PehSEk7nhbJX`T!kq%C}rBDPiRabP>7;MB<)eG=$N zOewv97CnJ9n&JoES6ij<>082#CK4L|VFe%<&@$p^xIL`bN4#p4SKrvY@9u2*fG)_2 z3zO@30j?>_bUA^|mJWV-7>$-c4__oA4n=t7Pe-fOYz;f=6Hq4CDbX-4I^6C%+;^&> zIp=ENURTSioHEIN9?wB4QMixP3m1Rd)2`cn|w()lk_#7WHq{nvT8CRy9gf8BzwvgG9--3ibRxL$D&-| z)E2Si!=^ZH3JWC@{o+f&`FVZW>nXZ~i8qd70CJn7+Op8|`+R$GFL898nWnZ49N5!Z zNDDD~b(6)hTFV{GA=e7bcKNBR;OM9b?Q+@ypOv41)rmJpv+qOXkUdAO-Eko8-|p;_ zv+BT&MkDN$g4ShfM^?0As~;d22q%;LHI$KDMqCtGT-@Yacg8NAsWC*S*48aM47!*B z<;a!xmPEv=Y>}f#2a=1WdjX-Nq+xXzx)@<8v!?@bo}mDv6rD1v|+WUP;1Wd9v(|K(7A1*22%Zi48OJVWpW)qj2B z|9vxea{puRRY;-d`0FVDd)(iiQM!G6QDA0f=r4Q%MJ>a_5oYTcOxU+?dIS9T?p+5a z+6+`4gNuvdpzsCa(>^umr0yT?MOj$^6u;t0K%Fb~fKQNH8D`&u10Jw=*TN9JpxhqdC76sVR*&qo8I)y2qy+NaQ zsnBeFaq-imF{7cOq12T2+!a*|T>zR(8oi{UrDZj$sWtl31A@^~-{zbOEn}}k5xBiQ z-0?{uSXAuF&d$2wvT4O2C*~SyB=7C%NluXz=HurF!L}3Ti42etk9RXYso?Bn4!1}U z*Gjk~%nH%c@~Y2Kzh_zW#%3)KX2zxjt+g~)7@}N^Y~)Bpb7iM}R5%0DHAfs!GXP_R zw?gE$qw^xN(Hr+V6GAoL6nDPk_kf7x9Pky|SfSR2Zo(5{)l5usw;K&9M^8J#>huLf zE?5kXBuu`>O`GyWd>tK|!}0mj6;iuCBBrh}D#*;VohJx}_7zd%xOfc?__UDC1W{Im z%IonVATN(6^Nugje8YhprNz>g=MY8{SNEUS5jH-I65BmZBM&`qTF~4HllNorg){+3 z&Ra2X-C#WPWHB-2Q2FFuse*PBkO6MpvYIg8FEW|XP6C16@FxL*@97Tt6yV$G;H6DcVr2Uj%`N?Sc&bxNG3t_NlWUqX1WEQ zb_!^Zs_&gQshZCc%yP8l?l_mV?>pB;^_v{&A0cA%+uG<>7L8KfZ~q@-ZypHs`oI5| z7N>+(lr1e(wo0~al~56Ngsfx9SjJFj>?0K_Tb68NNQ$h3F?NPzH`XjO_HD+#jIj;F z@78&rb9$f8`Fww$|Hd|6#=P$Pd0)@Rbv?&0+FS8>Qy(xrQ{!zTGDg}VxG7drZsU0a zB~Dgb^GdbfCK;>}=k2LcU}MnQx;{R?FHv6iM!c>*r5SxzH|7Cz5AMZgMa4lD-rmx6 zgj+?{ldg!e*|*wY+=?Nzr3;R|6$^e+lSghnj8ES|Z=pG`WtT+jo4MYJRfL({?P^WvI_k#$I@hMeIHxq&B11AFga-Z&Gg zpD9K3A-hGL-}O)E=c-*?yHNUxN~D#e`a=<&a7wGvyD68pXk2ZjkwxHf@Z^c|Jxi@? ziG%tK7Ls}A97q$|WeH*;C5&W&Xx^l{pjKh=a6K8c7Xx&&#PhSO94MZrWwbo9+ zOMl3^rPLHlJKqs`{cKMLYxOt!NT5}Bh%3pi_uf5dNjX!ox*LmZlmcW2GUYvkQ8{_04Tw5wDx4FlaA4 z2d$dxoHeDXkRYxzEa{)=5?|iL?sOmoE$Oh*#q-ec)Y8Sc#?jH`l0d2H(Ta|!Q5?B~ z=P^rH+~HbtUVlZ{z7VY(Sg>`xZPOw{QjP0uvyrop3%Wu-4k~{xu+X>)*x=etH#*it zj8zsh*Hh>gCBKN-Qb8`JZ&;NclHdK`$C!%6vtYp=t&O+(S4>;x?QiG4dCYAyMpx@5 zqPON|!oOY;x%7{xIC3-_LUnw7a`EYZU+tf}g-qvxN4lN$(&fv?+z9C=Pjr{dH~2&O zw`W${``QI584BuKb40BV6#41YwnZ23EmSTh@74e#Sg(;%PJ`RPro$+EH(26V4;4*g zA>qa)jezKH4t3eL;kVSSVnb)%KQ0W}4z(N15if0VE$>54vr^Nd@TW_?b-f)j^)H|L z$Hw$dutG>DK(+SuU;mL`AEX@fsSe<*XNliFw4RXACtR`;k*YJuA*HCak}BT#a(!uR z-FsWQZNp4y!`GpH1^uOMahBKk_rcaPkhPZi2Foau3r^(b$a%(46g9cP`&y6snBO!e zBKMu``kFB$IGCSXy`EW-wr_njL8{?c!qWgFm)UV@Qo?|60%N4$$CAW9bRtvePLF7I zX69;3dvC8WP­Y;5%shA9@6AAp(o8M)#$!U%v#@6tF2OC`eR` zrN&FdXdI;baDc6GZDuC-C2u=yHwEm;of=`k^^H_j=LV#@oykpa6a$lrArnFuC1+b( zA8?($UUK`)S;eVB}sUW+{^EzX%se~!<6 zU+xNjyJ!)lA6U}%&=@kZXy)I4XE!3h+!^6cZ#OgzoR}H83Gwq6MO@T_6oYPIwiAxn zDrfDKLmyekjVxEM0-?gir58TAUb?f^Q~>)4ZrAn*7VGsi5ed4I*00mW&El+gk2Z91 z4r1I!PoA2x!72&0*8WCaV#M}0`%?C*Wf6wpSZ)`}-gqgio=HV6B<^wYX78b0qCZtr>CxzfkoJ7v9 zWyl^}!=35o$%$4FTBxxz^SaVg1Pi|6qB*oI+JZS@f+5n)gNWZqb}gf2vb$-^k04H< ztqyVOnE_&JhIBTxgK0CivzfG5dv;Do+`}i%WsYbzO2hBfdQbMl!E_r_l%Az{lC|d} z^-5{$)T{#hrR#gOK5DW#xK-gBHbXtFO-!RpWeKQuki5| zpE0=6uYee+jxJX$;roj3oF5rJ!?9%}aKhD)AqM_2h6DR&P4i+ZMQB&gq2 z1Vo>Jjyk~_J12Z~#tyvz-b(XB-5JOzXF9Lceo?q;SwJ^b3-S>(9ljef*xbkAyExmS z*g=&Un(Xcxe_3e%j-p0H!CQBy4_4M1a96ZOB?^=b-Ym!%3euMbyX*& zGISe9yp+fI+v=I3``3h?;`GI}pdHHmXRU?6`*vCGvR2A6>PUdGQw4@NdkCH{eMJE; z#YL;;J6nyB%|M;|C<~g2AFWg}WwR9>yLk|URB~$T?v9Y-MdTaE`10daSY&e2R%*nR z)qpOZno}2Oazpx4 zA)tik%a$aEliQI+8%~3DatcyLdT~V>$i?Z6s*cZtk>UeOWfRfEaY1A1;>5$%7!%wX zdZ}p@ed5@*ENr>qj>TmJyKa~2BL2|2*F+NJ-41Trl{V?z)K~lr!8poxeP)4?5O=d7C%Qzu_5@+37crB8rJAl6lE z{|)H;Ja#s5`N&E{N=W?cb`JWd5f$nto2$7tjeMyYX{g_o`7dDox;sWwJk`L5nlu~zk4M~U4jeb{B?HxPbQ!I}Bg{)>N73#f>QQ4pl)f^KB!4AX_x=$r)!=}G77 z(%0$n_rB~!h@Qr`wLK&puO5!mU9hX`5QAMRPSS4Ve7?{yg~lG1oArFd&AYGUS*N^| zu6)Upc4(9aebx?lzTwphAQTWLavL)<`Ayl_4YZyvMqW`4CCrhJz;g@7@=|fP5_8?h zb4VxqJP|9dV)+@qJ#LmN_#aH|YvVb!KDC|QoOpDbRpw=0uZ#I;QAAw}|5+(H44*Gi ze^hohvQ{nyBfjFQs;_;qL_Qv~0DgEm@1&c1`8RHCbtKLeu@zS#oL<|^9mOX%@#2es z>F9@A3(9mre}Q}%Djw3Yyl<3frDvpHSu=7lxf+XIu1;5j20pgPe~cHb4C(O%Ix3Y1 z4)@!?X7Sk-VWKYz*&Re{&=!&Vywu>7fg`5-4>lw5OSN~NF`C8G6`*Z300ly<)L1T( z%0X^5t@Sng=Qkn8k%|cW(^AF9U(gJwn;3i+|vZwX1LDlA9W_%{-O%?v=mQKrm z%6P=4%kw+@jfnUvF^G#hcNWeI%DxnGZ+ACm4=z>8==0aKw1?p9!ot$<5B`@3L9aoK z+R0O=e(yj4Vcp6q$`(k$kwAa$^kZT22Tk14T%a1qa%T0CNc#fwb|q(Ka+DlN&CKio zq!%+=L`=RivoL{$2gvD6Yz7mDyx6w$b`9LWe_hV#@=Xu@O763!R>r^WMU^Xh1->x$ zFiqb_vjE(d0GCo%wE&GbfVT$b;-VoOd@_*Rx*6L7*qsLDcnB7EaTJZ+3EQV@XcN1ni|1c43QLw^v^S>P>o9=FthbI zDYam5sx!3pM<5j@4|j@w)P4x`=;Du6C>cs~x{?khboFOWs{^rv6sMWORC0+GcASE9 z`XJ$;iqFLXx%`0lz>M`9Y4PucOE~>in6mN$O!QL1)F|Lw=ku@jB?pa2qO8Qqf z8#;YtFu_P&jO@d9Oa*gxfQ2WYex#vGI`I*nu$ONL`d{#h2Dd)jnB z!|nIw=mfOTKUB)U@0!1EpFbY>9E;l#3K#a9FaEt+{&{Ns*Utot13ZThvL*lL1fhTI zbpQOY;(#U)PK8|ee(mti6$@CHHYVZE>+u>sKQBx#wC;fSG`WvndMOA}iO@)!BKrzrWv+Xc;v|466so zP65Qee7y!d2jAL~GIcCP{w5CIo3CtNID9=u&IKgi1NP6JCmGbvj?D8U7?$lA8-mc7E<>K19 zI9cq{%(&%=L=o6{lSCAS2nL9pM{72^QP3zWWm(iI)OcDtrU@%R$j_7;%kOol#|n%j z;_V`Y7cR>@Jkh;C-4=v2|6y0ErfXl#7V>`uQclPrlv7>|sAKJNqG$tXo7)6L!2GcJIrR zjTK|ZUbr-ccz7|2nLkuWaq?LjoYLIy*!dx<@ntLCQQ6Y+`J?8}biMJ|&p4d1pTGau zrvNc(W zB^hz&t;g>CW8GYxTHl}TCbxe~Sd>?xT2C0wd-;vW7I}* zg1Yq8tCw0u)xnfp%20Q_`37$K7B48mqoN$#)&*pzGju8o#zAMYqHf}=UC(m9OQiUfVdc}JX^R;rO_z3)vms!+vAxXIy3GkX>A_~XSwKEOOq*6g^^mzC0lM$(epqt)V<${Bl;ZNg{gx>KLIcGR>Eis6? zCNx1RwQ3o7u&sUwo)r{rOPT>O=C>LegvYLg6q#7A4!x?xDBN9z8RpxC(5GjJ>!g`= zTun{#gb^jaL~%aO7w2Zx3Pl5yxb=&$7+!-ztR3eznfoP|oYCnv?gNIg7p{$X!h>u5 zzkK?XD}&FsF>EEHR63w*xMfOKxMd@iVc_Lu(Ml$!N!6N{wRe#O_4e{daM#q-JfUbB zqJZj{LhxtP@hxhM$#q|D=+pMgy@B$7B?WnJ1x5oMUAx_gQP^xvzRX5j?@tag{I*u4 zW66w1AX_EWQIzJGbYKT3aCsE;Icl3I93IY;Ma=Y^?>2fRsRp{70P6Z8njsrD6}yL# zBh_RfiU(w;g+nVjK&<@Z8%Z^n$4<0pSn#9`7Dtvj-o=xyvC|&)-8@Csm@qV0*d)a( zY@8W-LIv6E>A3^`k|MYXoK%9Op_X;L8OP4HPh)%7jv!Zfwdowsow z4(!k}5%00O;_Rcy@}}Rr4%X(%%l{cg1J>f>XWp}QYwu?c2br|OZ@+)dFb?FQi1D8}S>r;=6w z4FoT?O&+k}n9mL$JD-5xWEi;ZPk5~G@RaYk zjLm^DCBbLyy1x7Vsn-5yXG&7vrL-O(^l06As%^ZX@2|}$n00rP+2yFpI6u&GHg(@& zITer^|HFu}v)Md7c&tM1(PB9M7eeJ}?$HXP{Z6L<2In(*WGH!xwsz%zTGnX~4SqYV&)4 z0%ZFl_F1+wO+5g7)gLr^zCDikVNUKez%XswV^5)s0qU`XTul1;`F+mKy$9g2)w!}{ zI7Jg>4A!5!-;ddnYHG+8S%$b}+IOas{hg5-f?sBC6ajcFA1+}pDWx>h(in(A<$Q9yvox5bR-`lItZ!chXuVZK$Py}Mgz0&Bp< zt$z1EoLbFqHC=UYwiI8JNbYZ|oe^9B^{m}fVvZwr@MQx5C#k9nYW;;nRZXqBgDh&8 zZ&SYmlQ8d{#0{~T2R z(QXlVmISDLlODqdu(e&#K@6|+ra`##^GQ-)hXo)=V^avd1-0R>$|m3Wx0{E$jtKcHX6*7)M^TIQVAsmDw^6j>FD6n32=C^)T;tYcXATIOtSzw z25L_Yn1CV=r?t-s;C2vz*OdOw677F$DQ_2kzf#gZYhmYa2M0hpLMop8BFiQ*DXD`7 ztEy5~*}xf>%(zLA02-PvWigO}t#WT%0$}=2fc+yO??D~L4Hm56@y^ic1-gKojUyU5 z1s0NK2q}P5r**bNcUpZCc|-#z)8M&vNr(6;AWS7!kZ!TODd^%^%-%v>#FMjRNi@mY z8__UB`lrsIe=CJ|$kSs=pB1iO7j&XDKWquwM~{;&W<{A`p@guog_6D^fs)ic9`+T! zS9+{k;?b~o)39swO1uK1I#LMD7b3N% zHNj~Q{mG>dh@OWiQHam8V5yu9bZv77CmlD!IF(oQod%Og1TGk;RfC@E^#i;Wo;MP- zER$g*&&2nBuAad-DdlZ>@5v9HSU1w4tmPqYD~k9KHBMK@psj4P zbnNh`RO)ePt)xE=DjILRc*>jrX)P!#2cU0Cq71+18?qX-8AI$oFtp^zIMooE>P;q# zL`XJ;?F*2O;CF)lII?|40AT#im)=3}_V*)JTsKqlGHzxSQAVn{U->a^FKid z9~%JEPURiBy65QoO||6T{*hDr=QaHDYyP}2)0g1%A@pE@{r|Rv?mk+#!v%W^2L3~K z`p@~sCrR}*pVl2?FDDup&jNk7+R`PRcgIC*-WeNKS!rftZ^QTcyds}C5d z=wRdPIg3&XrM|laxVrkCj#R2vk@CPA$vYI#NVmVZ_oI|VSU8%ZT98xy+V_f{Es43! zmWK=!(0R70t ze($Gekn6c$9LG;^)~7=jZxsQx_w8EM`kwhgui`j#z<`pfGYY(tC$$hw2u z#PDo;CvSiTB?}@98XxN8$=sND8QRm3Di0)ni@@Kw$D4RbG?Vusot1(Kx7s2c8~1JT zCf`OvSZX&HYVjYGwzuStJzKM|mJw_5Y)&7;VUVGl9ZFlXdk4Eqr&Oq)I5%e_EZXME z%#N+ai+etpqtA4Y7vMdfzVo6+B`_}k@al|l{F{FK$(Z|^wfJA(`oVD(5kfkRjhC8uY+=(?dx0k{GZUxK*S|wC&d#zP+YsyYlamCX zDh{7C0Si&%+FBcU`YNurOKI`~!=&^2&)jEahVG0+fG(;GFWoZxFFCR=!xG$Rkd zZMz9M04x}E6e)sl%U5aNKZ9cguDa@0jk&)ZQUSrtuA2t>e&yw6=4L352OcGaEIeLG zgh|dR{Pv)ls_G|C9g8;^UuB-e+)}XJ>vfamtG9d>c27Y(ADY+o6|i$<6&I^Ys5~># zue5*iB0U-l(53vvG0>CB+>i z8Cm55U|{m;ZWR_#Gm{KhTFF2y1M;bxSEEIDYwK~^`BZWMLPQf)`w|r6gf1vek7g*k z23%R2vCV9xzT@;a99IEX>1A_`coXum(x49XeY!vDwTcS6x-+9+o7h&a!W8l$EU{xY z5}ROS%Rw%~7&Fkp(T?(z=Xk9$P5GP=9?B=1nv%-SKEC{>3 za(2!RvC>+idF1RoP(C=r6~WIhg7($(qAn}VvBG|jhOy?=zVnSyXn|GFMPWHU?Y>46YUu@_htIQ97qz_fv+yei*P$|e>!kvARKBii!COk0LKt90|s`n z784P_@SOr1qzRnl`cZ2jWjtp!xutAoAG5gV?QXhsT!Os5y)qAZ?@=b{ zcqD|Q9EzpP@$lO6iM1*Pwr=MwhQ+pk($?hsSoJo|Zhev+WZ-W$Ta8V6FUu5Bgq7ZG z-M?6I#B+TLOn1@=v43q_Z^B0sZ9Fpj_C07GNwgT9%7hJU&1p5nVs#s|kPG{Ywg(*Q zt>)cB?1=el<(oKuTjJH=KQ|<>SAG1ANjv_LF%}UNQ{C{ib}&Oq zxqkq~w!RfHf4niuH$N^jS;3CN_) zFZW$-`C1z%>(q~=;Lh8Dang&1d>k2E-Ug44_W0h8y*QPwUR8ZubVy!Uk2KTl*poO& zkg7S~EZu!!`kQaSlP!5KWayg~e7lskhJ^bz zHeUkY&2k=Ycj1!*fF2Mlh3+#$-O!WtfGg%Zbu__#mY81-j>)5YSbdOIz(RpOe>q<2 zEW|-`Xp+TKns$Rlz2)&4ENcQYqHE2^#BGVwA$TO`6$A@_r9*CSYd$CmWpAJe9Co{Tn;=J9J`nuJB4bEHIr#Tt+(AOySiobW6>!Tzvj_!GZAjrvar~lH#h5j>m6) zH>?WBE+w&&2!^Y_#VewDkS>GDZBTP5HYJ5p_(u6m_r(NZ$7b1TE&y+7jb}j$q~6sC zZPt_wdKb(HD_jUEQ_wExyGB}7+Hy-W^6o$32;j#C{_Q-QhK^6JSGlz4<egKDW(7m%mLUtK1Sa{UGeIg!gjOyji8t^?L-mvI{2pP4SP!**Md|_ZRC{nAfMLxM+q&bPx`S{!Nxg4zLsrD0qD4&rB@Q2(xmS z^Iv})bJtc(p_b8)n^$e z4O8xJ)MNJOo(F_3%8DT-s@H+xxiW3$J#s)xUXmUo?x`KW+LywDbm!>4Y+tlas%lQk z$tLF)nI(|`z zs+03M($+@g)z3EbEZjZM;1HHcpx-IkE~3PX z7T%;!57O`c@GIzd^rD5g7ojjjC+aUJvpXMUnCMAL)#KIwOA6{!(y@y0I9JDoQZ?!I z;Qfc~Kp;T}pAde1b`KSU@r>GJut3Bi#T1YB_I6|sQO`HXaOpPhXL;Q%F5$uPI} z$*dMTW#*6)wnVtp;>2#$FurKD@}iaQR}6nSoVC`BzbE2xPTFO*)ab%QJ@c2_PqRfe#0$3_`D`ed-;=bQ!^AsXi@JyfDZ z^dBwMw}EXNg<12B{xBRR@3=>*;7Imc6O9Ut#Bf=m(nhsct_5YwJokOkF!Z&S=NP_=Bh-X+^RvF$d=D%5Lk>Gvt+F$7Wf_>e7dJB|rQuJpMH+ zk0A5r%;JU;ZT-SQ?mRunbC7P6G#~AH5JAo98tf7IK7FaCYCGGa9z;Cs+sSEg??(r)s2kG|ll!hhJZ}zaL)~ zWpX{yUi=*PIjdY&Ji*yD(ar&a4-5`g&EGfN|Fx=Wv2--|8F4iS%3dKSk+8a|71iQN z?Wg9j<0Ttdlvq4vhQk7yL)fZnp!Qq`Ev+5q!_>tF-owJI{8!&7=Gypw|E8Uc-1 zY8(ZxNg_$iA1$N43#ihXlhUxGS+Wn570A15L05!cD{ba%zd;&E!)htZ-6lsAVr0|D z7R2V`+{n2TDUROsC8gIveNBQ8Dg3-&!mLW+r3fME9qjaB@iyDMSU=YkEyGIj;_Cae zTfr_*@wD?T;Wf$m6IQnD(y#pan(ay;tM zV_q#=%=6}6^}_QJ;+wTDNngQjIS;Q6uN~Z|6vyhTB)A@3*-+Yi-g5yhL|lz}$sb?Q zk1eok$SL7x1g~^44ZL*+LvJs#E9Tvof)l^+n%BU4bF>B)x8_w)lWk)b!J#{kqn+P56y#9(Epb zJzubp6wejf_j7aEARQ;#(Q~D-uI^1^R%R!(yFJd^%2H~uxq0rXH0ANibVN(}Q=!>~ z?5z%!x2~nTO0q7x-QQ~OyY}2imI&em%*wa-%!JjCja3P4@$v8+PcViqUJo5=Q_5bj zf#C+#wB<|6Tbr-TT?Se}qv$;vFWg5e=cQgeaKiW-ht#uyG&YvC^>ZL5;k#H~)QM8W z+{}z4-Pkmx4;Qrb!Wfd!Z13!RY9>x`m)Bi#-?O+(CjmrGbTgaFl_ZQ|rA1U*R7C8L z4rn&0NL`v-o}U24Abf6WDyEQIsh}cD%0Gda+jA2If+OzVFPC~%#$i58X*xPwYOuf{ z-7&S=kko>BBKie^mu%RqA7eK2QOuxj4L6ckR91Gjc*CTT6TUCA^<@fyOK%{q!h&KW zK)(u#;*$sJrZk^MzX6?-UbcB}SH%2M3rnoTOwIr~+SLC_vTvXiMJedDMWQ&z4#jV& zVxXn`&XQsyLB>Ruzd)xGIt&0%D}wiX4!B%Cxt9H2F>fXPTbfs3t(-7mIR@psf`b^c zj2uLX0o|{Gnapm0Apw_S*Tw#Rx@THzX^|@;r3N^}M7(?k&>F+fFm+C7UMQQOE(qVj#3vnxHWgvjif#I zMr!Hl>G%iL$ph@(n}(I)$;{uhWB50Ic&niNr3ak}W=ZQ69wtJwy#3U<)j?i`;i7`P zTU(>}a{dpjS`{W91WPwJvpuvORc>>Pf)7DLxll#A6(0BIx0jMH0-`sIgKxWsI|=m4 zO?2#B`83x6W3Gxy4k;N`tvvR5&1LdD_n2%8GFE<}waa=d7uj#%rr(pz=;!A<$o+LN zw4K3hxzYT)TWyKr2~Y2YO~xQY$2kq$%}SY@v3mFmBg^$A_)}#Y$LD>$w*AXbTaN2c z%U$rg*>B%I?F5)(pdzwc?-Rj1Z^L2E>xSZLwL{}R?k;~SX+F4Yy$06g(y1E5y_B{4`aFj%|B(TnOQ()J{x(29x$G9%v-+1P)UKVRQYkW!MkfVvf z%ZUrO?G7O>2yfW{FRvZno)8#0PS=n$8<-H5BX%^&-DdRLnJIFl&}U_@>=%u!7hvDT zyAOk<;d4&IyNpuBp${iGwI1q;4tWm9*4CCG@@svhq1wZ@3aiCFN zZ68DPna#t_gSOa4P0ZP_wI$9HzL@e13U|)2GX9FlyQo2PUlNg@IUiERwPR4K^|ci} z9VCmq#WaYKow+5)O*oOWh{iJc0naDC|}pSPX5*_LY)vqnd2-h7aEw8hU00Fj51>*+*4HX+O0Bmm42G9fX%&BBkeg%9YI!xxQo%{j?o-bi zv8P0FMRWa!Rk`3iqo74~k%d$2jnsibs$Y}_&uYVhSm*5?=Ph~xQUtO^Vo!3FccZ@z zDHSDUpk%Tu_+9-cH>w1OR;#pA_!-|7UgqFz$785{*%#j?e8hbleC>inGJ2Il@vNwH zlQnhMu;bf;{ySQC?q=+l@Fc-4BvE}!AZ-;>b*yxIp${Mbrh98*D!6`5!IJuJVeUuY z3&JF1i;g7bTVVR0^;(Rb7e@vUd8K$GO#?PJqr3yzAXw;!K1RKZ%KS4zvQpou$=ars zANR)*M^G8xM&a(@hc};7yQH^ZuKqIw;>@QM-G_tT8+DvXQoiKjvaFtrt%Z$2Yr4PP ze#|yrJXq=lc95NNY`%=~t$+SQ2$G5)gS#Nl+$g}pt<_C z=k6~eH!LMTcb6X?Bz0Y+pgn?tqpr7!Ma#LyoZ-0TMu|o_6h361Uokq06hkaeoq(G7 zTU3;&Y|!_g-}o^z{5huHV&S%pgKKTtiLN-@CHG66xrU3ZK_^XmCRV-;^L29|MXd(< z+BcB-zVwrkdsT9ko#3)LkIn?_q1!x ze@(xrXgdemQ%QHj-Tw93z;zy1*)^ZUw*BACyU($(T`6foPq5h!{<^IH_XDAWJ{M7G zUS14n5$NEb+t>>4dj(PlPxA6M1_hUg1P0!@8uJJaTuFe10^M=u{rlhL{!Es+eMaD? z0qM4U;vZyyJOZ@r1xs$ri&UjY(g-_BC1gvmRdvFCASi)-g{*sK&Y)&AW__R~LT1ka5ODpqEv6SmRb6K?&5BOI=u;%%uh?}@wMrxF?jNkq8 zI{-=--#ttB{W^G}9!U0DjaT0-5ziZeenRy$@D934X`$LEc5uJ)9!9fpdUrGU6lrDy z7tuRkdSwL5?YM!KRF%g^?i4a78k;+yf$XqAQzLyO>uB5P=!X-GIcwOGGf{uf^(xJ7 zP6+B1M1r=DLZyRNZ)em{K?V|Z=lic1n$B6lu$1l@q%<#lg~%GqU~{@3z&oM<--(6; zEVCl0lz?Slq$_$KD4jqwqLcd)l*W!lD=QWB04S>E01#O06y>sHOBE+~3LH5H1R0rC zE(1GF)58p!v1RPT464x0Gi2XKNvoD3^)jTaXetTPoCZ!H*>K7Sv7cGg)d~M-2%g!9 zE9LrcFde)}YTxZZ(0+8)rP9pIS+kp;#RV;L2A=M|gC7b~Nq9c|0@JKi{=bf`{p|t%!cL_ z`)w!5aNGt_ct#6mkyKD1ZpSgfxs+`>H~BV|avKlKfR6zD{JpuDYoNcw0tghV?4+4b z$nK;_<{1M6(j&vfT!gc8EGM1LBnLaoX>ks^QgX${p@1kUDTT6BQP4p2D+(hERe|9Nd z%ExouVirLZnpN)P1r2;uGI(KvD{!$+zL1rZCRXnG7&J_ z?au3U(iv#ylTJztcJ{dxWKeTyQ929B4vV!91h*8K02)Vlvb7VDxCHe#p5X2(JvozH zKyG!|qyi^5fkUndr2sT*RN|yiOY9y}#%hUqH_unOns{(~o7&TH)`Udh5htvr{Luhw zbted?7XZbYopo|2Xzcfk-h|-~%!>P$+nC7Z0M~~`9hyGgh_RuV@%+=@!6Uqr_Yqyr zbY1uS(7(qHXv#7bac2?d*S?$B{Y(+7L0k`7Tb%frMkvkvr9E}wir92_rmVf^y~a~x zvBE8K_7uw7zq_?V)`y4U$kq>@@TJK4T+~X7pS%3n`|nfy|0WOp@%g&*U~x7&v#I&F zsPyY98*=mlNEex?*FX9%8kD$> zdTGr2@H3^JR^P~17MdwvP{ElG41ixASV_BppO^u2c4ZUTi14X0^EHAZZ=p-Geabz2FnRkKADmC$CC@%5tnQe z2G*aJT8Vd&$JOya>k-xWb}nxI|M%kVXloSrc?OeL#~V2s!>U<6 zC+8c}nUD4vDa1aF`HO(82s}~&y+js^t}+#SCCduTQWdn{nquNS8_96T4c-FH;Mlbi z=fT}YoA1;u2TC{9z5^7?vijY)BRR%OlP7@zwmfZB)iB37U~_(WECICj+aC;G&@*yd zzuh;cv_p+b4|#s+_Bc;IbvhwL&FC>lZ#Fi%}U<$n6$LW55ju; z5sgAtoQ(diE&+=qi`=a~C#s#Y@~ifqo-uWnONq5 zskfi*deGHN%Z=o{!0tu4rGJ=f+>cK8t8mWAFe$s*eXhS>VL0Wp-;*l8C92)q+qcp# z!N9Q3EC6YL6K0=!*8jYFKSFyB{e~**{PkY5qDRmUoGm^WNzPx`pr5fyz)H33VSG}PLGp8JDJyq#i#ju2_k`#BF9gH<*XuuK z>2V+5L#j5vQ(=V_p3TKr5c%h5-u!g(3nzs*)csV`I+jCTi3yJ|0|8cyqC_xEvROvC zn+)ielYIHOlO*TP&SJhsfDO3-AKmS7VG?MDl*&tDv=sqHKOdS#SGkyWC%oh4%aO32B17i<4XYa1B5Ff||3o-F39vy%W-A!}aeDUrcpgllzW= zMB#UPnEwd-@{he$#`w3fK~4AKA92h7XRlG!PKIXHi|@++LIVD>mHzcrO$gX96})=m zCI1}}|CO%(`B>)A&JP^ABmer(7w6xe_OIs$QSv(_K}W%?zSIA$i14X84WfXTf%WBD z_zZ~S468rVX`-($3Rbr?0F4=g8T2~6Ajo}2TvQwWrmxh^@ZnD-`vDlJw{!0L8x<=6 zH}OesZtZYBfGp=c*1&-X;Jbinwgr0jdk}*QQkF6e3sCt4RDNuJyVr)LtLtN2H;C>9 zAw{-eL|y34aMQ>;=RlHh8Hk8rSIVo;1FL_>6TOGe?tt~>M;-_Q7A)D?LWUb(M@PcJ zglxAnjv&MM4|e;F&fyl-dO9r862y=TG;D|e7FU^W54ptEQ}Ioha~$0~^Rn+)0$m;iDECE*}bvvRG2 zsRjnXHR!vVb+D$UvC?;;vtOo&m$=NclHwkPyOa7(IUlwFVc&4Yk07&8G+4@kXgrGBL$(nq7=1m=-PX~{l=(=_&pnqo$^PD zEY+Xwpj@)Rh9XJh2NG1NMXi_~;H&)>&DJF$s9IxSF-h79+uTXWvxOxR(3f6<)hRVA zO9#FH138;J|FE?;nJ%q&C%$kryxMVrq~_?W3${W(cQQ5O;D*mgr7j_}-4)4P@L={@ zWB5Q`TYM7mB9e?upc}ZF3J?mokdKo+KQXQAI%ejv#e|Q%GeI)a(Gdki-3x%6xVgIC zxwlH(xkPJhbr!(sCqYVJbcihoAkX3EU&m!fEcV7(J^X>j8Kq7kvHUd|^rY(nv{C}SiD(baN8^Y6syq`bb z^MAYBb{~}~2KEkjXSb{WV`|qwmZSfC=%XFDV`t3SZ~6T1yZryT1_X=k*cpxEoBq`R zGj#3TWvR$8C51xeqxGRD)4lG)u@QVd`-LAAUu_fZmEy2 z?3!i%oLRO}sCTviE)}+4!+$Kl1HQIVlU@gaSZ34axt|B#|dR?P% zZZ4k4$gZpjopOq4?R*eLS^k}pgg(P*YiUx6W$M$e?86P8+v%J$MNelxhJ!+AC5g!qt-(B21NCY z-Fz|(iZ<_rjq{><^TQi;273gRHpX8$Ze(_keOa<|W7d*5QxIr^Ko!hJ?W7od&@(#i z+Yo(7`g{{jhT7m>YS%gJ_twF4L$AG8`ofNPvNF4f4k8ppwin`r8fSy?RE> z^}@@qACQiZ7*{f3yrBFs<5gzyfW~42SWP6=jlhzps^RCZ9w{!C>DHG0<{sqDTz!DPdGp1~%DH1H;v)3jk zCfOxd8imC)m>W3v@@5xWnYQkezY+dPZe=;#{JuO5MU-Rd4F#f zn2H_PSU&*5mamtLj2!*{czg4BsQ3PT{3MaoI3=Vkb%aWy#9%CyN(hy*k0sgnF!m9O zvKD0`>~=l-1gbMEf*{XV{b{r>7*qnUY+c|Diwd0o%T z)Y9@*8`zo`Iya{&46LZ&etv#EqPfjO5s7tIY+B9sO`p|F0-X$kyd^Gwqlxc0uI~Bh zNpSODL81|cgnk+v>{e;$KW0ws+a?uXfk}`=xU}5^CymD|V3f1#Ql04W$N7jyu@x7<)o2hF& zALHfq<2$b4eLP5Z_WM-q8k(9ZXl8r6*ms`Xv-TK6qP%?5Q*wZtswN@}Bh&u)X5&j} zqLdphr3g1QW#k#yOTECOLJrt4o14-j#_`>~fB17DDhn0gb#vKXzbV@xBlUsDJzDe5 z?rw`YqrSpH?SX7(ER{=VXKSuGGptW|&vcAb_|=Ngl3jIR?>JA9AfHYNvwG}O4#zlP ztciYboX_oVJngL){7t>`F4bKLb3*VZqbzYg<-j-VVx3l${R!MuAj%zQG(Yv@$JpIc zl9BQ3RC&2nqy6A%gs5(4ceD&>u!Lunm7%VyrvxDD$53gXpwmxC!fkDKr&$Ad1Y58v(B*v49-Z zzL>ADm6G&y?!v{o*Nlov?hCeW$($98hsZUug26`i_BxcNI!I!#(zb2I(|_}u?*5v; z0pfd*YaMUH2|E#%W@%0*Bk(!)!Z^b^@9awvu-Ybfx)-n$%Z!|^;cgVJr9ozDfiwgC z3J=@K;Yr2R3i<5vmABiq%2EPqdq0Kp->&mG&wQEY;r34fQr^)N+OcT&7tHS>|AIce zD+{dMcVWW{W6U=r1cZ!clvM~Q7_?52b?4d?Jue|zOu^_w>h}~S_Nm0cJRzeujhQ4& zwTfIa!eFx_|~Lq!JL zhPD}ef(0n5LuW@XC?WcM+)_oKfNOH3T=7|XxcM+)&HgkDRUZ{OE3 zZtEpokv7qa>=x>z<_aXYG+1Ff7LDGQ7R))DWf~VKDo(*DQ*E-Y>;2@@!qP&=tqT+u z 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

      gzLxw14+E|*;eTf9DnL4werIS^7XrqjZuF4wfVY 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 literal 0 HcmV?d00001 From e18a6c7966607ed79d080698da8d18920980a301 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Thu, 17 Jul 2025 11:04:56 -0700 Subject: [PATCH 325/438] make catalog --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 1005 ++++++++++++++++-- src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 2 +- 5 files changed, 919 insertions(+), 94 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 9d1dc61343..321c5173bc 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 2025-07-10 +# destination categories last updated 2025-07-17 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 c8a1914d2f..af0364d1ba 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 2025-07-10 +# destination data last updated 2025-07-17 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -455,6 +455,340 @@ items: actions: [] presets: [] partnerOwned: true +- id: 6874c64e5eda096bf3850ee0 + display_name: Aampe (Actions) + name: Aampe (Actions) + slug: aampe-actions + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/aampe-actions + previous_names: + - Aampe (Actions) + website: https://aampe.com/ + status: PUBLIC_BETA + categories: + - Personalization + - CRM + logo: + url: https://cdn-devcenter.segment.com/d53e9443-0c77-445f-96f6-135a09a5801f.svg + mark: + url: https://cdn-devcenter.segment.com/3154991b-37a3-4c04-9e36-cc483caa0f49.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 + linkedAudiences: true + 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: string + defaultValue: '' + description: Your Aampe API Key + required: true + label: API Key + - name: region + type: select + defaultValue: https://ingestion-service-asia-southeast1-toqowp62ka-as.a.run.app/v1/ + description: Your data region + required: true + label: Region + actions: + - id: 7HmfVLFrn8dQEsVtWciXas + name: Upsert User Profile + slug: upsertUserProfile + description: Send user profile updates to Aampe. + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" or type = "track" or type = "page" or type = "screen" + fields: + - id: kLFKaj9fMaZ2UHRBYQrZY4 + sortOrder: 0 + fieldKey: contact_id + label: Contact ID + type: STRING + description: >- + Identifier for user. Use `userId` or `anonymousId` from the Segment + event. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 5Lvtq7JRRpSuBo1rQp4tG6 + sortOrder: 1 + fieldKey: event_name + label: Event Name + type: STRING + description: Name of the event. Use `event` from the Segment event. + placeholder: '' + defaultValue: User Profile Updated + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qTrSVZCqJLb3Y7ZP72pr7C + sortOrder: 2 + fieldKey: timestamp + label: Timestamp + type: STRING + description: Timestamp for when the event happened. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: iN5G5LRhLT6Lnanh5fTZ6p + sortOrder: 3 + fieldKey: metadata + label: Metadata + type: OBJECT + description: Event properties. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 5qWS2HkZiR9Pg1uxXnGAWA + sortOrder: 4 + fieldKey: event_id + label: Event ID + type: STRING + description: Unique identifier for the event. + placeholder: '' + defaultValue: + '@path': $.messageId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bB7jwk59B7jga1r7RFVmeA + sortOrder: 5 + fieldKey: user_properties + label: User Properties + type: OBJECT + description: >- + User properties. Make sure to update the default mapping if you are + sending user proferties via properties object in a track, page or screen + event. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits + then: + '@path': $.traits + else: + '@path': $.context.traits + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: osFKAiiV93y3P4BGgYnUWz + name: Send Event + slug: sendEvent + description: Send analytics, page and screen events to Aampe. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" or type = "page" or type = "screen" + fields: + - id: e9uPJ1VsveraGHLf65APJ3 + sortOrder: 0 + fieldKey: contact_id + label: Contact ID + type: STRING + description: >- + Identifier for user. Use `userId` or `anonymousId` from the Segment + event. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 8jEBuoqVd4UeQYLgxWLsXi + sortOrder: 1 + fieldKey: event_name + label: Event Name + type: STRING + description: Name of the event. Use `event` from the Segment event. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.event + then: + '@path': $.event + else: + '@path': $.name + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: cDqF1DzTBso7rhg6MWt4UU + sortOrder: 2 + fieldKey: timestamp + label: Timestamp + type: STRING + description: Timestamp for when the event happened. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: jQCkuvPwerx8poQxkV7sSn + sortOrder: 3 + fieldKey: timezone + label: Timezone + type: STRING + description: User’s local timezone. + placeholder: '' + defaultValue: + '@path': $.context.timezone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tCSfh2hMCt5tmCsGdKvqKF + sortOrder: 4 + fieldKey: metadata + label: Metadata + type: OBJECT + description: Event properties. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hw1KtFTubsLcPiPhZ64aQD + sortOrder: 5 + fieldKey: event_id + label: Event ID + type: STRING + description: Unique identifier for the event. + placeholder: '' + defaultValue: + '@path': $.messageId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: + - actionId: osFKAiiV93y3P4BGgYnUWz + name: Send Event + fields: + contact_id: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + event_name: + '@if': + exists: + '@path': $.event + then: + '@path': $.event + else: + '@path': $.name + timestamp: + '@path': $.timestamp + timezone: + '@path': $.context.timezone + metadata: + '@path': $.properties + event_id: + '@path': $.messageId + trigger: type = "track" or type = "page" or type = "screen" + - actionId: 7HmfVLFrn8dQEsVtWciXas + name: Identify User + fields: + contact_id: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + event_name: User Profile Updated + timestamp: + '@path': $.timestamp + metadata: + '@path': $.properties + event_id: + '@path': $.messageId + user_properties: + '@if': + exists: + '@path': $.traits + then: + '@path': $.traits + else: + '@path': $.context.traits + trigger: type = "identify" + partnerOwned: true - id: 605dd9d7e5ff0b3873e250a4 display_name: AB Smartly name: AB Smartly @@ -6912,7 +7246,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: hXTR51dj3LafimrXih2Bp1 + - id: 4A1bPd98i588bYpa5eZr6w sortOrder: 1 fieldKey: externalUserId label: External User ID @@ -6926,7 +7260,7 @@ items: choices: null dynamic: false allowNull: false - - id: j9mjcuhWEpMifdZyWAbgy6 + - id: dX5JfWzdDmrzfQ2TiV3Hwe sortOrder: 2 fieldKey: email label: Email @@ -6946,7 +7280,7 @@ items: choices: null dynamic: false allowNull: false - - id: rDdffwomWyLMUicWqZ2jHs + - id: aeWdgP2rpDWC9rFN79BYhn sortOrder: 3 fieldKey: firstName label: First name @@ -6960,7 +7294,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2sXvY1YMvis6Pd8E8j5wAD + - id: 5GrZQfGEA3CFrycdMfMxcA sortOrder: 4 fieldKey: lastName label: Last name @@ -6974,7 +7308,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7LzRDB5r7u7BFd4FwRanBu + - id: ik2u2EBYZP1aYAXWNj2RUF sortOrder: 5 fieldKey: phone label: Phone @@ -6988,7 +7322,7 @@ items: choices: null dynamic: false allowNull: false - - id: h5y455jgy8YUoZvtjwhJPs + - id: 7Z17GdEpdKZFr5Myki5SXC sortOrder: 6 fieldKey: postal label: Postal @@ -7002,7 +7336,7 @@ items: choices: null dynamic: false allowNull: false - - id: ojQuEjGKCbmPhauLWCn1in + - id: gxPc3gsoX7YSbTMnHnoWnC sortOrder: 7 fieldKey: state label: State @@ -7016,7 +7350,7 @@ items: choices: null dynamic: false allowNull: false - - id: 36RovDYmJGAH3hUrq3kgqx + - id: cTeVapo1GSqRhFR9V6V2jv sortOrder: 8 fieldKey: city label: City @@ -7030,7 +7364,7 @@ items: choices: null dynamic: false allowNull: false - - id: vnTc2oJq7AeJEd2Z3pHvMN + - id: qC6au8wr26pyg3g9tmHcbT sortOrder: 9 fieldKey: address label: Address @@ -7044,7 +7378,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2taQFET6uLeZJLi9vQkRwt + - id: sUqPf2Xi1XJXb7v4PveqxS sortOrder: 11 fieldKey: enable_batching label: Enable Batching @@ -7057,6 +7391,21 @@ items: choices: null dynamic: false allowNull: false + - id: v4MyobKDELZqZzkUiLhH7f + sortOrder: 12 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. Minimum value is 1500 and maximum is 10000. + placeholder: '' + defaultValue: 10000 + required: false + multiple: false + choices: null + dynamic: false + allowNull: false presets: [] partnerOwned: false - id: 5d1994fb320116000112aa12 @@ -24943,7 +25292,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: mrKbuMgfWN8UEpJ2qcde2H + - id: sMWNJ9SV44EHdFWm1UrdNW sortOrder: 0 fieldKey: external_id label: External User ID @@ -24962,7 +25311,7 @@ items: dynamic: false allowNull: false hidden: false - - id: gfvJ2HNHnRiAJhXYp6Jzdi + - id: adW8A3ypaS3Gn61UTMQVDf sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24979,7 +25328,7 @@ items: dynamic: false allowNull: false hidden: false - - id: m6feT5HWsrNtuELUTP3GRM + - id: fMBFeqVHqMphMfNMPUXjQr sortOrder: 2 fieldKey: device_id label: Device ID @@ -24995,7 +25344,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9kfD74Zpu2MdUBWmdp3K7q + - id: 6UaoCM3iYLE1EHXj5t36Wd sortOrder: 5 fieldKey: enable_batching label: Enable Batching @@ -25009,7 +25358,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tYsBaXcfg6WnEBmKpP2ksC + - id: rHgLoUUVzLf1N13HYk2vrU sortOrder: 6 fieldKey: personas_audience_key label: Segment Engage Audience Key @@ -25277,7 +25626,7 @@ items: label: Safari Website Push ID - name: sdkVersion type: select - defaultValue: '5.8' + defaultValue: '5.9' description: The version of the Braze SDK to use required: true label: SDK Version @@ -25327,7 +25676,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: stJYHuavLhjpZSbbtWnA9F + - id: f92vXJTVaJjwDn588aQyeR sortOrder: 0 fieldKey: eventName label: Event Name @@ -25341,7 +25690,7 @@ items: choices: null dynamic: false allowNull: false - - id: oqyLaWBRrKvgipb129suEp + - id: vA8tF8UQZcjyG7exFqJrrY sortOrder: 1 fieldKey: eventProperties label: Event Properties @@ -25363,7 +25712,7 @@ items: hidden: false defaultTrigger: type = "identify" or type = "group" fields: - - id: dxeRTvLWTwQDdN6fvK5VVo + - id: 2K44AKpPrHHghVemDKpUZ2 sortOrder: 0 fieldKey: external_id label: External User ID @@ -25377,7 +25726,7 @@ items: choices: null dynamic: false allowNull: false - - id: Vht76mw1WSQtpe4F2hq9y + - id: qm2M9pTGBJSxu4DTPN4un6 sortOrder: 1 fieldKey: country label: Country @@ -25391,7 +25740,7 @@ items: choices: null dynamic: false allowNull: true - - id: t2f6CUzpAgn5XxgJk1xNxu + - id: 978rhPL2GsARwfeJoogyM9 sortOrder: 2 fieldKey: current_location label: Current Location @@ -25403,7 +25752,7 @@ items: choices: null dynamic: false allowNull: true - - id: ggD55GKgXsecAwdSxmhdMi + - id: 3FZXECZLbDuhL9ZWeL57t9 sortOrder: 3 fieldKey: custom_attributes label: Custom Attributes @@ -25419,7 +25768,7 @@ items: choices: null dynamic: false allowNull: false - - id: uvVWeQxCMHz7TdwD7DnXuS + - id: p45RAM5tj3uyaxc3ZRJntW sortOrder: 4 fieldKey: dob label: Date of Birth @@ -25431,7 +25780,7 @@ items: choices: null dynamic: false allowNull: true - - id: edhysng2wqWHGcMTuKZxqe + - id: 6kBDzwyBdmbAo71Yt8FRQG sortOrder: 5 fieldKey: email label: Email @@ -25445,7 +25794,7 @@ items: choices: null dynamic: false allowNull: true - - id: rZx6KjpoUpFHR7t2Fmiq5n + - id: 7mU9GS9a5ubvLWq3hjQGQ6 sortOrder: 6 fieldKey: email_subscribe label: Email Subscribe @@ -25460,7 +25809,7 @@ items: choices: null dynamic: false allowNull: false - - id: idp8ibzUex7Q8NRoXjRFNt + - id: w96XkTF8HxoUxqmJz3xnxK sortOrder: 7 fieldKey: first_name label: First Name @@ -25474,7 +25823,7 @@ items: choices: null dynamic: false allowNull: true - - id: wJUxu5uqed8QwikHQGJPwr + - id: 7vrAjcj9dkEY1eEh26Nhsh sortOrder: 8 fieldKey: last_name label: Last Name @@ -25488,7 +25837,7 @@ items: choices: null dynamic: false allowNull: false - - id: AuoHPe9CaefQ4FPSxmfUB + - id: 7x88YefzmGo1nzf3Fqt5Qu sortOrder: 9 fieldKey: gender label: Gender @@ -25504,7 +25853,7 @@ items: choices: null dynamic: false allowNull: true - - id: qHDUBGmgkX88vWktNt83Yq + - id: gC7H4U6XrnWjG2nde2XT5Y sortOrder: 10 fieldKey: home_city label: Home City @@ -25518,7 +25867,7 @@ items: choices: null dynamic: false allowNull: true - - id: thsnNVbYj21rf1NS8iMBHA + - id: xwPdSH6XoyGh9PXjsnzDnt sortOrder: 11 fieldKey: image_url label: Image URL @@ -25532,7 +25881,7 @@ items: choices: null dynamic: false allowNull: false - - id: u3oVoEBu4cDAU5UoWTXaML + - id: 65TyJGPtxt8Cr79UAHZxeW sortOrder: 12 fieldKey: language label: Language @@ -25544,7 +25893,7 @@ items: choices: null dynamic: false allowNull: true - - id: uUv5TJoDTBXqw7RuQmAbky + - id: gU3CAT5bF9YeTHnYpsHuzL sortOrder: 13 fieldKey: phone label: Phone Number @@ -25558,7 +25907,7 @@ items: choices: null dynamic: false allowNull: true - - id: vPztZQqR8pmaBv8aqTr5q1 + - id: ngjspPzDDQoBAT1AM46ccA sortOrder: 14 fieldKey: push_subscribe label: Push Subscribe @@ -25573,7 +25922,7 @@ items: choices: null dynamic: false allowNull: false - - id: cQon4TDMCpkYVTpVvQHZtT + - id: 7CCWhwmkj8XYMZTVQD6LoU sortOrder: 15 fieldKey: subscription_groups label: Subscription Groups @@ -25598,7 +25947,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Order Completed" fields: - - id: 8ydScjmfB9212W6BD1D3id + - id: kqe3u3DdbRr5rNjXbvNRb9 sortOrder: 0 fieldKey: purchaseProperties label: Purchase Properties @@ -25618,7 +25967,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7DU4vc5BQoMQbfUBtFaLst + - id: uVjXaczgD5zGKgNB3pNyzc sortOrder: 1 fieldKey: products label: Products @@ -25633,14 +25982,6 @@ items: dynamic: false allowNull: false presets: - - actionId: uL67YU9rAsuT4cp4dNNmBu - name: Order Completed calls - fields: - purchaseProperties: - '@path': $.properties - products: - '@path': $.properties.products - trigger: type = "track" and event = "Order Completed" - actionId: fRZrfm4TC5JL3AGeRnLk3W name: Track Calls fields: @@ -25675,6 +26016,14 @@ items: subscription_groups: '@path': $.traits.braze_subscription_groups trigger: type = "identify" or type = "group" + - actionId: uL67YU9rAsuT4cp4dNNmBu + name: Order Completed calls + fields: + purchaseProperties: + '@path': $.properties + products: + '@path': $.properties.products + trigger: type = "track" and event = "Order Completed" partnerOwned: false - id: 6241e78214aad278a6322f52 display_name: Breyta CRM @@ -34972,28 +35321,26 @@ items: hidden: false presets: [] partnerOwned: true -- id: 682db61f6c600fdb90251392 - display_name: Eagle Eye (Actions) - name: Eagle Eye (Actions) - slug: eagle-eye-actions +- id: 6870f42bdaad87a11d764e91 + display_name: Eagle Eye + name: Eagle Eye + slug: eagle-eye hidden: false endpoints: - US regions: - us-west-2 - eu-west-1 - url: connections/destinations/catalog/eagle-eye-actions + url: connections/destinations/catalog/eagle-eye previous_names: - - Eagle Eye (Actions) - website: https://eagleeye.com/ + - Eagle Eye + website: http://www.segment.com status: PUBLIC_BETA - categories: - - Personalization - - Marketing Automation + categories: [] logo: - url: https://cdn-devcenter.segment.com/9ad0b782-15ac-4cec-83dc-21e2600d19b7.svg + url: https://cdn.filepicker.io/api/file/jrbUXsZDQ708akn3cVyZ mark: - url: https://cdn-devcenter.segment.com/71a5d53f-dab0-4ff8-a4c4-58d1fd840518.svg + url: https://cdn.filepicker.io/api/file/jrbUXsZDQ708akn3cVyZ methods: track: true identify: true @@ -35007,7 +35354,7 @@ items: server: true warehouse: false cloudAppObject: false - linkedAudiences: true + linkedAudiences: false components: [] browserUnbundlingSupported: false browserUnbundlingPublic: false @@ -35035,15 +35382,15 @@ items: required: true label: Connector External Key actions: - - id: SqLce3Uc3XxR9ycooEmV2 + - id: iHPP68PAPPypctEXL62Hrm name: Trigger Behavioral Action slug: triggerBehavioralAction description: Trigger behavioral actions in AIR based on tracked events platform: CLOUD hidden: false - defaultTrigger: type = "track" + defaultTrigger: type = "track" or type = "identify" fields: - - id: 73mf46ZxRXb1TG4aaDnbZz + - id: dVGYemvQ8FWEAAWn3wrFRE sortOrder: 0 fieldKey: identityValue label: User identity value @@ -35057,7 +35404,7 @@ items: choices: null dynamic: false allowNull: false - - id: p8BViqXrKD2XhcaJ6VCydo + - id: 2amJN8YQDshFHaeJi1CUHw sortOrder: 1 fieldKey: walletTransactionReference label: Wallet transaction reference @@ -35071,16 +35418,18 @@ items: choices: null dynamic: false allowNull: false - - id: 6kS7Fh9G35fxDcopSthNmW + - id: rtabdGqHL3eTEEQ1qarS8 sortOrder: 2 fieldKey: behavioralActionTriggerReferences label: Behavioral Action trigger reference type: STRING description: >- - Accepts a comma delimited list of reference strings for the Behavioral - Action to be executed. E.g.: A0001,P0001 + If connecting to an Engage Audience the default mapping should be left + as is. This field accepts a comma delimited list of reference strings + for the Behavioral Action to be executed. E.g.: A0001,P0001 placeholder: '' - defaultValue: '' + defaultValue: + '@path': $.context.personas.audience_settings.behavioralActionTriggerReferences required: true multiple: false choices: null @@ -44009,6 +44358,321 @@ items: actions: [] presets: [] partnerOwned: false +- id: 6683e1d5e37fd84efcf3bbef + display_name: First Party Dv360 + name: First Party Dv360 + slug: first-party-dv360 + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/first-party-dv360 + previous_names: + - First Party Dv360 + website: http://www.segment.com + status: PUBLIC_BETA + categories: [] + logo: + url: https://cdn-devcenter.segment.com/da053d87-a568-4bae-827f-857f7f4b2aba.svg + mark: + url: https://cdn-devcenter.segment.com/31811060-3f10-46b0-94de-bf299beb94a4.svg + methods: + track: true + identify: false + group: false + alias: false + screen: false + page: false + platforms: + browser: true + mobile: false + server: true + warehouse: false + cloudAppObject: false + linkedAudiences: 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: [] + actions: + - id: pMRu4ozQwh3SzjYycCzDfn + name: Add to List + slug: addToList + description: Adds to list + platform: CLOUD + hidden: true + defaultTrigger: null + fields: [] + - id: kjEdc2dNCshXomx9VDnp9 + name: Remove Customer Match Members - Mobile Device Id List + slug: removeFromAudMobileDeviceId + description: >- + Remove customer match members in Google Display & Video 360 Mobile Device + Id List Audience. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Entered" + fields: + - id: uT3Uxyik2BSKqGb1QuTPoj + sortOrder: 0 + fieldKey: mobileDeviceIds + label: Mobile Device IDs + type: STRING + description: >- + A list of mobile device IDs defining Customer Match audience members. + The size of mobileDeviceIds mustn't be greater than 500,000. + placeholder: '' + defaultValue: + '@path': $.context.traits.mobileDeviceIds + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: texVBBbJ5ZvG5eBR49wLoL + name: Edit Customer Match Members - Mobile Device Id List + slug: addToAudMobileDeviceId + description: >- + Add or update customer match members in Google Display & Video 360 Mobile + Device Id List Audience. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Entered" + fields: + - id: dzEWPLsY9RCMeZXPs84FcJ + sortOrder: 0 + fieldKey: mobileDeviceIds + label: Mobile Device IDs + type: STRING + description: >- + A list of mobile device IDs defining Customer Match audience members. + The size of mobileDeviceIds mustn't be greater than 500,000. + placeholder: '' + defaultValue: + '@path': $.context.traits.mobileDeviceIds + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: u4XdrL4XCgThQLiwKZKC7e + name: Edit Customer Match Members - Contact Info List + slug: addToAudContactInfo + description: >- + Add or update customer match members in Google Display & Video 360 Contact + Info List Audience. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Entered" + fields: + - id: 9v6BVoLkJsYA7WBp7CFv1 + sortOrder: 0 + fieldKey: emails + label: Emails + type: STRING + description: >- + A list of the user's emails. If not already hashed, the system will hash + them before use. If not hashed, Segment will hash this value. + placeholder: '' + defaultValue: + '@path': $.context.traits.emails + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: nRkBkcGCPh3CkMhXRfpUo9 + sortOrder: 1 + fieldKey: phoneNumbers + label: Phone Numbers + type: STRING + description: >- + A list of the user's phone numbers. If not already hashed, the system + will hash them before use. If not hashed, Segment will hash this value. + placeholder: '' + defaultValue: + '@path': $.context.traits.phoneNumbers + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: iKhX1uinTtH1h3U4Dm4gaq + sortOrder: 2 + fieldKey: zipCodes + label: ZIP Codes + type: STRING + description: A list of the user's zip codes. + placeholder: '' + defaultValue: + '@path': $.context.traits.zipCodes + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mUVtit9CqM9CjbQBnEUuze + sortOrder: 3 + fieldKey: firstName + label: First Name + type: STRING + description: >- + The user's first name. If not already hashed, the system will hash it + before use. If not hashed, Segment will hash this value. + placeholder: '' + defaultValue: + '@path': $.context.traits.firstName + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: m6UJjUoLKDQK9CgLw8boAR + sortOrder: 4 + fieldKey: lastName + label: Last Name + type: STRING + description: >- + The user's last name. If not already hashed, the system will hash it + before use. If not hashed, Segment will hash this value. + placeholder: '' + defaultValue: + '@path': $.context.traits.lastName + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hDb93iDZswBJELhLyvyd4W + sortOrder: 5 + fieldKey: countryCode + label: Country Code + type: STRING + description: The country code of the user. + placeholder: '' + defaultValue: + '@path': $.context.traits..countryCode + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: vykfWPGTjXpdHZiaaSUYRC + name: Remove Customer Match Members - Contact Info List + slug: removeFromAudContactInfo + description: >- + Remove customer match members in Google Display & Video 360 Contact Info + List Audience. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Exited" + fields: + - id: 8a2YMuRfDVjc7pM2PtNk6B + sortOrder: 0 + fieldKey: emails + label: Emails + type: STRING + description: >- + A list of the user's emails. If not already hashed, the system will hash + them before use. If not hashed, Segment will hash this value. + placeholder: '' + defaultValue: + '@path': $.context.traits.emails + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bwznBSaBAELeAituYtxp18 + sortOrder: 1 + fieldKey: phoneNumbers + label: Phone Numbers + type: STRING + description: >- + A list of the user's phone numbers. If not already hashed, the system + will hash them before use. If not hashed, Segment will hash this value. + placeholder: '' + defaultValue: + '@path': $.context.traits.phoneNumbers + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: xk7JHGRNKm8MWqg5L3TFF1 + sortOrder: 2 + fieldKey: zipCodes + label: ZIP Codes + type: STRING + description: A list of the user's zip codes. + placeholder: '' + defaultValue: + '@path': $.context.traits.zipCodes + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: htaHz7759wvmzUeg4L7KjZ + sortOrder: 3 + fieldKey: firstName + label: First Name + type: STRING + description: >- + The user's first name. If not already hashed, the system will hash it + before use. If not hashed, Segment will hash this value. + placeholder: '' + defaultValue: + '@path': $.context.traits.firstName + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 9y9rrfjVMxHdPAkQbmGCd9 + sortOrder: 4 + fieldKey: lastName + label: Last Name + type: STRING + description: >- + The user's last name. If not already hashed, the system will hash it + before use. If not hashed, Segment will hash this value. + placeholder: '' + defaultValue: + '@path': $.context.traits.lastName + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: s9oBRJpFD1EC1LpoZSC7NS + sortOrder: 5 + fieldKey: countryCode + label: Country Code + type: STRING + description: The country code of the user. + placeholder: '' + defaultValue: + '@path': $.context.traits..countryCode + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: [] + partnerOwned: false - id: 66048cbafa5a03fc49b153d3 display_name: FL0 name: FL0 @@ -113046,68 +113710,229 @@ items: description: The name of the database. required: true label: Database Name - - name: environment - type: select - defaultValue: Prod - description: The environment of the Singlestore database. - required: true - label: Environment - name: host type: string defaultValue: '' - description: The host of the Singlestore database. + description: The host of the SingleStore database. required: true label: Host - name: password type: password defaultValue: '' - description: The password of the Singlestore database. + description: The password of the SingleStore database. required: true label: Password - name: port - type: number - defaultValue: 3306 - description: The port of the Singlestore database. - required: true + type: string + defaultValue: '443' + description: The port of the SingleStore Data API. Defaults to 443. + required: false label: Port + - name: tableName + type: string + defaultValue: segment_data + description: The name of the table. Defaults to "segment_data". + required: true + label: Table Name - name: username type: string defaultValue: '' - description: The username of the Singlestore database. + description: The username of the SingleStore database. required: true label: Username actions: - id: xxgUnx4BHqGLDYCJ4TiWPW name: Send Data slug: send - description: Send data to Singlestore. + description: Send data to SingleStore. platform: CLOUD hidden: false defaultTrigger: >- type = "track" or type = "screen" or type = "identify" or type = "page" or type = "group" or type = "alias" fields: - - id: o4FSHmgGNDZjGayk4VpDqK + - id: a5ZvQfU1YXkA8MfLaf3sfP sortOrder: 0 - fieldKey: database - label: Database + fieldKey: messageid + label: Message ID type: STRING - description: The name of the SingleStore database to send data to. + description: A unique identifier for the message. placeholder: '' + defaultValue: + '@path': $.messageId required: true multiple: false choices: null - dynamic: true + dynamic: false allowNull: false - - id: pV6xn9yXzxddMKs6EU2Ps2 + - id: 3BVWwK4SMjpRnUHYUouz69 sortOrder: 1 - fieldKey: message - label: Message + fieldKey: timestamp + label: Timestamp + type: STRING + description: The timestamp of the event. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mQgrdtbnzK5sNMSCUuLygR + sortOrder: 2 + fieldKey: type + label: Type + type: STRING + description: >- + The type of the event (e.g., "track", "identify", "page", "screen", + "group", "alias"). + placeholder: '' + defaultValue: + '@path': $.type + required: true + multiple: false + choices: + - label: Track + value: track + - label: Identify + value: identify + - label: Page + value: page + - label: Screen + value: screen + - label: Group + value: group + - label: Alias + value: alias + dynamic: false + allowNull: false + - id: 7mFY291pmMxDqmWNKyLLkq + sortOrder: 3 + fieldKey: event + label: Event + type: STRING + description: The name of the event. Only required for "track" events. + placeholder: '' + defaultValue: + '@path': $.event + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ddEXdVCGrKwcLemnCkFPfM + sortOrder: 4 + fieldKey: name + label: Name + type: STRING + description: The name of the page or screen. + placeholder: '' + defaultValue: + '@path': $.name + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 4wukbEG4un3GRUgFtxbvBt + sortOrder: 5 + fieldKey: properties + label: Properties type: OBJECT - description: The complete event payload. + description: The properties of the track, page or screen event. placeholder: '' defaultValue: - '@path': $. + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: uwD7zYDRH6YVP6G26Q78Jf + sortOrder: 6 + fieldKey: userId + label: User ID + type: STRING + description: The user ID associated with the event. + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: q6GPT1YEM3kUgJdHiztGBX + sortOrder: 7 + fieldKey: anonymousId + label: Anonymous ID + type: STRING + description: The anonymous ID associated with the event. + placeholder: '' + defaultValue: + '@path': $.anonymousId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: MkEAKUcUMTejRHc8dYMDK + sortOrder: 8 + fieldKey: groupId + label: Group ID + type: STRING + description: The group ID associated with the event. + placeholder: '' + defaultValue: + '@path': $.groupId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bBSrBLYBuEWKU9fQfEeSPR + sortOrder: 9 + fieldKey: traits + label: Traits + type: OBJECT + description: The traits of the user associated with the event. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.context.traits + then: + '@path': $.context.traits + else: + '@path': $.traits + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: i2gP8GAgYK4yqETJhs53Lb + sortOrder: 10 + fieldKey: context + label: Context + type: OBJECT + description: The context of the event. Contains user environment information. + placeholder: '' + defaultValue: + '@path': $.context + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: nndrTZhnnrQPm4YSZjbkTw + sortOrder: 11 + fieldKey: max_batch_size + label: Max Batch Size + type: NUMBER + description: The maximum number of rows to include in a batch. + placeholder: '' + defaultValue: 100 required: true multiple: false choices: null diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 43df3f3dfa..4818d3c271 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 2025-07-10 +# destination data last updated 2025-07-17 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 595bb73691..d635bb5a91 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 2025-07-10 +# source categories last updated 2025-07-17 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 a08d455fe8..e4d245ce78 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 2025-07-10 +# sources last updated 2025-07-17 items: - id: 8HWbgPTt3k display_name: .NET From 7a8f2220134f0fc1e740c17375ebbf85a0140af5 Mon Sep 17 00:00:00 2001 From: Pedro Mordente Date: Thu, 17 Jul 2025 18:22:16 -0300 Subject: [PATCH 326/438] feat: add roadwayai destination docs --- .../catalog/roadway-actions/index.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/connections/destinations/catalog/roadway-actions/index.md diff --git a/src/connections/destinations/catalog/roadway-actions/index.md b/src/connections/destinations/catalog/roadway-actions/index.md new file mode 100644 index 0000000000..773a7e24be --- /dev/null +++ b/src/connections/destinations/catalog/roadway-actions/index.md @@ -0,0 +1,18 @@ +--- +title: Roadway (Actions) Destination +--- + +{% include content/plan-grid.md name="actions" %} + +[Roadway](https://roadwayai.com/){:target="_blank"} is AI built for growth marketers, operating from marketing attribution from your source-of-truth data sources. Roadway ingests and organizes your visit, user, and billing data to provide end-to-end attribution and AI automation. + +This destination is maintained by Roadway. For any issues with the destination, [contact their Support team](mailto:contact@roadwayai.com). + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"} search for "Roadway". +2. Select Roadway and click **Add Destination**. +3. Select an existing Source to connect to Roadway. +4. Go to the [Roadway dashboard](https://app.roadwayai.com/){:target="_blank"}, navigate to your onboarding workspace, go to the **Connect data** step, and find Segment. Generate a workspace API key from there. +5. Enter the **API Key** in the Roadway destination settings in Segment. + From e5a2147782ae54f1524c989e29547cff10110a15 Mon Sep 17 00:00:00 2001 From: Harsh Joshi Date: Fri, 18 Jul 2025 11:45:44 +0530 Subject: [PATCH 327/438] Add warning that hashing detection applies only to action-destinations --- src/connections/destinations/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/connections/destinations/index.md b/src/connections/destinations/index.md index fea7094e95..88d784be3d 100644 --- a/src/connections/destinations/index.md +++ b/src/connections/destinations/index.md @@ -227,6 +227,9 @@ Segment supports these 2 types of data for hashing: * **Plain text data:** When you send plain text values to destinations that require hashed values, Segment automatically normalizes and hashes these values. * **Pre-hashed data:** If you already hash your data before sending it to Segment, Segment is able to detect that the data is hashed, and will pass your pre-hashed data directly to the destination, avoiding double-hashing. +> warning "" +> The hashing detection feature applies only to **Action Destinations**. + > info "" > If you choose to hash data yourself, ensure you follow each destination's specific hashing requirements. Fields that support automatic hashing detection will display a tooltip indicating *"If not hashed, Segment will hash this value."* From 355d39765f9fcb55b570bbb801ef9c66d3610afb Mon Sep 17 00:00:00 2001 From: Joe Ayoub Date: Fri, 18 Jul 2025 08:44:27 +0100 Subject: [PATCH 328/438] Correcting slug for Aampe Actions Destination --- src/_data/catalog/destinations.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml index af0364d1ba..79e7f3c196 100644 --- a/src/_data/catalog/destinations.yml +++ b/src/_data/catalog/destinations.yml @@ -458,14 +458,14 @@ items: - id: 6874c64e5eda096bf3850ee0 display_name: Aampe (Actions) name: Aampe (Actions) - slug: aampe-actions + slug: actions-aampe hidden: false endpoints: - US regions: - us-west-2 - eu-west-1 - url: connections/destinations/catalog/aampe-actions + url: connections/destinations/catalog/actions-aampe previous_names: - Aampe (Actions) website: https://aampe.com/ From 799730f1a6e03b29609bebaedfeaa24c28281951 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 18 Jul 2025 07:05:08 -0400 Subject: [PATCH 329/438] Update slugs.yml --- src/_data/catalog/slugs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/_data/catalog/slugs.yml b/src/_data/catalog/slugs.yml index 0403ffa935..2edea25473 100644 --- a/src/_data/catalog/slugs.yml +++ b/src/_data/catalog/slugs.yml @@ -327,4 +327,6 @@ destinations: override: "actions-topsort" - original: "ortto-actions" override: "actions-ortto" + - original: "aampe-actions" + override: "actions-aampe" From 72a32d1d76073d71d89b96e8cb2672e26bad71ac Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 18 Jul 2025 08:09:28 -0400 Subject: [PATCH 330/438] Update src/connections/destinations/catalog/actions-reddit-pixel/index.md --- .../destinations/catalog/actions-reddit-pixel/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-reddit-pixel/index.md b/src/connections/destinations/catalog/actions-reddit-pixel/index.md index c911f76b56..298e875653 100644 --- a/src/connections/destinations/catalog/actions-reddit-pixel/index.md +++ b/src/connections/destinations/catalog/actions-reddit-pixel/index.md @@ -1,7 +1,6 @@ --- title: Reddit Pixel id: 68383577d2c19626da376944 -private: true beta: true --- From f51b114f3461bd4d01a597560d9f44b4f2f14ac2 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 18 Jul 2025 11:41:57 -0400 Subject: [PATCH 331/438] Add callout about external_id casing --- src/unify/profile-api.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/unify/profile-api.md b/src/unify/profile-api.md index 527d648e14..06f86264f0 100644 --- a/src/unify/profile-api.md +++ b/src/unify/profile-api.md @@ -59,10 +59,13 @@ Your access token enables you to call the Profile API and access customer data. > To query phone numbers that contain a plus sign (`+`), insert the escape characters `%2B` in place of the plus sign. > For example, if a `phone_number` identifier has the value `+5555550123`, enter `phone_number:%2B5555550123` in your query. > -> If the field you're using within the Profile API endpoint contains a value with a non-alphanumeric character, then the Profile API may respond with `500` error. In this case, see [W3's ASCII Encoding Refernece](https://www.w3schools.com/tags/ref_urlencode.ASP#:~:text=ASCII%20Encoding%20Reference,%25C3%25BF){:target="_blank"}, which lists the escape characters you can use to replace the non-alphanumeric character in the Profile API endpoint so that the Profile API will respond with a `200 Success`. +> If the field you're using within the Profile API endpoint contains a value with a non-alphanumeric character, then the Profile API may respond with `500` error. In this case, see [W3's ASCII Encoding Reference](https://www.w3schools.com/tags/ref_urlencode.ASP#:~:text=ASCII%20Encoding%20Reference,%25C3%25BF){:target="_blank"}, which lists the escape characters you can use to replace the non-alphanumeric character in the Profile API endpoint so that the Profile API will respond with a `200 Success`. ### Query the user's event traits +> info "Make Profile API queries using a lowercase external_id" +> Queries with an `external_id` in other casing won't return any profiles. + 1. From the HTTP API testing application of your choice, configure the authentication as described above. 2. Identify the user’s external ID. - The Profile API requires both the ID type and value, separated by a colon (like `anonymous_id:eml_3bca54b7fe7491add4c8d5d4d9bf6b3e085c6092`). Learn more in [Find a user's external ID](#find-a-users-external-id). From 3332b5d3f00d9c518a1a6ca9ae61c372425f7e95 Mon Sep 17 00:00:00 2001 From: Pedro Mordente <1693841+mordente@users.noreply.github.com> Date: Fri, 18 Jul 2025 14:21:46 -0300 Subject: [PATCH 332/438] Update src/connections/destinations/catalog/roadway-actions/index.md Co-authored-by: Sharon Adewusi --- src/connections/destinations/catalog/roadway-actions/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/roadway-actions/index.md b/src/connections/destinations/catalog/roadway-actions/index.md index 773a7e24be..0e49a7e67a 100644 --- a/src/connections/destinations/catalog/roadway-actions/index.md +++ b/src/connections/destinations/catalog/roadway-actions/index.md @@ -1,5 +1,7 @@ --- title: Roadway (Actions) Destination +id: 68516bd8ca73bd53f38a0104 +beta: true --- {% include content/plan-grid.md name="actions" %} From 7a5e62eacd43e3627cee2906fa7e60b137153ee7 Mon Sep 17 00:00:00 2001 From: Pedro Mordente <1693841+mordente@users.noreply.github.com> Date: Fri, 18 Jul 2025 14:21:57 -0300 Subject: [PATCH 333/438] Update src/connections/destinations/catalog/roadway-actions/index.md Co-authored-by: Sharon Adewusi --- src/connections/destinations/catalog/roadway-actions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/roadway-actions/index.md b/src/connections/destinations/catalog/roadway-actions/index.md index 0e49a7e67a..6dfb3ece8c 100644 --- a/src/connections/destinations/catalog/roadway-actions/index.md +++ b/src/connections/destinations/catalog/roadway-actions/index.md @@ -8,7 +8,7 @@ beta: true [Roadway](https://roadwayai.com/){:target="_blank"} is AI built for growth marketers, operating from marketing attribution from your source-of-truth data sources. Roadway ingests and organizes your visit, user, and billing data to provide end-to-end attribution and AI automation. -This destination is maintained by Roadway. For any issues with the destination, [contact their Support team](mailto:contact@roadwayai.com). +This destination is maintained by Roadway. For any issues with the destination, [contact the Roadway Support team](mailto:contact@roadwayai.com){:target="_blank"}. ## Getting started From 3b41a661dec39dca365594a47fd0a8453b4b279c Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Fri, 18 Jul 2025 13:40:03 -0700 Subject: [PATCH 334/438] Update linked-audiences-limits.md --- src/engage/audiences/linked-audiences-limits.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engage/audiences/linked-audiences-limits.md b/src/engage/audiences/linked-audiences-limits.md index 23a26a1622..e984b60b77 100644 --- a/src/engage/audiences/linked-audiences-limits.md +++ b/src/engage/audiences/linked-audiences-limits.md @@ -29,7 +29,7 @@ If you have a non-standard or high volume usage plan, you have unique Linked Aud Name | Limit | Details ---- | ----- | -------- -RETL row limit | 150 million | The audience compute fails if the total output exceeds the limit. +RETL row limit | 150 million | The audience compute fails if the total output exceeds the limit. This limit is approximately the sum of the total linked audience profile membership count and the total number of entity relationships for the profiles in the audience. RETL column limit | 500 columns | The audience compute fails if the number of columns exceeds the limit. Global concurrent audience runs | 5 total within any given space | New audience runs are queued once the limit is reached and will start execution once prior audience runs complete. If you need a higher global concurrent audience runs limit, contact [friends@segment.com](mailto:friends@segment.com){:target="_blank"}. Event Size | 32 KB | Segment doesn’t emit messages for profiles whose total related entities and enrichments exceed the limit. @@ -56,4 +56,4 @@ To improve performance and manage compute costs, follow these best practices: - Run on a dedicated warehouse cluster if you're operating at enterprise scale. - Stagger audience sync schedules to reduce concurrency and avoid bottlenecks. -Following this guidance will help you keep audience syncs running efficiently even as your scale grows. \ No newline at end of file +Following this guidance will help you keep audience syncs running efficiently even as your scale grows. From b03e2fe9a11ab691d4c94fd583269377d8cf638c Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Tue, 22 Jul 2025 10:27:26 -0400 Subject: [PATCH 335/438] add link to twilio account deletion docs --- src/segment-app/iam/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/segment-app/iam/index.md b/src/segment-app/iam/index.md index f9c7f0b2a4..301569720f 100644 --- a/src/segment-app/iam/index.md +++ b/src/segment-app/iam/index.md @@ -19,6 +19,8 @@ You can select a user in the table to see their [roles](/docs/segment-app/iam/ro With Twilio Unified Login, Twilio users can use their Twilio email, password, and authentication settings to access several Twilio products, including Twilio Messaging, SendGrid, and Segment. You can also use Sign up With Google to create your Twilio account. Once you link your Segment account to your Twilio credentials, you can access Segment directly from the Twilio console using the [Twilio Product Switcher](#twilio-product-switcher). +To delete your Twilio Unified Login account, refer to [How to Close My Twilio Account and Refund the Balance](https://help.twilio.com/articles/223183548){:target="_blank”} + ### Twilio Sign Up Segment invitations and sign ups that are redirected to Twilio's sign up page must adhere to Twilio's [minimum password and 2FA requirements](https://help.twilio.com/articles/115012261968){:target="_blank”}. To learn more, view Twilio's [Account Management](https://support.twilio.com/hc/en-us/sections/205104908-Account-Management?_gl=1*1xa50pg*_ga*OTUyMjQ4OTU5LjE2NjM2ODQzMDE.*_ga_3JKYB4GBBY*MTcwNzc2ODE1OC4xNDkuMS4xNzA3NzY4MjUzLjAuMC4w){:target="_blank”} documentation. @@ -45,6 +47,7 @@ Segment continues to support [SSO](/docs/segment-app/iam/sso/) and SCIM, as user - [Update a team member's access](/docs/segment-app/iam/membership#change-a-team-members-access) - [Remove a team member from a workspace](/docs/segment-app/iam/membership/#remove-a-team-member-from-your-workspace) - [Add a new user with Single Sign On](/docs/segment-app/iam/membership/#team-management-with-single-sign-on) +- [Delete Twilio Unified Login](https://help.twilio.com/articles/223183548){:target="_blank”}

      {% include components/reference-button.html href="/segment-app/iam/membership/" icon="media/academy.svg" title="Invite and manage workspace members" description="Learn how to add members to your workspace, and manage their permissions." variant="related" %} From e726f794a50122dac0fe2a8675358ab487fdbf8c Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:21:46 -0400 Subject: [PATCH 336/438] Update src/segment-app/iam/index.md Co-authored-by: Sharon Adewusi --- src/segment-app/iam/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/segment-app/iam/index.md b/src/segment-app/iam/index.md index 301569720f..9699950014 100644 --- a/src/segment-app/iam/index.md +++ b/src/segment-app/iam/index.md @@ -19,7 +19,7 @@ You can select a user in the table to see their [roles](/docs/segment-app/iam/ro With Twilio Unified Login, Twilio users can use their Twilio email, password, and authentication settings to access several Twilio products, including Twilio Messaging, SendGrid, and Segment. You can also use Sign up With Google to create your Twilio account. Once you link your Segment account to your Twilio credentials, you can access Segment directly from the Twilio console using the [Twilio Product Switcher](#twilio-product-switcher). -To delete your Twilio Unified Login account, refer to [How to Close My Twilio Account and Refund the Balance](https://help.twilio.com/articles/223183548){:target="_blank”} +To delete your Twilio Unified Login account, refer to [How to Close My Twilio Account and Refund the Balance](https://help.twilio.com/articles/223183548){:target="_blank”}. ### Twilio Sign Up From 99e0e33df167721482a258dced9b841374afc0d9 Mon Sep 17 00:00:00 2001 From: pwseg Date: Tue, 22 Jul 2025 13:39:40 -0700 Subject: [PATCH 337/438] fix dbt sync table [netlify-build] --- src/segment-app/extensions/dbt.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/segment-app/extensions/dbt.md b/src/segment-app/extensions/dbt.md index 4d338ebd97..5c3729b300 100644 --- a/src/segment-app/extensions/dbt.md +++ b/src/segment-app/extensions/dbt.md @@ -112,7 +112,7 @@ To enable CI Checks, authorize a GitHub App credential for your Git connection. The following table lists common dbt Extension errors, as well as their solutions: -| Error | Error message | Solution | -| ----------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Failed sync | `Sync Failed: Incorrect dbt Project File Path: dbt project file not found` | Verify that the path to your `dbt_project.yml` file is relative to the repository root, excluding the root branch.
      For example, use `project/dbt_project.yml` instead of `main/project/dbt_project.yml`. | -| Failed sync | `Sync Failed: remote: Write access to repository not granted` | Verify that the account associated with the token has a write role in the repository settings. Fine-grained tokens may require specific roles, depending on your Git provider. | +| Error | Error message | Solution | +| ----------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Failed sync | Sync Failed: Incorrect dbt Project File Path: dbt project file not found | Verify that the path to your `dbt_project.yml` file is relative to the repository root, excluding the root branch.
      For example, use `project/dbt_project.yml` instead of `main/project/dbt_project.yml`. | +| Failed sync | Sync Failed: remote: Write access to repository not granted | Verify that the account associated with the token has a write role in the repository settings. Fine-grained tokens may require specific roles, depending on your Git provider. | From e2a56f88397d3e3bcb5d78609ef6791c640bbcfc Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:51:18 +0100 Subject: [PATCH 338/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index c6c4b1691b..3acead0a8a 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -7,7 +7,7 @@ The Destination Actions framework improves on classic destinations by enabling y You can also choose which event types, event names, or event property values trigger an Action. These Triggers and Mappings make it possible to send different versions of the Action, depending on the context from which it is triggered. -Each Actions-framework Destination you see in the Segment catalog represents a feature or capability of the destination which can consume data from your Segment source. The Action clearly lists which data from the events it requires and which data is optional. For example, [Amplitude](/docs/connections/destinations/catalog/actions-amplitude) requires that you always send a `LogEvent` and [Slack](/docs/connections/destinations/catalog/actions-slack) always requires a `PostMessage`. Each Action also includes a default mapping which you can modify. +Each Actions-framework Destination you see in the Segment catalog represents a feature or capability of the destination which can consume data from your Segment source. The Action clearly lists which data from the events is required and which is optional. For example, [Amplitude](/docs/connections/destinations/catalog/actions-amplitude) requires that you always send a `LogEvent` and [Slack](/docs/connections/destinations/catalog/actions-slack) always requires a `PostMessage`. Each Action also includes a default mapping which you can modify. ## Benefits of Destination Actions From c91ac04c36b8da8d3817ba83f8c3d841fb9b9799 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:51:32 +0100 Subject: [PATCH 339/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 3acead0a8a..c4dec8db95 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -13,7 +13,7 @@ Each Actions-framework Destination you see in the Segment catalog represents a f The advantages of using Destination Actions include: -- **Easier setup**: Fewer initial settings which can decrease the time spent configuring the destination. +- **Easier setup**: Destination Actions have fewer initial settings, which can decrease the time spent configuring the destination. - **Increased transparency**: You can see the exact data that is sent to the destination and when Segment sends it. For example, users can see exactly when Segment sends an IP address to [FullStory](https://www.fullstory.com/){:target="_blank"} or an AnonymousId to Amplitude. - **Improved customization**: You can determine which events from your sources trigger actions, and map the events to destination-supported actions. For example, you can define exactly which events are considered purchases by [Braze](https://www.braze.com/){:target="_blank"}. - **Partner ownership**: Partners can own and contribute to any Actions-based destination that use cloud and device mode (web). From 01d48c575c90544e859ef782cefa130ddda5497a Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:51:45 +0100 Subject: [PATCH 340/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index c4dec8db95..fa07247259 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -14,7 +14,7 @@ Each Actions-framework Destination you see in the Segment catalog represents a f The advantages of using Destination Actions include: - **Easier setup**: Destination Actions have fewer initial settings, which can decrease the time spent configuring the destination. -- **Increased transparency**: You can see the exact data that is sent to the destination and when Segment sends it. For example, users can see exactly when Segment sends an IP address to [FullStory](https://www.fullstory.com/){:target="_blank"} or an AnonymousId to Amplitude. +- **Increased transparency**: You can see the exact data that is sent to the destination and when Segment sends it. For example, users can see exactly when Segment sends an IP address to [FullStory](https://www.fullstory.com/){:target="_blank"} or an AnonymousId to [Amplitude](https://amplitude.com/){:target="_blank"}. - **Improved customization**: You can determine which events from your sources trigger actions, and map the events to destination-supported actions. For example, you can define exactly which events are considered purchases by [Braze](https://www.braze.com/){:target="_blank"}. - **Partner ownership**: Partners can own and contribute to any Actions-based destination that use cloud and device mode (web). From 986e5876fa40c878ed592178587802db3d7fc878 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:52:06 +0100 Subject: [PATCH 341/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index fa07247259..d5b7165370 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -16,7 +16,7 @@ The advantages of using Destination Actions include: - **Easier setup**: Destination Actions have fewer initial settings, which can decrease the time spent configuring the destination. - **Increased transparency**: You can see the exact data that is sent to the destination and when Segment sends it. For example, users can see exactly when Segment sends an IP address to [FullStory](https://www.fullstory.com/){:target="_blank"} or an AnonymousId to [Amplitude](https://amplitude.com/){:target="_blank"}. - **Improved customization**: You can determine which events from your sources trigger actions, and map the events to destination-supported actions. For example, you can define exactly which events are considered purchases by [Braze](https://www.braze.com/){:target="_blank"}. -- **Partner ownership**: Partners can own and contribute to any Actions-based destination that use cloud and device mode (web). +- **Partner ownership**: Partners can own and contribute to any Actions-based destination that uses [cloud or device (web) connection modes](/docs/connections/destinations/#connection-modes). ## Available Actions-based Destinations From e174e38a84fbeff0b7411ef98cbddd7cbc55c044 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:52:50 +0100 Subject: [PATCH 342/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index d5b7165370..6e836d6c21 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -32,7 +32,7 @@ Destination Actions are available to all customers on all Segment plans. You do - You can use the [Event Tester](/docs/connections/test-connections) with Destination Actions. Event delivery metrics are collected and available in the destination information pages. - If you are using [Protocols](/docs/protocols/), Destination Actions actions are applied **after** [schema filters](/docs/protocols/enforce/schema-configuration/) and [transformations](/docs/protocols/transform/). - If you are using [Destination Filters](/docs/connections/destinations/destination-filters/), Actions are applied after the filters. They are not applied to data that is filtered out. -- Destination Actions can not be accessed or modified using the Segment APIs yet. +- Destination Actions can't be accessed or modified using the Segment APIs. ## Components of a Destination Action From 0bdfa8f8ad0a41ef02ec7ecc0c14cd5e76fbb4ce Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:53:22 +0100 Subject: [PATCH 343/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 6e836d6c21..b6cbd8d818 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -73,7 +73,7 @@ Moving from a classic destination to an actions-based destination is a manual pr 1. Create the actions-based destination with your development or test source. 2. Copy API keys, connection details, and other settings from the classic destination to the actions-based destination. 3. Refer to the actions-based destination's documentation for information about how to migrate specific settings. -4. Disable the classic version of the destinatio and enable the actions-based version. +4. Disable the classic version of the destination and enable the actions-based version. 5. Verify that data is flowing from the development or test source to the partner tool. 6. Repeat steps 1-5 with your production source. From 0399d7dce9e86c7415f130d5c552cbbded040317 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:53:40 +0100 Subject: [PATCH 344/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index b6cbd8d818..18512294c5 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -80,7 +80,7 @@ Moving from a classic destination to an actions-based destination is a manual pr ### Migrate your destination filters from the classic destination to the actions destination > warning "" -> You can only migrate your destination filters using the Public API if you are on the Segment Business Tier plan. This functionality isn't available in the Segment app. +> You can only migrate your destination filters using the Public API if you're on the Segment Business Tier plan. This functionality isn't available in the Segment app. To migrate your destination filters to your actions destination from the classic destination: 1. Send a request to the Public API endpoint. From f9e9f2175e75496824997bfff46e01e0b2f1de88 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:54:02 +0100 Subject: [PATCH 345/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 18512294c5..e93b89105b 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -344,5 +344,5 @@ Each event must include all of the data you'd like to send downstream. For examp #### Why do I get a "Couldn't load page" error when viewing or editing a mapping? This error might occur due to a browser cache conflict or if an event property name includes a `/` character. To fix this: -- Try clearing your browser cache or opening the mapping page in an incognito/ private window. +- Try clearing your browser cache or opening the mapping page in an incognito or private window. - Check whether the mapped property name contains a `/`. If it does, rename the property to remove the `/` and update the mapping. From 37ff46ba0617bba299e99512ef30a237ea7175b7 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:55:25 +0100 Subject: [PATCH 346/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index e93b89105b..dbbb94cef4 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -98,7 +98,7 @@ This approach involves configuring a destination filter on both the Classic and 1. Configure the classic destination filter to block events by the `received_at` field with a certain value. 2. Set up the Actions destination to drop events until the `received_at` timestamp field reaches that same value. -While Destination Filters within the UI cannot access any top-level fields, such as `received_at`, this is not a limitation for [Destination Filters](https://docs.segmentapis.com/tag/Destination-Filters/){:target="_blank”} created by the [Public API](/docs/api/public-api/) using [Filter Query Language (FQL)](/docs/api/public-api/fql/). Since `received_at` is a top-level field in the payload, you need to create a destination filter with the Public API and submit the request with that FQL information described below. +While Destination Filters within the UI cannot access any top-level fields, like `received_at`, this is not a limitation for [Destination Filters](https://docs.segmentapis.com/tag/Destination-Filters/){:target="_blank”} created by the [Public API](/docs/api/public-api/) using [Filter Query Language (FQL)](/docs/api/public-api/fql/). Since `received_at` is a top-level field in the payload, you need to create a destination filter with the Public API and submit the request with that FQL information described below. By combining these Filters, Segment sends events through the Classic integration up until a specified time and then blocks events after that. The Actions integration then blocks events until that specified time and only allows events beginning at that specified time. From 96f57a4e193b126843cca12bb1554fd83e52663c Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:55:45 +0100 Subject: [PATCH 347/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index dbbb94cef4..d23287ca4a 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -151,7 +151,7 @@ From the edit screen you can change the action's name and mapping, and toggle it ![Screenshot of the Mappings table with several enabled mappings](images/actions-list.png) -When an Action is created, it is disabled by default. This ensures that it's only used after being fully configured. To begin sending data through an Action, enable it on the Actions page by clicking the toggle so that it appears blue. +When an Action is created, it's disabled by default. This ensures that it's only used after being fully configured. To begin sending data through an Action, enable it on the Actions page by clicking the toggle so that it appears blue. ## Disable a destination action If you find that you need to stop an action from running, but don't want to delete it completely, you can select the action and click the toggle next to the action's name to disable it. This takes effect within minutes, and disables the action until you re-enable it. From c119f09a1a6c9fbf92b6bcba3854440d3002677f Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:56:38 +0100 Subject: [PATCH 348/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index d23287ca4a..4afa5628c0 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -162,7 +162,7 @@ To delete a destination action, select the action, click **...** and select **De This takes effect within minutes, and removes the action completely. Any data that would have gone to the destination is not delivered. Once deleted, the saved action cannot be restored. ## Test a destination action -To test a destination action, follow the instructions outlined in [Event Tester](/docs/connections/test-connections/). You must enable a mapping to test the destination. If a mapping is not enabled, the following error message will appear: `You may not have any subscriptions that match this event.` +To test a destination action, follow the instructions outlined in the [Event Tester](/docs/connections/test-connections/) documentation. You must enable a mapping to test the destination. If a mapping is not enabled, the following error message will appear: `You may not have any subscriptions that match this event.` You can also test within the mapping itself. To test the mapping: 1. Navigate to the **Mappings** tab of your destination. From 65f1aab588a377624b45a8910132048976b4ef74 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:56:58 +0100 Subject: [PATCH 349/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 4afa5628c0..ab67f3e84a 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -200,7 +200,7 @@ The required fields for a destination mapping appear automatically. Click **+** Segment offers suggested mappings that automatically propose relevant destination fields for both model columns and payload elements. For example, if your model includes a column or payload field named `transaction_amount`, the feature might suggest mapping it to a destination field like `Amount` or `TransactionValue`. This automation, powered by intelligent autocompletion, matches and identifies near-matching field names to streamline the setup. -To use Suggested Mappings, the workspace owner must first accept the Customer AI Terms and Conditions. Ensure that you review the suggested mappings for accuracy before finalizing them as the suggestions are not guaranteed to be 100% accurate. +To use Suggested Mappings, a user with the [Workspace Owner role](/docs/segment-app/iam/roles/) must first accept the Customer AI Terms and Conditions. Ensure that you review the suggested mappings for accuracy before finalizing them as the suggestions are not guaranteed to be 100% accurate. For more information, see [Segment's Suggested Mappings blogpost](https://segment.com/blog/ai-assisted-magical-mappings/){:target="_blank”} and the [Suggested Mappings Nutrition Label](/docs/connections/reverse-etl/suggested-mappings-nutrition-facts). From 520ee28fda25db0f3b668acdcffd8a369247be15 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:57:17 +0100 Subject: [PATCH 350/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index ab67f3e84a..7695708b5d 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -282,7 +282,7 @@ You can combine criteria in a single group using **`ALL`** or **`ANY`**. Use an > Trigger fields don't support double quotes (`"`) or the tilde (`~`) character. ## Mapping field limitations -In **destination** fields, you can use dot notation to create nested objects and arrays, such as `info.name` or `info[0].email`. This is not the case if the field is enclosed in double quotes. For example, `"user.email"` creates a literal key, not a nested structure. +In **destination** fields, you can use dot notation to create nested objects and arrays, like `info.name` or `info[0].email`. This isn't the case if the field is enclosed in double quotes. For example, `"user.email"` creates a literal key, not a nested structure. In **source** fields, dots are only supported for accessing object keys. Literal strings that include a dot, like `user.email`, aren't supported as property names. From 3ae28212707783a4df5cf8e75bbf01f9efdf909b Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:57:33 +0100 Subject: [PATCH 351/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 7695708b5d..6ceab371a2 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -289,7 +289,7 @@ In **source** fields, dots are only supported for accessing object keys. Literal ## Destination Filters Destination Filters are compatible with Destination Actions. Consider a Destination Filter when: - You need to remove properties from the data sent to the destination. -- You need to filter data from multiple types of call, for example, Track, Page, and Identify calls. +- You need to filter data from multiple call types, for example, Track, Page, and Identify calls. If your use case does not match these criteria, you might benefit from using Mapping-level Triggers to match only certain events. From a8e2f3792eb53d75cc8a70555fc3220b328e77d6 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:57:51 +0100 Subject: [PATCH 352/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 6ceab371a2..bd47fa3816 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -291,7 +291,7 @@ Destination Filters are compatible with Destination Actions. Consider a Destinat - You need to remove properties from the data sent to the destination. - You need to filter data from multiple call types, for example, Track, Page, and Identify calls. -If your use case does not match these criteria, you might benefit from using Mapping-level Triggers to match only certain events. +If your use case doesn't match these criteria, you might benefit from using Mapping-level Triggers to match only certain events. ## Duplicate Mappings From f997808cb5da82231f9e557a436cd0432b278fc7 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:58:04 +0100 Subject: [PATCH 353/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index bd47fa3816..23a9fadd15 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -324,7 +324,7 @@ If no mappings are enabled to trigger on an event that has been received from th #### Why are multiple mappings triggered by the same event? -When an event triggers multiple mappings, a request is generated for each mapping configured to trigger on the event. For example, if two mappings are enabled for the `Subscription Updated` event and both mappings have conditions defined to trigger on the 'Subscription Updated' event, two requests will be generated and sent to the destination for each event - one for each mapping. +When an event triggers multiple mappings, a request is generated for each mapping configured to trigger on the event. For example, if two mappings are enabled for the `Subscription Updated` event and both mappings have conditions defined to trigger on the 'Subscription Updated' event, 2 requests are generated and sent to the destination for each event - 1 for each mapping. #### Why is an OAuth "access token expired" message appearing in Segment? Access tokens generated during initial authorization are short-lived, for example, when you connect a destination via OAuth. The token typically remains valid for 30 minutes to 1 hour. When Segment receives a `401 error` response from a destination after a token expires, it will automatically request the destination for a new token and will then retry the event. Therefore, `401` responses are sometimes expected and do not indicate an event failure. There are 3 event flows when events are received and sent to a destination: From 266f983c8cbadfacbdf308bb43f3c64048e4d10a Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:58:12 +0100 Subject: [PATCH 354/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 23a9fadd15..4b055c3ff7 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -329,7 +329,7 @@ When an event triggers multiple mappings, a request is generated for each mappin #### Why is an OAuth "access token expired" message appearing in Segment? Access tokens generated during initial authorization are short-lived, for example, when you connect a destination via OAuth. The token typically remains valid for 30 minutes to 1 hour. When Segment receives a `401 error` response from a destination after a token expires, it will automatically request the destination for a new token and will then retry the event. Therefore, `401` responses are sometimes expected and do not indicate an event failure. There are 3 event flows when events are received and sent to a destination: -- through source. +- Through a source - through event tester. - through actions tester in mapping screen. From f7e315f22a4ec804fe9de4914cc97d7a7f7b5e60 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:58:17 +0100 Subject: [PATCH 355/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 4b055c3ff7..364869c6ce 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -331,7 +331,7 @@ Access tokens generated during initial authorization are short-lived, for exampl - Through a source - through event tester. -- through actions tester in mapping screen. +- Through the actions tester on the mapping screen The underlying systems for these flows have their own copy of the token, which can expire at different points in time. If you see a `401` error in a sample response, it is likely that another request was made afterward to fetch a new token. Then one more request was made to actually send the data in your payload to the downstream destination. From 3c8ea07ab6061b4ebe1e45507996a11b9dafe1f0 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:58:26 +0100 Subject: [PATCH 356/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 364869c6ce..e2b887b4cd 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -330,7 +330,7 @@ When an event triggers multiple mappings, a request is generated for each mappin Access tokens generated during initial authorization are short-lived, for example, when you connect a destination via OAuth. The token typically remains valid for 30 minutes to 1 hour. When Segment receives a `401 error` response from a destination after a token expires, it will automatically request the destination for a new token and will then retry the event. Therefore, `401` responses are sometimes expected and do not indicate an event failure. There are 3 event flows when events are received and sent to a destination: - Through a source -- through event tester. +- Through the event tester - Through the actions tester on the mapping screen The underlying systems for these flows have their own copy of the token, which can expire at different points in time. If you see a `401` error in a sample response, it is likely that another request was made afterward to fetch a new token. Then one more request was made to actually send the data in your payload to the downstream destination. From c18e98be66592fd936d987ae9431d6c3a75e9042 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:58:52 +0100 Subject: [PATCH 357/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index e2b887b4cd..070fe0e235 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -311,7 +311,7 @@ Segment creates a disabled mapping with the name "Original Mapping Name (Copy)". #### Why does a validation error appears when using the Event Tester? -When you send an event with an actions destination Event Tester that doesn't match the trigger of any configured and enabled mappings, an error message that states `You may not have any subscriptions that match this event` will appear. +When you send an event with an actions destination Event Tester that doesn't match the trigger of any configured and enabled mappings, you'll see an error message that states `You may not have any subscriptions that match this event`. To resolve the error, create a mapping with a trigger to handle the event being tested, or update the test event's payload to match the trigger of any existing mappings. From b2cd2c3b24db465155cf4feaaec7cfb046b96765 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Wed, 23 Jul 2025 12:59:26 +0100 Subject: [PATCH 358/438] Update src/connections/destinations/actions.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/actions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 070fe0e235..838d6c2008 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -317,7 +317,7 @@ To resolve the error, create a mapping with a trigger to handle the event being #### Why is the data not sending downstream? -If no mappings are enabled to trigger on an event that has been received from the connected source, the destination will not send any events. Ensure that at least 1 mapping has been configured and enabled in the destination mappings for an event that you would like to reach downstream. +If no mappings are enabled to trigger on an event that has been received from the connected source, the destination won't send any events. Ensure that you've configured and enabled at least 1 mapping in the destination mappings for an event that you'd like to reach downstream. > info "" > Events without mappings enabled to handle them display as being discarded due to "No matching mapping" in a destination's Delivery Overview. From e8245bac4266e804e604cbcfc8bde6e32f6efc2b Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 23 Jul 2025 09:04:48 -0700 Subject: [PATCH 359/438] table fix --- src/connections/destinations/actions.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 0af692b36c..f8ef42a32b 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -247,6 +247,7 @@ The liquid syntax function enables you to transform event data with fine-grain c Segment supports the following LiquidJS tags and filters for mappings. Segment selected these to ensure performance, security, and compatibility with real-time event processing. Segment disabled unsupported tags and filters to prevent performance degradation or security risks. #### Supported tags + | Tag Name | Description | |-------------------|-------------| | `assign` | Assigns a value to a variable for reuse in the template. | @@ -265,6 +266,7 @@ Segment supports the following LiquidJS tags and filters for mappings. Segment s | `when` | Part of `case` statements for matching specific values. | #### Supported filters + | Filter Name | Description | |--------------------------------|-------------| | `abs` | Returns the absolute value of a number. | From 02ac0fbb50089b653ed5b220d0495aafcda883ae Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 24 Jul 2025 02:17:06 -0500 Subject: [PATCH 360/438] fix erroneous git sync instructions --- src/segment-app/extensions/dbt.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/segment-app/extensions/dbt.md b/src/segment-app/extensions/dbt.md index 5c3729b300..21d221396d 100644 --- a/src/segment-app/extensions/dbt.md +++ b/src/segment-app/extensions/dbt.md @@ -32,14 +32,14 @@ To set up the dbt extension, you'll need: ### Git repository and dbt Models setup -Follow these steps to connect the Git repository that stores your dbt Models: +To connect Segment to your dbt models, you’ll first need to configure a Git connection. This allows Segment to pull dbt models directly from your repository. 1. In your Segment workspace, navigate to **Settings > Extensions**. -2. Click **Set up Git sync**. -3. On the **Configure service credentials** page, select a service and protocol, add your GitHub App, SSH private key or GitHub token, then click **Next**. +2. Click either **Set up dbt model syncs**. +3. On the **Configure service credentials** page, select a credential and protocol, add your key or token, then click **Next**. 4. In the **Connect source** window, select an existing Reverse ETL warehouse source from the dropdown, then click **Save**. -After you've saved your setup, you can configure your Git repository's settings to your needs by changing the repository, branch, dbt version, default schema, and project path. +After you've saved your setup, you can configure your settings to your needs by changing the repository, branch, dbt version, default schema, and project path. ### dbt Cloud setup From 0fc070811a813c751c5572967dc4a0a90cd35b60 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 24 Jul 2025 11:36:03 -0400 Subject: [PATCH 361/438] catalog --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 2496 ++++++++++++++---- src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 2 +- 5 files changed, 1928 insertions(+), 576 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 321c5173bc..3aeb133de6 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 2025-07-17 +# destination categories last updated 2025-07-24 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 79e7f3c196..6212e6c22a 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 2025-07-17 +# destination data last updated 2025-07-24 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -526,7 +526,7 @@ items: hidden: false defaultTrigger: type = "identify" or type = "track" or type = "page" or type = "screen" fields: - - id: kLFKaj9fMaZ2UHRBYQrZY4 + - id: xdXs8dD2FUoNPQAt1PbVFv sortOrder: 0 fieldKey: contact_id label: Contact ID @@ -548,7 +548,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5Lvtq7JRRpSuBo1rQp4tG6 + - id: dxhg1bGYkBu8ciH58At3St sortOrder: 1 fieldKey: event_name label: Event Name @@ -561,7 +561,7 @@ items: choices: null dynamic: false allowNull: false - - id: qTrSVZCqJLb3Y7ZP72pr7C + - id: mDhQRhh5ygMbFQ6Hp2VngN sortOrder: 2 fieldKey: timestamp label: Timestamp @@ -575,7 +575,7 @@ items: choices: null dynamic: false allowNull: false - - id: iN5G5LRhLT6Lnanh5fTZ6p + - id: jhxmHjgdYuwB4Hjwkft2hB sortOrder: 3 fieldKey: metadata label: Metadata @@ -589,7 +589,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5qWS2HkZiR9Pg1uxXnGAWA + - id: 4mVaZ1c9qCMJGDsjbvJwii sortOrder: 4 fieldKey: event_id label: Event ID @@ -603,7 +603,7 @@ items: choices: null dynamic: false allowNull: false - - id: bB7jwk59B7jga1r7RFVmeA + - id: eAroAQkwPpBvUq2bJCutvo sortOrder: 5 fieldKey: user_properties label: User Properties @@ -634,7 +634,7 @@ items: hidden: false defaultTrigger: type = "track" or type = "page" or type = "screen" fields: - - id: e9uPJ1VsveraGHLf65APJ3 + - id: bnL2ZRjqbEKHjjhUvX94jG sortOrder: 0 fieldKey: contact_id label: Contact ID @@ -656,7 +656,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8jEBuoqVd4UeQYLgxWLsXi + - id: iuyMnzmHUZuHCbHxHBuqwp sortOrder: 1 fieldKey: event_name label: Event Name @@ -670,13 +670,13 @@ items: then: '@path': $.event else: - '@path': $.name + '@path': $.type required: true multiple: false choices: null dynamic: false allowNull: false - - id: cDqF1DzTBso7rhg6MWt4UU + - id: ssR71dcmvuVFmUwY6E3GMp sortOrder: 2 fieldKey: timestamp label: Timestamp @@ -690,7 +690,7 @@ items: choices: null dynamic: false allowNull: false - - id: jQCkuvPwerx8poQxkV7sSn + - id: gL7n2U9sNsEvgfye5gKf3r sortOrder: 3 fieldKey: timezone label: Timezone @@ -704,7 +704,7 @@ items: choices: null dynamic: false allowNull: false - - id: tCSfh2hMCt5tmCsGdKvqKF + - id: kfENk7vUZDK19Eu6Tn7F9m sortOrder: 4 fieldKey: metadata label: Metadata @@ -718,7 +718,7 @@ items: choices: null dynamic: false allowNull: false - - id: hw1KtFTubsLcPiPhZ64aQD + - id: kw2EDAyDBAwjdTJjgoh9J8 sortOrder: 5 fieldKey: event_id label: Event ID @@ -751,7 +751,7 @@ items: then: '@path': $.event else: - '@path': $.name + '@path': $.type timestamp: '@path': $.timestamp timezone: @@ -23330,7 +23330,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: 8gX8PuHbeDVGpN8tEE2K8W + - id: frz11tFBzfan6WbDamxaVV sortOrder: 0 fieldKey: external_id label: External User ID @@ -23344,7 +23344,7 @@ items: choices: null dynamic: false allowNull: false - - id: cac3FktXkcLHSBdPunvtLg + - id: fZNmCULU5zqyCsXBKsBueY sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23358,7 +23358,7 @@ items: choices: null dynamic: false allowNull: false - - id: oTcy2j5T7NvQZfcPVbqLiC + - id: nWcbDpUAifPFihnYj4keqq sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -23372,7 +23372,7 @@ items: choices: null dynamic: false allowNull: true - - id: 56b7mVUwQfCcuJ6DDX7orN + - id: 8SZmzgmJ8LrdcfBtpuRHrT sortOrder: 3 fieldKey: country label: Country @@ -23386,7 +23386,7 @@ items: choices: null dynamic: false allowNull: true - - id: odgKx8MS4igb2yyJD8DeF7 + - id: m1xvh1MTCS2UwVfHxaDD75 sortOrder: 4 fieldKey: current_location label: Current Location @@ -23403,7 +23403,7 @@ items: choices: null dynamic: false allowNull: true - - id: 4dUnq4A3xEr4Am6SWqGaNC + - id: 9pUSXbWPjCwyNHDxka5JxQ sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -23415,7 +23415,7 @@ items: choices: null dynamic: false allowNull: true - - id: 6JdsJ8Kig3r25Tm5CM1yL3 + - id: nZNERLLfzCQk8LUGxwoV7d sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -23427,7 +23427,7 @@ items: choices: null dynamic: false allowNull: true - - id: 5upMphfPzM59UWHLphRf5z + - id: qU6PF14uYCiAvDDxPk1Ayc sortOrder: 7 fieldKey: dob label: Date of Birth @@ -23439,7 +23439,7 @@ items: choices: null dynamic: false allowNull: true - - id: gzJ966i8keusXz3AeqDwQb + - id: 4Fy1EYYDPuMjn3vpHuRGSN sortOrder: 8 fieldKey: email label: Email @@ -23453,7 +23453,7 @@ items: choices: null dynamic: false allowNull: true - - id: aNbJQfG7nKM3nrLxFNG2K7 + - id: p8cpbr44nnQ2mjLRPntVwp sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -23468,7 +23468,7 @@ items: choices: null dynamic: false allowNull: false - - id: hz5Z3LVWHc2CedpV51dLbB + - id: 69zQTCZVr6GZCJwdSXfs1r sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -23482,7 +23482,7 @@ items: choices: null dynamic: false allowNull: false - - id: poQtZPxjFEN9HBstJ6Hor5 + - id: xpWqRpHcjJf7vThkxd4cAe sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -23496,7 +23496,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7KCnsiws3wz83svzyQfdzG + - id: k4cPf5X5B4mVqfqJCE4G5N sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -23510,7 +23510,7 @@ items: choices: null dynamic: false allowNull: false - - id: tcALMvwJGF7wA2kTt977Ct + - id: 7Da5ukyyK5GqnZEk6f7Ygy sortOrder: 13 fieldKey: first_name label: First Name @@ -23524,7 +23524,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8auhrzwNeFoNKS5DYtboqZ + - id: kFbDdcP45ZzZZ9eV93iEdW sortOrder: 14 fieldKey: gender label: Gender @@ -23540,7 +23540,7 @@ items: choices: null dynamic: false allowNull: true - - id: qHH1WdCGFustdvJr4C9XJx + - id: mMPocCA5usL9n7twW1SEje sortOrder: 15 fieldKey: home_city label: Home City @@ -23554,7 +23554,7 @@ items: choices: null dynamic: false allowNull: true - - id: 3wL1YQKTJBfzF8vNRv7bT9 + - id: pVX5hWg3qAi48kv8QJFL8a sortOrder: 16 fieldKey: image_url label: Image URL @@ -23568,7 +23568,7 @@ items: choices: null dynamic: false allowNull: true - - id: k1CCjyoZHDu9ELTpY6eyZr + - id: f5gSYnr1y3U583SQm6NNpc sortOrder: 17 fieldKey: language label: Language @@ -23580,7 +23580,7 @@ items: choices: null dynamic: false allowNull: true - - id: jGpCPMUjHoZrqNXMqAB37C + - id: odUBYhFPcmaVaYLyczAWXg sortOrder: 18 fieldKey: last_name label: Last Name @@ -23594,7 +23594,7 @@ items: choices: null dynamic: false allowNull: false - - id: c6nAJXpq7tKTye1adsoyjn + - id: 4Ud9hghUJwojjb34DjkKjN sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -23606,7 +23606,7 @@ items: choices: null dynamic: false allowNull: true - - id: 4VuavCBLrrnWRQywddRFNH + - id: 66uByU9E4zxTYaCERzSpH2 sortOrder: 20 fieldKey: phone label: Phone Number @@ -23620,7 +23620,7 @@ items: choices: null dynamic: false allowNull: true - - id: hxcaTLhkyKQKspdRB4SFT6 + - id: pQfqMK5Vh7jeUsxwyyF8hh sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -23635,7 +23635,7 @@ items: choices: null dynamic: false allowNull: false - - id: xdfVhRPCPYsQcNYo6xaAM6 + - id: r8KSTT5rDmNJ6fmUKaR7Ya sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -23652,7 +23652,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2cCQ2RzyUVQn1kC7fS9xSb + - id: qx27sVuw2zir7E2P9nN6UD sortOrder: 23 fieldKey: time_zone label: Time zone @@ -23667,7 +23667,7 @@ items: choices: null dynamic: false allowNull: false - - id: itUirR4aqqMt2pBvWKKZFq + - id: 4ZAtgZZUm7bJXZDteEkcKS sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -23682,7 +23682,7 @@ items: choices: null dynamic: false allowNull: false - - id: aMCLbNeg2te71SuqmfuhE8 + - id: 894h5kEbTx9EcKxn9ATY2V sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -23696,7 +23696,7 @@ items: choices: null dynamic: false allowNull: false - - id: xbA2nukUTac9WZo8kawVVz + - id: remoauHf6xfL5SBSc6qnwo sortOrder: 26 fieldKey: _update_existing_only label: Update Existing Only @@ -23711,7 +23711,7 @@ items: choices: null dynamic: false allowNull: false - - id: bLteNtLAfrZHYVApQtRZUm + - id: wJaikKFKSUaimBeC2nxP3e sortOrder: 27 fieldKey: enable_batching label: Batch Data to Braze @@ -23734,7 +23734,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: nKLN6pQVjuKeSKdShPTK7s + - id: 5sq3xZZYZCJmmxZdAJacaM sortOrder: 0 fieldKey: external_id label: External User ID @@ -23748,7 +23748,7 @@ items: choices: null dynamic: false allowNull: false - - id: qto5WXER1SE2hXwxMCGA2f + - id: s2zkyqErbM5rnfukkNabwC sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23762,7 +23762,7 @@ items: choices: null dynamic: false allowNull: false - - id: jD7UGzEsVn3HEu4R6f2C7A + - id: kAvSZ6B6tQF5mmQUqsFdG7 sortOrder: 2 fieldKey: email label: Email @@ -23782,7 +23782,7 @@ items: choices: null dynamic: false allowNull: false - - id: fvug1cyFVoQ9fruvAXgPqb + - id: svUQfhxt5UAokobfxLjyUE sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -23796,7 +23796,7 @@ items: choices: null dynamic: false allowNull: true - - id: fDvkaQqyWFkLuNqDx26jTJ + - id: 9vdt5y2HA6aQRaUzUAhqQH sortOrder: 4 fieldKey: name label: Event Name @@ -23810,7 +23810,7 @@ items: choices: null dynamic: false allowNull: false - - id: tYNazWYN1iVGJDh3zHPqNb + - id: hvdTckdbhyWk7ub8ehQmy3 sortOrder: 5 fieldKey: time label: Time @@ -23824,7 +23824,7 @@ items: choices: null dynamic: false allowNull: false - - id: 46oxx1fWVgNDFkkwBkDtbJ + - id: 3sT13YAAj7B8v81HFYqsJ6 sortOrder: 6 fieldKey: properties label: Event Properties @@ -23838,7 +23838,7 @@ items: choices: null dynamic: false allowNull: false - - id: e46WFudaCJs2VXokqFRa8p + - id: uoinvpfJPPouV2YsvsfjkW sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -23853,7 +23853,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3R86e4WY7N92Fi2DP6PsCF + - id: 63vGmbb81vQnYW5and1Q4N sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -23876,7 +23876,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: mrrnFhquS33faw2qc9NK9x + - id: fg36FexE4qyP7XsMzpT5Xr sortOrder: 0 fieldKey: external_id label: External User ID @@ -23890,7 +23890,7 @@ items: choices: null dynamic: false allowNull: false - - id: fq38bLNayyF3WNWB6nLt3H + - id: 9obkVhVo4Qx4xPF891UphR sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -23904,7 +23904,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3kJF4tqyGqC4rdPJdbu28B + - id: 22gDq94jeVHJGoNPEkjarw sortOrder: 2 fieldKey: email label: Email @@ -23918,7 +23918,7 @@ items: choices: null dynamic: false allowNull: false - - id: uQZotzJYD7A1k9SGq55BfC + - id: 2tRy54hoSLvavYenQz1skf sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -23932,7 +23932,7 @@ items: choices: null dynamic: false allowNull: true - - id: nACMMntuFmvRtaWmJVD7Tn + - id: w4mZFShTi45oTErsRyY6sv sortOrder: 4 fieldKey: time label: Time @@ -23946,7 +23946,7 @@ items: choices: null dynamic: false allowNull: false - - id: rCV4BpjS4D2jWRfmncoAPH + - id: hpWv5G8vm94mxArndAg3UA sortOrder: 5 fieldKey: products label: Products @@ -23960,7 +23960,7 @@ items: choices: null dynamic: false allowNull: false - - id: kkWnfKvyAvqNWVKgyRQDbY + - id: 2GWU2no3WGNC7B8SuS9UfX sortOrder: 6 fieldKey: properties label: Event Properties @@ -23974,7 +23974,7 @@ items: choices: null dynamic: false allowNull: false - - id: gRXtMbPhYMJwxCDrNae34D + - id: stG51w28ChLT3brTDNgusj sortOrder: 7 fieldKey: _update_existing_only label: Update Existing Only @@ -23989,7 +23989,7 @@ items: choices: null dynamic: false allowNull: false - - id: vzp7wCUde51BT74GzjDEir + - id: 5NPVqFjrESQCbdqzkGErtD sortOrder: 8 fieldKey: enable_batching label: Batch Data to Braze @@ -24026,7 +24026,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 8xjP1mApdm1wxCrhviUEwy + - id: pMwsciTRRwm6BD7o6eY8fx sortOrder: 0 fieldKey: external_id label: External ID @@ -24038,7 +24038,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5iCuaJ1hGWbXT1QEgM39Kf + - id: vkybr1e1L3d7YrdBWpkXYH sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24052,7 +24052,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9j9bQ2WDWgFuifRfRyb3XH + - id: gdeASUanupEBDqQ1MDtn34 sortOrder: 2 fieldKey: merge_behavior label: Merge Behavior @@ -24081,7 +24081,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: 4UVSEu4QpueE1VuzTLCLi + - id: n4u7Qc5RqbRV4piQtNromi sortOrder: 0 fieldKey: external_id label: External ID @@ -24093,7 +24093,7 @@ items: choices: null dynamic: false allowNull: true - - id: hAFE7SxzkkZ2iPLJEeB9W3 + - id: kKEB7i291m8YemagXD5ebn sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -24105,7 +24105,7 @@ items: choices: null dynamic: false allowNull: false - - id: nbJNe1F5p9pJHC4FTbvyYq + - id: owFCCbZwFjeeJXVoxxCTcG sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -24125,7 +24125,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: n3EG4xYvjRAtiuALegspWx + - id: gwqZ4ycUKnkCZBxveCnjo2 sortOrder: 0 fieldKey: external_id label: External User ID @@ -24139,7 +24139,7 @@ items: choices: null dynamic: false allowNull: false - - id: fkqaqmwkxiFtnjJjZfRrgi + - id: oCZ7RpFgTsdWDAVXCcWSDr sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24153,7 +24153,7 @@ items: choices: null dynamic: false allowNull: false - - id: kUbEWn784NDtLeQz1qbhBn + - id: jzmPYZM1Rk48hYLEYpdYoq sortOrder: 2 fieldKey: braze_id label: Braze User Identifier @@ -24167,7 +24167,7 @@ items: choices: null dynamic: false allowNull: true - - id: 7aY1YuNVV9SbMKyATMDckg + - id: gYVKFtjwAaQidhQ94hELrY sortOrder: 3 fieldKey: country label: Country @@ -24181,7 +24181,7 @@ items: choices: null dynamic: false allowNull: true - - id: 9bSLdCTEE66QrtMoFLBhew + - id: 8N44uGnJ2bTFCisTh9X9xT sortOrder: 4 fieldKey: current_location label: Current Location @@ -24198,7 +24198,7 @@ items: choices: null dynamic: false allowNull: true - - id: jf9p8VZgZo9LS1CbmE71B7 + - id: q3QoZjmtJvnqjiiVQdX9Z9 sortOrder: 5 fieldKey: date_of_first_session label: Date of First Session @@ -24210,7 +24210,7 @@ items: choices: null dynamic: false allowNull: true - - id: Db5NGdfFWEUs4bjsrbbsV + - id: whdNHh25Wso67bW6uy1T8C sortOrder: 6 fieldKey: date_of_last_session label: Date of Last Session @@ -24222,7 +24222,7 @@ items: choices: null dynamic: false allowNull: true - - id: 79sAumGUio1QHLLvWMp1k7 + - id: ktfG8fY7MgLkNtQe6jPuSt sortOrder: 7 fieldKey: dob label: Date of Birth @@ -24234,7 +24234,7 @@ items: choices: null dynamic: false allowNull: true - - id: tx7b2ehX8dXzFrQCJqShKE + - id: pWeJXhDmg7BZH9YHbJjEJB sortOrder: 8 fieldKey: email label: Email @@ -24248,7 +24248,7 @@ items: choices: null dynamic: false allowNull: true - - id: bYVMjUSbxKHqyYoi8RVBYj + - id: 331FuRNhXV9eQgumoSjc5B sortOrder: 9 fieldKey: email_subscribe label: Email Subscribe @@ -24263,7 +24263,7 @@ items: choices: null dynamic: false allowNull: false - - id: mJ1NpBdNCPzsnoYe94K8et + - id: 6gXWFLSGTjouJp2WHrvGHE sortOrder: 10 fieldKey: email_open_tracking_disabled label: Email Open Tracking Disabled @@ -24277,7 +24277,7 @@ items: choices: null dynamic: false allowNull: false - - id: uMYyFgpJF3vyj4BTgbvEEu + - id: kMWdeN3peJtKrVwKVXXKkC sortOrder: 11 fieldKey: email_click_tracking_disabled label: Email Click Tracking Disabled @@ -24291,7 +24291,7 @@ items: choices: null dynamic: false allowNull: false - - id: d4xru2vRjEi4RT5TmWgb1y + - id: cMgwvehK2W9mbSspBAPi74 sortOrder: 12 fieldKey: facebook label: Facebook Attribution Data @@ -24305,7 +24305,7 @@ items: choices: null dynamic: false allowNull: false - - id: sWnUjpm5UwcNWUuWxy2sgN + - id: 4yvo3qjnceKJGbYTx9vrXe sortOrder: 13 fieldKey: first_name label: First Name @@ -24319,7 +24319,7 @@ items: choices: null dynamic: false allowNull: true - - id: pEv9iR95xz8rKF8J4mQhbq + - id: cNsqEmuXDikmuSgeCSF8c5 sortOrder: 14 fieldKey: gender label: Gender @@ -24335,7 +24335,7 @@ items: choices: null dynamic: false allowNull: true - - id: m3W7fjjiHMadQf9StMrwv5 + - id: 9e6Ns4qvCin4ibB2uZ87zJ sortOrder: 15 fieldKey: home_city label: Home City @@ -24349,7 +24349,7 @@ items: choices: null dynamic: false allowNull: true - - id: pNrVJ4pLT2zYGzAB48WvZr + - id: 2r4fDWjg3uHQyA6YLXbwD7 sortOrder: 16 fieldKey: image_url label: Image URL @@ -24363,7 +24363,7 @@ items: choices: null dynamic: false allowNull: true - - id: f3fCwV3BdPFWkbNrYqM3bK + - id: 8yKCLQ4YvcUhcpbdxY4wid sortOrder: 17 fieldKey: language label: Language @@ -24375,7 +24375,7 @@ items: choices: null dynamic: false allowNull: true - - id: egAthtxhyoYdweeajB19HG + - id: rVizXpARf3duTGxik6qZyX sortOrder: 18 fieldKey: last_name label: Last Name @@ -24389,7 +24389,7 @@ items: choices: null dynamic: false allowNull: false - - id: qcNhSQmPKpyaPuexHd1m1Z + - id: qeedvdRAqYXHbAe32kRU7w sortOrder: 19 fieldKey: marked_email_as_spam_at label: Marked Email as Spam At @@ -24401,7 +24401,7 @@ items: choices: null dynamic: false allowNull: true - - id: ksGYS9vjjHVd3JzXG4sGEU + - id: oGdPKPYxudEvqPcA2JTXsS sortOrder: 20 fieldKey: phone label: Phone Number @@ -24415,7 +24415,7 @@ items: choices: null dynamic: false allowNull: true - - id: bJGaRahSiHqR93TYJe7aGR + - id: wmKgx4r2PAMGTSTiroDrwd sortOrder: 21 fieldKey: push_subscribe label: Push Subscribe @@ -24430,7 +24430,7 @@ items: choices: null dynamic: false allowNull: false - - id: gQq2pFMa4qvnXVvjEy6tEi + - id: d7FCXVA7f3RppMEZqczuLw sortOrder: 22 fieldKey: push_tokens label: Push Tokens @@ -24447,7 +24447,7 @@ items: choices: null dynamic: false allowNull: false - - id: iPRoGkEJBLqh7Ru9xXzAab + - id: cVoANWsB8ytjevRfqF31SK sortOrder: 23 fieldKey: time_zone label: Time zone @@ -24462,7 +24462,7 @@ items: choices: null dynamic: false allowNull: false - - id: d4QPmoVqTXDr9UySgeqQbz + - id: f9MvcdY6EEBQqbDdZfZcky sortOrder: 24 fieldKey: twitter label: Twitter Attribution Data @@ -24477,7 +24477,7 @@ items: choices: null dynamic: false allowNull: false - - id: jgfmowc82NGJkFDUCgoqPE + - id: sr3KDeAmubMwH5huLNEP8G sortOrder: 25 fieldKey: custom_attributes label: Custom Attributes @@ -24491,7 +24491,7 @@ items: choices: null dynamic: false allowNull: false - - id: tmBXZ9aaRzwqHkF5eauSXw + - id: cdENeQDWi4frnTkLkNEeU4 sortOrder: 26 fieldKey: enable_batching label: Batch Data to Braze @@ -24514,7 +24514,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: gZzZN2a45MBk5Uo6i92iff + - id: 6HP8cFtZUmj422SCVRFH8C sortOrder: 0 fieldKey: external_id label: External User ID @@ -24528,7 +24528,7 @@ items: choices: null dynamic: false allowNull: false - - id: t7tpxYcuuwAYGYoCkAgHQw + - id: 55mu6trKz3nHcpWyzgfQfM sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24542,7 +24542,7 @@ items: choices: null dynamic: false allowNull: false - - id: cJHVALuf3RTmiJVbYmbN84 + - id: wUvReNFdTX6oBB9DA8gP7 sortOrder: 2 fieldKey: email label: Email @@ -24562,7 +24562,7 @@ items: choices: null dynamic: false allowNull: false - - id: ngcrSeqf11PmsicHuFPsZu + - id: egbTMCodi5BAXAzJrHdEQc sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -24576,7 +24576,7 @@ items: choices: null dynamic: false allowNull: true - - id: dKpZ6DZCCpBPrNH3q3ExKR + - id: 6v8RRJg2fGx5pu7snzanbr sortOrder: 4 fieldKey: name label: Event Name @@ -24590,7 +24590,7 @@ items: choices: null dynamic: false allowNull: false - - id: nwcRbxKFbsDCQnVodqKo1q + - id: j2xw9f1aZyU6c9tofbhWoF sortOrder: 5 fieldKey: time label: Time @@ -24604,7 +24604,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5ovNWXiCcnyX81UQHpoNYS + - id: cRnMjpPxBUByv2sF6fBHVy sortOrder: 6 fieldKey: properties label: Event Properties @@ -24618,7 +24618,7 @@ items: choices: null dynamic: false allowNull: false - - id: EvkGVvvF3w41vrSfZcu3F + - id: rypZ9WGeY5ZecDeusDNN4C sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -24643,7 +24643,7 @@ items: hidden: false defaultTrigger: null fields: - - id: eUPVg59Ppmw58zM8FLQoBH + - id: vdC7t5iSzmAL18cZxY7ZQK sortOrder: 0 fieldKey: external_id label: External ID @@ -24655,7 +24655,7 @@ items: choices: null dynamic: false allowNull: false - - id: qYgkfPix86B1WTjXHc8iKW + - id: tWoJS7Bxh126VhyrbGnoqN sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24669,7 +24669,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7kUHwB3XP4wWExzy4zoQWv + - id: ajA656rF84imeMoGefhNrH sortOrder: 2 fieldKey: email_to_identify label: Email to Identify @@ -24681,7 +24681,7 @@ items: choices: null dynamic: false allowNull: false - - id: mxQ5Mg6v7N9tmaWsHgVfAP + - id: e7bxortit7qUL6ZW8qxUL5 sortOrder: 3 fieldKey: prioritization label: Prioritization @@ -24695,7 +24695,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5yosK2mzwkpfdZ1hq7vW6k + - id: tz83vDWLBLJxJgev7kikjA sortOrder: 4 fieldKey: merge_behavior label: Merge Behavior @@ -24724,7 +24724,7 @@ items: hidden: false defaultTrigger: event = "Create Alias" fields: - - id: gk6NPK8An1b7BxAknnHrMy + - id: suRsQh4ZMUo9mJ1L5A6MXU sortOrder: 0 fieldKey: external_id label: External ID @@ -24736,7 +24736,7 @@ items: choices: null dynamic: false allowNull: true - - id: oZuRPP81EkoHskVzeWB9ER + - id: pPTpuGdJD5fbFa67QBGEgT sortOrder: 1 fieldKey: alias_name label: Alias Name @@ -24748,7 +24748,7 @@ items: choices: null dynamic: false allowNull: false - - id: bQ14DxHoEsszTFLGn8zgAN + - id: 7PJvRn7FZyrUTZEpiByxDq sortOrder: 2 fieldKey: alias_label label: Alias Label @@ -24768,7 +24768,7 @@ items: hidden: false defaultTrigger: event = "Order Completed" fields: - - id: mttbcYqew3xmFCCJasxHtw + - id: 4BEobjyZiqb7324bvAQpJH sortOrder: 0 fieldKey: external_id label: External User ID @@ -24782,7 +24782,7 @@ items: choices: null dynamic: false allowNull: false - - id: mo57jytve23656fUQRZNhn + - id: h2k24P8KdrkEA5eL7acqUa sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24796,7 +24796,7 @@ items: choices: null dynamic: false allowNull: false - - id: jVX3F4nkCrEW3NEa5zRqxw + - id: 55eGJ542ZMW9uU7G73m2BV sortOrder: 2 fieldKey: email label: Email @@ -24810,7 +24810,7 @@ items: choices: null dynamic: false allowNull: false - - id: qCiDffY8q4X8neFkzX2ABz + - id: bdgLiyNtFG2sxS1wZsfRoq sortOrder: 3 fieldKey: braze_id label: Braze User Identifier @@ -24824,7 +24824,7 @@ items: choices: null dynamic: false allowNull: true - - id: kTqTnf262x7oy1xD9jaE5N + - id: oK46PrHANHzVEhtxubD82x sortOrder: 4 fieldKey: time label: Time @@ -24838,7 +24838,7 @@ items: choices: null dynamic: false allowNull: false - - id: mDYwdEDPMLxCxxsJoTqxjR + - id: 9SCQGFpgDVLDnmUaZBWva3 sortOrder: 5 fieldKey: products label: Products @@ -24852,7 +24852,7 @@ items: choices: null dynamic: false allowNull: false - - id: iUbxoDYMtNHMw1TxR5S7QK + - id: 6D3qjSYWEG5Csr92LGTiN9 sortOrder: 6 fieldKey: properties label: Event Properties @@ -24866,7 +24866,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2cERam8KHiVE96obMoE2TH + - id: nAk6yZaqkdCWsurq2okNN1 sortOrder: 7 fieldKey: enable_batching label: Batch Data to Braze @@ -24889,7 +24889,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: adEtxVM6wzmkGPVTs7pDnN + - id: ttvAPQeMyzL8qnGNPt7joY sortOrder: 0 fieldKey: campaign_id label: Campaign ID @@ -24903,7 +24903,7 @@ items: choices: null dynamic: true allowNull: false - - id: oQYCj5zPnSS5g2LEsnLGUx + - id: kfS94uFHQJ761q4rTgcuc9 sortOrder: 1 fieldKey: send_id label: Send ID @@ -24917,7 +24917,7 @@ items: choices: null dynamic: false allowNull: false - - id: aE5Tt6xMYURADXk1VtzRrV + - id: usvmKxE8M6rAak4TxRW1rb sortOrder: 2 fieldKey: trigger_properties label: Trigger Properties @@ -24934,7 +24934,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9z7i5SUG97D2A7q6cjyMnu + - id: 4ciJRAnqDZzVaqcuJcmSsW sortOrder: 3 fieldKey: broadcast label: Broadcast @@ -24949,7 +24949,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9Zp4r9YkWzUevMHJBfmTh8 + - id: gtmVpCDAQVsJV6DxUQNYmX sortOrder: 4 fieldKey: attachments label: Attachments @@ -24961,7 +24961,7 @@ items: choices: null dynamic: false allowNull: false - - id: kFEo7HU6ckwdyGLKqFguEq + - id: kR7ubc31pdAWbRtQnenkzP sortOrder: 5 fieldKey: recipients label: Recipients @@ -24975,7 +24975,7 @@ items: choices: null dynamic: false allowNull: false - - id: 83BHy4g9rgBf8x4JxZrjmV + - id: drVhjQzfXGXtn4iyWAQBWt sortOrder: 6 fieldKey: prioritization label: Prioritization @@ -24989,7 +24989,7 @@ items: choices: null dynamic: false allowNull: false - - id: kfFurhvjDuAMmefgFQntV7 + - id: gxyhAziD3HT68uyexoGZpv sortOrder: 7 fieldKey: audience label: Audience @@ -25011,7 +25011,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 59HU4ZUhnof1G2MiE4skL9 + - id: g2gSCrVLVLm5j8GUpbjfUA sortOrder: 0 fieldKey: item label: Catalog item to upsert @@ -25026,7 +25026,7 @@ items: choices: null dynamic: true allowNull: false - - id: vQCbvam4EkU1qm4PM1QT4i + - id: 5SXHSbR8SdDyDJ96QmmzyC sortOrder: 1 fieldKey: item_id label: Item ID @@ -25040,7 +25040,7 @@ items: choices: null dynamic: false allowNull: false - - id: qNWbQUexLXhAUWvmiQKwoX + - id: v3u4199oSX5Z322yyGhtd7 sortOrder: 2 fieldKey: enable_batching label: Batch Data to Braze? @@ -25053,7 +25053,7 @@ items: choices: null dynamic: false allowNull: false - - id: mSGiauTj8drV2vwKLXBjTk + - id: dxCVKwHFmf9fbCYRQgpzsS sortOrder: 4 fieldKey: operation label: Operation @@ -25069,7 +25069,7 @@ items: value: select dynamic: false allowNull: false - - id: 9toFUV9t35CQuECg5MFkrC + - id: 2nbDJ7xGv2ZD91FyqbN73h sortOrder: 5 fieldKey: selected_catalog_name label: Catalog Name @@ -25081,7 +25081,7 @@ items: choices: null dynamic: true allowNull: false - - id: 9vkcqkSQM3EepRX42a5fwB + - id: ammQY5R2csXdQSoyr7VW8s sortOrder: 6 fieldKey: created_catalog_name label: Catalog Name @@ -25095,7 +25095,7 @@ items: choices: null dynamic: false allowNull: false - - id: 21e8DxEuq6J5W5BiZAmPz7 + - id: 2GwQd2JD85vD7CPJsvDCYN sortOrder: 7 fieldKey: description label: Catalog Description @@ -25107,7 +25107,7 @@ items: choices: null dynamic: false allowNull: false - - id: piHv7yYnnmxnqQwYbdMu6j + - id: hE5Q8Hq97fUwB4Pm5ZuE7U sortOrder: 8 fieldKey: columns label: Catalog Fields @@ -25121,7 +25121,7 @@ items: choices: null dynamic: false allowNull: false - - id: ssPVpKxgR3G5JKKDMC3j1K + - id: fE3vYwcP4qxmXhVixpmJL3 sortOrder: 9 fieldKey: onMappingSave label: Select or Create a Catalog @@ -25134,41 +25134,123 @@ items: dynamic: false allowNull: false hidden: false + - id: 9DUBR4qVXRxPXa39oiz2Tc + name: Trigger Canvas + slug: triggerCanvas + description: >- + Trigger a Braze Canvas to deliver a cross-channel message to the specified + user. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" + fields: + - id: 6AqjskUjsng6Rk3eg1yatq + sortOrder: 0 + fieldKey: canvas_id + label: Canvas ID + type: STRING + description: >- + The ID of the canvas to trigger. The canvas must be API-triggered and + the status must be "Draft" or "Active". + placeholder: '' + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: qxsm9pbYcTM47HvGL7NCqX + sortOrder: 1 + fieldKey: canvas_entry_properties + label: Canvas Entry Properties + type: OBJECT + description: >- + Optional data that will be used to personalize the canvas message. + Personalization key-value pairs that will apply to all users in this + request. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hjci7Y7pY96gFWgyATVhgf + sortOrder: 2 + fieldKey: broadcast + label: Broadcast + type: BOOLEAN + description: >- + If set to true, the canvas will be sent to all the users in the segment + targeted by the canvas. It cannot be used with "recipients". + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: oX4QsEV4CdaPSo3Td83aXD + sortOrder: 3 + fieldKey: recipients + label: Recipients + type: OBJECT + description: >- + An array of user identifiers to send the canvas to. It cannot be used + with "broadcast". + placeholder: '' + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: 647vdrzKXnGZVYZNG2zL9A + sortOrder: 4 + fieldKey: prioritization + label: Prioritization + type: OBJECT + description: >- + Prioritization settings; required when using email in recipients. This + prioritization will be applied to all recipients. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 7oHphGH4yV5C2e3G88kRoh + sortOrder: 5 + fieldKey: audience + label: Audience + type: OBJECT + description: >- + A standard audience object to specify the users to send the canvas to. + Including "audience" will only send to users in the audience + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false presets: - - actionId: 2P24zUSAL8BUpyGYNGmD7M - name: Identify Calls + - actionId: vE7Gf9yobj2gTuMBhwmg7g + name: Order Completed Calls fields: external_id: '@path': $.userId - braze_id: - '@path': $.properties.braze_id - country: - '@path': $.context.location.country - current_location: - latitude: - '@path': $.context.location.latitude - longitude: - '@path': $.context.location.longitude email: '@path': $.traits.email - first_name: - '@path': $.traits.firstName - gender: - '@path': $.traits.gender - home_city: - '@path': $.traits.address.city - image_url: - '@path': $.traits.avatar - last_name: - '@path': $.traits.lastName - phone: - '@path': $.traits.phone - custom_attributes: - '@path': $.traits + braze_id: + '@path': $.properties.braze_id + time: + '@path': $.receivedAt + products: + '@path': $.properties.products + properties: + '@path': $.properties _update_existing_only: false enable_batching: true batch_size: 75 - trigger: type = "identify" + trigger: event = "Order Completed" - actionId: 3pnc4QJvUjWGi2bp6EnDt name: Track Calls fields: @@ -25194,25 +25276,46 @@ items: enable_batching: true batch_size: 75 trigger: type = "track" and event != "Order Completed" - - actionId: vE7Gf9yobj2gTuMBhwmg7g - name: Order Completed Calls + - actionId: 2P24zUSAL8BUpyGYNGmD7M + name: Identify Calls fields: external_id: '@path': $.userId - email: - '@path': $.traits.email braze_id: '@path': $.properties.braze_id - time: - '@path': $.receivedAt - products: - '@path': $.properties.products - properties: - '@path': $.properties + country: + '@path': $.context.location.country + current_location: + latitude: + '@path': $.context.location.latitude + longitude: + '@path': $.context.location.longitude + email: + '@path': $.traits.email + first_name: + '@path': $.traits.firstName + gender: + '@path': $.traits.gender + home_city: + '@path': $.traits.address.city + image_url: + '@path': $.traits.avatar + last_name: + '@path': $.traits.lastName + phone: + '@path': $.traits.phone + custom_attributes: + '@path': $.traits _update_existing_only: false enable_batching: true batch_size: 75 - trigger: event = "Order Completed" + trigger: type = "identify" + - actionId: 9DUBR4qVXRxPXa39oiz2Tc + name: Trigger Canvas + fields: + canvas_entry_properties: + '@path': $.properties + trigger: type = "track" and event = "Trigger Canvas" partnerOwned: false - id: 63872c01c0c112b9b4d75412 display_name: Braze Cohorts @@ -34001,7 +34104,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Enrol Contact to Program" fields: - - id: nyJjxsud3vwEM7K1vog7X4 + - id: 6bAd2fA4EkqcJ9tMGEAovy sortOrder: 0 fieldKey: channelIdentifier label: Contact Identifier type @@ -34018,7 +34121,7 @@ items: value: mobileNumber dynamic: false allowNull: false - - id: 5g6R4KYNv9bEMABYmmUAYD + - id: 4ebTorseZYdPGkgGV1jsRE sortOrder: 1 fieldKey: emailIdentifier label: Email Address @@ -34038,7 +34141,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8x8hdrSE1F9VKJzoBxL4gB + - id: vz5x9ncejdpepTgpVFQjMX sortOrder: 2 fieldKey: mobileNumberIdentifier label: Mobile Number @@ -34058,7 +34161,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3gCkXs3WQBXs2QtbjsY84 + - id: b7GdTWQQbEHkSSDu9Zm3DY sortOrder: 3 fieldKey: programId label: Program @@ -34078,7 +34181,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Remove Contact from List" fields: - - id: uHkRrAKMcF81snVg6RvG4L + - id: t5MWahNnRaDHNnRSzco1cr sortOrder: 0 fieldKey: channelIdentifier label: Contact Identifier type @@ -34095,7 +34198,7 @@ items: value: mobileNumber dynamic: false allowNull: false - - id: 4zfS1HuKzNWBtB8RN6SUw7 + - id: ec17Ma4hm6thGgM8WpXywX sortOrder: 1 fieldKey: emailIdentifier label: Email Address @@ -34115,7 +34218,7 @@ items: choices: null dynamic: false allowNull: false - - id: igbS3Lk1zNCoZybmJBg8Pv + - id: nxGVGH8tfKcveETPg7bwHH sortOrder: 2 fieldKey: mobileNumberIdentifier label: Mobile Number @@ -34135,7 +34238,7 @@ items: choices: null dynamic: false allowNull: false - - id: ww24d7Tk5CQs814VomTCUq + - id: horc5tdjZuy4epHLqPK4ta sortOrder: 3 fieldKey: listId label: List @@ -34150,12 +34253,12 @@ items: - id: mXqbgqEAfWG1MRz8cBHzS4 name: Add Contact to List slug: addContactToList - description: Adds a Contact to a list. + description: Adds a contact to a list. platform: CLOUD hidden: false defaultTrigger: type = "track" and event = "Add Contact to List" fields: - - id: 8yfiKY51TS8CFcEffgrbdE + - id: 5eGFX9XxNwmTmxUmeGxXzf sortOrder: 0 fieldKey: channelIdentifier label: Contact Identifier type @@ -34172,7 +34275,7 @@ items: value: mobileNumber dynamic: false allowNull: false - - id: 3R4n1rdxf48wxpaCNXsGBx + - id: 8orWgG8jidQQvCF4Sp9WNx sortOrder: 1 fieldKey: emailIdentifier label: Email Address @@ -34192,7 +34295,7 @@ items: choices: null dynamic: false allowNull: false - - id: sNx4UZZxtTuF9toi8rVobG + - id: iHQpcJHgTkKbpn2pMP1Xoc sortOrder: 2 fieldKey: mobileNumberIdentifier label: Mobile Number @@ -34212,7 +34315,7 @@ items: choices: null dynamic: false allowNull: false - - id: hqe1EJtkmpiVoVeUZsPsqB + - id: jQsJXmQAKxdG8Ef2Q5xaYN sortOrder: 3 fieldKey: listId label: List @@ -34224,7 +34327,7 @@ items: choices: null dynamic: true allowNull: false - - id: nYZ96z4YLhtHtukyAQwWbQ + - id: 7QbozYxmRKsG2SSe9EdYLR sortOrder: 4 fieldKey: dataFields label: Data Fields @@ -34238,6 +34341,318 @@ items: choices: null dynamic: true allowNull: false + - id: jv6zXzcGrfok4Ed9RAnJwz + name: Send Transactional SMS + slug: sendTransactionalSms + description: Sends a transactional SMS. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Send Transactional SMS" + fields: + - id: eSTTBJ7Si9nT3vxG3YPCNm + sortOrder: 0 + fieldKey: to + label: To + type: STRING + description: >- + Only valid mobile numbers with an international dialling prefix will be + accepted (e.g. 447777123123). + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.phone + then: + '@path': $.traits.phone + else: + '@path': $.properties.phone + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tKXmfudoGEUYBDJGzbQJm3 + sortOrder: 1 + fieldKey: from + label: From + type: STRING + description: >- + Enter a custom From name, or leave blank to use a random number. From + name format varies by region. [Learn + more](https://support.dotdigital.com/en/articles/8199187-sender-ids-and-originators) + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2kNVWSqgkH1aY2JNauXDUt + sortOrder: 2 + fieldKey: message + label: Message + type: TEXT + description: The content of the SMS, up to 160 non-encoded characters per message. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 5SpvJCTsemM3nmkUhbAyBM + sortOrder: 3 + fieldKey: link_shortening + label: Link Shortening + type: BOOLEAN + description: >- + [Link + shortening](https://developer.dotdigital.com/v2/reference/additional-options#link-shortening) + will automatically shorten your links to save character count and track + who clicked on them for better reporting. Defaults to No. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ftK6MRC5mmdDeUwwgLtLiW + sortOrder: 4 + fieldKey: allow_unicode + label: Allow Unicode Characters + type: BOOLEAN + description: >- + If Yes, Unicode characters will be allowed in the message body. If No, + any messages containing Unicode will not be sent. Please [read why + Unicode](https://developer.dotdigital.com/reference/channel-sms#section-why-is-unicode-important-with-sms) + is important before switching this on. Defaults to No. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tKtdaxiELexHfud1HvhdDE + name: Send Email Campaign + slug: sendEmailCampaign + description: Sends a marketing email to a contact. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Send Email Campaign" + fields: + - id: uPrJrs6nxzgL9DVwNUeBuJ + sortOrder: 0 + fieldKey: email + label: Email + type: STRING + description: >- + A single email address to send the campaign to. If the contact does not + exist in your Dotdigital account, the campaign won't be sent. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.email + then: + '@path': $.traits.email + else: + '@path': $.properties.email + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qWs7HzReXgmay5b39nbkSR + sortOrder: 1 + fieldKey: campaignId + label: Campaign + type: NUMBER + description: The campaign to email to a contact. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: optbhzAkp8ua4vPfsPNJYw + sortOrder: 2 + fieldKey: sendDate + label: Send Date + type: DATETIME + description: The campaign will be sent immediately if the send date is left blank. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 8BfgALB8N6T5VmmprhExrV + sortOrder: 3 + fieldKey: sendTimeOptimised + label: Send Time Optimised + type: BOOLEAN + description: >- + Send the campaign at the most appropriate time based upon their previous + opens. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ujJjpH1So8Mr4KtWzCbgGx + name: Send Transactional Email + slug: sendTransactionalEmail + description: Sends a transactional email. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Send Transactional Email" + fields: + - id: p7wvY4FvoyDoFMjzLCZTn + sortOrder: 0 + fieldKey: fromAddress + label: From Address + type: STRING + description: >- + Use either your default transactional email from address, or another + custom from address you have added to your account. If you set a from + address that is not listed in your available from addresses, Dotdigital + will replace it with your default from address. You may set a from name + as well as an email address, for example "My Company + <`Dotmailer123@r1.dotdigital-email.com`>". [Read more about using + transactional + email](https://support.dotdigital.com/en/articles/8199068-use-transactional-email). + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 3YwPynv6TH1FASf5dUpdui + sortOrder: 1 + fieldKey: toAddresses + label: To Address + type: STRING + description: The email address(es) to send to. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.email + then: + '@path': $.traits.email + else: + '@path': $.properties.email + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: j6HJXkzCxSASXa8Vsr1ubV + sortOrder: 2 + fieldKey: subject + label: Subject + type: STRING + description: The subject line for your email. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: oQ9fTTKs5hp1oA5sCUznGQ + sortOrder: 3 + fieldKey: htmlContent + label: HTML Content + type: TEXT + description: The HTML content for your email. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: gXjpEJCtRoJsTkgocR8TV2 + sortOrder: 4 + fieldKey: plainTextContent + label: Plain Text Content + type: TEXT + description: The plain text content for your email. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: raXvvzBRhwTLwuLeKNmAdU + sortOrder: 5 + fieldKey: ccAddresses + label: CC Addresses + type: STRING + description: >- + The CC email address(es) to send to. Separate email addresses with a + comma. Maximum: 100. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fyzRQJD2QoRJmDvDUkA669 + sortOrder: 6 + fieldKey: bccAddresses + label: BCC Addresses + type: STRING + description: >- + The BCC email address(es) to send to. Separate email addresses with a + comma. Maximum: 100. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: wyTCNJJUFCj7PZpJsBJj57 + name: Send SMS + slug: sendSms + description: Sends a marketing SMS to a contact. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Send SMS" + fields: + - id: w7Hf1QuhxifghDwFh3YuSL + sortOrder: 0 + fieldKey: to + label: To + type: STRING + description: The mobile number of the contact in E.164 format (e.g. 14155552671). + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.phone + then: + '@path': $.traits.phone + else: + '@path': $.properties.phone + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: oZ8vtx1N8ZjJmay6sk5RJT + sortOrder: 1 + fieldKey: message + label: Message + type: TEXT + description: The message to send in the SMS. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false presets: [] partnerOwned: true - id: 57ab9dfc80412f644ff2004c @@ -35390,7 +35805,7 @@ items: hidden: false defaultTrigger: type = "track" or type = "identify" fields: - - id: dVGYemvQ8FWEAAWn3wrFRE + - id: hJTFpX5VzdveLjH29EFnj2 sortOrder: 0 fieldKey: identityValue label: User identity value @@ -35404,7 +35819,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2amJN8YQDshFHaeJi1CUHw + - id: 3JNzLwT3bgfpUaRUnif6eZ sortOrder: 1 fieldKey: walletTransactionReference label: Wallet transaction reference @@ -35413,12 +35828,14 @@ items: Optional wallet transaction reference from the event triggering this Behavioral Action placeholder: '' + defaultValue: + '@path': $.messageId required: false multiple: false choices: null dynamic: false allowNull: false - - id: rtabdGqHL3eTEEQ1qarS8 + - id: eCLK8NmaRxNtDcPRt67Hbn sortOrder: 2 fieldKey: behavioralActionTriggerReferences label: Behavioral Action trigger reference @@ -51101,7 +51518,7 @@ items: hidden: true defaultTrigger: null fields: - - id: 3bZAgPB471jgRy2CjKKEQj + - id: iBdGLN4daYdMLtTU6rSv1C sortOrder: 0 fieldKey: conversion_label label: Conversion Label @@ -51118,7 +51535,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qHu13sQLr2yjQ5wTKs87Gp + - id: pgwLcfsZH6s4HqS5sdCo1f sortOrder: 1 fieldKey: email label: Email @@ -51139,7 +51556,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tVz2QxtywA1k4dhVDABsv3 + - id: 3KzeZyZbaT96776LXMgX2D sortOrder: 2 fieldKey: transaction_id label: Order ID @@ -51158,7 +51575,7 @@ items: dynamic: false allowNull: false hidden: false - - id: stCwgnB523rRpfSZ7uaScB + - id: dtZQFHLnt11KQctu8K3prK sortOrder: 3 fieldKey: user_agent label: User Agent @@ -51178,7 +51595,7 @@ items: dynamic: false allowNull: false hidden: false - - id: gHjpBPZGpqc6Gdr5wGgJrs + - id: juj9hxpkAaHcMW8yunR6ga sortOrder: 4 fieldKey: conversion_time label: Conversion Time @@ -51193,7 +51610,7 @@ items: dynamic: false allowNull: false hidden: false - - id: aWM1cqV5782QVpYZm757mb + - id: z8t2PJC9eMsECfY8iU2Jo sortOrder: 5 fieldKey: value label: Value @@ -51208,7 +51625,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sHrkE9W82Z2C2NMzA3bTbe + - id: tdPLT1QjTixCDdh2ARSdY4 sortOrder: 6 fieldKey: currency_code label: Currency Code @@ -51225,7 +51642,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tSKsWmndr5Nn7PnoJYKDTk + - id: 8BMHKJ7CtsGkMJ4DZSYUsS sortOrder: 7 fieldKey: is_app_incrementality label: App Conversion for Incrementality Study @@ -51239,7 +51656,7 @@ items: dynamic: false allowNull: false hidden: false - - id: gXWozm7sxo36ELAp5hLgLj + - id: 37deXUoDfznDQhPawWk2aU sortOrder: 8 fieldKey: pcc_game label: PCC Game Flag @@ -51255,7 +51672,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jz2BkejtpS5Wm7mCNwZpCb + - id: jKmf9j3YR74YyKwo6Qq7tJ sortOrder: 9 fieldKey: phone_number label: Phone Number @@ -51278,7 +51695,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6cpjBydwrxwhbq4NsSZqHr + - id: hQxynkT7BwwZV5VGcmG8Hp sortOrder: 10 fieldKey: first_name label: First Name @@ -51299,7 +51716,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 64FnctTsfkPwZJoNefGaw1 + - id: 4YyDPV9ZGa6NJ7mmm6sJn sortOrder: 11 fieldKey: last_name label: Last Name @@ -51320,7 +51737,7 @@ items: dynamic: false allowNull: false hidden: false - - id: uqD9XgEJTjueH6HnKyYRR4 + - id: aGkZeveVk9nChZcmHj5CJ6 sortOrder: 12 fieldKey: street_address label: Street Address @@ -51343,7 +51760,7 @@ items: dynamic: false allowNull: false hidden: false - - id: s3UzJjX83aHP8fiX67SY7V + - id: dBjSWaW5g7jdRmtvyM65j5 sortOrder: 13 fieldKey: city label: City @@ -51364,7 +51781,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9HVZkUGBL4pV7X4QSr5vfQ + - id: eGXf8FjKrgewuomyFK2mqS sortOrder: 14 fieldKey: region label: Region @@ -51385,7 +51802,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7nGFGJ6nUFEjxdXNepB8X1 + - id: gDRAbqyy5ieH8CNdXbAYsC sortOrder: 15 fieldKey: post_code label: Postal Code @@ -51406,7 +51823,7 @@ items: dynamic: false allowNull: false hidden: false - - id: oWpZTGZewx6NLRFo79qCsu + - id: 7iMKodntUfnTRKmV22Y6aT sortOrder: 16 fieldKey: country label: Country @@ -51435,7 +51852,7 @@ items: hidden: false defaultTrigger: null fields: - - id: w5vt6DYqCB8GnrD3H8P8VS + - id: eCXMxWKtKFMs4PTGbYQvDS sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -51448,7 +51865,7 @@ items: dynamic: true allowNull: false hidden: false - - id: gZ2xN9YQ1vz9cFjYGDewgq + - id: ehqSgvGkno7vNTPFYvU4DZ sortOrder: 1 fieldKey: adjustment_type label: Adjustment Type @@ -51474,7 +51891,7 @@ items: dynamic: false allowNull: false hidden: false - - id: bRFV8JFnGPtC4Q6SYjQknL + - id: oxNxgxppLBhE8GEkeZTWBN sortOrder: 2 fieldKey: adjustment_timestamp label: Adjustment Timestamp @@ -51493,7 +51910,7 @@ items: dynamic: false allowNull: false hidden: false - - id: kc4BYRoPz4zzv3FkSXSpYH + - id: qM3QjfyqXzRacjeR6wpvKj sortOrder: 3 fieldKey: order_id label: Order ID @@ -51517,7 +51934,7 @@ items: dynamic: false allowNull: false hidden: false - - id: uvPc3dup4QfAzwwooyxQ8T + - id: 7kLBDW24wEVMutcbj4TRq1 sortOrder: 4 fieldKey: gclid label: GCLID @@ -51532,7 +51949,7 @@ items: dynamic: false allowNull: false hidden: false - - id: viXMPh2EjVAhhiNMjS7E6q + - id: s7JrGufTXe66hHnzjdxEgS sortOrder: 5 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -51549,7 +51966,7 @@ items: dynamic: false allowNull: false hidden: false - - id: iJJ2sKkC1YEARLz1uHdary + - id: sMRHr3PQKaa8oFycVLWruv sortOrder: 6 fieldKey: restatement_value label: Restatement Value @@ -51566,7 +51983,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 46DroEDMTsunb4fDWzbAK9 + - id: bPg5SSZKKqAgwhUuriL2MT sortOrder: 7 fieldKey: restatement_currency_code label: Restatement Currency Code @@ -51583,7 +52000,7 @@ items: dynamic: false allowNull: false hidden: false - - id: csJWct1Umny4cLJgnqEe6Q + - id: 2VjP3Sipy7ESijt9y99Fpm sortOrder: 8 fieldKey: email_address label: Email Address @@ -51606,7 +52023,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4TvmHwYUTV1cDMbyNbfZqT + - id: ffybsX66UudshPyYF9Urju sortOrder: 9 fieldKey: phone_country_code label: Phone Number Country Code @@ -51621,7 +52038,7 @@ items: choices: null dynamic: false allowNull: false - - id: qXXnyw4ieGQPmZ9fbfbyX + - id: go86Vo1ABjgCiamXkzvczf sortOrder: 10 fieldKey: phone_number label: Phone Number @@ -51645,7 +52062,7 @@ items: dynamic: false allowNull: false hidden: false - - id: b3b1cNi1bXuS33jGeDnR3Z + - id: hvuJmoqWAJxwVCkzg4TwUd sortOrder: 11 fieldKey: first_name label: First Name @@ -51666,7 +52083,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 59cW4EKAnrCKcVqbkHzqvw + - id: ipaMSu2iJaHaYe32XafDQM sortOrder: 12 fieldKey: last_name label: Last Name @@ -51689,7 +52106,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8hCsgdBbiJ6Fr1ufheiNkn + - id: 6kWQJhP6Yh74VwT9TztrmJ sortOrder: 13 fieldKey: city label: City @@ -51710,7 +52127,7 @@ items: dynamic: false allowNull: false hidden: false - - id: a8og8H8ZmmDjYrn542Cxko + - id: aLEFjgF5MbPdcmU8fm5phK sortOrder: 14 fieldKey: state label: State @@ -51731,7 +52148,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qkV6Y32azth8B8rL1mp16X + - id: pKrq3Ka5UBs2a4qK2X2186 sortOrder: 15 fieldKey: country label: Country @@ -51754,7 +52171,7 @@ items: dynamic: false allowNull: false hidden: false - - id: s6MZRnWonvfXEFUoYMLb61 + - id: fXHZgfHLyxGJakZv8GvkxL sortOrder: 16 fieldKey: postal_code label: Postal Code @@ -51775,7 +52192,7 @@ items: dynamic: false allowNull: false hidden: false - - id: iMXfbyDFffEoHfJbK3GRbK + - id: 9uiZQermcwddadvZoSc13j sortOrder: 17 fieldKey: street_address label: Street Address @@ -51796,7 +52213,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jxxHJMbSr5Uh2sKsgq5v6s + - id: wtmPb9uqyMZagw7bb6zrFg sortOrder: 18 fieldKey: user_agent label: User Agent @@ -51824,7 +52241,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 8sBZcoMgnPakXn1B6ypGBm + - id: 3dp4dwWydhb6JJwiTktoWh sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -51837,12 +52254,14 @@ items: dynamic: true allowNull: false hidden: false - - id: typy4rfLPuitTcN226Ck8g + - id: dCGUr8btApEvMDW9fDGy8A sortOrder: 1 fieldKey: gclid label: GCLID type: STRING - description: The Google click ID (gclid) associated with this conversion. + description: >- + The Google click ID (gclid) associated with this conversion. One of + GCLID, GBRAID or WBRAID must be provided. placeholder: '' required: false multiple: false @@ -51850,14 +52269,15 @@ items: dynamic: false allowNull: false hidden: false - - id: uHz9QwcZfrMiXhVQKi9JWk + - id: jMacDSkKLczWkwDt7UNMNS sortOrder: 2 fieldKey: gbraid label: GBRAID type: STRING description: >- The click identifier for clicks associated with app conversions and - originating from iOS devices starting with iOS14. + originating from iOS devices starting with iOS14. One of GCLID, GBRAID + or WBRAID must be provided. placeholder: '' required: false multiple: false @@ -51865,14 +52285,15 @@ items: dynamic: false allowNull: false hidden: false - - id: qGRp9DEvZPLiLXFuFKbxcb + - id: nFgG5F7jmXuebojxar4wNi sortOrder: 3 fieldKey: wbraid label: WBRAID type: STRING description: >- The click identifier for clicks associated with web conversions and - originating from iOS devices starting with iOS14. + originating from iOS devices starting with iOS14. One of GCLID, GBRAID + or WBRAID must be provided. placeholder: '' required: false multiple: false @@ -51880,7 +52301,7 @@ items: dynamic: false allowNull: false hidden: false - - id: bqoBby7dkZ5trthTc82LhP + - id: qtgVPXNp1vprTQgFzTN4tH sortOrder: 4 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -51898,7 +52319,7 @@ items: dynamic: false allowNull: false hidden: false - - id: i4cxmcUMK7FBjV5fN7FreD + - id: 5RzDQzqZ62dfJVFF6vHKkR sortOrder: 5 fieldKey: email_address label: Email Address @@ -51921,7 +52342,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tC7pWiLueoCpjX6pn3KY5c + - id: v9Y2rkt21JeceeNEvQUc1t sortOrder: 6 fieldKey: phone_country_code label: Phone Number Country Code @@ -51936,7 +52357,7 @@ items: choices: null dynamic: false allowNull: false - - id: gMq8C9jLVK9h8rt7hy8uHg + - id: 39TB6eA4nCmwszMd1AZUqX sortOrder: 7 fieldKey: phone_number label: Phone Number @@ -51960,7 +52381,7 @@ items: dynamic: false allowNull: false hidden: false - - id: joW6XtDCvE7UDXuRwAjhn + - id: dEmis2fWEoL9T11DM8iGjV sortOrder: 8 fieldKey: order_id label: Order ID @@ -51983,7 +52404,7 @@ items: dynamic: false allowNull: false hidden: false - - id: uMwbjijhPgafofg66MGpba + - id: 2WQrHtJXSKGiQpaeHHYxDT sortOrder: 9 fieldKey: value label: Value @@ -51998,7 +52419,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tCKRsqUr9UL82ZFGuqkaYf + - id: k9U2C6dcV8nBExekv49yWv sortOrder: 10 fieldKey: currency label: Currency @@ -52015,7 +52436,7 @@ items: dynamic: false allowNull: false hidden: false - - id: xfHL7Kj2X9JzLE78ytAmDw + - id: dKbTuMgpUcpdRBYuxuHEe4 sortOrder: 11 fieldKey: conversion_environment label: Conversion Environment @@ -52038,7 +52459,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sxhzN3Y82Z7Fa6aJj7G8wD + - id: 9rC3aqb2U2WUwuqZAK6wTy sortOrder: 12 fieldKey: merchant_id label: Merchant Center ID @@ -52051,7 +52472,7 @@ items: dynamic: false allowNull: false hidden: false - - id: uu5V68zRRXPDHnkPaVF9ap + - id: 6kEqFf6NgmjdaLFpGqdje2 sortOrder: 13 fieldKey: merchant_country_code label: Merchant Center Feed Country Code @@ -52066,7 +52487,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fxDNXLgrx9UiWmKioyW2YV + - id: 6PESYnLbYwDnqw232hiE9p sortOrder: 14 fieldKey: merchant_language_code label: Merchant Center Feed Language Code @@ -52081,7 +52502,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ibZSjipUTYXa43qKiD5E2X + - id: 23f1pjvMKSs4U22Dad2hyU sortOrder: 15 fieldKey: local_cost label: Local Transaction Cost @@ -52096,7 +52517,7 @@ items: dynamic: false allowNull: false hidden: false - - id: BWibksrDxaLPXefnLdUrw + - id: uB63H9dAhdty6tFXaoQwxY sortOrder: 16 fieldKey: items label: Items @@ -52118,7 +52539,7 @@ items: dynamic: false allowNull: false hidden: false - - id: kU8zL8S5vqnvzusYf3k9KU + - id: hf2sPQWjRt4XVmGbCjm5gw sortOrder: 17 fieldKey: custom_variables label: Custom Variables @@ -52127,8 +52548,9 @@ items: The custom variables associated with this conversion. On the left-hand side, input the name of the custom variable as it appears in your Google Ads account. On the right-hand side, map the Segment field that contains - the corresponding value See [Google’s documentation on how to create - custom conversion + the corresponding value. Will not be sent if GBRAID or WBRAID fields + populated. See [Google’s documentation on how to create custom + conversion variables.](https://developers.google.com/google-ads/api/docs/conversions/conversion-custom-variables) placeholder: '' required: false @@ -52137,7 +52559,7 @@ items: dynamic: false allowNull: false hidden: false - - id: a1p6x8yhhwA14569v89CHp + - id: bET6XccxFUz7Dvx2ZZF5fu sortOrder: 18 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -52158,7 +52580,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: srqiCoM4xaS4Kt18C7M58R + - id: rRWEPvmQtEhSG3fqjQkQAo sortOrder: 19 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -52188,7 +52610,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 9iCRfwQ3Hu9ng9jJ95XKSq + - id: sSxraar6CY9nZVP9Cfk5zG sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -52201,7 +52623,7 @@ items: dynamic: true allowNull: false hidden: false - - id: 7nxhLWuYGFpMsAUNnbWwew + - id: bVnSzaJak8Y95HU3GSgrxk sortOrder: 1 fieldKey: caller_id label: Caller ID @@ -52216,7 +52638,7 @@ items: dynamic: false allowNull: false hidden: false - - id: uhhwxyNVy7FmaLj5nH3R9u + - id: 387fuHreLjLMZ5bf5UcGQZ sortOrder: 2 fieldKey: call_timestamp label: Call Timestamp @@ -52232,7 +52654,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vzePAgDkRk3omSnEExzDhd + - id: 7WZgadQnr1VJQ12X9Bcitb sortOrder: 3 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -52250,7 +52672,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jYDen4HJugeccdD5NHWNvD + - id: p3KVFFHKpyjvZeAtSc8udc sortOrder: 4 fieldKey: value label: Value @@ -52265,7 +52687,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 89bzqWrBvnDKDxjht5hTan + - id: 4mjiRpUv8J3A4QED6V2Rwh sortOrder: 5 fieldKey: currency label: Currency @@ -52282,7 +52704,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hESW8JuJRBgW5NAYMhTzyn + - id: bBZ2ekiDooc7kUex7iUm7k sortOrder: 6 fieldKey: custom_variables label: Custom Variables @@ -52301,7 +52723,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 5Xu3WkCfDZGeLEE8hDihDw + - id: 7San8airb269Dqs1JQiXqX sortOrder: 7 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -52322,7 +52744,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: b6osR2gJJrupN5SEsbPCFL + - id: bdZnknNZgpLgeyHPbjr4w6 sortOrder: 8 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -52352,7 +52774,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: sYKvTs3XHTuaQJ3JMpPtAU + - id: sDTvnmVA6y3y61Ar1mEahD sortOrder: 0 fieldKey: first_name label: First Name @@ -52372,7 +52794,7 @@ items: choices: null dynamic: false allowNull: false - - id: jnP6smP7dxigHzd7XnwDpf + - id: bDAFX5rVNxPaGyMjccKw4c sortOrder: 1 fieldKey: last_name label: Last Name @@ -52392,7 +52814,7 @@ items: choices: null dynamic: false allowNull: false - - id: gyXSjqydeMdJC9hUKQkJfq + - id: if1mquacvZLy4tvRLjAc8U sortOrder: 2 fieldKey: email label: Email @@ -52412,7 +52834,7 @@ items: choices: null dynamic: false allowNull: false - - id: 23r2a7eAT3Ye5rVuXJQUmG + - id: ad7zLQ8tdoGB2swybneXZC sortOrder: 3 fieldKey: phone label: Phone @@ -52432,7 +52854,7 @@ items: choices: null dynamic: false allowNull: false - - id: pGBisyjtPDzStweEnru8LR + - id: qMBtLxK9PkrbZMbyMkdbs7 sortOrder: 4 fieldKey: phone_country_code label: Phone Number Country Code @@ -52447,7 +52869,7 @@ items: choices: null dynamic: false allowNull: false - - id: mzgN3hriVm24nmTL2odRyM + - id: x3DikK4gj23dN1Zx6c7bqc sortOrder: 5 fieldKey: country_code label: Address Country Code @@ -52459,7 +52881,7 @@ items: choices: null dynamic: false allowNull: false - - id: di9YZ7KJ1Lb6uDSeQx57G4 + - id: uH1qipG1JvfGXmDNGqb94E sortOrder: 6 fieldKey: postal_code label: Postal Code @@ -52471,7 +52893,7 @@ items: choices: null dynamic: false allowNull: false - - id: rv5YLC6QHznLb1DurZcyXv + - id: nv1cUH4WkCQydf7HVRYNyv sortOrder: 7 fieldKey: crm_id label: CRM ID @@ -52485,7 +52907,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9B3urwjPfX26wULjrxunhu + - id: qKSukeqfTLZqgQjTkWNkSq sortOrder: 8 fieldKey: mobile_advertising_id label: Mobile Advertising ID @@ -52501,7 +52923,7 @@ items: choices: null dynamic: false allowNull: false - - id: 214pE7AhFePMYx1NreyqHF + - id: 5DW9e4sZkipuVKp3EnWmh8 sortOrder: 9 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -52522,7 +52944,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: ubo1V42sdSB2rhWDdE6mT9 + - id: 5WvmCQLEqaXGUkdRNmVoFs sortOrder: 10 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -52544,7 +52966,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: nDiBRzCeUzGUktQrFpJQcK + - id: 4x2tk47nBqJo1UWQcNtxwd sortOrder: 15 fieldKey: list_id label: Existing List ID @@ -52558,7 +52980,7 @@ items: choices: null dynamic: true allowNull: false - - id: 6CYZRDJGE5kYC3DzN89QXK + - id: 3AcgJUcXWGM4HpBQaW2uiE sortOrder: 16 fieldKey: list_name label: List Name @@ -52570,7 +52992,7 @@ items: choices: null dynamic: false allowNull: false - - id: rP6G7A4u18pJ4M8CJjbuNf + - id: it3pxyzAfMQsx1Lqf8K4tk sortOrder: 17 fieldKey: external_id_type label: External ID Type @@ -52589,7 +53011,7 @@ items: value: MOBILE_ADVERTISING_ID dynamic: false allowNull: false - - id: uPyYkqtQZMBf2ddRV2sXCh + - id: xmkFnQFNeWcKjGiqtka42V sortOrder: 18 fieldKey: app_id label: App ID @@ -52604,7 +53026,7 @@ items: choices: null dynamic: false allowNull: false - - id: dhVK4wu3a9BKWPLTNoHH1k + - id: 3xKnrU87x5Y482UKy57kfr sortOrder: 19 fieldKey: retlOnMappingSave label: Connect to a Google Customer Match User List @@ -52627,7 +53049,7 @@ items: hidden: false defaultTrigger: null fields: - - id: hW86nggLFqwHaQcMqust66 + - id: gMby4TNBBsuSZwMc2Upz3r sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -52639,7 +53061,7 @@ items: choices: null dynamic: true allowNull: false - - id: 5cGQ7TAfpuEMt5xRvuvEeG + - id: 7cyupTfqX3BSqTtRpk94WD sortOrder: 1 fieldKey: caller_id label: Caller ID @@ -52653,7 +53075,7 @@ items: choices: null dynamic: false allowNull: false - - id: eYfLLFCbi3o2kwY6Njh135 + - id: w6Fn4rdTCrjEYpaW8HX3Cw sortOrder: 2 fieldKey: call_timestamp label: Call Timestamp @@ -52668,7 +53090,7 @@ items: choices: null dynamic: false allowNull: false - - id: ctVGoQ33jepVz2eM7L9y6m + - id: uhtv8hYZsAXqN8YxU5PMzV sortOrder: 3 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -52685,7 +53107,7 @@ items: choices: null dynamic: false allowNull: false - - id: i1KPvWvqCoK7vA7APdDRuo + - id: k5LN9Tpzq79BKFC42QLzwF sortOrder: 4 fieldKey: value label: Value @@ -52699,7 +53121,7 @@ items: choices: null dynamic: false allowNull: false - - id: p6rvSY8LuqEWYEVeHi6few + - id: m63pKHus64ieUiyEFMv35X sortOrder: 5 fieldKey: currency label: Currency @@ -52715,7 +53137,7 @@ items: choices: null dynamic: false allowNull: false - - id: h3oZFQtZtuXvkZjohSwMKu + - id: 69Fy3KJzGG1mqMM2uADmGq sortOrder: 6 fieldKey: custom_variables label: Custom Variables @@ -52733,7 +53155,7 @@ items: choices: null dynamic: false allowNull: false - - id: qYs9ADuC4cUvPTf2UbAPhg + - id: dRTWDPgLWJ18aXKwzHBbdn sortOrder: 7 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -52754,7 +53176,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: eWX8AxeQQWDGsFyjrE1U2q + - id: usEArmwJHcJ573JPYcnj3 sortOrder: 8 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -52784,7 +53206,7 @@ items: hidden: false defaultTrigger: null fields: - - id: nTskMs95WwFE6yxszgQ7dU + - id: xgrFy7Kc1e6Lys3i8th5h8 sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -52796,7 +53218,7 @@ items: choices: null dynamic: true allowNull: false - - id: s7P4KTn85A9VhM4ymkZk1 + - id: cmP9LEN7bYP7B22Bb2BQsZ sortOrder: 1 fieldKey: adjustment_type label: Adjustment Type @@ -52821,7 +53243,7 @@ items: value: ENHANCEMENT dynamic: false allowNull: false - - id: uQ5WRVERqqkvmZNbHuADDH + - id: gZUXXQDQf583MnXs8pedj2 sortOrder: 2 fieldKey: adjustment_timestamp label: Adjustment Timestamp @@ -52839,7 +53261,7 @@ items: choices: null dynamic: false allowNull: false - - id: beGFavgpnXuBF6hSwQe5nN + - id: tQZfHzjhFtx2efo6m96v84 sortOrder: 3 fieldKey: order_id label: Order ID @@ -52862,7 +53284,7 @@ items: choices: null dynamic: false allowNull: false - - id: pkoAjQSCMHrMNecDmpEYvP + - id: oFww5R9FiGSyqbUwTNYWFE sortOrder: 4 fieldKey: gclid label: GCLID @@ -52876,7 +53298,7 @@ items: choices: null dynamic: false allowNull: false - - id: mgf5Bg2AmB7JgeesA35xZ4 + - id: uZtDpU4UMh1WL5R6Nj4hnQ sortOrder: 5 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -52892,7 +53314,7 @@ items: choices: null dynamic: false allowNull: false - - id: aYK22gsSFMStD6PY3LoJq5 + - id: cvJwWUy7u19g4xKxUMopEN sortOrder: 6 fieldKey: restatement_value label: Restatement Value @@ -52908,7 +53330,7 @@ items: choices: null dynamic: false allowNull: false - - id: x27b5CZt6p8GYkrc2qTCAx + - id: 9wTsSdbMFwiPpd5VyDGV9L sortOrder: 7 fieldKey: restatement_currency_code label: Restatement Currency Code @@ -52924,7 +53346,7 @@ items: choices: null dynamic: false allowNull: false - - id: saVEr9jsHAnApLZXddgmNZ + - id: cWjY4RNUR1uqQFPfsZVvFi sortOrder: 8 fieldKey: phone_country_code label: Phone Number Country Code @@ -52939,7 +53361,7 @@ items: choices: null dynamic: false allowNull: false - - id: xqfvrCw1bv3rctcYneAXSp + - id: iwUubYi4C9o8nv5DjT4Pdf sortOrder: 9 fieldKey: email_address label: Email Address @@ -52961,7 +53383,7 @@ items: choices: null dynamic: false allowNull: false - - id: sBbKHzKaHMFFKo566WLZvP + - id: vr62XkSTrTEisvbvgq7SCx sortOrder: 10 fieldKey: phone_number label: Phone Number @@ -52984,7 +53406,7 @@ items: choices: null dynamic: false allowNull: false - - id: jFGN1v9E1aag7LTevrf2jn + - id: wJXWeutSazM2iwQn44pAZX sortOrder: 11 fieldKey: first_name label: First Name @@ -53004,7 +53426,7 @@ items: choices: null dynamic: false allowNull: false - - id: iN93zPhJCTtpjs6JLJJQn4 + - id: dMJNoRRKRfP1qij8FeSdcm sortOrder: 12 fieldKey: last_name label: Last Name @@ -53026,7 +53448,7 @@ items: choices: null dynamic: false allowNull: false - - id: pazQfBWyrbFbLihtowzTQG + - id: 56KDmkVZk3FoW7oNxq8Lwx sortOrder: 13 fieldKey: city label: City @@ -53046,7 +53468,7 @@ items: choices: null dynamic: false allowNull: false - - id: rv1N7MbKNfRDk2DcjwEMxn + - id: mSv4MdQ9oPQ5kSAAv4LJWB sortOrder: 14 fieldKey: state label: State @@ -53066,7 +53488,7 @@ items: choices: null dynamic: false allowNull: false - - id: nzEgwgivyvDxhekAorbQBh + - id: kL6fcrFCKwb52zR2u4G2hE sortOrder: 15 fieldKey: country label: Country @@ -53088,7 +53510,7 @@ items: choices: null dynamic: false allowNull: false - - id: p8S5ZiUpvZCM6LRSPLp4GY + - id: 6BwigpKhU8Z4MQE2Cc8Cdm sortOrder: 16 fieldKey: postal_code label: Postal Code @@ -53108,7 +53530,7 @@ items: choices: null dynamic: false allowNull: false - - id: kzyLTupYyvMqRpR81otWDE + - id: uA2s9w8B7g6sw5aDkeHJbs sortOrder: 17 fieldKey: street_address label: Street Address @@ -53130,7 +53552,7 @@ items: choices: null dynamic: false allowNull: false - - id: w4cQE6sD2XNueUe8BcKZcX + - id: 7uXnBfpKanK8ysTX8Dk5oN sortOrder: 18 fieldKey: user_agent label: User Agent @@ -53157,7 +53579,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 9D9iShrZrbJi2Q7c7WQYyP + - id: vPV8GDsNZ8idSqekuhrn2a sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -53169,47 +53591,51 @@ items: choices: null dynamic: true allowNull: false - - id: uiXcGHWNTuxq24MUm9UDkS + - id: dEhg2mGi8Bk5HGx7XP1mhC sortOrder: 1 fieldKey: gclid label: GCLID type: STRING - description: The Google click ID (gclid) associated with this conversion. + description: >- + The Google click ID (gclid) associated with this conversion. One of + GCLID, GBRAID or WBRAID must be provided. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: 7fdSWkw11RojegYuSvUikM + - id: ji75441EHVQodrc7Vsrr1t sortOrder: 2 fieldKey: gbraid label: GBRAID type: STRING description: >- The click identifier for clicks associated with app conversions and - originating from iOS devices starting with iOS14. + originating from iOS devices starting with iOS14. One of GCLID, GBRAID + or WBRAID must be provided. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: kAqmEjaME2gsmvdGPs687y + - id: bd89GYci3MfCPPPK9eFvxd sortOrder: 3 fieldKey: wbraid label: WBRAID type: STRING description: >- The click identifier for clicks associated with web conversions and - originating from iOS devices starting with iOS14. + originating from iOS devices starting with iOS14. One of GCLID, GBRAID + or WBRAID must be provided. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: v5QqqjRQQo3Dh2mVU9ioWL + - id: acmRbLVULtQANRdNnQY9g7 sortOrder: 4 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -53226,7 +53652,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9QfTjMSq3LCjJ3kpGEWW3h + - id: xBaE17VfftUXpwRU1sK42J sortOrder: 5 fieldKey: email_address label: Email Address @@ -53248,7 +53674,7 @@ items: choices: null dynamic: false allowNull: false - - id: fZzjyZ9JKv18vZtjFGXNzy + - id: sG6PBo9y61ZTiNRmcHW4qM sortOrder: 6 fieldKey: phone_country_code label: Phone Number Country Code @@ -53263,7 +53689,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5i1BTrJH8Sk9kUHFTwGr82 + - id: fDNY5boZaWXkqWma6QAYvU sortOrder: 7 fieldKey: phone_number label: Phone Number @@ -53286,7 +53712,7 @@ items: choices: null dynamic: false allowNull: false - - id: jmCwYSYxJGgJyBJqFTrf7w + - id: 49hdCo5bmNtW5yVcLQSgvY sortOrder: 8 fieldKey: order_id label: Order ID @@ -53308,7 +53734,7 @@ items: choices: null dynamic: false allowNull: false - - id: xgNBCxDBakwGF6bHC59ki4 + - id: qkh9N77mW6c8P7gcvFqGz5 sortOrder: 9 fieldKey: value label: Value @@ -53322,7 +53748,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6qhNWVHkzNEH7JNkS21D9i + - id: bttFjeS2DKZHEqEBFSSnth sortOrder: 10 fieldKey: currency label: Currency @@ -53338,7 +53764,7 @@ items: choices: null dynamic: false allowNull: false - - id: etwYWBYjfb2JWTCWom2NVw + - id: 7Qm3ngduoEGxnPAaav6oUc sortOrder: 11 fieldKey: conversion_environment label: Conversion Environment @@ -53360,7 +53786,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: 75eznopfeVhgsyc9gv4D7j + - id: 9z1Dw9xX5nrnbhdhwjsgR1 sortOrder: 12 fieldKey: merchant_id label: Merchant Center ID @@ -53372,7 +53798,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6iKnz83h6YA4ZrBkMTeuTT + - id: 4WU7iwyTw6H1HcK2N9S3pn sortOrder: 13 fieldKey: merchant_country_code label: Merchant Center Feed Country Code @@ -53386,7 +53812,7 @@ items: choices: null dynamic: false allowNull: false - - id: mvnoe2qetDLS6XrPzF5Psa + - id: uJurc1BvcStz5yL85YjAW4 sortOrder: 14 fieldKey: merchant_language_code label: Merchant Center Feed Language Code @@ -53400,7 +53826,7 @@ items: choices: null dynamic: false allowNull: false - - id: uTHtFyWdJ28F6xUVDGXe7S + - id: dgNyiZrXrHXpdSkWEjVvHH sortOrder: 15 fieldKey: local_cost label: Local Transaction Cost @@ -53414,7 +53840,7 @@ items: choices: null dynamic: false allowNull: false - - id: bbniFMrGTpxx9XiWYh1HUd + - id: f3mKMj3g1xXYKMBhXQESzQ sortOrder: 16 fieldKey: items label: Items @@ -53435,7 +53861,7 @@ items: choices: null dynamic: false allowNull: false - - id: wsEP2fkY8Z3RSSy6oxxTvg + - id: ftdi5KQbp1Tr3akeZQpktp sortOrder: 17 fieldKey: custom_variables label: Custom Variables @@ -53444,8 +53870,9 @@ items: The custom variables associated with this conversion. On the left-hand side, input the name of the custom variable as it appears in your Google Ads account. On the right-hand side, map the Segment field that contains - the corresponding value See [Google’s documentation on how to create - custom conversion + the corresponding value. Will not be sent if GBRAID or WBRAID fields + populated. See [Google’s documentation on how to create custom + conversion variables.](https://developers.google.com/google-ads/api/docs/conversions/conversion-custom-variables) placeholder: '' required: false @@ -53453,7 +53880,7 @@ items: choices: null dynamic: false allowNull: false - - id: i191aQ6RpqXVmQEXXQXcph + - id: 34HKCS1dj1btdtw1boYxQe sortOrder: 18 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -53474,7 +53901,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: ajZ5chPcQL4NaxqJCusTv4 + - id: wjNeujiw5b1YZ5tYdaz5qv sortOrder: 19 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -70440,7 +70867,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: oeXyov7U6NLQH7Jw4neEF7 + - id: uo3XjXtL6c3hBUtRzUvYYr sortOrder: 0 fieldKey: remote_created_at label: Company Creation Time @@ -70455,7 +70882,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ucJM58rFexjfCrGwEN6T9a + - id: gxFZXcgEKSCkhvdCjaeiuF sortOrder: 1 fieldKey: external_id label: External ID @@ -70473,7 +70900,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qeGt6jeQYwbfsCh8XyAHHt + - id: mjCd2R5efzCdKHVmPfkRGX sortOrder: 2 fieldKey: email label: Email Address @@ -70490,7 +70917,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 3zvvodmcQL6eMvu9pKSJkp + - id: 9XSUQ6JamjwHVCBTLEz6FP sortOrder: 3 fieldKey: company_id label: Company ID @@ -70505,7 +70932,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hhRjg8EGd2kfJohtdrsqio + - id: 8vULgyxtCDwJG5aA2bqiy5 sortOrder: 4 fieldKey: contact_id label: Contact ID @@ -70521,7 +70948,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mMLGLDug2128ZgdQCaKr3B + - id: wHQrs3WXsi4516YScR7MJj sortOrder: 5 fieldKey: name label: Company Name @@ -70536,7 +70963,7 @@ items: dynamic: false allowNull: false hidden: false - - id: iWLnToWr36FEBxFeDu9W7B + - id: omTjG7C2UDKrT5xDqi1zEm sortOrder: 6 fieldKey: monthly_spend label: Monthly Spend @@ -70553,7 +70980,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2UDwZg5xVcPdg8f5eNj9Vm + - id: cuFabaT3FuRCFp7WbaufTC sortOrder: 7 fieldKey: plan label: Company Plan @@ -70568,7 +70995,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vfQafC7bb1kkCUusCPiwsF + - id: rPaEnNbgJY1ubHUxfMKUjh sortOrder: 8 fieldKey: size label: Company Size @@ -70583,7 +71010,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 3k78RcWBkdAbZomRCkxoNL + - id: 8qHuSj928FwAJJV29LsDDu sortOrder: 9 fieldKey: website label: Company Website @@ -70598,7 +71025,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 3J63RzwjgUN5ze5cktxojL + - id: bLHQBaDdVtG6W1CirqXBYo sortOrder: 10 fieldKey: industry label: Industry @@ -70613,7 +71040,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8n3TzK2uEcsbEjrD8TQqAk + - id: myY2tseMpwHfeiu7qCxY4u sortOrder: 11 fieldKey: custom_attributes label: Custom Attributes @@ -70640,7 +71067,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: i7i2DNSqyvHCgzcBt6yBPc + - id: iA65oFpbLf1BuQfD1pqPNJ sortOrder: 0 fieldKey: event_name label: Event Name @@ -70658,7 +71085,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ukg6BhmhEjDqynPmFnJXRM + - id: 5TPE7fDBiP4fZnTQgQv1GZ sortOrder: 1 fieldKey: created_at label: Event Timestamp @@ -70675,7 +71102,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hHEo64wDE5RQjZURpHVgyj + - id: hxCXijSH2dag6RsGrj5dDv sortOrder: 2 fieldKey: user_id label: User ID @@ -70692,7 +71119,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tsAqdc9Jpi32sGqpyuDXMW + - id: tVDu63tdBtr2bkVWGGfYsc sortOrder: 3 fieldKey: email label: Email Address @@ -70709,7 +71136,7 @@ items: dynamic: false allowNull: false hidden: false - - id: edZKCPgHaG2NR51WitdFzr + - id: rt4JKBEWmFXXvRS2zwRZbL sortOrder: 4 fieldKey: revenue label: Revenue @@ -70726,7 +71153,7 @@ items: dynamic: false allowNull: false hidden: false - - id: w4EDFkPKd3qbQwNuZUVpV7 + - id: s914Cc3TTAQ81TqsrwLu6i sortOrder: 5 fieldKey: currency label: Currency @@ -70743,7 +71170,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4mNEijqUPQ1qikRsSNnXUZ + - id: 9YL8caHhQUx9fWmSZdLpoS sortOrder: 6 fieldKey: id label: Contact ID @@ -70758,7 +71185,7 @@ items: dynamic: false allowNull: false hidden: false - - id: c7DcCxoMJoYz7HVjEgopJS + - id: xmXJ8T5HZeFhcEVF5W7gw sortOrder: 7 fieldKey: metadata label: Event Metadata @@ -70785,7 +71212,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: mGdbfDkhy8kFVMM6Xi761K + - id: 4QnZWCrbWNo6MLWqmpzV17 sortOrder: 0 fieldKey: role label: Role @@ -70802,7 +71229,7 @@ items: dynamic: false allowNull: false hidden: false - - id: utCVvf2G8nYb5d1MUbFG2w + - id: mV7xhAEdUUNtyRk1tpSjrt sortOrder: 1 fieldKey: external_id label: External ID @@ -70820,7 +71247,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vQbMeXKMZoFZP4HQyyAWc9 + - id: knuwmtRh6WfoXk6DBbkfJM sortOrder: 2 fieldKey: email label: Email Address @@ -70837,7 +71264,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qDjSPcHVrBMAPmMCgRiDLA + - id: 9hu6Efjv7AcXLB6Zxy3kKT sortOrder: 3 fieldKey: phone label: Phone Number @@ -70852,7 +71279,7 @@ items: dynamic: false allowNull: false hidden: false - - id: iUD71GpG2zBmukJnkMkD7a + - id: mchhs95i1LkyPQYFfcxUaP sortOrder: 4 fieldKey: name label: Name @@ -70867,7 +71294,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ncPPawJUjh2o9JLHKxKuF4 + - id: agR6b7qkfbk82AjZiMTHFk sortOrder: 5 fieldKey: avatar label: Avatar @@ -70882,7 +71309,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6p7W147JBjVAxgn795M3h4 + - id: huhwb4XFp4fnNu3FdwdHY5 sortOrder: 6 fieldKey: signed_up_at label: Signed Up Timestamp @@ -70895,7 +71322,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dabFySubdRKMLdbf1SbkEs + - id: U4Fagpb4q3UkMfMRAkv9J sortOrder: 7 fieldKey: last_seen_at label: Last Seen Timestamp @@ -70910,7 +71337,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9HaBE2nNGwWc8xqJT4Ke3j + - id: a3GMJDQpFxMAJRGLKkS2jM sortOrder: 8 fieldKey: owner_id label: Owner ID @@ -70925,7 +71352,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sb8aCyo1wnqiWrzxFmWKpR + - id: cEnM5TqBYoMdsoYKbiVAej sortOrder: 9 fieldKey: unsubscribed_from_emails label: Unsubscribed From Emails @@ -70938,7 +71365,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vS4VtmHvvkYnRRJhBXETYn + - id: eaTZQkAX73VizZvvCqNmXi sortOrder: 10 fieldKey: custom_attributes label: Custom Attributes @@ -80900,7 +81327,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: 7511VyvY4NS4w9dtpSTfdh + - id: grzymw7kTgosuBnJ66iSbM sortOrder: 0 fieldKey: dmp_segment_name label: DMP Segment Display Name @@ -80911,14 +81338,20 @@ items: has created an audience will not update the audience name in LinkedIn. placeholder: '' defaultValue: - '@path': $.properties.audience_key + '@if': + exists: + '@path': $.properties.audience_key + then: + '@path': $.properties.audience_key + else: + '@path': $.context.personas.computation_key required: false multiple: false choices: null dynamic: false allowNull: false hidden: false - - id: xzNE674njRGb54csuz8w2k + - id: 8GJ1D1dX6wNsgaoro5cunP sortOrder: 1 fieldKey: enable_batching label: Enable Batching @@ -80932,7 +81365,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jaRpaeYSg3CVGZYedFipFY + - id: eyG2pmPE8nUSWfybrVqZbE sortOrder: 2 fieldKey: email label: User Email @@ -80954,7 +81387,7 @@ items: choices: null dynamic: false allowNull: false - - id: p4zXdsFeV2q3pXL4XSpbjx + - id: 6bubqqywwk5kvYDRCQj3KT sortOrder: 3 fieldKey: first_name label: User First Name @@ -80968,7 +81401,7 @@ items: choices: null dynamic: false allowNull: false - - id: gSC9KCcNN6r5c1VxLszdJa + - id: tmXozQyG4GAC19yQt23x6r sortOrder: 4 fieldKey: last_name label: User Last Name @@ -80982,7 +81415,7 @@ items: choices: null dynamic: false allowNull: false - - id: gcYH9oH6d8FutpRsmWvzmT + - id: 9jBroPjFYTKfJ8Zg1MVUUj sortOrder: 5 fieldKey: title label: User Title @@ -80996,7 +81429,7 @@ items: choices: null dynamic: false allowNull: false - - id: nHG9m4eH8i7FfrNMRY87F4 + - id: kTMpFrE5VfSiuTkvPmLATm sortOrder: 6 fieldKey: company label: User Company @@ -81010,7 +81443,7 @@ items: choices: null dynamic: false allowNull: false - - id: nwXuuLFxX4RQoEaai3Bezs + - id: i5uCBBgCwQJzXQWPPpyMKo sortOrder: 7 fieldKey: country label: User Country @@ -81026,7 +81459,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3J6d7CWpHKLCaf9cUJton9 + - id: hYv6SLh75LrtqFKsg4vF4D sortOrder: 10 fieldKey: personas_audience_key label: Segment Engage Audience Key @@ -81042,7 +81475,7 @@ items: dynamic: false allowNull: false hidden: false - - id: w8KuaMrKHmQeyaw7KBg8sb + - id: ucjmSCtjJVxHJ8AMQAV5No sortOrder: 12 fieldKey: dmp_user_action label: DMP User Action @@ -82172,7 +82605,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: kMgyerASLivvGmMF5YLRK1 + - id: bcMzgzKBnTLzKgq78s4uCd sortOrder: 0 fieldKey: sftp_username label: Username @@ -82185,7 +82618,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 3hnbAU6ztRqHAHtXdtsSS5 + - id: qicLr2aFxyGNGL9h6u4tva sortOrder: 1 fieldKey: sftp_password label: Password @@ -82198,7 +82631,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dK2ei4KkRg13BtKKzfwUF9 + - id: fns8XJUPQ1w3YbwKxM9nFp sortOrder: 2 fieldKey: sftp_folder_path label: Folder Path @@ -82215,7 +82648,7 @@ items: dynamic: false allowNull: false hidden: false - - id: x96cA8SB9oxXzywrLP7wXk + - id: jBusi4jwj3nQr95rXHqogQ sortOrder: 3 fieldKey: audience_key label: LiveRamp Audience Key @@ -82234,7 +82667,7 @@ items: dynamic: false allowNull: false hidden: false - - id: twGu7B9VUEoGPoMKHUfD7G + - id: n2etQ1gt5FdeJvncw7XSd3 sortOrder: 4 fieldKey: identifier_data label: Identifier Data @@ -82247,7 +82680,7 @@ items: dynamic: false allowNull: false hidden: false - - id: h1ASLUgE6GjxCMXyBBWG6y + - id: jtdtwXHabf8WvHBup9fFTw sortOrder: 5 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -82263,7 +82696,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qS42Y8bSvzQYFTmcY55cT8 + - id: udMiBRFdqAEy7dwZ8jtNFD sortOrder: 6 fieldKey: delimiter label: Delimeter @@ -82277,7 +82710,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sJqPmPaKrfnUGCkrLDgddT + - id: baKrghP4w9G4xYhtJ9sMuN sortOrder: 7 fieldKey: filename label: Filename @@ -82302,7 +82735,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: daCKHSi8JhZwut8Cxg6HR5 + - id: jVyeyS3iBPaxuq6dErmaoB sortOrder: 0 fieldKey: s3_aws_access_key label: AWS Access Key ID @@ -82315,7 +82748,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 89U7s6TP78WYwsCjPvE93u + - id: 2tNwMzSiKWg8PjXshtPEuL sortOrder: 1 fieldKey: s3_aws_secret_key label: AWS Secret Access Key @@ -82328,7 +82761,7 @@ items: dynamic: false allowNull: false hidden: false - - id: c66uem7Z16uXsNSbrwB8Bj + - id: giyTt6vJbq8PEKUD9Gq7dH sortOrder: 2 fieldKey: s3_aws_bucket_name label: AWS Bucket Name @@ -82341,20 +82774,20 @@ items: dynamic: false allowNull: false hidden: false - - id: iv4ZA4WQRK1tFGsE2nzcyE + - id: b1gMoLUqSYnP2hVbEKv1rw sortOrder: 3 fieldKey: s3_aws_region label: AWS Region (S3 only) type: STRING description: Region where the S3 bucket is hosted. placeholder: '' - required: false + required: true multiple: false choices: null dynamic: false allowNull: false hidden: false - - id: 2vea8KdovH8VMqtbXhx8pV + - id: eSEWsjFxKDfhoiUwL1TQe4 sortOrder: 4 fieldKey: audience_key label: LiveRamp Audience Key @@ -82373,7 +82806,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vwYppuEgPFQwEPmvEnoDUt + - id: isW2cPNRpVdij1ajDHjjpq sortOrder: 5 fieldKey: identifier_data label: Identifier Data @@ -82386,7 +82819,7 @@ items: dynamic: false allowNull: false hidden: false - - id: nFg9kJWTyvuq9M5WDdkTdE + - id: 5zNgqeHT4164w5wsfBF9cj sortOrder: 6 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -82402,7 +82835,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9xUCLtDdUuCUBzMjtRWr3W + - id: pqSU2vN4u2yqrsQUF4tK5o sortOrder: 7 fieldKey: delimiter label: Delimeter @@ -82416,7 +82849,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8xZ1w2rx3r1M5qWjsihLWf + - id: qtVPusxF4wmZCfBRFMBvXL sortOrder: 8 fieldKey: filename label: Filename @@ -82433,7 +82866,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9gzRouweQC4noqggvXoywB + - id: 3aaHsfmUByergYzSRd9CeY sortOrder: 11 fieldKey: s3_aws_bucket_path label: AWS Bucket Path [optional] @@ -102051,7 +102484,931 @@ items: '@path': $.context.traits.email else: '@path': $.properties.email - external_id: + external_id: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + ip_address: + '@path': $.context.ip + user_agent: + '@path': $.context.userAgent + uuid: + '@if': + exists: + '@path': $.integrations.Reddit Conversions Api.uuid + then: + '@path': $.integrations.Reddit Conversions Api.uuid + else: + '@path': $.properties.uuid + phone_number: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + screen_dimensions: + height: + '@path': $.context.screen.height + width: + '@path': $.context.screen.width + event_metadata: + currency: + '@path': $.properties.currency + itemCount: + '@path': $.properties.quantity + value: + '@path': $.properties.price + conversion_id: + '@path': $.messageId + tracking_type: AddToWishlist + trigger: type = "track" and event = "Product Added to Wishlist" + - actionId: oKfDyMn39WEUWwEU4puB6Z + name: Page Visit + fields: + event_at: + '@path': $.timestamp + click_id: + '@if': + exists: + '@path': $.integrations.Reddit Conversions Api.click_id + then: + '@path': $.integrations.Reddit Conversions Api.click_id + else: + '@path': $.properties.click_id + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + external_id: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + ip_address: + '@path': $.context.ip + user_agent: + '@path': $.context.userAgent + uuid: + '@if': + exists: + '@path': $.integrations.Reddit Conversions Api.uuid + then: + '@path': $.integrations.Reddit Conversions Api.uuid + else: + '@path': $.properties.uuid + phone_number: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + screen_dimensions: + height: + '@path': $.context.screen.height + width: + '@path': $.context.screen.width + event_metadata: {} + conversion_id: + '@path': $.messageId + tracking_type: PageVisit + trigger: type = "page" + - actionId: oKfDyMn39WEUWwEU4puB6Z + name: Add to Cart + fields: + event_at: + '@path': $.timestamp + click_id: + '@if': + exists: + '@path': $.integrations.Reddit Conversions Api.click_id + then: + '@path': $.integrations.Reddit Conversions Api.click_id + else: + '@path': $.properties.click_id + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + external_id: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + ip_address: + '@path': $.context.ip + user_agent: + '@path': $.context.userAgent + uuid: + '@if': + exists: + '@path': $.integrations.Reddit Conversions Api.uuid + then: + '@path': $.integrations.Reddit Conversions Api.uuid + else: + '@path': $.properties.uuid + phone_number: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.properties.phone + screen_dimensions: + height: + '@path': $.context.screen.height + width: + '@path': $.context.screen.width + event_metadata: + currency: + '@path': $.properties.currency + itemCount: + '@path': $.properties.quantity + value: + '@path': $.properties.price + conversion_id: + '@path': $.messageId + tracking_type: AddToCart + trigger: type = "track" and event = "Product Added" + partnerOwned: true +- id: 68383577d2c19626da376944 + display_name: Reddit Pixel + name: Reddit Pixel + slug: reddit-pixel + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/reddit-pixel + previous_names: + - Reddit Pixel + website: https://business.reddithelp.com/s/article/reddit-pixel + status: PUBLIC_BETA + categories: + - Advertising + logo: + url: https://cdn-devcenter.segment.com/e2e587b9-ae3f-45d8-954e-da69167c8ff5.svg + mark: + url: https://cdn-devcenter.segment.com/e25f3e39-9cfb-47cd-9320-2428ef9fadb0.svg + methods: + track: true + identify: true + group: true + alias: true + screen: false + page: true + platforms: + browser: true + mobile: false + server: false + warehouse: false + cloudAppObject: false + linkedAudiences: true + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + connection_modes: + device: + web: false + mobile: false + server: false + cloud: + web: true + mobile: false + server: false + settings: + - name: ldu + type: boolean + defaultValue: false + description: >- + Limited Data Use - When the LDU flag is enabled, it may impact campaign + performance and limit the size of targetable audiences. See [this + documentation](https://business.reddithelp.com/s/article/Limited-Data-Use) + for more information. If enabling this toggle, also go into each event and + configure the Country and Region in the Data Processing Options for each + event being sent. + required: false + label: Limited Data Use + - name: pixel_id + type: string + defaultValue: '' + description: Your Reddit Pixel ID + required: true + label: Pixel ID + actions: + - id: gTQSdHawHaqppKUY37arYQ + name: Reddit Pixel - Custom Event + slug: reportCustomWebEvent + description: Send Custom Pixel Events to Reddit. + platform: WEB + hidden: false + defaultTrigger: type = "track" + fields: + - id: dYueyHrTh28t1xg6XVeuLS + sortOrder: 0 + fieldKey: conversion_id + label: Conversion ID + type: STRING + description: >- + The unique conversion ID that corresponds to a distinct conversion + event. This is used for deduplication. If you are using both Reddit + Pixel and CAPI integrations, this field is required in order to dedupe + the same events across both sources. + placeholder: '' + defaultValue: + '@path': $.messageId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bpqRoTFPmaQoY1p1bQgwnU + sortOrder: 1 + fieldKey: event_metadata + label: Event Metadata + type: OBJECT + description: The metadata associated with the conversion event. + placeholder: '' + defaultValue: + currency: + '@path': $.properties.currency + itemCount: + '@path': $.properties.quantity + value: + '@if': + exists: + '@path': $.properties.revenue + then: + '@path': $.properties.revenue + else: + '@path': $.properties.total + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fC4Nrzh7KDFhMr2mPmD3FJ + sortOrder: 2 + fieldKey: user + label: User + type: OBJECT + description: The identifying user parameters associated with the conversion event. + placeholder: '' + defaultValue: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + phoneNumber: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.context.traits.phone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fZREqEeYDQ7JPEYeSLDCSN + sortOrder: 3 + fieldKey: products + label: Products + type: OBJECT + description: The products associated with the conversion event. + placeholder: '' + defaultValue: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: ce32XbM7CPHgu1CAXNXW3U + sortOrder: 4 + fieldKey: data_processing_options + label: Data Processing Options + type: OBJECT + description: >- + A structure of data processing options to specify the processing type + for the event. This is only used for LDU - when the LDU flag is enabled, + it may impact campaign performance and limit the size of targetable + audiences. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: oXNkokeYffage1QxkDh5HK + sortOrder: 5 + fieldKey: custom_event_name + label: Custom Event Name + type: STRING + description: >- + A custom event name that can be passed when tracking_type is set to + "Custom". All UTF-8 characters are accepted and custom_event_name must + be at most 64 characters long. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: vBBtwiop4u89bdJLovT3p1 + name: Reddit Pixel + slug: reportWebEvent + description: >- + Send Standard Pixel Events to Reddit. This includes pagevisits, + addtocarts, search, etc. + platform: WEB + hidden: false + defaultTrigger: type = "track" + fields: + - id: ai9oQFzCZF6z33uRUZYGtU + sortOrder: 0 + fieldKey: tracking_type + label: Tracking Type + type: STRING + description: >- + One of Reddit Pixel's standard conversion event types. To send a Custom + event to Reddit use the Custom Event Action instead. + placeholder: '' + required: true + multiple: false + choices: + - label: Page Visit + value: PageVisit + - label: View Content + value: ViewContent + - label: Search + value: Search + - label: Add to Cart + value: AddToCart + - label: Add to Wishlist + value: AddToWishlist + - label: Purchase + value: Purchase + - label: Lead + value: Lead + - label: Sign Up + value: SignUp + dynamic: false + allowNull: false + - id: faRNyPJjyZzF6MMgB8BqoJ + sortOrder: 1 + fieldKey: products + label: Products + type: OBJECT + description: The products associated with the conversion event. + placeholder: '' + defaultValue: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: dciyuNcJXB1apXLxdXTnTf + sortOrder: 2 + fieldKey: user + label: User + type: OBJECT + description: The identifying user parameters associated with the conversion event. + placeholder: '' + defaultValue: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + phoneNumber: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.context.traits.phone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: diUiY6uVaUErutcyZqcMd1 + sortOrder: 3 + fieldKey: data_processing_options + label: Data Processing Options + type: OBJECT + description: >- + A structure of data processing options to specify the processing type + for the event. This is only used for LDU - when the LDU flag is enabled, + it may impact campaign performance and limit the size of targetable + audiences. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: iT9oMpxu1XqrQFuRgq3eyt + sortOrder: 4 + fieldKey: event_metadata + label: Event Metadata + type: OBJECT + description: The metadata associated with the conversion event. + placeholder: '' + defaultValue: + currency: + '@path': $.properties.currency + itemCount: + '@path': $.properties.quantity + value: + '@if': + exists: + '@path': $.properties.revenue + then: + '@path': $.properties.revenue + else: + '@path': $.properties.total + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 5zc2jUCQjQ763Y5ZYYaGj3 + sortOrder: 5 + fieldKey: conversion_id + label: Conversion ID + type: STRING + description: >- + The unique conversion ID that corresponds to a distinct conversion + event. This is used for deduplication. If you are using both Reddit + Pixel and CAPI integrations, this field is required in order to dedupe + the same events across both sources. + placeholder: '' + defaultValue: + '@path': $.messageId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: + - actionId: vBBtwiop4u89bdJLovT3p1 + name: Page Visit + fields: + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + phoneNumber: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.context.traits.phone + event_metadata: + currency: + '@path': $.properties.currency + itemCount: + '@path': $.properties.quantity + value: + '@if': + exists: + '@path': $.properties.revenue + then: + '@path': $.properties.revenue + else: + '@path': $.properties.total + conversion_id: + '@path': $.messageId + tracking_type: PageVisit + trigger: type = "page" + - actionId: vBBtwiop4u89bdJLovT3p1 + name: View Content + fields: + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + phoneNumber: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.context.traits.phone + event_metadata: + currency: + '@path': $.properties.currency + itemCount: + '@path': $.properties.quantity + value: + '@if': + exists: + '@path': $.properties.revenue + then: + '@path': $.properties.revenue + else: + '@path': $.properties.total + conversion_id: + '@path': $.messageId + tracking_type: ViewContent + trigger: type = "track" and event = "Product Viewed" + - actionId: vBBtwiop4u89bdJLovT3p1 + name: Lead + fields: + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + phoneNumber: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.context.traits.phone + event_metadata: + currency: + '@path': $.properties.currency + value: + '@path': $.properties.value + conversion_id: + '@path': $.messageId + tracking_type: Lead + trigger: type = "track" and event = "Lead Generated" + - actionId: vBBtwiop4u89bdJLovT3p1 + name: Add to Wishlist + fields: + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + phoneNumber: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.context.traits.phone + event_metadata: + currency: + '@path': $.properties.currency + itemCount: + '@path': $.properties.quantity + value: + '@path': $.properties.price + conversion_id: + '@path': $.messageId + tracking_type: AddToWishlist + trigger: type = "track" and event = "Product Added to Wishlist" + - actionId: vBBtwiop4u89bdJLovT3p1 + name: Search + fields: + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + phoneNumber: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.context.traits.phone + event_metadata: + currency: + '@path': $.properties.currency + itemCount: + '@path': $.properties.quantity + value: + '@if': + exists: + '@path': $.properties.revenue + then: + '@path': $.properties.revenue + else: + '@path': $.properties.total + conversion_id: + '@path': $.messageId + tracking_type: Search + trigger: type = "track" and event = "Products Searched" + - actionId: vBBtwiop4u89bdJLovT3p1 + name: Add to Cart + fields: + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + phoneNumber: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.context.traits.phone + event_metadata: + currency: + '@path': $.properties.currency + itemCount: + '@path': $.properties.quantity + value: + '@path': $.properties.price + conversion_id: + '@path': $.messageId + tracking_type: AddToCart + trigger: type = "track" and event = "Product Added" + - actionId: vBBtwiop4u89bdJLovT3p1 + name: Purchase + fields: + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + externalId: '@if': exists: '@path': $.userId @@ -102059,128 +103416,34 @@ items: '@path': $.userId else: '@path': $.anonymousId - ip_address: - '@path': $.context.ip - user_agent: - '@path': $.context.userAgent - uuid: + phoneNumber: '@if': exists: - '@path': $.integrations.Reddit Conversions Api.uuid + '@path': $.properties.phone then: - '@path': $.integrations.Reddit Conversions Api.uuid + '@path': $.properties.phone else: - '@path': $.properties.uuid - phone_number: - '@if': - exists: - '@path': $.context.traits.phone - then: '@path': $.context.traits.phone - else: - '@path': $.properties.phone - screen_dimensions: - height: - '@path': $.context.screen.height - width: - '@path': $.context.screen.width event_metadata: currency: '@path': $.properties.currency itemCount: '@path': $.properties.quantity value: - '@path': $.properties.price - conversion_id: - '@path': $.messageId - tracking_type: AddToWishlist - trigger: type = "track" and event = "Product Added to Wishlist" - - actionId: oKfDyMn39WEUWwEU4puB6Z - name: Page Visit - fields: - event_at: - '@path': $.timestamp - click_id: - '@if': - exists: - '@path': $.integrations.Reddit Conversions Api.click_id - then: - '@path': $.integrations.Reddit Conversions Api.click_id - else: - '@path': $.properties.click_id - products: - '@arrayPath': - - $.properties.products - - category: - '@path': $.category - id: - '@path': $.product_id - name: - '@path': $.name - user: - advertising_id: - '@path': $.context.device.advertisingId - device_type: - '@path': $.context.device.type - email: - '@if': - exists: - '@path': $.context.traits.email - then: - '@path': $.context.traits.email - else: - '@path': $.properties.email - external_id: - '@if': - exists: - '@path': $.userId - then: - '@path': $.userId - else: - '@path': $.anonymousId - ip_address: - '@path': $.context.ip - user_agent: - '@path': $.context.userAgent - uuid: - '@if': - exists: - '@path': $.integrations.Reddit Conversions Api.uuid - then: - '@path': $.integrations.Reddit Conversions Api.uuid - else: - '@path': $.properties.uuid - phone_number: '@if': exists: - '@path': $.context.traits.phone + '@path': $.properties.revenue then: - '@path': $.context.traits.phone + '@path': $.properties.revenue else: - '@path': $.properties.phone - screen_dimensions: - height: - '@path': $.context.screen.height - width: - '@path': $.context.screen.width - event_metadata: {} + '@path': $.properties.total conversion_id: '@path': $.messageId - tracking_type: PageVisit - trigger: type = "page" - - actionId: oKfDyMn39WEUWwEU4puB6Z - name: Add to Cart + tracking_type: Purchase + trigger: type = "track" and event = "Order Completed" + - actionId: vBBtwiop4u89bdJLovT3p1 + name: Sign Up fields: - event_at: - '@path': $.timestamp - click_id: - '@if': - exists: - '@path': $.integrations.Reddit Conversions Api.click_id - then: - '@path': $.integrations.Reddit Conversions Api.click_id - else: - '@path': $.properties.click_id products: '@arrayPath': - $.properties.products @@ -102203,7 +103466,7 @@ items: '@path': $.context.traits.email else: '@path': $.properties.email - external_id: + externalId: '@if': exists: '@path': $.userId @@ -102211,42 +103474,23 @@ items: '@path': $.userId else: '@path': $.anonymousId - ip_address: - '@path': $.context.ip - user_agent: - '@path': $.context.userAgent - uuid: + phoneNumber: '@if': exists: - '@path': $.integrations.Reddit Conversions Api.uuid + '@path': $.properties.phone then: - '@path': $.integrations.Reddit Conversions Api.uuid + '@path': $.properties.phone else: - '@path': $.properties.uuid - phone_number: - '@if': - exists: - '@path': $.context.traits.phone - then: '@path': $.context.traits.phone - else: - '@path': $.properties.phone - screen_dimensions: - height: - '@path': $.context.screen.height - width: - '@path': $.context.screen.width event_metadata: currency: '@path': $.properties.currency - itemCount: - '@path': $.properties.quantity value: - '@path': $.properties.price + '@path': $.properties.value conversion_id: '@path': $.messageId - tracking_type: AddToCart - trigger: type = "track" and event = "Product Added" + tracking_type: SignUp + trigger: type = "track" and event = "Signed Up" partnerOwned: true - id: 5cacbf88fa2aed000104edcc display_name: Refersion @@ -113687,7 +114931,7 @@ items: browser: true mobile: false server: true - warehouse: false + warehouse: true cloudAppObject: false linkedAudiences: true components: [] @@ -113751,7 +114995,7 @@ items: type = "track" or type = "screen" or type = "identify" or type = "page" or type = "group" or type = "alias" fields: - - id: a5ZvQfU1YXkA8MfLaf3sfP + - id: uFdNMu4c1FZ7QvhrX2UwYk sortOrder: 0 fieldKey: messageid label: Message ID @@ -113765,7 +115009,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3BVWwK4SMjpRnUHYUouz69 + - id: qv8ep2ZWmCn5ASxMF95r5q sortOrder: 1 fieldKey: timestamp label: Timestamp @@ -113779,7 +115023,7 @@ items: choices: null dynamic: false allowNull: false - - id: mQgrdtbnzK5sNMSCUuLygR + - id: gARMypQ6fRbwnnGbMo7q5B sortOrder: 2 fieldKey: type label: Type @@ -113807,7 +115051,7 @@ items: value: alias dynamic: false allowNull: false - - id: 7mFY291pmMxDqmWNKyLLkq + - id: oc4peBrKxsaw2edsazbJyv sortOrder: 3 fieldKey: event label: Event @@ -113821,7 +115065,7 @@ items: choices: null dynamic: false allowNull: false - - id: ddEXdVCGrKwcLemnCkFPfM + - id: uU6mqg66kHwXQEgdzfeNaj sortOrder: 4 fieldKey: name label: Name @@ -113835,7 +115079,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4wukbEG4un3GRUgFtxbvBt + - id: 4CGR4GiYgBasPUCn7x2PAt sortOrder: 5 fieldKey: properties label: Properties @@ -113849,7 +115093,7 @@ items: choices: null dynamic: false allowNull: false - - id: uwD7zYDRH6YVP6G26Q78Jf + - id: mXjcaPpw27APLi5ZXMJ1hY sortOrder: 6 fieldKey: userId label: User ID @@ -113863,7 +115107,7 @@ items: choices: null dynamic: false allowNull: false - - id: q6GPT1YEM3kUgJdHiztGBX + - id: aGbTkSehVquNZtR4yupyCr sortOrder: 7 fieldKey: anonymousId label: Anonymous ID @@ -113877,7 +115121,7 @@ items: choices: null dynamic: false allowNull: false - - id: MkEAKUcUMTejRHc8dYMDK + - id: sCde1yZDDXbVRFNvupx3K2 sortOrder: 8 fieldKey: groupId label: Group ID @@ -113891,7 +115135,7 @@ items: choices: null dynamic: false allowNull: false - - id: bBSrBLYBuEWKU9fQfEeSPR + - id: uTcyMLdSKvQS2oTySqUjKJ sortOrder: 9 fieldKey: traits label: Traits @@ -113911,7 +115155,7 @@ items: choices: null dynamic: false allowNull: false - - id: i2gP8GAgYK4yqETJhs53Lb + - id: wqBUu6qhyzjCvq6ZtajvBB sortOrder: 10 fieldKey: context label: Context @@ -113925,7 +115169,7 @@ items: choices: null dynamic: false allowNull: false - - id: nndrTZhnnrQPm4YSZjbkTw + - id: rZxfc9eLfCWwgxNCQAfnMx sortOrder: 11 fieldKey: max_batch_size label: Max Batch Size @@ -119605,7 +120849,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: a7snxwYd8PTo1773tNESuG + - id: wDULRmh3dfsyn6MvYFA6Kv sortOrder: 3 fieldKey: user_email label: Email address @@ -119626,7 +120870,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dEZShqyhG6fT2tDNe7cGY8 + - id: mkR6JSGrZXG2Krj1qCrqrz sortOrder: 5 fieldKey: enable_batching label: Batch events @@ -119641,7 +120885,7 @@ items: choices: null dynamic: false allowNull: false - - id: fJQQjeJkcQKU7WzDDHT88K + - id: pFY9Jo15GfxVC2NVjnMWWM sortOrder: 6 fieldKey: device_id label: Mobile Device ID @@ -129996,7 +131240,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Order Completed" fields: - - id: wXRDxgsSpngoRbsZUc1U9C + - id: 9Mip7RXK19Na9ThBW8fVMx sortOrder: 0 fieldKey: id label: Event ID @@ -130012,7 +131256,7 @@ items: choices: null dynamic: false allowNull: false - - id: d7cUAxLpX82z2q9ttM6RVY + - id: 6dT8g3W5tZsZPjcBkfooXf sortOrder: 1 fieldKey: occurredAt label: Occurred At @@ -130026,7 +131270,7 @@ items: choices: null dynamic: false allowNull: false - - id: jkJNT1hTDXYNZDUQb99PxC + - id: aSRSpnEgdk9RfA5Wp6agWz sortOrder: 2 fieldKey: opaqueUserId label: Opaque User ID @@ -130042,7 +131286,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5sAJdxVfDmaZBKPaTFQE11 + - id: h7xm3WFmRe9Lc5kwf4jdjc sortOrder: 3 fieldKey: items label: Items @@ -130058,6 +131302,14 @@ items: '@path': $.price quantity: '@path': $.quantity + vendorId: + '@if': + exists: + '@path': $.vendorId + then: + '@path': $.vendorId + else: + '@path': $.brand required: true multiple: true choices: null @@ -130071,7 +131323,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Clicked" fields: - - id: gJFfrX8rnksHyzQ4PvBKdt + - id: sZMs8z8aZBKiKPqyLqBH7U sortOrder: 0 fieldKey: id label: Event ID @@ -130087,7 +131339,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9N6tPSHCSjULZBgtCBYkD8 + - id: bZk3VFRfjeu8CyjZTV7bnW sortOrder: 1 fieldKey: occurredAt label: Occurred At @@ -130101,7 +131353,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5xLcFbddhBmsuyszbbGNcn + - id: irgTfafpV9pWEBGzPaV8s9 sortOrder: 2 fieldKey: opaqueUserId label: Opaque User ID @@ -130117,7 +131369,7 @@ items: choices: null dynamic: false allowNull: false - - id: o1Xyj8d3EHbpt4yZxcgFG7 + - id: uJXo7pnnSYvzDMSGbgLJAM sortOrder: 3 fieldKey: resolvedBidId label: Resolved Bid ID @@ -130133,7 +131385,7 @@ items: choices: null dynamic: false allowNull: false - - id: eNf44PRkt9BM7GSGKYmp55 + - id: uexA8viyACctUNLV1QWxW5 sortOrder: 4 fieldKey: additionalAttribution label: Additional Attribution @@ -130155,7 +131407,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Viewed" fields: - - id: kpqSwQjLLPaaBaeRx7MJK8 + - id: 48ZRK4fsba1yWWkU4a8Zzv sortOrder: 0 fieldKey: id label: Event ID @@ -130171,7 +131423,7 @@ items: choices: null dynamic: false allowNull: false - - id: oFBkX1SXpNkeEoxJZq63ER + - id: bsG4sbuRKbYys1z69SAR9w sortOrder: 1 fieldKey: occurredAt label: Occurred At @@ -130185,7 +131437,7 @@ items: choices: null dynamic: false allowNull: false - - id: pepFfPW83tDujBk8Y9v5RU + - id: aYDDEk9htRnP1gzK3AGHi8 sortOrder: 2 fieldKey: opaqueUserId label: Opaque User ID @@ -130201,7 +131453,7 @@ items: choices: null dynamic: false allowNull: false - - id: ebxBbypcT3vXTSLnyUz8QW + - id: id8Ty6Ry4WMhGsMaLMjAt4 sortOrder: 3 fieldKey: resolvedBidId label: Resolved Bid ID @@ -130217,7 +131469,7 @@ items: choices: null dynamic: false allowNull: false - - id: gmN881Z6cv2EN3muvqvYgL + - id: fnfKhgEywRhVBP54BxBaPj sortOrder: 4 fieldKey: additionalAttribution label: Additional Attribution @@ -130231,9 +131483,84 @@ items: choices: null dynamic: false allowNull: false + - id: qUNeYJwVLKViryniyx8Pb8 + name: ImpressionsList + slug: impressionsList + description: >- + Send impression events to Topsort when a consumer has viewed a list of + promotables. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Product List Viewed" + fields: + - id: tMfVUhNWNZ7zag1EDf7af8 + sortOrder: 0 + fieldKey: id + label: Event ID + type: STRING + description: >- + Unique ID generated by the client to suppress duplicate events. The + length should not exceed 128 characters. + placeholder: '' + defaultValue: + '@path': $.messageId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: iAN1vvGMHYaF6NmRCCKDZ3 + sortOrder: 1 + fieldKey: occurredAt + label: Occurred At + type: DATETIME + description: Timestamp that the event happened at. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mNFzKRLzCX3GtxvUV9E4qL + sortOrder: 2 + fieldKey: opaqueUserId + label: Opaque User ID + type: STRING + description: >- + Identifier for tracking users regardless of sign-in status. The length + should not exceed 128 characters. + placeholder: '' + defaultValue: + '@path': $.anonymousId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dyNpukrBLg9yGFn4hbXigH + sortOrder: 3 + fieldKey: products + label: Products + type: OBJECT + description: The list of products viewed. Each product is a promotable entity. + placeholder: '' + defaultValue: + '@arrayPath': + - $.properties.products + - resolvedBidId: + '@path': resolvedBidId + additionalAttribution: + '@path': additionalAttribution + required: true + multiple: true + choices: null + dynamic: false + allowNull: false presets: - - actionId: 6hi4YVo8BFtB3xqeESgvPK - name: Purchase + - actionId: qUNeYJwVLKViryniyx8Pb8 + name: Impressions List fields: id: '@path': $.messageId @@ -130241,18 +131568,16 @@ items: '@path': $.timestamp opaqueUserId: '@path': $.anonymousId - items: + products: '@arrayPath': - $.properties.products - - productId: - '@path': $.product_id - unitPrice: - '@path': $.price - quantity: - '@path': $.quantity - trigger: type = "track" and event = "Order Completed" - - actionId: bB6C4ayDhAhkCaRq83iJVw - name: Click + - resolvedBidId: + '@path': resolvedBidId + additionalAttribution: + '@path': additionalAttribution + trigger: type = "track" and event = "Product List Viewed" + - actionId: haYWUuXp1KDvb8u6uLj9h4 + name: Banner Impression fields: id: '@path': $.messageId @@ -130264,9 +131589,9 @@ items: '@path': $.properties.resolvedBidId additionalAttribution: '@path': $.properties.additionalAttribution - trigger: type = "track" and event = "Product Clicked" - - actionId: bB6C4ayDhAhkCaRq83iJVw - name: Banner Click + trigger: type = "track" and event = "Banner Impression" + - actionId: haYWUuXp1KDvb8u6uLj9h4 + name: Impression fields: id: '@path': $.messageId @@ -130278,9 +131603,9 @@ items: '@path': $.properties.resolvedBidId additionalAttribution: '@path': $.properties.additionalAttribution - trigger: type = "track" and event = "Banner Click" - - actionId: haYWUuXp1KDvb8u6uLj9h4 - name: Impression + trigger: type = "track" and event = "Product Viewed" + - actionId: bB6C4ayDhAhkCaRq83iJVw + name: Banner Click fields: id: '@path': $.messageId @@ -130292,9 +131617,9 @@ items: '@path': $.properties.resolvedBidId additionalAttribution: '@path': $.properties.additionalAttribution - trigger: type = "track" and event = "Product Viewed" - - actionId: haYWUuXp1KDvb8u6uLj9h4 - name: Banner Impression + trigger: type = "track" and event = "Banner Click" + - actionId: bB6C4ayDhAhkCaRq83iJVw + name: Click fields: id: '@path': $.messageId @@ -130306,7 +131631,34 @@ items: '@path': $.properties.resolvedBidId additionalAttribution: '@path': $.properties.additionalAttribution - trigger: type = "track" and event = "Banner Impression" + trigger: type = "track" and event = "Product Clicked" + - actionId: 6hi4YVo8BFtB3xqeESgvPK + name: Purchase + fields: + id: + '@path': $.messageId + occurredAt: + '@path': $.timestamp + opaqueUserId: + '@path': $.anonymousId + items: + '@arrayPath': + - $.properties.products + - productId: + '@path': $.product_id + unitPrice: + '@path': $.price + quantity: + '@path': $.quantity + vendorId: + '@if': + exists: + '@path': $.vendorId + then: + '@path': $.vendorId + else: + '@path': $.brand + trigger: type = "track" and event = "Order Completed" partnerOwned: true - id: 54521fdb25e721e32a72eefa display_name: Totango diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 4818d3c271..fc0e726a1c 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 2025-07-17 +# destination data last updated 2025-07-24 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index d635bb5a91..e7208eb76a 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 2025-07-17 +# source categories last updated 2025-07-24 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 e4d245ce78..5dc4192ba2 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 2025-07-17 +# sources last updated 2025-07-24 items: - id: 8HWbgPTt3k display_name: .NET From d47662fab82af04a85938054a02c0b5d3dc5cfea Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Thu, 24 Jul 2025 12:47:55 -0500 Subject: [PATCH 362/438] Update src/segment-app/extensions/dbt.md Co-authored-by: Sharon Adewusi --- src/segment-app/extensions/dbt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/segment-app/extensions/dbt.md b/src/segment-app/extensions/dbt.md index 21d221396d..b1597ed6f3 100644 --- a/src/segment-app/extensions/dbt.md +++ b/src/segment-app/extensions/dbt.md @@ -35,7 +35,7 @@ To set up the dbt extension, you'll need: To connect Segment to your dbt models, you’ll first need to configure a Git connection. This allows Segment to pull dbt models directly from your repository. 1. In your Segment workspace, navigate to **Settings > Extensions**. -2. Click either **Set up dbt model syncs**. +2. Click either **Set up dbt model syncs** or **Set up integration**. 3. On the **Configure service credentials** page, select a credential and protocol, add your key or token, then click **Next**. 4. In the **Connect source** window, select an existing Reverse ETL warehouse source from the dropdown, then click **Save**. From 91a54b90b5efca23df82304eee1365678e4aab96 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Thu, 24 Jul 2025 19:36:03 +0100 Subject: [PATCH 363/438] Reverting suggestion --- src/segment-app/extensions/dbt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/segment-app/extensions/dbt.md b/src/segment-app/extensions/dbt.md index b1597ed6f3..21d221396d 100644 --- a/src/segment-app/extensions/dbt.md +++ b/src/segment-app/extensions/dbt.md @@ -35,7 +35,7 @@ To set up the dbt extension, you'll need: To connect Segment to your dbt models, you’ll first need to configure a Git connection. This allows Segment to pull dbt models directly from your repository. 1. In your Segment workspace, navigate to **Settings > Extensions**. -2. Click either **Set up dbt model syncs** or **Set up integration**. +2. Click either **Set up dbt model syncs**. 3. On the **Configure service credentials** page, select a credential and protocol, add your key or token, then click **Next**. 4. In the **Connect source** window, select an existing Reverse ETL warehouse source from the dropdown, then click **Save**. From 3b3c17bde1f3e59f877f290bc8bd5e55e0eb08ea Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 24 Jul 2025 13:39:50 -0500 Subject: [PATCH 364/438] update instructions --- src/segment-app/extensions/dbt.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/segment-app/extensions/dbt.md b/src/segment-app/extensions/dbt.md index 21d221396d..852fbda133 100644 --- a/src/segment-app/extensions/dbt.md +++ b/src/segment-app/extensions/dbt.md @@ -35,7 +35,7 @@ To set up the dbt extension, you'll need: To connect Segment to your dbt models, you’ll first need to configure a Git connection. This allows Segment to pull dbt models directly from your repository. 1. In your Segment workspace, navigate to **Settings > Extensions**. -2. Click either **Set up dbt model syncs**. +2. Click either **Set up dbt model syncs** or **Set up integration** 3. On the **Configure service credentials** page, select a credential and protocol, add your key or token, then click **Next**. 4. In the **Connect source** window, select an existing Reverse ETL warehouse source from the dropdown, then click **Save**. From 0afa741d25cd682a2db0df5ccb158d2965374101 Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Thu, 24 Jul 2025 12:37:41 -0700 Subject: [PATCH 365/438] Apply suggestions from code review --- src/engage/audiences/linked-audiences-limits.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engage/audiences/linked-audiences-limits.md b/src/engage/audiences/linked-audiences-limits.md index e984b60b77..11e4f1987b 100644 --- a/src/engage/audiences/linked-audiences-limits.md +++ b/src/engage/audiences/linked-audiences-limits.md @@ -29,7 +29,7 @@ If you have a non-standard or high volume usage plan, you have unique Linked Aud Name | Limit | Details ---- | ----- | -------- -RETL row limit | 150 million | The audience compute fails if the total output exceeds the limit. This limit is approximately the sum of the total linked audience profile membership count and the total number of entity relationships for the profiles in the audience. +RETL row limit | 150 million | The audience compute fails if the total output exceeds the limit. This limit is the sum of the total linked audience profile membership count and the total number of entity relationships for the profiles in the audience. RETL column limit | 500 columns | The audience compute fails if the number of columns exceeds the limit. Global concurrent audience runs | 5 total within any given space | New audience runs are queued once the limit is reached and will start execution once prior audience runs complete. If you need a higher global concurrent audience runs limit, contact [friends@segment.com](mailto:friends@segment.com){:target="_blank"}. Event Size | 32 KB | Segment doesn’t emit messages for profiles whose total related entities and enrichments exceed the limit. @@ -56,4 +56,4 @@ To improve performance and manage compute costs, follow these best practices: - Run on a dedicated warehouse cluster if you're operating at enterprise scale. - Stagger audience sync schedules to reduce concurrency and avoid bottlenecks. -Following this guidance will help you keep audience syncs running efficiently even as your scale grows. +Following these guidances help you keep audience syncs running efficiently even as your scale grows. From c8ed8fddc087574652086d1fc0c36e86f510b198 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Fri, 25 Jul 2025 12:10:53 +0100 Subject: [PATCH 366/438] Source Insert Functions faqs updated --- src/connections/functions/source-insert-functions.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/connections/functions/source-insert-functions.md b/src/connections/functions/source-insert-functions.md index e95a942626..923daabe7c 100644 --- a/src/connections/functions/source-insert-functions.md +++ b/src/connections/functions/source-insert-functions.md @@ -88,12 +88,16 @@ The errors listed are all permanent errors, except `RetryError`. When a `RetryEr ##### Why does the Delivery Overview tab not display any errors that occur within the source insert function? -Errors in the Delivery Overview tab are not yet visible and is a work in progress. +Errors in the Delivery Overview tab are not yet visible and is a work in progress. ##### Can I test the function with different event types? You can test the function with different event types from the **Test** tab in the code editor, similar to other functions. +##### Can I replay events that were dropped because of errors? + +Segment doesn't allow you to replay events, regardless of the error status. + ##### Can I use source insert functions for all types of sources? Source insert functions only work for event sources, not object sources or rETL. @@ -117,5 +121,6 @@ Segment supports Node.js V18 and installs the dependencies listed [here](https:/ - `snowflake-sdk` exposed as `snowflakesdk.snowflakesdk` - `@clickhouse/client` exposed as `clickHouseClient.clickHouseClient` - `aws4` exposed as `aws4.aws4` -- `@sentry/node` exposed as `sentrylib.sentry` +- `@sentry/node` exposed as `sentrylib.sentry` + From be739562a3061ea97eda5dd02ca765b829d25600 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 25 Jul 2025 10:00:42 -0400 Subject: [PATCH 367/438] Fix code snippet --- src/protocols/apis-and-extensions/anomaly_detection.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/protocols/apis-and-extensions/anomaly_detection.md b/src/protocols/apis-and-extensions/anomaly_detection.md index 7432e335fc..f7064f1f42 100644 --- a/src/protocols/apis-and-extensions/anomaly_detection.md +++ b/src/protocols/apis-and-extensions/anomaly_detection.md @@ -87,9 +87,9 @@ total_violations as ( group by event_sent_at::date ) - select v.date, - t.total_event_count "Total Violation Count", - nvl(v.violation_count, 0) "Total Event Count", + select t.date, + t.total_event_count "Total Event Count", + nvl(v.violation_count, 0) "Total Violation Count", nvl(v.violation_count, 0)::float/t.total_event_count::float as "Violations Per Event" from total_track_event_volume t left join total_violations v From 61bab2e3c079c6dad2aa0a1e10fabdf1f9b1ea14 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 25 Jul 2025 10:30:52 -0400 Subject: [PATCH 368/438] fixed it --- src/_sass/components/_back-scrolling.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_sass/components/_back-scrolling.scss b/src/_sass/components/_back-scrolling.scss index 9d2ffcbc7c..ec840e4b54 100644 --- a/src/_sass/components/_back-scrolling.scss +++ b/src/_sass/components/_back-scrolling.scss @@ -2,7 +2,7 @@ position: fixed; z-index: 1; bottom: 20px; - right: 20px; + left: 20px; display: flex; justify-content: center; align-items: center; From 7145282e9ab5ec114dbff13c92bd2064635fefcb Mon Sep 17 00:00:00 2001 From: stayseesong Date: Fri, 25 Jul 2025 10:15:57 -0700 Subject: [PATCH 369/438] code format fix --- src/connections/destinations/actions.md | 40 +++++++++++++++---------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index f8ef42a32b..207bcc18f7 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -339,14 +339,19 @@ Below are two examples demonstrating how to use Liquid templates in Segment mapp ##### Example 1: Standardize email addresses This example converts an email address to lowercase and removes extra whitespace, ensuring consistency for a destination. -```json -{% if event.properties.email %} - {{ event.properties.email | downcase | strip }} -{% else %} - {{ event.properties.email | default: "unknown@example.com" }} -{% endif %} + +``` + {% raw %} + {% if event.properties.email %} + {{ event.properties.email | downcase | strip }} + {% else %} + {{ event.properties.email | default: "unknown@example.com" }} + {% endif %} + {% endraw %} ``` + Input: `event.properties.email` = "user@example.com" + Output: user@example.com Explanation: @@ -358,18 +363,23 @@ Explanation: ##### Example 2: Transform phone number with conditional logic This example formats a phone number by removing non-digit characters, adding a country code, and prepending a plus sign. -```json -{% if event.properties.phone %} - {% assign phone = event.properties.phone | strip | remove: "-" | remove: "(" | remove: ")" | remove: " " %} - {% if phone | slice: 0, 1 != "1" %} - {% assign phone = phone | prepend: "1" %} + +``` + {% raw %} + {% if event.properties.phone %} + {% assign phone = event.properties.phone | strip | remove: "-" | remove: "(" | remove: ")" | remove: " " %} + {% if phone | slice: 0, 1 != "1" %} + {% assign phone = phone | prepend: "1" %} + {% endif %} + {{ phone | prepend: "+" }} + {% else %} + {{ event.properties.phone | default: "" }} {% endif %} - {{ phone | prepend: "+" }} -{% else %} - {{ event.properties.phone | default: "" }} -{% endif %} + {% endraw %} ``` + Input: `event.properties.phone` = "(123) 456-7890" + Output: +11234567890 Explanation: From f3b699eddb42f5c30801e98461abae68336103cc Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Fri, 25 Jul 2025 14:26:31 -0400 Subject: [PATCH 370/438] fix: duplicate partner owned notes --- src/_includes/content/cloud-app-note.md | 21 ++++--------------- .../content/destination-dossier.html | 15 ++----------- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/src/_includes/content/cloud-app-note.md b/src/_includes/content/cloud-app-note.md index dd7d09faba..8a32a7983f 100644 --- a/src/_includes/content/cloud-app-note.md +++ b/src/_includes/content/cloud-app-note.md @@ -9,13 +9,8 @@
      • The {{ page.title }} is an **Event Cloud** source. This means that it sends data as events, which are behaviors or occurrences tied to a user and a point in time. Data from these sources can be loaded into your Segment warehouses, and **also** sent to Segment streaming destinations. [Learn more about cloud sources.](/docs/connections/sources/#cloud-apps)

      • {% if currentIntegration.status == "PUBLIC_BETA" %}
      • This source is in Beta
      • {%endif%} -
      - {% if currentIntegration.partnerOwned %} -
      Partner Owned
      -
        -
      • This integration is partner owned. Please reach out to the partner's support for any issues.
      • -
      - {% endif %} + {% if currentIntegration.partnerOwned %}
    1. This integration is partner owned. Please reach out to the partner's support for any issues.
    2. {% endif %} +
      @@ -26,10 +21,7 @@
      • The {{ page.title }} is a Segment [Public API](/docs/api/public-api/){:target="_blank"} integration. It facilitates privacy requests using Segment’s API, including erasure and tracking opt-out for Segment users.

      • {% if currentIntegration.status == "PUBLIC_BETA" %}
      • This source is in Beta
      • {% endif %} -
      -
      Partner Owned
      -
        -
      • This integration is partner owned. Please reach out to the partner's support for any issues.
      • + {% if currentIntegration.partnerOwned %}
      • This integration is partner owned. Please reach out to the partner's support for any issues.
      • {% endif %}
      @@ -41,13 +33,8 @@
      • The {{ page.title }} is an **Object Cloud** source. This means that it sends information (traits) about a thing that exists and persists over time, such as a person or company, and which can be updated over time. Data from this source can only be exported directly to a warehouse, but it can then be used for further analysis. [Learn more about cloud sources.](/docs/connections/sources/#cloud-apps)

      • {% if currentIntegration.status == "PUBLIC_BETA" %}
      • This source is in Beta
      • {%endif%} + {% if currentIntegration.partnerOwned %}
      • This integration is partner owned. Please reach out to the partner's support for any issues.
      • {% endif %}
      - {% if currentIntegration.partnerOwned %} -
      Partner Owned
      -
        -
      • This integration is partner owned. Please reach out to the partner's support for any issues.
      • -
      - {% endif %} {% endif %} diff --git a/src/_includes/content/destination-dossier.html b/src/_includes/content/destination-dossier.html index e312be91fd..165ccb0cd0 100644 --- a/src/_includes/content/destination-dossier.html +++ b/src/_includes/content/destination-dossier.html @@ -59,9 +59,9 @@
      Destination Info
    3. This destination is not compatible with Destination Insert Functions.
    4. {% endunless %} {% endif %} - {% if destinationInfo.partnerOwned == true %} + {% unless page.id == '66b1f528d26440823fb27af9' %}{% if destinationInfo.partnerOwned == true %}
    5. This integration is partner owned. Please reach out to the partner's support for any issues.
    6. - {% endif %} + {% endif %}{% endunless %} {% if thisDestination == '64c031541451bb784943f809' or thisDestination == '63e42d44b0a59908dc4cacc6' or thisDestination == '642440d46b66b3eeac42b581' %}
    7. This destination is not supported in EU workspaces. For more information, see the Regional Segment documentation.
    8. {% endif %} {% if destinationInfo.status == "PUBLIC_BETA" %}
    9. This destination is in Beta
    10. {% endif %} {% if page.engage == true %}
    11. This destination is only compatible with Twilio Engage.
    12. {% endif %} @@ -108,17 +108,6 @@
      Connection Modes {% endunless %} {% endif %} - -{% unless page.id == '66b1f528d26440823fb27af9' %} -{% if destinationInfo.partnerOwned == true %} -
      -
      Partner Owned
      -
        -
      • This integration is partner owned. Please reach out to the partner's support for any issues.
      • -
      -
      -{% endif %} -{% endunless %} {% endif %} \ No newline at end of file From 8e085dd928bb92fc536a82d2e14d422bdab3026e Mon Sep 17 00:00:00 2001 From: Varadarajan V <109586712+varadarajan-tw@users.noreply.github.com> Date: Mon, 28 Jul 2025 10:59:32 +0530 Subject: [PATCH 371/438] Facebook Custom Audiences update --- .../index.md | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md index 5fbf9c529f..0a47ba69e1 100644 --- a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md +++ b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md @@ -16,22 +16,23 @@ hide_action: Deliver effective Facebook Ads campaigns by defining and syncing [custom audiences](https://developers.facebook.com/docs/marketing-api/audiences/guides/custom-audiences){:target="_blank”} to power ad suppression, acquisition (using lookalikes), retargeting, and more. -This destination sends audiences, or lists of users, from your data warehouse to Facebook Custom Audiences using Reverse ETL. Syncs can add or remove users from your Facebook Custom Audiences as records are created, updated, or deleted in your warehouse. - -> info "This destination only supports Reverse ETL sources" -> This destination only supports [Reverse ETL sources](/docs/connections/reverse-etl/#what-warehouse-data-sources-does-segment-support). To connect Facebook Custom Audiences to Twilio Engage, use the [Facebook Custom Audiences](/docs/connections/destinations/catalog/personas-facebook-custom-audiences/) destination. +This destination sends audiences, or lists of users, to Facebook Custom Audiences. You can connect this destination to Reverse ETL sources to sync data from your warehouse, or to Engage Audiences to sync computed audiences. ## Getting started ### Prerequisites -- A Reverse ETL source already set up. If you don't yet have a Reverse ETL source, follow the instructions in Segment's [Reverse ETL documentation](/docs/connections/reverse-etl/#getting-started). Segment recommends setting an [External ID](#sync-audience) as the primary key for your Reverse ETL model, as you'll need an External ID to remove users from your custom audiences. + +- A source already set up: + - For Reverse ETL: If you don't yet have a Reverse ETL source, follow the instructions in Segment's [Reverse ETL documentation](/docs/connections/reverse-etl/#getting-started). Segment recommends setting an [External ID](#sync-audience) as the primary key for your Reverse ETL model, as you'll need an External ID to remove users from your custom audiences. + - For Engage Audiences: An [Engage Audience](/docs/engage/audiences/) configured which you can connect to this destination. - A Facebook account with [ads_management](https://developers.facebook.com/docs/permissions#ads_management){:target="_blank”} permissions for the target Facebook Ad Account(s). The Facebook Ad Account(s) must also be associated with a [Facebook Business Account](https://www.facebook.com/business/help/407323696966570?id=649869995454285){:target="_blank”}. - Ensure that the user connecting to the destination using OAuth has at least an *Advertiser* or *Admin* role on the ad account. To manage permissions and roles for an ad account, reference [Facebook's documentation](https://www.facebook.com/business/help/186007118118684?id=829106167281625){:target="_blank"}. ### Connect to Facebook Custom Audiences + 1. From your Segment app, navigate to **Catalog > Destinations** and search for "Facebook Custom Audiences (Actions)". 2. Select the Facebook Custom Audiences (Actions) destination and click **Add destination**. -3. Select the Reverse ETL source you'd like to connect to your Facebook Custom Audiences (Actions) Destination and click **Next**. +3. Select the source you'd like to connect to your Facebook Custom Audiences (Actions) Destination and click **Next**. 4. Enter a name for your destination and click **Create destination**. 5. Navigate to your destination's settings page and click **Connect to...** to authenticate with Facebook. 6. Return to the Segment app and enter your Advertiser Account ID. See Facebook's [Find your Facebook ad account ID number](https://www.facebook.com/business/help/1492627900875762){:target="_blank”} documentation for more information. @@ -123,6 +124,33 @@ Segment automatically hashes any of the following fields that are not already SH * Gender +## Additional Traits Matching + +> info "" +> This feature is in Public Preview and usage is subject to the terms contained in the [First Access and Beta Preview Terms](https://segment.com/legal/first-access-beta-preview/){:target="_blank"}. For access, contact your CSM or email Segment at [friends@segment.com](mailto:friends@segment.com). + +Previously, Segment only sent email and mobile IDs to Facebook. A new beta feature can send an expanded list of identifiers or traits to Facebook, so that Facebook can try to use these additional data points to match to their user profiles. If you have this feature enabled and implemented any of these traits in your Segment tracking, the Facebook Custom Audiences (Actions) can send this data to Facebook. Segment can now also sync multiple emails if the profile contains more than one. Additionally as part of this feature, Segment hashes fields before sending them downstream to Facebook, if required. (See the table below for hashing requirements.) Note that the trait data implemented in your Segment tracking must match the naming convention and format specified in the table below, otherwise Segment can't send it to Facebook. + +> success "" +> Visit Segment's [Trait Enrichment](/docs/engage/trait-activation/trait-enrichment/) to learn more. + + +| **Name** | **Trait Key formats supported** | **Facebook Keys** | **FB Hashing Required** | **FB Guidelines** | +| Email | email | EMAIL | Yes (Segment does the hashing for you. In case you are *already* hashing emails, emails will get sent to Facebook double-hashed. Facebook will still match on double-hashed emails, but this is *not* recommended.) | Trim leading, trail whitespace, and convert all characters to lowercase. | +| Mobile ID | mobile_id | MADID | No | Use all lowercase, keep hyphens. | +| First Name | first_name
      firstname
      firstName
      first | FN | Yes | Use `a`-`z` only. Lowercase only, no punctuation. Special characters in UTF8 format. | +| Last Name | last_name
      lastname
      lastName
      last | LN | Yes | Use `a`-`z` only. Lowercase only, no punctuation. Special characters in UTF8 format. | +| Phone | phone
      phone_number
      phonenumber
      phoneNumber | PHONE (+12023095976) | Yes | Remove symbols, letters, and any leading zeroes. You should prefix the country code if `COUNTRY` field is not specified. | +| Gender | gender
      gen | GEN | Yes | Use these values: `m` for male and `f` for female. | +| Birth Year | birth_year | DOBY | Yes | Use the YYYY format from 1900 to current year. | +| Birth Month | birth_month | DOBM | Yes | Use the MM format: `01` to `12`. | +| Birth Day | birthday
      birth_day
      date_of_birth
      DOB
      dateOfBirth | DOBD | Yes | Use the DD format: `01` to `31`. | +| State | state
      address_state | ST | Yes | Use the 2-character ANSI abbreviation code, lowercase. Normalize states outside U.S. in lowercase, no punctuation, no special characters, no white space. | +| City | city
      address_city | CT | Yes | Use `a`-`z` only. Lowercase only, no punctuation, no special characters, no white space. | +| Zipcode | zip
      zip_code
      zipCode | ZIP | Yes | Use lowercase, no white space. Use only the first 5 digits for U.S. Use Area/District/Sector format for the UK. | +| Country | country_code
      countryCode | COUNTRY | Yes | Use 2-letter country codes (lowercase) in ISO 3166-1 alpha-2. | + + ## FAQs and troubleshooting ### Audience not creating and/or existing audience list not populating From 3006aea1631394b563c0a094b8fc0e29bf69494e Mon Sep 17 00:00:00 2001 From: Varadarajan V <109586712+varadarajan-tw@users.noreply.github.com> Date: Mon, 28 Jul 2025 11:08:06 +0530 Subject: [PATCH 372/438] Trait encrihment updates --- .../index.md | 25 +------------------ .../index.md | 8 +----- 2 files changed, 2 insertions(+), 31 deletions(-) diff --git a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md index 0a47ba69e1..d44547c6e5 100644 --- a/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md +++ b/src/connections/destinations/catalog/actions-facebook-custom-audiences/index.md @@ -126,30 +126,7 @@ Segment automatically hashes any of the following fields that are not already SH ## Additional Traits Matching -> info "" -> This feature is in Public Preview and usage is subject to the terms contained in the [First Access and Beta Preview Terms](https://segment.com/legal/first-access-beta-preview/){:target="_blank"}. For access, contact your CSM or email Segment at [friends@segment.com](mailto:friends@segment.com). - -Previously, Segment only sent email and mobile IDs to Facebook. A new beta feature can send an expanded list of identifiers or traits to Facebook, so that Facebook can try to use these additional data points to match to their user profiles. If you have this feature enabled and implemented any of these traits in your Segment tracking, the Facebook Custom Audiences (Actions) can send this data to Facebook. Segment can now also sync multiple emails if the profile contains more than one. Additionally as part of this feature, Segment hashes fields before sending them downstream to Facebook, if required. (See the table below for hashing requirements.) Note that the trait data implemented in your Segment tracking must match the naming convention and format specified in the table below, otherwise Segment can't send it to Facebook. - -> success "" -> Visit Segment's [Trait Enrichment](/docs/engage/trait-activation/trait-enrichment/) to learn more. - - -| **Name** | **Trait Key formats supported** | **Facebook Keys** | **FB Hashing Required** | **FB Guidelines** | -| Email | email | EMAIL | Yes (Segment does the hashing for you. In case you are *already* hashing emails, emails will get sent to Facebook double-hashed. Facebook will still match on double-hashed emails, but this is *not* recommended.) | Trim leading, trail whitespace, and convert all characters to lowercase. | -| Mobile ID | mobile_id | MADID | No | Use all lowercase, keep hyphens. | -| First Name | first_name
      firstname
      firstName
      first | FN | Yes | Use `a`-`z` only. Lowercase only, no punctuation. Special characters in UTF8 format. | -| Last Name | last_name
      lastname
      lastName
      last | LN | Yes | Use `a`-`z` only. Lowercase only, no punctuation. Special characters in UTF8 format. | -| Phone | phone
      phone_number
      phonenumber
      phoneNumber | PHONE (+12023095976) | Yes | Remove symbols, letters, and any leading zeroes. You should prefix the country code if `COUNTRY` field is not specified. | -| Gender | gender
      gen | GEN | Yes | Use these values: `m` for male and `f` for female. | -| Birth Year | birth_year | DOBY | Yes | Use the YYYY format from 1900 to current year. | -| Birth Month | birth_month | DOBM | Yes | Use the MM format: `01` to `12`. | -| Birth Day | birthday
      birth_day
      date_of_birth
      DOB
      dateOfBirth | DOBD | Yes | Use the DD format: `01` to `31`. | -| State | state
      address_state | ST | Yes | Use the 2-character ANSI abbreviation code, lowercase. Normalize states outside U.S. in lowercase, no punctuation, no special characters, no white space. | -| City | city
      address_city | CT | Yes | Use `a`-`z` only. Lowercase only, no punctuation, no special characters, no white space. | -| Zipcode | zip
      zip_code
      zipCode | ZIP | Yes | Use lowercase, no white space. Use only the first 5 digits for U.S. Use Area/District/Sector format for the UK. | -| Country | country_code
      countryCode | COUNTRY | Yes | Use 2-letter country codes (lowercase) in ISO 3166-1 alpha-2. | - +Segment [Trait Enrichment](/docs/engage/trait-activation/trait-enrichment/) allows you to send an expanded list of identifiers or traits to Facebook, so that Facebook can try to use these additional data points to match to their user profiles. If you have this feature enabled and implemented any of these traits in your Segment tracking, the Facebook Custom Audiences (Actions) can send this data to Facebook. Segment can now also sync multiple emails if the profile contains more than one. Additionally as part of this feature, Segment hashes fields before sending them downstream to Facebook, if required as described in [Hashing](#hashing)section. ## FAQs and troubleshooting diff --git a/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md b/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md index c778b278e7..a795b65e6d 100644 --- a/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md +++ b/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md @@ -107,13 +107,7 @@ Once created, the audience should be available in Facebook in ten minutes unless ## Additional Traits Matching -> info "" -> This feature is in Public Preview and usage is subject to the terms contained in the [First Access and Beta Preview Terms](https://segment.com/legal/first-access-beta-preview/){:target="_blank"}{:target="_blank"}. For access, contact your CSM or email Segment at [friends@segment.com](mailto:friends@segment.com). - -Previously, Segment only sent email and mobile IDs to Facebook. A new beta feature can send an expanded list of identifiers or traits to Facebook, so that Facebook can try to use these additional data points to match to their user profiles. If you have this feature enabled and implemented any of these traits in your Segment tracking, Engage can send this data to Facebook. Segment can now also sync multiple emails if the profile contains more than one. Additionally as part of this feature, Segment hashes fields before sending them downstream to Facebook, if required. (See the table below for hashing requirements.) Note that the trait data implemented in your Segment tracking must match the naming convention and format specified in the table below, otherwise Segment can't send it to Facebook. - -> success "" -> Visit Segment's [Trait Enrichment](/docs/engage/trait-activation/trait-enrichment/) to learn more. +[Trait Enrichment](/docs/engage/trait-activation/trait-enrichment/) allows you to send an expanded list of identifiers or traits to Facebook, so that Facebook can try to use these additional data points to match to their user profiles. If you have this feature enabled and implemented any of these traits in your Segment tracking, Engage can send this data to Facebook. Segment can now also sync multiple emails if the profile contains more than one. Additionally as part of this feature, Segment hashes fields before sending them downstream to Facebook, if required. (See the table below for hashing requirements.) Note that the trait data implemented in your Segment tracking must match the naming convention and format specified in the table below, otherwise Segment can't send it to Facebook. | **Name** | **Trait Key formats supported** | **Facebook Keys** | **FB Hashing Required** | **FB Guidelines** | From 4b6134c6e53d38b9b66b873a3515d1682f21f8b3 Mon Sep 17 00:00:00 2001 From: motasem-userpilot Date: Mon, 28 Jul 2025 15:56:18 +0300 Subject: [PATCH 373/438] Userpilot mobile destination --- .../catalog/userpilot-mobile/index.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/connections/destinations/catalog/userpilot-mobile/index.md diff --git a/src/connections/destinations/catalog/userpilot-mobile/index.md b/src/connections/destinations/catalog/userpilot-mobile/index.md new file mode 100644 index 0000000000..6f33df12b3 --- /dev/null +++ b/src/connections/destinations/catalog/userpilot-mobile/index.md @@ -0,0 +1,83 @@ +--- +title: Userpilot Mobile (Device Mode) Destination +--- + +Userpilot helps product teams deliver personalized in-app experiences to increase growth metrics at every stage of the user journey. When you integrate Userpilot with Segment, you can send your Segment events to Userpilot, allowing you to create more personalized experiences for your users across the product lifecycle. + +[Userpilot](https://www.userpilot.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} provides in-app guidance, product tours, and contextual onboarding experiences to help teams activate users and drive feature adoption. + +This destination is maintained by Userpilot. For any issues with the destination, [contact the Userpilot Support team](mailto:support@userpilot.com). + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"}, search for "Userpilot Mobile (Device Mode)". +2. Select **Userpilot Mobile** and click **Add Destination**. +3. Select an existing Source to connect to Userpilot. +4. Go to the [Userpilot installation dashboard](https://run.userpilot.io/installation){:target="_blank"}, and copy your **App Token**. +5. Enter the **App Token** in the Userpilot destination settings in Segment. + +## Supported methods + +Userpilot supports the following methods, as specified in the [Segment Spec](/docs/connections/spec). + +### Identify + +Send [Identify](/docs/connections/spec/identify) calls to associate a user with traits. These are used for segmentation, personalization, and lifecycle targeting. + +```swift +analytics.identify(userId: "", traits: [ + "email": "john.doe@example.com", + "name": "John Doe", + "plan": "Pro", + "createdAt": "2023-08-01T00:00:00Z" +]) +``` + +Calling `identify` from `Segment` will trigger the `userpilot.identify`. Segment recommends passing as much data as possible to get the most out of Userpilot. + +Data passed in an Identify call can be organized under different categories. +* Properties about the user such as `plan` or `userRole` to help targeting a specifc segment +* Properties to personalize the content of the Userpilot experiences, such as `name` or `company` +* Properties to target users based on their lifecycle, such as `createdAt`, which allows you to target newly created accounts or accounts that have yet to achieve a certain feature in the user lifecyle + +These appear within the Userpilot user dashboard and power audience segmentation and targeting. + + +### Group +Send [Group](/docs/connections/spec/group) calls to associate users with an account, organization, or project. + +```swift +analytics.group(groupId: "", traits: [ + "companyName": "Acme Inc.", + "subscriptionTier": "Enterprise" +]) +``` + +Segment sends Group calls to Userpilot as a `userpilot.identify` update with company-level traits, allowing you to use company metadata in targeting logic. + + +### Screen +Send [Screen](/docs/connections/spec/screen) calls to track navigation or screen changes in mobile apps. + +```swift +analytics.screen(title: "Home") +``` + +Segment sends Screen calls to Userpilot as a `userpilot.screen` event. This allows Userpilot to: +* Trigger relevant experiences configured for specific pages/screens. +* Check for ongoing experiences already running. + + +### Track + +Send [Track](/docs/connections/spec/track) calls to log user actions or custom events. + +```swift +analytics.track(name: "Button Clicked", properties: [ + "buttonColor": "green" +]) +``` + +Segment sends Track calls to Userpilot as `userpilot.track`. These custom events can be used to: +* Trigger specific experiences (e.g., a Caroucel or Survey) +* Monitor user behavior for analytics or lifecycle targeting \ No newline at end of file From 87ece9fa6a872b6f09adb5fca62c0759687a79ba Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 29 Jul 2025 14:42:39 +0100 Subject: [PATCH 374/438] ID type field deprecated and not required for TikTok Audiences --- .../catalog/actions-tiktok-audiences/index.md | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md index c8a092e50a..6298bec735 100644 --- a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md +++ b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md @@ -12,14 +12,14 @@ By using Segment's TikTok Audiences destination, you can increase traffic and dr ## Getting started -### Notes +### Legacy and native destination instances +If you created a TikTok Audiences destination instance before September 25th, 2023, your instance(s) and all subsequent instances are considered _legacy_ instances. To create a new legacy instance, see the [Create a TikTok audience (Legacy)](#connect-the-tiktok-audiences-legacy-destination) documentation. -- If you created a TikTok Audiences destination instance before September 25th, 2023, your instance(s) and all subsequent instances are considered _legacy_ instances. To create a new _legacy_ instance, see the [Create a TikTok audience (Legacy)](#connect-the-tiktok-audiences-legacy-destination) documentation. Users who created their first instance after September 25, 2023 are considered to have _native_ instances. To create a new _native_ instance, see [Configure the TikTok Audiences destination](#configure-the-tiktok-audiences-destination) documentation. -- Both _legacy_ and _native_ instances have the same set of features, but are configured differently. Legacy instances require you to create an audience or action manually, but native instances automatically create audiences and actions. -- If you update the events names from the default Audience Entered/Audience Exited, please make sure to also update it in the "Add to Audience" and "Remove from Audience" mappings. -- The Email ID or Advertising ID of the user must be provided. -- TikTok [requires](https://business-api.tiktok.com/portal/docs?id=1739940585975809){:target="_blank"} `phone` number to be formatted in E.164 form, e.g. `+1231234567`. If your phone number is missing country code, you can prepend `+1` in the Action Mapping. -- For more information about how to update from _legacy_ to _native_, reach out to [friends@segment.com](mailto:friends@segment.com). +Users who created their first instance after September 25, 2023 are considered to have _native_ instances. To create a new native instance, see the [Configure the TikTok Audiences destination](#configure-the-tiktok-audiences-destination) documentation. + +Both legacy and native instances have the same set of features, but are configured differently. Legacy instances require you to create an audience or action manually, but native instances automatically create audiences and actions. + +For more information about how to update from legacy to native instances, reach out to [friends@segment.com](mailto:friends@segment.com). ### Prerequisites @@ -27,9 +27,14 @@ Before connecting to the TikTok Audiences destination, you must have a [TikTok A For more details on account and access level permissions, refer to [TikTok's documentation](https://ads.tiktok.com/help/article/how-to-assign-asset-level-permissions?lang=en){:target="_blank"}. +#### Additional requirements + +- If you update the events names from the default Audience Entered or Audience Exited, ensure that you also update them in the "Add to Audience" and "Remove from Audience" mappings. - The Email ID or Advertising ID of the user must be provided. +- TikTok [requires](https://business-api.tiktok.com/portal/docs?id=1739940585975809){:target="_blank"} `phone` number to be formatted in E.164 form, for example `+1231234567`. If your phone number is missing country code, you can prepend `+1` in the Action Mapping. + ### TikTok Audience Segments -Send Engage audiences to an existing TikTok audience segment or create a new audience. Note the `audience_id` as this is required to send Engage audiences to TikTok. +Send Engage audiences to an existing TikTok audience segment or create a new audience. Make note of the `audience_id` as this is required to send Engage audiences to TikTok. ### Configure the TikTok Audiences destination @@ -52,9 +57,9 @@ Send Engage audiences to an existing TikTok audience segment or create a new aud 9. Navigate back to **Engage > Audiences** and click on the audience from step 1. 10. Click **Add Destinations** and select the TikTok Audiences destination you just created. - In the settings that appear in the side panel, toggle the **Send Track** option on and **Send Identify** option off. Provide the [Advertiser ID](https://ads.tiktok.com/help/article/ad-account-information-faq?lang=en){:target="_blank"} linked to the TikTok account that will receive the audience data, as well as the **ID Type** of data you'll be sending. Click **Save Settings**. + In the settings that appear in the side panel, toggle the **Send Track** option on and **Send Identify** option off. Provide the [Advertiser ID](https://ads.tiktok.com/help/article/ad-account-information-faq?lang=en){:target="_blank"} linked to the TikTok account that will receive the audience data. Click **Save Settings**. -The setup is complete and the audience will start syncing to TikTok. The audience will appear in your [TikTok Ads Manager](https://www.tiktok.com/business/en-US/solutions/ads-manager){:target="_blank"} account under **Assets > Audiences**. Please note that it can take 24-48 hours for users to appear in TikTok. +The setup is complete and the audience will start syncing to TikTok. The audience will appear in your [TikTok Ads Manager](https://www.tiktok.com/business/en-US/solutions/ads-manager){:target="_blank"} account under **Assets > Audiences**. It can take 24-48 hours for users to appear in TikTok. ### Connect the TikTok Audiences (_Legacy_) destination @@ -75,15 +80,14 @@ The setup is complete and the audience will start syncing to TikTok. The audienc 7. Navigate to the **Mappings** tab, click **New Mapping**, and select **Add Users**. -8. Under Select mappings, select the TikTok "Advertiser ID" of the audience segment you want to add users to. Input the `audience_id` of that audience segment under "Audience ID." **Note: A separate mapping must be created for each audience segment you plan to send Engage audiences to.** - - **Note:** Once you've created the audience using the name of Segment's audience key, you can get the Audience ID from TikTok's Assets>Audiences page. You'll also find the Advertised ID, noted by `aadvid`, over the TikTok URL. +8. Under Select mappings, select the TikTok "Advertiser ID" of the audience segment you want to add users to. Input the `audience_id` of that audience segment under "Audience ID." + **A separate mapping must be created for each audience segment you plan to send Engage audiences to.** Once you've created the audience using the name of Segment's audience key, you can get the Audience ID from TikTok's Assets>Audiences page. You'll also find the Advertised ID, noted by `aadvid`, over the TikTok URL. -9. Repeat steps 7 and 8 to also set up a **Remove Users** mapping. +10. Repeat steps 7 and 8 to also set up a **Remove Users** mapping. -10. Navigate back to **Engage > Audiences** and click on the audience from Step 1. +11. Navigate back to **Engage > Audiences** and click on the audience from Step 1. -11. Click **Add Destinations** and select the TikTok Audiences destination you just created. In the settings that appear in the side panel, toggle the **Send Track** option on and do **not** change the Audience Entered/Audience Exited event names. Click **Save Settings**. +12. Click **Add Destinations** and select the TikTok Audiences destination you just created. In the settings that appear in the side panel, toggle the **Send Track** option on and do **not** change the Audience Entered/Audience Exited event names. Click **Save Settings**. The setup is complete and the audience will start syncing to TikTok. The audience will appear in your [TikTok Ads Manager](https://www.tiktok.com/business/en-US/solutions/ads-manager){:target="_blank"} account under **Assets > Audiences**. Please note that it can take 24-48 hours for users to appear in TikTok. @@ -105,11 +109,11 @@ You can create a duplicate audience since TikTok doesn't restrict users from hav You do not need to update the status of the mapping to `enabled`. -For instructions on how to create a TikTok audience segment, see TikTok's [Create/Delete an audience segment](https://ads.tiktok.com/marketing_api/docs?id=1739940583739393){:target="_blank"} docs. +For instructions on how to create a TikTok audience segment, see TikTok's documentation on how to [Create/Delete an audience segment](https://ads.tiktok.com/marketing_api/docs?id=1739940583739393){:target="_blank"}. {% include components/actions-fields.html %} ## FAQS -### Why is my audience considered too small in TikTok? +#### Why is my audience considered too small in TikTok? [TikTok](https://ads.tiktok.com/help/article/custom-audiences?lang=en) requires a minimum audience size of 1,000 to target Custom Audiences in an ad group. From 14be37bdee0a19c3f78c580cb4d793a6b069ee0d Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 29 Jul 2025 14:45:45 +0100 Subject: [PATCH 375/438] fixed numbering [netlify-build] --- .../destinations/catalog/actions-tiktok-audiences/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md index 6298bec735..b30325058b 100644 --- a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md +++ b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md @@ -83,11 +83,11 @@ The setup is complete and the audience will start syncing to TikTok. The audienc 8. Under Select mappings, select the TikTok "Advertiser ID" of the audience segment you want to add users to. Input the `audience_id` of that audience segment under "Audience ID." **A separate mapping must be created for each audience segment you plan to send Engage audiences to.** Once you've created the audience using the name of Segment's audience key, you can get the Audience ID from TikTok's Assets>Audiences page. You'll also find the Advertised ID, noted by `aadvid`, over the TikTok URL. -10. Repeat steps 7 and 8 to also set up a **Remove Users** mapping. +9. Repeat steps 7 and 8 to also set up a **Remove Users** mapping. -11. Navigate back to **Engage > Audiences** and click on the audience from Step 1. +10. Navigate back to **Engage > Audiences** and click on the audience from Step 1. -12. Click **Add Destinations** and select the TikTok Audiences destination you just created. In the settings that appear in the side panel, toggle the **Send Track** option on and do **not** change the Audience Entered/Audience Exited event names. Click **Save Settings**. +11. Click **Add Destinations** and select the TikTok Audiences destination you just created. In the settings that appear in the side panel, toggle the **Send Track** option on and do **not** change the Audience Entered/Audience Exited event names. Click **Save Settings**. The setup is complete and the audience will start syncing to TikTok. The audience will appear in your [TikTok Ads Manager](https://www.tiktok.com/business/en-US/solutions/ads-manager){:target="_blank"} account under **Assets > Audiences**. Please note that it can take 24-48 hours for users to appear in TikTok. From d382b126bc98a549a6cf3dca91fda942317a0199 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 29 Jul 2025 14:49:50 +0100 Subject: [PATCH 376/438] Outdated prereq removed [DOC-1155] --- .../catalog/actions-segment-profiles/salesforce-source.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md b/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md index c5c76ec0eb..59cc1b8083 100644 --- a/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md +++ b/src/connections/destinations/catalog/actions-segment-profiles/salesforce-source.md @@ -16,9 +16,8 @@ Once configured, this integration lets you send Salesforce data directly to Segm Before you begin, make sure that you have the following: -- a Segment workspace with [Unify](/docs/unify/) enabled and [Identity Resolution](/docs/unify/identity-resolution/) set up -- Administrator access to your Salesforce account -- Salesforce Unify Direct Integration enabled for your workspace. [Contact Segment](https://segment.com/help/contact/){:target="_blank"} if you don't yet have the integration enabled. +- a Segment workspace with [Unify](/docs/unify/) enabled and [Identity Resolution](/docs/unify/identity-resolution/) set up. +- Administrator access to your Salesforce account. ## Integration steps @@ -89,4 +88,4 @@ Keep the following in mind as you work with the Salesforce Unify Direct Integrat - Regularly review your mapping to ensure it reflects any changes in your Salesforce schema or Segment Profile needs. - Monitor both your Salesforce source and Segment Profiles destination for errors and data discrepancies. -The Salesforce Unify Direct Integration supports mapping from a single Salesforce collection per data model. For complex use cases requiring data from multiple collections, you may need to create multiple data models and mappings. \ No newline at end of file +The Salesforce Unify Direct Integration supports mapping from a single Salesforce collection per data model. For complex use cases requiring data from multiple collections, you may need to create multiple data models and mappings. From f941b2e3f4bba3fee69ffd9630b2dd7735091ec3 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 29 Jul 2025 14:54:51 +0100 Subject: [PATCH 377/438] bullets [netlify-build] --- .../destinations/catalog/actions-tiktok-audiences/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md index b30325058b..e264a92c4d 100644 --- a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md +++ b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md @@ -29,7 +29,8 @@ For more details on account and access level permissions, refer to [TikTok's doc #### Additional requirements -- If you update the events names from the default Audience Entered or Audience Exited, ensure that you also update them in the "Add to Audience" and "Remove from Audience" mappings. - The Email ID or Advertising ID of the user must be provided. +- If you update the events names from the default Audience Entered or Audience Exited, ensure that you also update them in the "Add to Audience" and "Remove from Audience" mappings. +- The Email ID or Advertising ID of the user must be provided. - TikTok [requires](https://business-api.tiktok.com/portal/docs?id=1739940585975809){:target="_blank"} `phone` number to be formatted in E.164 form, for example `+1231234567`. If your phone number is missing country code, you can prepend `+1` in the Action Mapping. ### TikTok Audience Segments From 91893366efb52b29f09435028424f16899dfea00 Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Tue, 29 Jul 2025 18:25:33 +0100 Subject: [PATCH 378/438] Update src/connections/destinations/catalog/dotdigital/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/dotdigital/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index cc4c4d7ba5..2f9fe099f8 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -17,7 +17,7 @@ This destination is maintained by Dotdigital. For any issues with the destinatio 3. Select an existing Source to connect to Dotdigital (Actions). 4. Log in to your [Dotdigital account](https://login.dotdigital.com/){:target="_blank"}. Expand the User menu in the bottom left and go to Settings > Access > API users. 5. Note your API region (r1, r2 or r3) for step 7. -6. Create a [new API user](https://developer.dotdigital.com/docs/setting-up-an-api-user) {:target="_blank"}. +6. Create a [new API user](https://developer.dotdigital.com/docs/setting-up-an-api-user){:target="_blank"}. 7. In Segment, select your Dotdigital account region and paste the **API user** and **API password** in the Dotdigital destination settings. {% include components/actions-fields.html %} From 0e0936d685dcec3da7692f1f63c1be9290d9dc79 Mon Sep 17 00:00:00 2001 From: Alastair Mucklow Date: Tue, 29 Jul 2025 18:25:46 +0100 Subject: [PATCH 379/438] Update src/connections/destinations/catalog/dotdigital/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/dotdigital/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/dotdigital/index.md b/src/connections/destinations/catalog/dotdigital/index.md index 2f9fe099f8..c4da750368 100644 --- a/src/connections/destinations/catalog/dotdigital/index.md +++ b/src/connections/destinations/catalog/dotdigital/index.md @@ -27,7 +27,7 @@ This destination is maintained by Dotdigital. For any issues with the destinatio ### Add Contact to List Before using the Add Context to List Action, complete the following prerequisites: -- **Lists**: [Create a contact list in Dotdigital](https://support.dotdigital.com/en/articles/8198769-create-a-contact-list) {:target="_blank"}. After you've created a list in Dotdigital, return to the Segment app and select your list from the dropdown in the Segment event mapping. +- **Lists**: [Create a contact list in Dotdigital](https://support.dotdigital.com/en/articles/8198769-create-a-contact-list){:target="_blank"}. After you've created a list in Dotdigital, return to the Segment app and select your list from the dropdown in the Segment event mapping. - **Data Fields**: [Create or edit your data fields in Dotdigital](https://support.dotdigital.com/en/articles/8198833-create-delete-and-edit-custom-data-fields){:target="_blank"}, then return to the Segment app, open the event mapping, and map Segment properties to Dotdigital data fields. ### Enroll Contact to Program From 9b55c1d3cd7d93661dbbda1210381b9754e45c63 Mon Sep 17 00:00:00 2001 From: pwseg Date: Tue, 29 Jul 2025 19:01:07 -0700 Subject: [PATCH 380/438] clarify Segment Spec and schema guidance, remove outdated Blocks terminology --- src/guides/intro-impl.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/guides/intro-impl.md b/src/guides/intro-impl.md index 19d039f682..044c22a7cc 100644 --- a/src/guides/intro-impl.md +++ b/src/guides/intro-impl.md @@ -39,13 +39,16 @@ A Track call is the most basic type of call, and can represent any type of event {% include content/message-anatomy.md %} -## Message schemas, Blocks, and Specs +## Segment Spec and event schemas -The Segment "Specs" provide recommended message schemas - the information we recommend that you collect - for each type of call. These are recommendations not requirements, but if you follow these schema guidelines the Segment servers can more easily identify parts of your messages, and translate them to downstream tools. +The Segment Spec provides recommended message schemas for each type of event call (like Identify, Track, Page, and Scren). These schemas help you structure your events in a consistent, predictable format, making them easier to understand, maintain, and map to downstream tools. -In addition to the recommended message schemas, Segment also provides "blocks": recommendations on what information to collect and how to format it, for different industries and use cases. These are recommendations only, but by collecting all of the information in these blocks, you can ensure that common tools used in that use-case have the information they need to function. +The Spec contains two kinds of guidance: -A third section of the Spec is the "industry specs" which provide recommendations that include an explicit translation or mapping in the Segment servers, to best power the downstream Destinations commonly used in these industries. +- Mapped events, like `Order Completed` and `Product Viewed`, are event names and properties that Segment recognizes and transforms automatically for supported destinations. For example, events like `Order Completed` or `Product Viewed` are mapped to standard ecommerce fields. +- Recommended events, on the other hand, are suggestions for structuring common event types, but Segment doesn't apply automatic transformations. They serve as best practices to help you maintain clean, useful data, especially if you're designing events for custom or internal use cases. + +Segment also offers industry-specific recommendations, which are collections of events and traits commonly used in verticals like ecommerce or B2B SaaS. Segment designed these recommendations to help you collect the right data to power tools typically used in your industry. ## Sources and Destinations From 61f3facc97802824c4f190fd8156f9d2552ee9d0 Mon Sep 17 00:00:00 2001 From: pwseg Date: Tue, 29 Jul 2025 19:02:23 -0700 Subject: [PATCH 381/438] minor style stuff --- src/guides/intro-impl.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/guides/intro-impl.md b/src/guides/intro-impl.md index 044c22a7cc..4450c811fb 100644 --- a/src/guides/intro-impl.md +++ b/src/guides/intro-impl.md @@ -5,7 +5,7 @@ title: Segment for Developers This guide explains all you need to know to get started with your Segment implementation, and directs you to more resources depending on your specific needs. > info "" -> If you haven't already, you should read the [detailed explanation of Segment](/docs/guides/) on the previous page! +> If you haven't already, you should read the [detailed explanation of Segment](/docs/guides/) on the previous page. {% include components/reference-button.html href="https://university.segment.com/introduction-to-segment/324262?reg=1&referrer=docs" icon="media/academy.svg" title="Segment University: Segment in Action" description="See a quick example of Segment working on an ecommerce website. (Must be logged in to access.)" %} @@ -15,7 +15,7 @@ Segment sends messages about activities in your mobile apps, websites or servers ## Types of Segment messages -Segment's libraries generate and send messages to our tracking API in JSON format, and provide a standard structure for the basic API calls. We also provide recommended JSON structure (also known as a schema, or 'Spec') that helps keep the most important parts of your data consistent, while allowing great flexibility in what other information you collect and where. +Segment's libraries generate and send messages to our tracking API in JSON format, and provide a standard structure for the basic API calls. Segment also provides recommended JSON structure (also known as a schema, or Spec) that helps keep the most important parts of your data consistent, while allowing great flexibility in what other information you collect and where. There are six calls in the basic tracking API, which answer specific questions: @@ -33,7 +33,7 @@ The other three, Track, Page, and Screen, can be considered as increasingly spec A Track call is the most basic type of call, and can represent any type of event. Page and Screen are similar and are triggered by a user viewing a page or screen, however Page calls can come from both web and mobile-web views, while Screen calls *only* occur on mobile devices. Because of the difference in platform, the context information collected is very different between the two types of calls. > success "" -> **Tip**! Segment recommends that you always use the Page and Screen calls when recording a page-view, rather than creating a "Page Viewed" event, because the Page/Screen calls automatically collect much better context information. +> Segment recommends that you always use the Page and Screen calls when recording a page-view, rather than creating a "Page Viewed" event, because the Page/Screen calls automatically collect much better context information. ## Anatomy of a Segment message From 8f81a2c5d773cb7351f6eb843720ba23f8e5e6eb Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Wed, 30 Jul 2025 09:18:19 -0700 Subject: [PATCH 382/438] Update index.md --- src/engage/audiences/index.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 8b23b00bdb..3b1300dc35 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -109,6 +109,18 @@ Dynamic Property references give you more flexibility over funnel audiences. Ins ![Using dynamic property references with an Audience funnel](/docs/engage/images/dynamic_property_audiences1.png) +### Audience previews +After configuring your audience definition, use the **Preview** button to review your audience setup. It shows the total number of profiles that match your criteria and a sample list of those profiles, helping you confirm the audience is correct before launching campaigns. Previews are only available if your audience uses historical data, displaying the current size based on past data. To learn more about the Include Historical Data option, see here https://segment.com/docs/engage/audiences/#how-does-the-historical-data-flag-work. The audience will grow as new profiles meet your criteria. Click any profile in the sample list to view a detailed side sheet with their attributes, making it easy to verify membership. This feature simplifies campaign planning and ensures your audience targets the right profiles. + +#### Identifier breakdown +To check how profiles in your audience are identified, first click **Preview** to view your audience configuration. In the Preview results, navigate to the **Insights** tab (next to the **Users** tab) to see a breakdown of the percentage of profiles associated with each external_id in the audience. These are the default IDs that Segment includes in the Identity resolution configuration. Segment displays the percentage of the audience with each identifier, which you can use to verify the audience size and profiles are correct. The update of identifier breakdowns on profiles doesn't occur in real time. + +> info "" +> The Identifier Breakdown doesn't show custom IDs included in the Identity resolution configuration unless those IDs are explicitly selected through [ID sync](/docs/engage/trait-activation/id-sync/). By default, Segment only displays external IDs in the breakdown. + +#### Audience overlap +To check how your audience intersects with others in your Segment space, first click **Preview** to view your audience configuration. In the Preview results, navigate to the **Insights** tab (next to the **Users** tab). In the Insights tab, select an existing audience from the dropdown menu and click **Compute overlap** to see the number of shared profiles. This feature optimizes campaign targeting by identifying redundant audiences and refining segmentation. + ### Account-level audiences If you have a B2B business, you might want to build an Audience of accounts. You can use both account-level traits that you've sent through the [Group](/docs/connections/spec/group) call, or user-level traits and events. For example, you might want to re-engage a list of at-risk accounts defined as companies which are on a business tier plan and where none of the users in that account have logged in recently. When incorporating user-level events or traits, you can specify `None of the users`, `Any users`, or `All users`. @@ -398,13 +410,6 @@ Note the following limits for the CSV downloader: > warning "" > You can't add account traits and identifiers using the CSV downloader with account level audiences. This is because every row listed in the CSV file is a user, and since account traits and identifiers only exist on accounts, they wouldn't exist as a user's custom trait and appear on the CSV. -## Identifier Breakdown - -The audience summary is a breakdown of the percentages of external_ids of users in the audience. These are the default IDs that Segment includes in the Identity resolution configuration. Segment displays the percentage of the audience with each identifier, which you can use to verify the audience size and profiles are correct. The update of identifier breakdowns on profiles doesn't occur in real time. - -> info "" -> The Identifier Breakdown doesn't show custom IDs included in the Identity resolution configuration unless those IDs are explicitly selected through [ID sync](/docs/engage/trait-activation/id-sync/). By default, Segment only displays external IDs in the breakdown. - ## FAQ ### Why do I get a different user count when I use `$` on a field?** From 576fc6c4cbffc75e23c67e5ab0441c795d88f72d Mon Sep 17 00:00:00 2001 From: wilwong-twilio <109997887+wilwong-twilio@users.noreply.github.com> Date: Wed, 30 Jul 2025 09:23:31 -0700 Subject: [PATCH 383/438] Update index.md --- src/engage/audiences/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 3b1300dc35..410dd88d2a 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -112,6 +112,9 @@ Dynamic Property references give you more flexibility over funnel audiences. Ins ### Audience previews After configuring your audience definition, use the **Preview** button to review your audience setup. It shows the total number of profiles that match your criteria and a sample list of those profiles, helping you confirm the audience is correct before launching campaigns. Previews are only available if your audience uses historical data, displaying the current size based on past data. To learn more about the Include Historical Data option, see here https://segment.com/docs/engage/audiences/#how-does-the-historical-data-flag-work. The audience will grow as new profiles meet your criteria. Click any profile in the sample list to view a detailed side sheet with their attributes, making it easy to verify membership. This feature simplifies campaign planning and ensures your audience targets the right profiles. +> info "" +> Audience preview membership is calculated using data that may be slightly delayed from real-time processing, which can lead to temporary discrepancies between the preview results and the profile information shown in the profile side sheet or via the Profile API. + #### Identifier breakdown To check how profiles in your audience are identified, first click **Preview** to view your audience configuration. In the Preview results, navigate to the **Insights** tab (next to the **Users** tab) to see a breakdown of the percentage of profiles associated with each external_id in the audience. These are the default IDs that Segment includes in the Identity resolution configuration. Segment displays the percentage of the audience with each identifier, which you can use to verify the audience size and profiles are correct. The update of identifier breakdowns on profiles doesn't occur in real time. From a8982bf730d3a530a10b04f9ff3bb7d165f713c2 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 30 Jul 2025 15:23:22 -0400 Subject: [PATCH 384/438] Update user-deletion-and-suppression.md --- src/privacy/user-deletion-and-suppression.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/privacy/user-deletion-and-suppression.md b/src/privacy/user-deletion-and-suppression.md index 6f056051c0..40861daf5b 100644 --- a/src/privacy/user-deletion-and-suppression.md +++ b/src/privacy/user-deletion-and-suppression.md @@ -59,7 +59,7 @@ Warehouse deletions occur using a DML run against your cluster or instance. Segm ### Deletion requests tab -The deletion requests tab shows a 30-day overview of your deletions pipeline, including a Regulations usage tracker and a deletion requests status table. +The deletion requests tab shows a 30-day overview of your deletions pipeline, including a Regulations usage tracker and a deletion requests status table. The deletion requests summary tab shows the status of all your deletion requests from the last 30-day and might not accurately reflect your current deletion request limits. To navigate to the deletion requests tab, open the Segment app and navigate to **Privacy > Deletion and Suppression > Deletion**. From db7f537efb65feb6d44c996439f8bcc1cd1ddf91 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Wed, 30 Jul 2025 13:19:42 -0700 Subject: [PATCH 385/438] Update src/guides/intro-impl.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/guides/intro-impl.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/intro-impl.md b/src/guides/intro-impl.md index 4450c811fb..4152b16ebf 100644 --- a/src/guides/intro-impl.md +++ b/src/guides/intro-impl.md @@ -33,7 +33,7 @@ The other three, Track, Page, and Screen, can be considered as increasingly spec A Track call is the most basic type of call, and can represent any type of event. Page and Screen are similar and are triggered by a user viewing a page or screen, however Page calls can come from both web and mobile-web views, while Screen calls *only* occur on mobile devices. Because of the difference in platform, the context information collected is very different between the two types of calls. > success "" -> Segment recommends that you always use the Page and Screen calls when recording a page-view, rather than creating a "Page Viewed" event, because the Page/Screen calls automatically collect much better context information. +> Segment recommends that you always use the Page and Screen calls when recording a page-view, rather than creating a "Page Viewed" event, because the Page/Screen calls automatically collect much better contextual information. ## Anatomy of a Segment message From f491865042f219b237c1610ce99dc0acf08200e7 Mon Sep 17 00:00:00 2001 From: tbols17 <113375224+tbols17@users.noreply.github.com> Date: Wed, 30 Jul 2025 13:59:39 -0700 Subject: [PATCH 386/438] Update index.md --- src/unify/Traits/predictions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/Traits/predictions/index.md b/src/unify/Traits/predictions/index.md index 13b461d764..11cf3df866 100644 --- a/src/unify/Traits/predictions/index.md +++ b/src/unify/Traits/predictions/index.md @@ -81,7 +81,7 @@ To access Predictions, you must: #### Successful trait computation -This table lists the requirements for a trait to compute successfully: +This table lists the requirements for a trait to compute successfully: Please note that for the events below, there cannot be any days where the event was not seen or performed in the entire workspace | Requirement | Details | | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | From cd5750e0902068f04dfffe923e7a24b7c17ad5cf Mon Sep 17 00:00:00 2001 From: pwseg Date: Wed, 30 Jul 2025 16:26:07 -0700 Subject: [PATCH 387/438] update base model [netlify-build] --- .../content/generative-audiences-nutrition-facts.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_includes/content/generative-audiences-nutrition-facts.html b/src/_includes/content/generative-audiences-nutrition-facts.html index 8b245b37e1..bbc7cc0d25 100644 --- a/src/_includes/content/generative-audiences-nutrition-facts.html +++ b/src/_includes/content/generative-audiences-nutrition-facts.html @@ -85,7 +85,7 @@

      wj5hbwD#} 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�SdC>#6>IVU^~AMZ|l;zo}2a} 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

  • Base Model - OpenAI - GPT-4

    + AWS Bedrock - Claude Sonnet

    Compliance    
    Logging & Auditing - No
    + Yes
    Guardrails Yes
    {{item.label}}{% if item.required == true %}
    (required){%endif%}
    {{item.type}}{% if item.defaultValue != null and item.defaultValue != "" and item.defaultValue != '{}'%}, defaults to {%if item.type == "array" %}{{item.defaultValue | join: ", " }}{%elsif item.type == "string"%}{{item.defaultValue}} {%elsif item.type == "boolean" %} {{item.defaultValue | upcase }} {%else%} {{item.defaultValue}}{%endif%}.

    {%else%}. {% endif %}{{item.description}}
    {{item.type}}{% if item.defaultValue != null and item.defaultValue != "" and item.defaultValue != '{}' and item.defaultValue != '[]'%}, defaults to {%if item.type == "array" %}{{item.defaultValue | join: ", " }}{%elsif item.type == "string"%}{{item.defaultValue}} {%elsif item.type == "boolean" %} {{item.defaultValue | upcase }} {%else%} {{item.defaultValue}}{%endif%}.

    {%else%}. {% endif %}{{item.description}}
    {{item.label}}{% if item.required == true %}
    (required){%endif%}
    {{item.type}}{% if item.defaultValue != null and item.defaultValue != "" and item.defaultValue != '{}' and item.defaultValue != '[]'%}, defaults to {%if item.type == "array" %}{{item.defaultValue | join: ", " }}{%elsif item.type == "string"%}{{item.defaultValue}} {%elsif item.type == "boolean" %} {{item.defaultValue | upcase }} {%else%} {{item.defaultValue}}{%endif%}.

    {%else%}. {% endif %}{{item.description}}
    {{ item.type }}{% unless item.defaultValue != nil and item.defaultValue != "" and item.defaultValue.size != 0 %}, has no default value.

    {% else %}, defaults to {% if item.type == "array" %}{{ item.defaultValue | join: ", " }}{% elsif item.type == "string" %}{{ item.defaultValue }}{% elsif item.type == "boolean" %}{{ item.defaultValue | upcase }}{% endif %}.

    {% endunless %}{{ item.description }}