From 392b9309e543cdc4a25f00727bb5547fdd515b60 Mon Sep 17 00:00:00 2001 From: CristhianMotoche Date: Thu, 30 Oct 2025 10:15:48 -0500 Subject: [PATCH 01/38] chore: Simplify snippet for serialization --- src/_includes/content/source-region-unsupported.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_includes/content/source-region-unsupported.md b/src/_includes/content/source-region-unsupported.md index 672307a2f1..802c297056 100644 --- a/src/_includes/content/source-region-unsupported.md +++ b/src/_includes/content/source-region-unsupported.md @@ -1,9 +1,9 @@
-

This {{ page.integration_type }} is supported in US data processing regions.

+

This Source is supported in US data processing regions.

- The {{ page.title | replace: 'Source', '' }} source is only supported in workspaces configured to process data in the US region. Workspaces configured with data processing regions outside of the US cannot connect to this source. For more information, see [Regional Segment](/docs/guides/regional-segment/). + This Source is only supported in workspaces configured to process data in the US region. Workspaces configured with data processing regions outside of the US cannot connect to this source. For more information, see [Regional Segment](/docs/guides/regional-segment/).

From 623b6e10a94a5f97476f891adc94d00405648364 Mon Sep 17 00:00:00 2001 From: Elijah Hunt Date: Fri, 31 Oct 2025 14:14:12 +0100 Subject: [PATCH 02/38] Removal of personas.md include && fix ajs-upgrade.md snippets --- src/_includes/content/ajs-upgrade.md | 10 +++++++--- src/connections/destinations/catalog/kochava/index.md | 3 --- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/_includes/content/ajs-upgrade.md b/src/_includes/content/ajs-upgrade.md index 2a57aa5a0f..8b0b103171 100644 --- a/src/_includes/content/ajs-upgrade.md +++ b/src/_includes/content/ajs-upgrade.md @@ -1,3 +1,7 @@ -

Analytics.js 2.0

-

Actions-based destinations may require features found in [Analytics.js 2.0](/docs/connections/sources/catalog/libraries/website/javascript/). If the destination has Web actions and is connected to a javascript source, [upgrade your Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript/upgrade-to-ajs2/) source to ensure compatibility.

-
\ No newline at end of file +
+
+
+

Analytics.js 2.0

+

Actions-based destinations may require features found in [Analytics.js 2.0](/docs/connections/sources/catalog/libraries/website/javascript/). If the destination has Web actions and is connected to a javascript source, [upgrade your Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript/upgrade-to-ajs2/) source to ensure compatibility.

+
+
\ No newline at end of file diff --git a/src/connections/destinations/catalog/kochava/index.md b/src/connections/destinations/catalog/kochava/index.md index 6efa954d36..f08886b37e 100644 --- a/src/connections/destinations/catalog/kochava/index.md +++ b/src/connections/destinations/catalog/kochava/index.md @@ -63,9 +63,6 @@ Analytics.track( To create a Kochava-Certified Postback that will send campaign information to Segment after attributing an `Application Installed` event, follow [Kochava's Postback set up documentation](https://support.kochava.com/campaign-management/create-a-kochava-certified-postback){:target="_blank"}. - -{% include content/personas.md %} - ## Troubleshooting ### advertisingId is string of 0s From b0c156358bfc0d50bd9cfc573b6e8547ece4814b Mon Sep 17 00:00:00 2001 From: Paulo Borges Date: Fri, 31 Oct 2025 11:08:01 -0300 Subject: [PATCH 03/38] fix include (#8121) --- .../destinations/catalog/actions-google-sheets/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-google-sheets/index.md b/src/connections/destinations/catalog/actions-google-sheets/index.md index 764e89c89f..5c7a0ae1a5 100644 --- a/src/connections/destinations/catalog/actions-google-sheets/index.md +++ b/src/connections/destinations/catalog/actions-google-sheets/index.md @@ -39,7 +39,7 @@ Available sync modes for the Post Sheet v2 Action includes: - **Upsert**: If a record with the specified identifier is found, it is updated. If not, a new row is created. - **Add**: Add a new record when the specified identifier doesn't exist. If it does, the record is skipped. -{% include components/actions-fields.html settings="false"%} +{% include components/actions-fields.html settings="false" %} ## FAQ From 7ed955656bf57a1d0734f4508e301d796fa17bc8 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Mon, 3 Nov 2025 12:00:38 +0000 Subject: [PATCH 04/38] Update ID in Microsoft Bing CAPI destination doc --- .../destinations/catalog/actions-ms-bing-capi/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-ms-bing-capi/index.md b/src/connections/destinations/catalog/actions-ms-bing-capi/index.md index 1d10d5056d..ef29d9dbe9 100644 --- a/src/connections/destinations/catalog/actions-ms-bing-capi/index.md +++ b/src/connections/destinations/catalog/actions-ms-bing-capi/index.md @@ -1,6 +1,6 @@ --- title: Microsoft Bing CAPI Destination -id: 68b82be249b48bae343517c7a +id: 68b82be249b48bae343517c7 beta: true redirect_from: "/connections/destinations/catalog/microsoft-bing-capi/" --- From c1ae3623740200a51cbe58747860d58c9b8b2db6 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Mon, 3 Nov 2025 12:02:04 +0000 Subject: [PATCH 05/38] [netlify-build] Fixed formatting and punctuation in the instructions. --- .../destinations/catalog/actions-ms-bing-capi/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-ms-bing-capi/index.md b/src/connections/destinations/catalog/actions-ms-bing-capi/index.md index ef29d9dbe9..758f4c835e 100644 --- a/src/connections/destinations/catalog/actions-ms-bing-capi/index.md +++ b/src/connections/destinations/catalog/actions-ms-bing-capi/index.md @@ -11,7 +11,7 @@ redirect_from: "/connections/destinations/catalog/microsoft-bing-capi/" ## Getting started -1. From your workspace's [destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Microsoft Bing CAPI". +1. From your workspace's [destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”}, search for "Microsoft Bing CAPI". 2. Select Microsoft Bing CAPI and click **Add destination**. 3. Select an existing source to connect to the destination. 4. Give the destination a name and click **Create destination**. From 25702664b38a65d45378e74dd7dc6a779cfcaf98 Mon Sep 17 00:00:00 2001 From: maxmilhan <34718789+maxmilhan@users.noreply.github.com> Date: Mon, 3 Nov 2025 12:21:06 -0500 Subject: [PATCH 06/38] Add troubleshooting tips for Segment signals Added troubleshooting section for common misconfigurations. --- src/connections/auto-instrumentation/web-setup.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index 052ee9733d..346ab868b9 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -357,6 +357,14 @@ Network signals emit when an HTTP Request is made, or an HTTP Response is receiv - 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` +## Troubleshooting + +Here are the most common misconfigurations preventing signals from reaching Segment. + +- Not enabling signals with the URL parameter: you must start each debug session by appending `?segment_signals_debug=true` to your URL parameters. +- Running debug mode with an ad blocker: an active ad blocker will prevent signals from reaching Segment. Disable your ad blocker and start a new session. +- Content Security Policies: in addition to the [default Analytics.js Content Security Policies](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/faq/#does-segment-support-using-strict-content-security-policy-csp-on-the-page), you must add `cdn.jsdelivr.net` to your allowlist, or `https://cdn.jsdelivr.net/npm/@segment/analytics-signals@latest/dist/umd/analytics-signals.umd.js` if your policies require the full path. + ## 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. From 9419a6cc1ccf1cd6d82c4e60a1666be922b33436 Mon Sep 17 00:00:00 2001 From: Amelia Date: Mon, 3 Nov 2025 17:36:51 +0000 Subject: [PATCH 07/38] completed md according to template --- .../destinations/catalog/cj/index.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/connections/destinations/catalog/cj/index.md diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md new file mode 100644 index 0000000000..e1f6dce8a4 --- /dev/null +++ b/src/connections/destinations/catalog/cj/index.md @@ -0,0 +1,37 @@ +--- +title: CJ Destination +--- + +{% include content/plan-grid.md name="actions" %} + +> (delete after reading) Include a 1-2 sentence introduction to your company and the value it provides to customers - updating the name and hyperlink. Please leave the utm string unchanged. + +[CJ](https://www.cj.com){:target="_blank”} is a leading affiliate marketing network that helps brands grow smarter with transparent data and trusted partnerships. + +> (delete after reading) Update your company name and support email address. + +This destination is maintained by CJ. For any issues with the destination, [contact their Support team](support@cj.com). + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "CJ". +2. Select CJ and click **Add Destination**. +3. Select an existing Source to connect to CJ (Actions). + +## Setting up your Settings +1. Go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support via the Support Center. +2. From there, a dedicated member of CJ will be able to provide your required **Tag ID**, **Enterprise ID** and **Action Tracker ID** (you will need your Enterprise ID and Action ID to set up your Site Page and Order Tags). +3. Enter your **Tag ID** in the CJ destination settings in Segment. + +## Setting up your Site Page and Order Tags +1. If you haven't already, go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support via the Support Center. +2. From there, a dedicated member of CJ will be able to provide your required **Enterprise ID** and **Action Tracker ID**. +3. In the CJ destination mappings section in Segment, create a Site Page tag by clicking *+ New Mapping* and then *Site Page* +4. Define a Trigger. +5. Enter your **Enterprise ID** as a Static Number value. +6. Map your other variables then click *Next ->* +7. Repeat the steps above to create an Order tag. +8. Enter your **Enterprise ID** and **Action Tracker ID** . +9. Map your other variables then click *Next ->* + +{% include components/actions-fields.html %} \ No newline at end of file From a3e1b93bc91c296a75cce3ebd11e6ce034a9553c Mon Sep 17 00:00:00 2001 From: Joe Ayoub Date: Tue, 4 Nov 2025 13:49:09 +0000 Subject: [PATCH 08/38] [Snap Audiences Actions] - new Destination doc --- .../images/field_mapping_default.png | Bin 0 -> 32687 bytes .../images/id_sync_mappings.png | Bin 0 -> 31216 bytes .../id_sync_mappings_ad_ids_emphasised.png | Bin 0 -> 31502 bytes .../catalog/actions-snap-audiences/index.md | 78 ++++++++++++++++++ 4 files changed, 78 insertions(+) create mode 100644 src/connections/destinations/catalog/actions-snap-audiences/images/field_mapping_default.png create mode 100644 src/connections/destinations/catalog/actions-snap-audiences/images/id_sync_mappings.png create mode 100644 src/connections/destinations/catalog/actions-snap-audiences/images/id_sync_mappings_ad_ids_emphasised.png create mode 100644 src/connections/destinations/catalog/actions-snap-audiences/index.md diff --git a/src/connections/destinations/catalog/actions-snap-audiences/images/field_mapping_default.png b/src/connections/destinations/catalog/actions-snap-audiences/images/field_mapping_default.png new file mode 100644 index 0000000000000000000000000000000000000000..db95d1f77abd048e81c569086a038397cc9cdd2f GIT binary patch literal 32687 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

ebWHtje9E)3U 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 H-+ccMJVs3; literal 0 HcmV?d00001 diff --git a/src/connections/destinations/catalog/actions-snap-audiences/images/id_sync_mappings_ad_ids_emphasised.png b/src/connections/destinations/catalog/actions-snap-audiences/images/id_sync_mappings_ad_ids_emphasised.png new file mode 100644 index 0000000000000000000000000000000000000000..400babf578a23d59cd31df666f7ed0376347e486 GIT binary patch literal 31502 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⪼fDRJULVw+;_;}FznpY z(e%SlxC2c_R`)x$^Ts^dvv`UhOnlT9uxVYtL`QE-UazhW#I>Cg@Z4Q-Gty{^3I!st zG?tzm{QP!1XEWE(ghykMk$Dc;TIFEm? z-#-Sm-x`lur&%~Vl;#GwMbiYhVyg~`SK1SN{PWor?A_<;SAe|zy~x+jr{H#h%Xp#+ zU7)Qmp|$+1ESTV-4)aGjLmCP{Edq~-96Z{eR0SBg9fU*~PCB<~txJjZ+t-8|@USAv z@h5^$dd0&+b}&g|R-r1%Mmh}NCH0zOnB74*R@Uufh_10Ez14(A|+70k*U;a#L)k)-2XMPw*CT6 YUgdQ;L`lB!`i;lpA~M1if}ef **Good to know**: This page is about the [Actions-framework](/docs/connections/destinations/actions/) Snap Ads Segment destination. There's also a page about the [non-Actions Snap Ads destination](/docs/connections/destinations/catalog/snapchat-audiences/). Both of these destinations receives data from Segment. + +## Benefits of (Actions) vs Classic + +Snap Audiences (Actions) provides the following benefits over the classic Snapchat Audience destination: + +- **Multiple concurrent identifiers**. Email, phone number and Mobile Advertising IDs are supported concurrently. There's no need to select only one type of user identifier to sync with. + +- **Improved match rates**. Improved match-rate when multiple identifiers per profile are synced. + +## Getting started + +### Create the Destination and authenticate to Snap Ads +1. In your Segment workspace, click Engage in the left navigation bar, and select your Space. +2. Click **Engage Settings** and select the **Destinations** tab. +3. Click **Add Destination**. +4. Search for `Snap Audiences (Actions) ` and click **Configure**. +5. On the Snapchat Audiences configuration screen, click **Connect to Snap Audiences (Actions)**. Log in to Snapchat with an account that has access to Ads Manager. Once authenticated, confirm the connection to Segment. +6. Select the Snap Ads account that will receive audience data. This account represents an advertising entity or business, and not your personal Snapchat user account. You may belong to several Ad Accounts; make sure to select the correct account here. After the Ad Account is specified, the destination is active. + +### Create the Mapping +7. In Segment, click on **Connections** then **Destinations**, then find the Snap Audiences (Actions) Destinations you just created. +8. Click on the **Mappings** tab, then **New Mapping**, then the **Sync Audience** Action. There should be no need to edit any of the Mapping fields, so click the **Next** button. Give the Action a name, then click **Save and Enable**. + +### Connect and sync your Audience +Next, you will add the Snapchat Audiences Destination to an existing Engage Audience. + +9. Navigate to **Engage** then to **Audiences**. Find and click on the Audience you'd like to sync. +10. Click **Add Destination**. +11. The configured Snap Audiences (Actions) destination should appear in the *Send as User List* category of available destinations +12. Provide values in the **Audience Name** and **Audience Description** fields. +13. Ensure that **track** is selected under **Connection Settings**. You can ignore the **Send Mobile IDs** as you can configure Mobile Advertising IDs in the next step. +14. Click on **Customized Setup** and add the identifiers you'd like to sync with. These should include one or more of: `email`, `phone`, `android.idfa`, `ios.idfa`. If you choose to sync `android.idfa` and/or `ios.idfa`, you must update the destination mappings to use underscores: `android_idfa` and `ios_idfa`. + +![Image showing how to configure identifiers using ID Sync](images/id_sync_mappings.png) + +15. Click **Save** then **Add 1 Destination**. + +Your Audience should now be configured to sync to Snap Ads. The initial synchronization of audience data may take several hours, depending on the size of the audience. Once the initial sync occurs, you'll notice a new Audience in the Snap Ads dashboard. + +{% include components/actions-fields.html %} + +## FAQ + +### Which identifiers types are supported? + +The Snap Audience (Actions) destination supports syncing using `email`, `phone` number and `Mobile Advertising IDs`. `email` is the default identifier; other identifiers should be configured using [ID Sync](https://segment.com/docs/engage/trait-activation/id-sync/). + +### Mobile Advertising IDs aren't syncing properly + +Mobile Advertising IDs need to be correctly configured using [ID Sync](https://segment.com/docs/engage/trait-activation/id-sync/), as per the image below. Note the underscores for `android_idfa` and `ios_idfa`. + +![Image showing how to configure Mobile Advertising IDs using ID Sync](images/id_sync_mappings_ad_ids_emphasised.png) + +The field mapping for the **Mobile Advertising ID** field must also be correct. By default it will be configured as follows when the Mapping is created. + +![Image showing default field mapping for Mobile Advertising ID field](images/field_mapping_default.png). Again, note the underscores for `android_idfa` and `ios_idfa`. + +### Why can't I select our Ads Account during the destination setup? + +Ensure the following criteria are met: + +- Your personal Snapchat login has appropriate permissions within your business. Snapchat Account Admin or Data Manager permissions are required to configure and add audiences. +- Your Snap Ads account is in `Active` status. + +### How do I view the sync status? + +Status will be shown in the Event Delivery tool. When you view the audience, you can open the side bar which directs you to [Event Delivery](/docs/getting-started/06-testing-debugging/#event-delivery). From 720ae2635aaa485b78301259510badf2a99fbdb5 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 4 Nov 2025 14:35:26 +0000 Subject: [PATCH 09/38] edits + id [netlify-build] --- .../catalog/actions-snap-audiences/index.md | 76 ++++++++++--------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/src/connections/destinations/catalog/actions-snap-audiences/index.md b/src/connections/destinations/catalog/actions-snap-audiences/index.md index c1b3cb8e33..8b5c693a92 100644 --- a/src/connections/destinations/catalog/actions-snap-audiences/index.md +++ b/src/connections/destinations/catalog/actions-snap-audiences/index.md @@ -1,16 +1,21 @@ --- -title: [Snap Audiences (Actions)] Destination +title: Snap Audiences (Actions) Destination +id: 67051b748c30a5c1360144ff +beta: true --- {% include content/plan-grid.md name="actions" %} [Snap Ads](https://forbusiness.snapchat.com/advertising/targeting/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} provides a way to target advertisements to a global audience and drive meaningful results. -This destination is maintained by Segment. For any issues with the destination, [contact the Segment Support team](mailto:friends@segment.com). +This destination is maintained by Segment. For any issues with the destination, [contact the Segment support team](mailto:friends@segment.com). -> **Good to know**: This page is about the [Actions-framework](/docs/connections/destinations/actions/) Snap Ads Segment destination. There's also a page about the [non-Actions Snap Ads destination](/docs/connections/destinations/catalog/snapchat-audiences/). Both of these destinations receives data from Segment. +> warning "" +> This page is about the [**Actions-framework**](/docs/connections/destinations/actions/) Snap Ads Segment destination. See the [Snapchat Audience destination documentation](/docs/connections/destinations/catalog/snapchat-audiences/) for the **non-Actions** Snap Ads destination. +> +> Both destinations receive data from Segment. -## Benefits of (Actions) vs Classic +## Benefits of Snap Ads (Actions) vs Classic Snap Audiences (Actions) provides the following benefits over the classic Snapchat Audience destination: @@ -20,59 +25,58 @@ Snap Audiences (Actions) provides the following benefits over the classic Snapch ## Getting started -### Create the Destination and authenticate to Snap Ads -1. In your Segment workspace, click Engage in the left navigation bar, and select your Space. -2. Click **Engage Settings** and select the **Destinations** tab. -3. Click **Add Destination**. -4. Search for `Snap Audiences (Actions) ` and click **Configure**. +### Create the destination and authenticate to Snap Ads +1. In Segment, go to **Engage**, and select your workspace. +2. Navigate to **Engage Settings** and select the **Destinations** tab. +3. Click **Add destination**. +4. Search for "Snap Audiences (Actions)" and configure the destination. 5. On the Snapchat Audiences configuration screen, click **Connect to Snap Audiences (Actions)**. Log in to Snapchat with an account that has access to Ads Manager. Once authenticated, confirm the connection to Segment. -6. Select the Snap Ads account that will receive audience data. This account represents an advertising entity or business, and not your personal Snapchat user account. You may belong to several Ad Accounts; make sure to select the correct account here. After the Ad Account is specified, the destination is active. - -### Create the Mapping -7. In Segment, click on **Connections** then **Destinations**, then find the Snap Audiences (Actions) Destinations you just created. -8. Click on the **Mappings** tab, then **New Mapping**, then the **Sync Audience** Action. There should be no need to edit any of the Mapping fields, so click the **Next** button. Give the Action a name, then click **Save and Enable**. - -### Connect and sync your Audience -Next, you will add the Snapchat Audiences Destination to an existing Engage Audience. - -9. Navigate to **Engage** then to **Audiences**. Find and click on the Audience you'd like to sync. -10. Click **Add Destination**. -11. The configured Snap Audiences (Actions) destination should appear in the *Send as User List* category of available destinations -12. Provide values in the **Audience Name** and **Audience Description** fields. -13. Ensure that **track** is selected under **Connection Settings**. You can ignore the **Send Mobile IDs** as you can configure Mobile Advertising IDs in the next step. -14. Click on **Customized Setup** and add the identifiers you'd like to sync with. These should include one or more of: `email`, `phone`, `android.idfa`, `ios.idfa`. If you choose to sync `android.idfa` and/or `ios.idfa`, you must update the destination mappings to use underscores: `android_idfa` and `ios_idfa`. - +6. Select the Snap Ads account to receive audience data. This account represents an advertising entity or business, and not your personal Snapchat user account. You might belong to several Ad Accounts; make sure to select the correct account. After the Ad Account is specified, the destination is active. + +### Configure mappings +1. In Segment, go to **Connections > Destinations** and find the Snap Audiences (Actions) Destinations you just created. +2. Click on the **Mappings** tab, then **New Mapping**, then the **Sync Audience** Action. There should be no need to edit any of the Mapping fields, so click the **Next** button. +3. Give the action a name, then click **Save and Enable**. + +### Connect and sync your audience +Next, add the Snapchat Audiences Destination to an existing Engage Audience. + +1. Navigate to **Engage > Audiences**. Find and click on the Audience you'd like to sync. +2. Click **Add destination**. +3. The configured Snap Audiences (Actions) destination should appear in the **Send as User List** category of available destinations. +4. Provide values in the **Audience Name** and **Audience Description** fields. +5. Ensure that **track** is selected under **Connection Settings**. You can ignore the **Send Mobile IDs** as you can configure Mobile Advertising IDs in the next step. +6. Click on **Customized Setup** and add the identifiers you'd like to sync with. These should include one or more of: `email`, `phone`, `android.idfa`, `ios.idfa`. If you choose to sync `android.idfa` and/or `ios.idfa`, you must update the destination mappings to use underscores: `android_idfa` and `ios_idfa`. ![Image showing how to configure identifiers using ID Sync](images/id_sync_mappings.png) +7. Click **Save** then **Add 1 Destination**. -15. Click **Save** then **Add 1 Destination**. - -Your Audience should now be configured to sync to Snap Ads. The initial synchronization of audience data may take several hours, depending on the size of the audience. Once the initial sync occurs, you'll notice a new Audience in the Snap Ads dashboard. +Your audience should now be configured to sync to Snap Ads. The initial synchronization of audience data may take several hours, depending on the size of the audience. Once the initial sync occurs, you'll notice a new Audience in the Snap Ads dashboard. {% include components/actions-fields.html %} -## FAQ +## FAQs -### Which identifiers types are supported? +#### Which identifiers types are supported? The Snap Audience (Actions) destination supports syncing using `email`, `phone` number and `Mobile Advertising IDs`. `email` is the default identifier; other identifiers should be configured using [ID Sync](https://segment.com/docs/engage/trait-activation/id-sync/). -### Mobile Advertising IDs aren't syncing properly +#### Why aren't Mobile Advertising IDs syncing properly? -Mobile Advertising IDs need to be correctly configured using [ID Sync](https://segment.com/docs/engage/trait-activation/id-sync/), as per the image below. Note the underscores for `android_idfa` and `ios_idfa`. +Mobile Advertising IDs need to be correctly configured using [ID Sync](https://segment.com/docs/engage/trait-activation/id-sync/). Note the underscores for `android_idfa` and `ios_idfa`. ![Image showing how to configure Mobile Advertising IDs using ID Sync](images/id_sync_mappings_ad_ids_emphasised.png) -The field mapping for the **Mobile Advertising ID** field must also be correct. By default it will be configured as follows when the Mapping is created. +The field mapping for the **Mobile Advertising ID** field must also be correct. By default it'll be configured as follows when the Mapping is created. ![Image showing default field mapping for Mobile Advertising ID field](images/field_mapping_default.png). Again, note the underscores for `android_idfa` and `ios_idfa`. -### Why can't I select our Ads Account during the destination setup? +#### Why can't I select our Ads Account during the destination setup? Ensure the following criteria are met: - Your personal Snapchat login has appropriate permissions within your business. Snapchat Account Admin or Data Manager permissions are required to configure and add audiences. - Your Snap Ads account is in `Active` status. -### How do I view the sync status? +#### How do I view the sync status? -Status will be shown in the Event Delivery tool. When you view the audience, you can open the side bar which directs you to [Event Delivery](/docs/getting-started/06-testing-debugging/#event-delivery). +The status is shown in the Event Delivery tool. When you view the audience, open the side bar which directs you to [Event Delivery](/docs/getting-started/06-testing-debugging/#event-delivery). From 741faae81c1a4d569e804c3069d0aa307f57ae19 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 4 Nov 2025 14:48:47 +0000 Subject: [PATCH 10/38] clean up Updated links to open in a new tab and improved formatting for clarity. --- .../catalog/actions-snap-audiences/index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/connections/destinations/catalog/actions-snap-audiences/index.md b/src/connections/destinations/catalog/actions-snap-audiences/index.md index 8b5c693a92..6d94fa24e7 100644 --- a/src/connections/destinations/catalog/actions-snap-audiences/index.md +++ b/src/connections/destinations/catalog/actions-snap-audiences/index.md @@ -8,14 +8,14 @@ beta: true [Snap Ads](https://forbusiness.snapchat.com/advertising/targeting/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} provides a way to target advertisements to a global audience and drive meaningful results. -This destination is maintained by Segment. For any issues with the destination, [contact the Segment support team](mailto:friends@segment.com). +This destination is maintained by Segment. For any issues with the destination, [contact the Segment support team](mailto:friends@segment.com){:target="_blank"}. > warning "" > This page is about the [**Actions-framework**](/docs/connections/destinations/actions/) Snap Ads Segment destination. See the [Snapchat Audience destination documentation](/docs/connections/destinations/catalog/snapchat-audiences/) for the **non-Actions** Snap Ads destination. > -> Both destinations receive data from Segment. +> **Both destinations receive data from Segment**. -## Benefits of Snap Ads (Actions) vs Classic +## Benefits of Snap Ads (Actions) vs Snap Ads Classic Snap Audiences (Actions) provides the following benefits over the classic Snapchat Audience destination: @@ -46,11 +46,11 @@ Next, add the Snapchat Audiences Destination to an existing Engage Audience. 3. The configured Snap Audiences (Actions) destination should appear in the **Send as User List** category of available destinations. 4. Provide values in the **Audience Name** and **Audience Description** fields. 5. Ensure that **track** is selected under **Connection Settings**. You can ignore the **Send Mobile IDs** as you can configure Mobile Advertising IDs in the next step. -6. Click on **Customized Setup** and add the identifiers you'd like to sync with. These should include one or more of: `email`, `phone`, `android.idfa`, `ios.idfa`. If you choose to sync `android.idfa` and/or `ios.idfa`, you must update the destination mappings to use underscores: `android_idfa` and `ios_idfa`. +6. Click on **Customized Setup** and add the identifiers you'd like to sync with. These should include one or more of: `email`, `phone`, `android.idfa`, `ios.idfa`. If you choose to sync `android.idfa` and/or `ios.idfa`, you must update the destination mappings to use underscores: `android_idfa` and `ios_idfa`. ![Image showing how to configure identifiers using ID Sync](images/id_sync_mappings.png) 7. Click **Save** then **Add 1 Destination**. -Your audience should now be configured to sync to Snap Ads. The initial synchronization of audience data may take several hours, depending on the size of the audience. Once the initial sync occurs, you'll notice a new Audience in the Snap Ads dashboard. +Your audience should now be configured to sync to Snap Ads. The initial synchronization of audience data may take several hours, depending on the size of the audience. Once the initial sync occurs, you'll notice a new audience in the Snap Ads dashboard. {% include components/actions-fields.html %} @@ -66,7 +66,7 @@ Mobile Advertising IDs need to be correctly configured using [ID Sync](https://s ![Image showing how to configure Mobile Advertising IDs using ID Sync](images/id_sync_mappings_ad_ids_emphasised.png) -The field mapping for the **Mobile Advertising ID** field must also be correct. By default it'll be configured as follows when the Mapping is created. +The field mapping for the **Mobile Advertising ID** field must also be correct. By default, it'll be configured as follows when the Mapping is created. ![Image showing default field mapping for Mobile Advertising ID field](images/field_mapping_default.png). Again, note the underscores for `android_idfa` and `ios_idfa`. From 92deb970edec6408df417e5e34ddefa0f5e799d5 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 4 Nov 2025 15:10:37 +0000 Subject: [PATCH 11/38] Update section title for Snap Ads documentation --- .../destinations/catalog/actions-snap-audiences/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-snap-audiences/index.md b/src/connections/destinations/catalog/actions-snap-audiences/index.md index 6d94fa24e7..5b500fe88a 100644 --- a/src/connections/destinations/catalog/actions-snap-audiences/index.md +++ b/src/connections/destinations/catalog/actions-snap-audiences/index.md @@ -15,7 +15,7 @@ This destination is maintained by Segment. For any issues with the destination, > > **Both destinations receive data from Segment**. -## Benefits of Snap Ads (Actions) vs Snap Ads Classic +## Benefits of Snap Ads (Actions) vs Snapchat Audience Classic Snap Audiences (Actions) provides the following benefits over the classic Snapchat Audience destination: From 4120e96d3f2d44954e073e23abb690695ff10550 Mon Sep 17 00:00:00 2001 From: Paulo Borges Date: Tue, 4 Nov 2025 17:32:30 -0300 Subject: [PATCH 12/38] batch 9 fixes --- src/monitor/granular-observability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/monitor/granular-observability.md b/src/monitor/granular-observability.md index 0a96fda527..1b2550e65d 100644 --- a/src/monitor/granular-observability.md +++ b/src/monitor/granular-observability.md @@ -38,7 +38,7 @@ The rate limiting metadata follows the Segment API [Rate limit errors](https://d Here's an example call: -```curl +```bash curl -i -X POST \ 'https://api.segmentapis.com/customer-insights/download?collectionId=&hour=' \ -H 'Authorization: Bearer ' From a884371505c1c70ab0bb3fc85804c5354ff657ab Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 5 Nov 2025 09:44:45 -0500 Subject: [PATCH 13/38] Update data-retention-policy.md --- src/privacy/data-retention-policy.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/privacy/data-retention-policy.md b/src/privacy/data-retention-policy.md index 421740a1fc..914ae6458f 100644 --- a/src/privacy/data-retention-policy.md +++ b/src/privacy/data-retention-policy.md @@ -49,13 +49,11 @@ To change your data retention settings, open Segment and navigate to **Privacy > Select the default retention period for the workspace in this setting. This value applies to all sources in the workspace. -- 14 days - 30 days - 90 days - 180 days - 365 days -- 3 years (the default setting starting August 15, 2025) -- Unlimited (deprecated August 15, 2025) +- 3 years ### What data is impacted? From 9e747d5dc1ff3f93d0b2b5aa2a4516c6054d06d1 Mon Sep 17 00:00:00 2001 From: maxmilhan <34718789+maxmilhan@users.noreply.github.com> Date: Wed, 5 Nov 2025 10:51:19 -0500 Subject: [PATCH 14/38] Update src/connections/auto-instrumentation/web-setup.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- 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 346ab868b9..1f0ce2f30c 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -362,7 +362,7 @@ Network signals emit when an HTTP Request is made, or an HTTP Response is receiv Here are the most common misconfigurations preventing signals from reaching Segment. - Not enabling signals with the URL parameter: you must start each debug session by appending `?segment_signals_debug=true` to your URL parameters. -- Running debug mode with an ad blocker: an active ad blocker will prevent signals from reaching Segment. Disable your ad blocker and start a new session. +- Running debug mode with an ad blocker: An active ad blocker prevents signals from reaching Segment. Disable your ad blocker and start a new session. - Content Security Policies: in addition to the [default Analytics.js Content Security Policies](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/faq/#does-segment-support-using-strict-content-security-policy-csp-on-the-page), you must add `cdn.jsdelivr.net` to your allowlist, or `https://cdn.jsdelivr.net/npm/@segment/analytics-signals@latest/dist/umd/analytics-signals.umd.js` if your policies require the full path. ## Next steps From 007f3929297d625e91b52ef4d859939d89f4298c Mon Sep 17 00:00:00 2001 From: maxmilhan <34718789+maxmilhan@users.noreply.github.com> Date: Wed, 5 Nov 2025 10:51:32 -0500 Subject: [PATCH 15/38] Update src/connections/auto-instrumentation/web-setup.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- 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 1f0ce2f30c..56401ab7ec 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -363,7 +363,7 @@ Here are the most common misconfigurations preventing signals from reaching Segm - Not enabling signals with the URL parameter: you must start each debug session by appending `?segment_signals_debug=true` to your URL parameters. - Running debug mode with an ad blocker: An active ad blocker prevents signals from reaching Segment. Disable your ad blocker and start a new session. -- Content Security Policies: in addition to the [default Analytics.js Content Security Policies](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/faq/#does-segment-support-using-strict-content-security-policy-csp-on-the-page), you must add `cdn.jsdelivr.net` to your allowlist, or `https://cdn.jsdelivr.net/npm/@segment/analytics-signals@latest/dist/umd/analytics-signals.umd.js` if your policies require the full path. +- Content Security Policies: In addition to the [default Analytics.js Content Security Policies](/docs/connections/sources/catalog/libraries/website/javascript/faq/#does-segment-support-using-strict-content-security-policy-csp-on-the-page), you must add `cdn.jsdelivr.net` to your allowlist, or `https://cdn.jsdelivr.net/npm/@segment/analytics-signals@latest/dist/umd/analytics-signals.umd.js` if your policies require the full path. ## Next steps From c7c6b57dc31facdf43b6a3d7373d4ed7d457697d Mon Sep 17 00:00:00 2001 From: maxmilhan <34718789+maxmilhan@users.noreply.github.com> Date: Wed, 5 Nov 2025 10:51:41 -0500 Subject: [PATCH 16/38] Update src/connections/auto-instrumentation/web-setup.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- 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 56401ab7ec..f2bd2bdbc8 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -361,7 +361,7 @@ Network signals emit when an HTTP Request is made, or an HTTP Response is receiv Here are the most common misconfigurations preventing signals from reaching Segment. -- Not enabling signals with the URL parameter: you must start each debug session by appending `?segment_signals_debug=true` to your URL parameters. +- Not enabling signals with the URL parameter: You must start each debug session by appending `?segment_signals_debug=true` to your URL parameters. - Running debug mode with an ad blocker: An active ad blocker prevents signals from reaching Segment. Disable your ad blocker and start a new session. - Content Security Policies: In addition to the [default Analytics.js Content Security Policies](/docs/connections/sources/catalog/libraries/website/javascript/faq/#does-segment-support-using-strict-content-security-policy-csp-on-the-page), you must add `cdn.jsdelivr.net` to your allowlist, or `https://cdn.jsdelivr.net/npm/@segment/analytics-signals@latest/dist/umd/analytics-signals.umd.js` if your policies require the full path. From cf1e6f90a36f994d3e6a2228ff3701b33271de06 Mon Sep 17 00:00:00 2001 From: Chenxiang Zhang Date: Wed, 5 Nov 2025 11:19:12 -0500 Subject: [PATCH 17/38] remove section on query string only on npm --- .../catalog/libraries/website/javascript/querystring.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/querystring.md b/src/connections/sources/catalog/libraries/website/javascript/querystring.md index 445a787eff..fd6a623c93 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/querystring.md +++ b/src/connections/sources/catalog/libraries/website/javascript/querystring.md @@ -52,7 +52,4 @@ analytics.load('', { 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"}. +``` \ No newline at end of file From e3128e378f4c178343c62e9fb99890b21d42267d Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 5 Nov 2025 12:04:48 -0500 Subject: [PATCH 18/38] add note about custom domain and device-mode destiantions --- src/connections/sources/custom-domain.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/connections/sources/custom-domain.md b/src/connections/sources/custom-domain.md index 1b8587f72c..a3727f3a42 100644 --- a/src/connections/sources/custom-domain.md +++ b/src/connections/sources/custom-domain.md @@ -3,7 +3,9 @@ title: Segment-Managed Custom Domain plan: custom-domain --- -Custom Domain is a fully-managed service that enables you to configure a first-party subdomain over HTTPS. You can then track event requests through your own domain (for example, `cdp.mydomain.com`), instead of the default (`segment.com`). Tracking events through your own domain allows for more secure and complete first-party data collection by reclaiming first-party data lost to browser controls. With a more complete view of your customer behaviors, you can build more robust profiles for greater attribution and ROAS. +Custom Domain is a fully-managed service that enables you to configure a first-party subdomain over HTTPS. You can then track event requests through your own domain (for example, `cdp.mydomain.com`), instead of the default (`segment.com`). Tracking events through your own domain allows for more secure and complete first-party data collection by reclaiming first-party data lost to browser controls. With a more complete view of your customer behaviors, you can build more robust profiles for greater attribution and ROAS. + +You cannot use Custom Domain setup for Analytics.js CDN or Tracking API with device-mode destinations because device-mode destinations require that the destination’s native scripts are loaded onto the client, and the requests are sent directly to the destination. > info "Custom Domain is only available to Business Tier customers" > Customers not on the Business Tier but who have interest in Custom Domain should [contact Segment's sales team](https://segment.com/demo/){:target="_blank”} for assistance with upgrading to a Business Tier plan. Segment also offers an alternative DNS record service, [Custom Proxy](/docs/connections/sources/catalog/libraries/website/javascript/custom-proxy/). From c3b666f01dc198532c6f605925600696ee65e923 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 5 Nov 2025 13:17:33 -0800 Subject: [PATCH 19/38] add info about snowflake password only deprecation --- src/connections/storage/catalog/snowflake/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/connections/storage/catalog/snowflake/index.md b/src/connections/storage/catalog/snowflake/index.md index b884327733..ecfee1b94a 100644 --- a/src/connections/storage/catalog/snowflake/index.md +++ b/src/connections/storage/catalog/snowflake/index.md @@ -91,6 +91,9 @@ GRANT CREATE SCHEMA ON DATABASE "SEGMENT_EVENTS" TO ROLE "SEGMENT"; Create the user that Segment uses to connect to your warehouse. You can create a user that authenticates with a key pair. +> info "" +> Snowflake plans to deprecate password-only authentication starting August 2026. Learn more in the [Snowflake docs](https://docs.snowflake.com/en/user-guide/security-mfa-rollout){:target="_blank"}. + To create a user that authenticates with a key pair: 1. Create the user and assign it a key pair by following the instructions in the [Snowflake docs](https://docs.snowflake.com/en/user-guide/key-pair-auth){:target="_blank"}. 2. Create a new user by executing the following SQL command, replacing the public key value with the key you previously generated. From 9b64156cc98c6195a3050252ca28a1f8ef763621 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 5 Nov 2025 14:34:41 -0800 Subject: [PATCH 20/38] edits --- .../reverse-etl-source-setup-guides/snowflake-setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md index ea3f65a5fe..9f5d34ea33 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md @@ -14,7 +14,7 @@ At a high level, when you set up Snowflake for Reverse ETL, the configured user/ > If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes. ## Set up guide -Follow the instructions below to set up the Segment Snowflake connector. Segment recommends you use the `ACCOUNTADMIN` role to execute all the commands below, and that you create a user that authenticates with an encrypted key pair. +Follow the instructions below to set up the Segment Snowflake connector. Segment recommends you use the `ACCOUNTADMIN` role to execute all the commands below, and that you create a user that authenticates with an encrypted key pair. Snowflake plans to deprecate password-only authentication starting August 2026. Learn more in the [Snowflake docs](https://docs.snowflake.com/en/user-guide/security-mfa-rollout){:target="_blank"}. > info "" > Segment has a Terraform provider, powered by the Public API, that you can use to create a Snowflake Reverse ETL source. See the [segment_source (Resource)](https://registry.terraform.io/providers/segmentio/segment/latest/docs/resources/source){:target="_blank”} documentation for more information. From e7ad160a916a47c6b0073cf5de4c7dffac5ba9cb Mon Sep 17 00:00:00 2001 From: stayseesong Date: Wed, 5 Nov 2025 14:36:08 -0800 Subject: [PATCH 21/38] edits --- src/connections/storage/catalog/snowflake/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/storage/catalog/snowflake/index.md b/src/connections/storage/catalog/snowflake/index.md index ecfee1b94a..ef1a8d3e4e 100644 --- a/src/connections/storage/catalog/snowflake/index.md +++ b/src/connections/storage/catalog/snowflake/index.md @@ -143,7 +143,7 @@ To connect Snowflake to Segment: * Warehouse: The warehouse in your Snowflake account that Segment uses to run SQL * Username: The Snowflake user that Segment uses to run in your warehouse * Authentication - * Private key: View Snowflake’s key pair set up doc.You can upload .p8 file format. Key length must be at least 2048-bit. An encrypted key is recommended but not required. + * Private key: View Snowflake’s key pair set up doc. You can upload in .p8 file format. Key length must be at least 2048-bit. An encrypted key is recommended but not required. 4. Test your connection. 5. Click **Save**. From 7ce710063f2b7df850ebf9478c1663f9caf57517 Mon Sep 17 00:00:00 2001 From: Elijah Hunt Date: Thu, 6 Nov 2025 09:47:05 +0100 Subject: [PATCH 22/38] Small link adjustments --- .../catalog/personas-facebook-custom-audiences/index.md | 2 +- src/connections/functions/insert-functions.md | 2 +- src/connections/functions/source-functions.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 d878aed968..d2c650cf53 100644 --- a/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md +++ b/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md @@ -38,7 +38,7 @@ This page is about the **Facebook Custom Audiences** destination developed speci - **Destination rate limit**: None - **Lookback window allowed**: Yes - **Identifiers required** : Email or Mobile Device ID (IDFA) -- **Identifiers accepted** : Email and Mobile Device ID (IDFA). Other identifiers can be sent through [Additional Traits Matching](#public-preview-feature-additional-traits-matching). +- **Identifiers accepted** : Email and Mobile Device ID (IDFA). Other identifiers can be sent through [Additional Traits Matching](#additional-traits-matching). - **Client or Server-Side Connection**: Server-side - **Minimum audience size required**: 100 diff --git a/src/connections/functions/insert-functions.md b/src/connections/functions/insert-functions.md index f633d9c2bc..5e70e8be10 100644 --- a/src/connections/functions/insert-functions.md +++ b/src/connections/functions/insert-functions.md @@ -48,7 +48,7 @@ To access insert functions through the Destinations tab: Use this page to edit and manage insert functions in your workspace. -You can also use this page to [enable destination insert functions](#enable-the-insert-function) in your workspace. +You can also use this page to [enable destination insert functions](#enable-the-destination-insert-function) in your workspace. ## Code the destination insert function diff --git a/src/connections/functions/source-functions.md b/src/connections/functions/source-functions.md index 502302ecfd..20f900e609 100644 --- a/src/connections/functions/source-functions.md +++ b/src/connections/functions/source-functions.md @@ -44,7 +44,7 @@ async function onRequest(request, settings) { The `onRequest()` function receives two arguments: - `request` - an object describing the incoming HTTPS request. -- `settings` - set of [settings](#create-️settings-and-secrets) for this function. +- `settings` - set of [settings](#create-settings-and-secrets) for this function. ### Request processing From 3131e7f2ecf3a4eb6291540e05371d837ac0cf8b Mon Sep 17 00:00:00 2001 From: Elijah Hunt Date: Thu, 6 Nov 2025 13:00:50 +0100 Subject: [PATCH 23/38] Additional link adjustmemt --- .../destinations/catalog/actions-display-video-360/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-display-video-360/index.md b/src/connections/destinations/catalog/actions-display-video-360/index.md index a464e0760a..06b463398e 100644 --- a/src/connections/destinations/catalog/actions-display-video-360/index.md +++ b/src/connections/destinations/catalog/actions-display-video-360/index.md @@ -69,7 +69,7 @@ Segment users must add this tag to their web properties. The tag performs severa ### DV360 destination -The DV360 Destination syncs audience data between Segment and Google Display & Video 360. For more information about enabling the DV360 Destination, [view the setup instructions below](#set-up) below. +The DV360 Destination syncs audience data between Segment and Google Display & Video 360. For more information about enabling the DV360 Destination, [view the setup instructions below](#set-up-the-dv360-destination) below. ## Set up the DV360 Destination From 8f1009837a0effe1d9008f38b33728a662d7115a Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:04:21 +0000 Subject: [PATCH 24/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index e1f6dce8a4..ac0a7b15e2 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -4,7 +4,6 @@ title: CJ Destination {% include content/plan-grid.md name="actions" %} -> (delete after reading) Include a 1-2 sentence introduction to your company and the value it provides to customers - updating the name and hyperlink. Please leave the utm string unchanged. [CJ](https://www.cj.com){:target="_blank”} is a leading affiliate marketing network that helps brands grow smarter with transparent data and trusted partnerships. From ff32a05ebd21589cd7ba3d75452a74db8d1c1d21 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:04:32 +0000 Subject: [PATCH 25/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index ac0a7b15e2..7468e81c66 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -7,7 +7,6 @@ title: CJ Destination [CJ](https://www.cj.com){:target="_blank”} is a leading affiliate marketing network that helps brands grow smarter with transparent data and trusted partnerships. -> (delete after reading) Update your company name and support email address. This destination is maintained by CJ. For any issues with the destination, [contact their Support team](support@cj.com). From 605b4698a32379d22795faab10fc59177229fc84 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:04:43 +0000 Subject: [PATCH 26/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index 7468e81c66..3929c8d7ed 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -14,7 +14,7 @@ This destination is maintained by CJ. For any issues with the destination, [cont 1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "CJ". 2. Select CJ and click **Add Destination**. -3. Select an existing Source to connect to CJ (Actions). +3. Select an existing source to connect to CJ (Actions). ## Setting up your Settings 1. Go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support via the Support Center. From bec82f5bb938c9e12621d450c5aec8865bbd3621 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:04:54 +0000 Subject: [PATCH 27/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index 3929c8d7ed..f3728bbb9d 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -16,7 +16,7 @@ This destination is maintained by CJ. For any issues with the destination, [cont 2. Select CJ and click **Add Destination**. 3. Select an existing source to connect to CJ (Actions). -## Setting up your Settings +## Configure your settings 1. Go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support via the Support Center. 2. From there, a dedicated member of CJ will be able to provide your required **Tag ID**, **Enterprise ID** and **Action Tracker ID** (you will need your Enterprise ID and Action ID to set up your Site Page and Order Tags). 3. Enter your **Tag ID** in the CJ destination settings in Segment. From 7d446723a341238d49a4fa2e8ded35b521e94204 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:05:07 +0000 Subject: [PATCH 28/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index f3728bbb9d..4fff18f0bb 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -17,7 +17,7 @@ This destination is maintained by CJ. For any issues with the destination, [cont 3. Select an existing source to connect to CJ (Actions). ## Configure your settings -1. Go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support via the Support Center. +1. Go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support through the Support Center. 2. From there, a dedicated member of CJ will be able to provide your required **Tag ID**, **Enterprise ID** and **Action Tracker ID** (you will need your Enterprise ID and Action ID to set up your Site Page and Order Tags). 3. Enter your **Tag ID** in the CJ destination settings in Segment. From 7c023e3e5c8607653a026f6d263c22eb43791d76 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:05:16 +0000 Subject: [PATCH 29/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index 4fff18f0bb..3fd5636674 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -22,7 +22,7 @@ This destination is maintained by CJ. For any issues with the destination, [cont 3. Enter your **Tag ID** in the CJ destination settings in Segment. ## Setting up your Site Page and Order Tags -1. If you haven't already, go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support via the Support Center. +1. If you haven't already, go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support through the Support Center. 2. From there, a dedicated member of CJ will be able to provide your required **Enterprise ID** and **Action Tracker ID**. 3. In the CJ destination mappings section in Segment, create a Site Page tag by clicking *+ New Mapping* and then *Site Page* 4. Define a Trigger. From e710f36b0ebfd15a5ca096c453eba106fae10b93 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:05:32 +0000 Subject: [PATCH 30/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index 3fd5636674..86b424607c 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -24,7 +24,7 @@ This destination is maintained by CJ. For any issues with the destination, [cont ## Setting up your Site Page and Order Tags 1. If you haven't already, go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support through the Support Center. 2. From there, a dedicated member of CJ will be able to provide your required **Enterprise ID** and **Action Tracker ID**. -3. In the CJ destination mappings section in Segment, create a Site Page tag by clicking *+ New Mapping* and then *Site Page* +3. In the CJ destination mappings section in Segment, create a Site Page tag by clicking **+ New Mapping** and then **Site Page**. 4. Define a Trigger. 5. Enter your **Enterprise ID** as a Static Number value. 6. Map your other variables then click *Next ->* From 10d2556d28f1fdb243f132ae2fda3eb755f47775 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:05:40 +0000 Subject: [PATCH 31/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index 86b424607c..39680cb404 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -27,7 +27,7 @@ This destination is maintained by CJ. For any issues with the destination, [cont 3. In the CJ destination mappings section in Segment, create a Site Page tag by clicking **+ New Mapping** and then **Site Page**. 4. Define a Trigger. 5. Enter your **Enterprise ID** as a Static Number value. -6. Map your other variables then click *Next ->* +6. Map your other variables, then click **Next ->**. 7. Repeat the steps above to create an Order tag. 8. Enter your **Enterprise ID** and **Action Tracker ID** . 9. Map your other variables then click *Next ->* From 3b22cd9e37c6a280c0ca8d6d4901f832d0dabda6 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:05:54 +0000 Subject: [PATCH 32/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index 39680cb404..3929e9f629 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -30,6 +30,6 @@ This destination is maintained by CJ. For any issues with the destination, [cont 6. Map your other variables, then click **Next ->**. 7. Repeat the steps above to create an Order tag. 8. Enter your **Enterprise ID** and **Action Tracker ID** . -9. Map your other variables then click *Next ->* +9. Map your other variables, then click **Next ->**. {% include components/actions-fields.html %} \ No newline at end of file From abade0bb3affffd1288e9daf12fc8285483cb0d0 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:06:03 +0000 Subject: [PATCH 33/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index 3929e9f629..5df4ccc551 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -29,7 +29,7 @@ This destination is maintained by CJ. For any issues with the destination, [cont 5. Enter your **Enterprise ID** as a Static Number value. 6. Map your other variables, then click **Next ->**. 7. Repeat the steps above to create an Order tag. -8. Enter your **Enterprise ID** and **Action Tracker ID** . +8. Enter your **Enterprise ID** and **Action Tracker ID**. 9. Map your other variables, then click **Next ->**. {% include components/actions-fields.html %} \ No newline at end of file From 00c4f51c74cb27b0ea75bbb5aff0728e791b94bd Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:06:15 +0000 Subject: [PATCH 34/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index 5df4ccc551..eb41c86624 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -18,7 +18,7 @@ This destination is maintained by CJ. For any issues with the destination, [cont ## Configure your settings 1. Go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support through the Support Center. -2. From there, a dedicated member of CJ will be able to provide your required **Tag ID**, **Enterprise ID** and **Action Tracker ID** (you will need your Enterprise ID and Action ID to set up your Site Page and Order Tags). +2. From there, a dedicated member of CJ will be able to provide your required **Tag ID**, **Enterprise ID**, and **Action Tracker ID** (you'll need your Enterprise ID and Action ID to set up your Site Page and Order Tags). 3. Enter your **Tag ID** in the CJ destination settings in Segment. ## Setting up your Site Page and Order Tags From 6d82cc85aea0d0c3310ea36e25fe1c209df15304 Mon Sep 17 00:00:00 2001 From: Amelia-Lane Date: Thu, 6 Nov 2025 12:06:24 +0000 Subject: [PATCH 35/38] Update src/connections/destinations/catalog/cj/index.md Co-authored-by: rchinn1 <93161299+rchinn1@users.noreply.github.com> --- src/connections/destinations/catalog/cj/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/cj/index.md b/src/connections/destinations/catalog/cj/index.md index eb41c86624..40727ba8e4 100644 --- a/src/connections/destinations/catalog/cj/index.md +++ b/src/connections/destinations/catalog/cj/index.md @@ -21,7 +21,7 @@ This destination is maintained by CJ. For any issues with the destination, [cont 2. From there, a dedicated member of CJ will be able to provide your required **Tag ID**, **Enterprise ID**, and **Action Tracker ID** (you'll need your Enterprise ID and Action ID to set up your Site Page and Order Tags). 3. Enter your **Tag ID** in the CJ destination settings in Segment. -## Setting up your Site Page and Order Tags +## Set up your Site Page and Order Tags 1. If you haven't already, go to your [CJ Account Manager](https://members.cj.com/member/login/#/){:target="_blank"}, and reach out to CJ Support through the Support Center. 2. From there, a dedicated member of CJ will be able to provide your required **Enterprise ID** and **Action Tracker ID**. 3. In the CJ destination mappings section in Segment, create a Site Page tag by clicking **+ New Mapping** and then **Site Page**. From b05753e1e21065f43c85e38cba15e7621141adce Mon Sep 17 00:00:00 2001 From: stayseesong Date: Thu, 6 Nov 2025 10:37:35 -0800 Subject: [PATCH 36/38] edits to snowflake key pair only authentication --- .../reverse-etl-source-setup-guides/snowflake-setup.md | 2 +- src/connections/storage/catalog/snowflake/index.md | 4 ++-- src/unify/data-graph/setup-guides/snowflake-setup.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md index 9f5d34ea33..5c5e53f57f 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md @@ -14,7 +14,7 @@ At a high level, when you set up Snowflake for Reverse ETL, the configured user/ > If you have an existing dbt account with a Git repository, you can use [Segment's dbt extension](/docs/segment-app/extensions/dbt/) to centralize model management and versioning, reduce redundancies, and run CI checks to prevent breaking changes. ## Set up guide -Follow the instructions below to set up the Segment Snowflake connector. Segment recommends you use the `ACCOUNTADMIN` role to execute all the commands below, and that you create a user that authenticates with an encrypted key pair. Snowflake plans to deprecate password-only authentication starting August 2026. Learn more in the [Snowflake docs](https://docs.snowflake.com/en/user-guide/security-mfa-rollout){:target="_blank"}. +Follow the instructions below to set up the Segment Snowflake connector. Segment recommends you use the `ACCOUNTADMIN` role to execute all the commands below, and that you create a user that authenticates with an encrypted key pair. Snowflake only supports authentication using a key pair as Snowflake plans to deprecate password-only authentication starting August 2026. Learn more in the [Snowflake docs](https://docs.snowflake.com/en/user-guide/security-mfa-rollout){:target="_blank"}. > info "" > Segment has a Terraform provider, powered by the Public API, that you can use to create a Snowflake Reverse ETL source. See the [segment_source (Resource)](https://registry.terraform.io/providers/segmentio/segment/latest/docs/resources/source){:target="_blank”} documentation for more information. diff --git a/src/connections/storage/catalog/snowflake/index.md b/src/connections/storage/catalog/snowflake/index.md index ef1a8d3e4e..6f7ce03371 100644 --- a/src/connections/storage/catalog/snowflake/index.md +++ b/src/connections/storage/catalog/snowflake/index.md @@ -142,8 +142,8 @@ To connect Snowflake to Segment: * Database name: The database that Segment uses in order to sync data * Warehouse: The warehouse in your Snowflake account that Segment uses to run SQL * Username: The Snowflake user that Segment uses to run in your warehouse - * Authentication - * Private key: View Snowflake’s key pair set up doc. You can upload in .p8 file format. Key length must be at least 2048-bit. An encrypted key is recommended but not required. + * Authentication: Snowflake only supports authentication using a key pair. + * Private key: View [Snowflake’s key pair set up doc](https://docs.snowflake.com/en/user-guide/key-pair-auth){:target="_blank"}. You can upload in .p8 file format. Key length must be at least 2048-bit. An encrypted key is recommended but not required. You need to first create the user and assign it a key pair following the instructions in the Snowflake docs. Then, set the `segment_connections_username` variable in the SQL script to the user you just created. 4. Test your connection. 5. Click **Save**. diff --git a/src/unify/data-graph/setup-guides/snowflake-setup.md b/src/unify/data-graph/setup-guides/snowflake-setup.md index 0513ca213e..2d199d2190 100644 --- a/src/unify/data-graph/setup-guides/snowflake-setup.md +++ b/src/unify/data-graph/setup-guides/snowflake-setup.md @@ -154,7 +154,7 @@ To connect your warehouse to the Data Graph: - **Database**: The only database that Segment requires write access to in order to create tables for internal bookkeeping. This database is referred to as `segment_connection_db` in the script below. - **Warehouse**: The [warehouse](https://docs.snowflake.com/en/user-guide/warehouses){:target="_blank”} in your Snowflake account that you want to use for Segment to run the SQL queries. This warehouse is referred to as `segment_connection_warehouse` in the script below. - **Username**: The Snowflake user that Segment uses to run SQL in your warehouse. This user is referred to as `segment_connection_username` in the script below. -- **Authentication**: Snowflake only supports authentication using a key pair: +- **Authentication**: Snowflake only supports authentication using a key pair as Snowflake plans to deprecate password-only authentication starting August 2026. Learn more in the [Snowflake docs](https://docs.snowflake.com/en/user-guide/security-mfa-rollout){:target="_blank"}. - **Key Pair**: You need to first create the user and assign it a key pair following the instructions in the [Snowflake docs](https://docs.snowflake.com/en/user-guide/key-pair-auth){:target="_blank"}. Then, set the `segment_connections_username` variable in the SQL script to the user you just created. From 5c2dfe1210198d753ac7f916fa8baa053244f0d8 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 6 Nov 2025 13:43:21 -0500 Subject: [PATCH 37/38] potentially the last ever catalog script (RIP) --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 659 +++++++++++++------ 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 | 22 +- 6 files changed, 489 insertions(+), 207 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index d653dbdb3f..bd7c4b62ee 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-10-30 +# destination categories last updated 2025-11-06 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 029021c75e..a219966b66 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-10-30 +# destination data last updated 2025-11-06 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -84250,7 +84250,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: k3mhDicSXuifyaW5XtxiTQ + - id: 8EkeBS93xwwbDBsndFUyFb sortOrder: 0 fieldKey: sftp_username label: Username @@ -84263,7 +84263,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6oUUAu7AFbrt9aafbsgGu4 + - id: asuLwXcXHvAwCKuUqFa4nu sortOrder: 1 fieldKey: sftp_password label: Password @@ -84276,7 +84276,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mJ3cmGfEBmMr8rR42XD6FG + - id: mKmt6gZP27R173A4eEiJQ1 sortOrder: 2 fieldKey: sftp_folder_path label: Folder Path @@ -84293,7 +84293,7 @@ items: dynamic: false allowNull: false hidden: false - - id: t1ZZ7wxaWn5z7dzVfppPgy + - id: hDGK3RoCBnBUPWj7WuEe74 sortOrder: 3 fieldKey: audience_key label: LiveRamp Audience Key @@ -84312,7 +84312,7 @@ items: dynamic: false allowNull: false hidden: false - - id: twV2vtaLtG2niwaQv6UMsS + - id: aJdUJhRXK99uiAV2TBkeSa sortOrder: 4 fieldKey: identifier_data label: Identifier Data @@ -84325,7 +84325,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jEiuGaTjfAZzCpiWVc83jY + - id: 3X5pY2imBt6juHkFGiknFM sortOrder: 5 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -84341,7 +84341,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sRRXcW5KjridwppD1kHk6n + - id: kFs4Zt3SQRMUNJigLGkuAT sortOrder: 6 fieldKey: delimiter label: Delimeter @@ -84355,7 +84355,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6JYHxJ7e176ZCaNQD3BsPT + - id: qtMpcTMw774yDQsV1eAdeY sortOrder: 7 fieldKey: filename label: Filename @@ -84380,7 +84380,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: 2MUCKviAJMGWWS8k3kk2uJ + - id: vWNM3yeDmXRxE9EZgZ25Sg sortOrder: 0 fieldKey: s3_aws_access_key label: AWS Access Key ID @@ -84393,7 +84393,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2WiwXFCGvuGAnL73BTWkbX + - id: m8RC5mXFur9xd9FATAgD91 sortOrder: 1 fieldKey: s3_aws_secret_key label: AWS Secret Access Key @@ -84406,7 +84406,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 5dAHm9m3eu8WAHpqgUqEyX + - id: vfCC5aJ8WAWJNQCmPDGw1p sortOrder: 2 fieldKey: s3_aws_bucket_name label: AWS Bucket Name @@ -84419,7 +84419,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8gCdxXCFkJ2gTrtQnvyvAP + - id: ajdic4ceEq48FazMxoSyPf sortOrder: 3 fieldKey: s3_aws_region label: AWS Region (S3 only) @@ -84432,7 +84432,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vUjtXhYp55e7bd6qxkTg3p + - id: kzwQrTfoNukPtTYL3t6mfA sortOrder: 4 fieldKey: audience_key label: LiveRamp Audience Key @@ -84451,7 +84451,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wEpEMcgx6BEWNrSFYwfJZo + - id: 2T4mEfChCg44TnR9Qgoj3c sortOrder: 5 fieldKey: identifier_data label: Identifier Data @@ -84464,7 +84464,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hhdh14b4ZFcbArNz5p9Pyi + - id: yKuCNeTs6KGmpZbthHs9h sortOrder: 6 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -84480,7 +84480,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qUnMU8eixADgi755nunvZe + - id: 7BkMzmdTZT7CHeBk7Qqt5g sortOrder: 7 fieldKey: delimiter label: Delimeter @@ -84494,7 +84494,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ahneRYCYP7CEvm3v3UFyCu + - id: 4ktdMUkHWCZrQmaX35yWns sortOrder: 8 fieldKey: filename label: Filename @@ -84511,7 +84511,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4PLfCV1ZEbBaX2591KYqYq + - id: mtnGHtVrEdawsrFHFtmioi sortOrder: 11 fieldKey: s3_aws_bucket_path label: AWS Bucket Path [optional] @@ -110068,7 +110068,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: kZh92XrptBfRxRvAtGpL9h + - id: oUKtN7Koz3eg8AVUaRpZHX sortOrder: 0 fieldKey: operation label: Operation @@ -110090,7 +110090,7 @@ items: value: delete dynamic: false allowNull: false - - id: jeHpEdCZ4XoQmSeB9rprpd + - id: 6GuuFjkxtjUiUqKLvvP1Ub sortOrder: 1 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -110111,7 +110111,7 @@ items: value: AND dynamic: false allowNull: false - - id: qbEejhpSDGCQCu9Sufh962 + - id: wtJPHsn7e3kZT1YVEAFdHF sortOrder: 2 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -110128,7 +110128,7 @@ items: choices: null dynamic: false allowNull: false - - id: rpp4rkMmdPi2vbC5jaN1VJ + - id: uQDPFgdWXPAcGUtx882isN sortOrder: 4 fieldKey: traits label: Record Matchers @@ -110137,7 +110137,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -110150,7 +110150,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8BT7XGF8B1Mk65LzSTaqWa + - id: qyxg7F2yYoqQyp8aiBxuZL sortOrder: 5 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -110162,7 +110162,7 @@ items: choices: null dynamic: false allowNull: false - - id: ebdDV1BbDSEGw6ofJP8UjP + - id: bocGpZRcwnTvxttKDpU3a8 sortOrder: 6 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -110174,7 +110174,7 @@ items: choices: null dynamic: false allowNull: false - - id: jySanEbqyTNkzTXvFL7Qje + - id: fM2K55jZNTmycEk4oWwDu1 sortOrder: 7 fieldKey: company label: Company @@ -110194,7 +110194,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2iUxFHSAAk8QEzgVyhmwt1 + - id: uWuCVpjJCaBDmukPNJLDya sortOrder: 8 fieldKey: last_name label: Last Name @@ -110214,7 +110214,7 @@ items: choices: null dynamic: false allowNull: false - - id: iWUBPFmtbYx5PLzjs9Jd2K + - id: wSEHesWEHPWd9QEnc4YsoM sortOrder: 9 fieldKey: first_name label: First Name @@ -110234,7 +110234,7 @@ items: choices: null dynamic: false allowNull: false - - id: aG3Nmo79RV6aajJrak4wsa + - id: iporZ9aD57vUsFMcVgvhe5 sortOrder: 10 fieldKey: email label: Email @@ -110254,7 +110254,7 @@ items: choices: null dynamic: false allowNull: false - - id: aFnBABTVMxDvMVUrPGXopJ + - id: hEKAFKYV9RsL3D5X16muvX sortOrder: 11 fieldKey: city label: City @@ -110274,7 +110274,7 @@ items: choices: null dynamic: false allowNull: false - - id: oTQ6GzRnxf5vdh12f32Bsv + - id: 9ctj9r2SPqQjDS9v624iu5 sortOrder: 12 fieldKey: postal_code label: Postal Code @@ -110294,7 +110294,7 @@ items: choices: null dynamic: false allowNull: false - - id: Dfjb2qV6PYsLcT8rWiK92 + - id: 9czjvzYpYqTgnAuZYn8Qkg sortOrder: 13 fieldKey: country label: Country @@ -110314,7 +110314,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2NcGGa1eyv5fomjMhVpxaL + - id: 594KfLL8fskvKAR229n9v2 sortOrder: 14 fieldKey: street label: Street @@ -110334,7 +110334,7 @@ items: choices: null dynamic: false allowNull: false - - id: wFqGgTzNP195TYSZsoY7ek + - id: iat2nh82qkvBZ4scJZqaV9 sortOrder: 15 fieldKey: state label: State @@ -110354,14 +110354,14 @@ items: choices: null dynamic: false allowNull: false - - id: 3vtC8zwQJMm1EbxE1ABkR + - id: rodpnTZJboBXJZcvpYPKqd sortOrder: 16 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -110384,7 +110384,7 @@ items: hidden: false defaultTrigger: null fields: - - id: gqMVUmJoHaLWN4aLpNBBFE + - id: 9akVNoMY8dBdcuViEPKueQ sortOrder: 0 fieldKey: operation label: Operation @@ -110406,7 +110406,7 @@ items: value: delete dynamic: false allowNull: false - - id: iGEh6Xk9M8SABnrbdp8Z4R + - id: wpRFRn6VUQi8Hs9ehDn6rC sortOrder: 1 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -110427,7 +110427,7 @@ items: value: AND dynamic: false allowNull: false - - id: gBQBd793VBU5URZkoxdfvc + - id: bLoE17NBAJPvxEcQrv5HEw sortOrder: 2 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -110444,7 +110444,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2vBQad9JQZxBpfFTEmUFJL + - id: 4qEEDfRoYwTPbfVfWwRRnm sortOrder: 4 fieldKey: traits label: Record Matchers @@ -110453,7 +110453,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -110466,7 +110466,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3vfKJ8se96wnPikaND58dE + - id: qk5FhV3YzVjKzsF7zMeRBm sortOrder: 5 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -110478,7 +110478,7 @@ items: choices: null dynamic: false allowNull: false - - id: kjNzoehQfQePXFYfQzwZpk + - id: faWLwAb3QWfwxoTBFkAsi3 sortOrder: 6 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -110490,7 +110490,7 @@ items: choices: null dynamic: false allowNull: false - - id: nQARyB9TCrUCVCJPsQ7U7C + - id: 3MtwruhqpCRHPatjehqoj9 sortOrder: 7 fieldKey: customObjectName label: Salesforce Object @@ -110505,14 +110505,14 @@ items: choices: null dynamic: true allowNull: false - - id: kL6YBnvPZjuMf24KV4Yh5N + - id: fi3dA2GYxyvVABo3kKcwjC sortOrder: 8 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -110533,7 +110533,7 @@ items: hidden: false defaultTrigger: null fields: - - id: prVtc8eTRKbyEy6GxYBec6 + - id: sbmB1DjnUcxDzfXgMtrB7e sortOrder: 0 fieldKey: operation label: Operation @@ -110555,7 +110555,7 @@ items: value: delete dynamic: false allowNull: false - - id: e41qZDpfgYE5tc866b67dH + - id: j8GQLGAojVD9HZBW7r4XML sortOrder: 1 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -110576,7 +110576,7 @@ items: value: AND dynamic: false allowNull: false - - id: kW3bHLdPVjn5Vd19aj1cU1 + - id: tNfCMMbjAkUvxBPgpo7XSd sortOrder: 2 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -110593,7 +110593,7 @@ items: choices: null dynamic: false allowNull: false - - id: bADz4oH9oLeSGZ5GGWjcAy + - id: mhFPGzrYzf3jXqG81MQPzg sortOrder: 4 fieldKey: traits label: Record Matchers @@ -110602,7 +110602,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -110615,7 +110615,7 @@ items: choices: null dynamic: false allowNull: false - - id: fGvWx8Gapf2QqPLnZDLN2Q + - id: hso2a5tCwBkz6YUbheo7pP sortOrder: 5 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -110627,7 +110627,7 @@ items: choices: null dynamic: false allowNull: false - - id: nPPxWCk5Fad9VdM8oc92KW + - id: ehWc9Cwykpsb4NGTGf6rxb sortOrder: 6 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -110639,7 +110639,7 @@ items: choices: null dynamic: false allowNull: false - - id: aLNGA5aHKuSHhw4Qe35vUp + - id: tdE92tmEisvwJHv3sfxtYu sortOrder: 7 fieldKey: description label: Description @@ -110651,14 +110651,14 @@ items: choices: null dynamic: false allowNull: false - - id: 7jr2DPUPeVJNMuW2yys12G + - id: bJQbbpSBWmdAmxJU2YHYzx sortOrder: 8 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -110679,7 +110679,7 @@ items: hidden: false defaultTrigger: null fields: - - id: pgt7rZ92HB5JWHHUpLBiUk + - id: sN1AqwUmtj8C9Qb65EUVfD sortOrder: 0 fieldKey: operation label: Operation @@ -110701,7 +110701,7 @@ items: value: delete dynamic: false allowNull: false - - id: vorZjfh4zLKZKNthY2SuNg + - id: pLstd4w9Y1sKsWu5nNGKYK sortOrder: 1 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -110722,7 +110722,7 @@ items: value: AND dynamic: false allowNull: false - - id: iERCH4h1JdpzjP1ct9u3Q2 + - id: jv7ZT6d4zMiLyeRBKFQWyz sortOrder: 2 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -110739,7 +110739,7 @@ items: choices: null dynamic: false allowNull: false - - id: 37jMhbiRJQhD14wkek3NNy + - id: mTGpPWdk2LwwtNJZgZ6pWw sortOrder: 4 fieldKey: traits label: Record Matchers @@ -110748,7 +110748,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -110761,7 +110761,7 @@ items: choices: null dynamic: false allowNull: false - - id: ppNMajSeHD9bBwr6bGXiiq + - id: 6twwS1c72hrWboRrBPbKYH sortOrder: 5 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -110773,7 +110773,7 @@ items: choices: null dynamic: false allowNull: false - - id: rm9Sg5VKKeNpCgYdYtsxjh + - id: aRP5NPuEhkzjZKHFkxaB6C sortOrder: 6 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -110785,7 +110785,7 @@ items: choices: null dynamic: false allowNull: false - - id: uZvgAYpMBuhux9tNJ9SzHr + - id: 6NNjyKxssctuAk1uQ5oxYw sortOrder: 7 fieldKey: close_date label: Close Date @@ -110799,7 +110799,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8i5WiWhbxzBGRLPWmD169k + - id: kCotz6nMp24Ns51489LfmJ sortOrder: 8 fieldKey: name label: Name @@ -110813,7 +110813,7 @@ items: choices: null dynamic: false allowNull: false - - id: s2iT19XAYKS2gSro4YUqCz + - id: 8c3TmJjNx6kQ5UTaQWBLkK sortOrder: 9 fieldKey: stage_name label: Stage Name @@ -110827,7 +110827,7 @@ items: choices: null dynamic: false allowNull: false - - id: qeRPyKRo3PANoNvLxNJ4Eo + - id: 3EsEcA5ha6GxnNy9JTky6Y sortOrder: 10 fieldKey: amount label: Amount @@ -110839,7 +110839,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8skM6jkpZjwCTpCAaPPLNn + - id: 5d69Typdfu6MYBcpAiB36m sortOrder: 11 fieldKey: description label: Description @@ -110851,14 +110851,14 @@ items: choices: null dynamic: false allowNull: false - - id: vGVjxVfciVnLrFnSD3MFDg + - id: frfmfiP1jp3hrLoPuShuUR sortOrder: 12 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -110879,7 +110879,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: pYcUCJqxXkphHtEUtE7CVG + - id: tua8dtHDdaLxMSPc64acxd sortOrder: 0 fieldKey: operation label: Operation @@ -110901,7 +110901,7 @@ items: value: delete dynamic: false allowNull: false - - id: fUWzv5s17vj4AMaRDzXkjd + - id: db8FziopZSubvSNbNkNpcY sortOrder: 1 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -110918,7 +110918,7 @@ items: choices: null dynamic: false allowNull: false - - id: dZm3xZJSh1aT2Zvdi4Y5Ys + - id: 2D1sQmEnoMivbCh28Fcex6 sortOrder: 3 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -110939,7 +110939,7 @@ items: value: AND dynamic: false allowNull: false - - id: kHdqX1ct4AFetE5Nxh3Vp5 + - id: 2RfQXRHjcbTjqRhKQ8Sn9Y sortOrder: 4 fieldKey: traits label: Record Matchers @@ -110948,7 +110948,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -110961,7 +110961,7 @@ items: choices: null dynamic: false allowNull: false - - id: eSrpRtxFVEBrbBWniyvJew + - id: dMRAx7AM2GZhyfWmmAiEHW sortOrder: 5 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -110973,7 +110973,7 @@ items: choices: null dynamic: false allowNull: false - - id: iF1FaLsx9u796SVjCZGFeJ + - id: gZwMMqVC3m49eFwdrEv8XE sortOrder: 6 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -110985,7 +110985,7 @@ items: choices: null dynamic: false allowNull: false - - id: bTepivZahgmBtK6EJvb86t + - id: p5WkocDwXra4p94f185rjf sortOrder: 7 fieldKey: name label: Name @@ -110999,7 +110999,7 @@ items: choices: null dynamic: false allowNull: false - - id: xndFKRksG5fQdFaYzEbG4k + - id: pmT4tD4z6fqh5SvYktzCQD sortOrder: 8 fieldKey: account_number label: Account Number @@ -111015,7 +111015,7 @@ items: choices: null dynamic: false allowNull: false - - id: gBYd1PZd3Fd8qKWoGvDoJC + - id: 6vAHSYMLmrt2SeXtzAxcSZ sortOrder: 9 fieldKey: number_of_employees label: Number of employees @@ -111035,7 +111035,7 @@ items: choices: null dynamic: false allowNull: false - - id: rZGomicffVU7AME9SFcFBX + - id: c3QncE8WGKi4QqKyed9fBg sortOrder: 10 fieldKey: billing_city label: Billing City @@ -111055,7 +111055,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9xJifQZpUVNkZgfH56Byvo + - id: ir2WDqNM7NSyg3GfNaiMLR sortOrder: 11 fieldKey: billing_postal_code label: Billing Postal Code @@ -111075,7 +111075,7 @@ items: choices: null dynamic: false allowNull: false - - id: audr52dkbHCTTKy6r1dCcA + - id: pxDPU4i7o1YqJW1UzeiYSb sortOrder: 12 fieldKey: billing_country label: Billing Country @@ -111095,7 +111095,7 @@ items: choices: null dynamic: false allowNull: false - - id: b1qTtNLxfvJxTHDtgkbivf + - id: SknMxGndLhrzk38s8AfKW sortOrder: 13 fieldKey: billing_street label: Billing Street @@ -111115,7 +111115,7 @@ items: choices: null dynamic: false allowNull: false - - id: aU8H5yPwUxST6g2eo2yKjR + - id: s1CpwGk6dQbcXKF6WcN9Sd sortOrder: 14 fieldKey: billing_state label: Billing State @@ -111135,7 +111135,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3YFPaBArj7SAr6mFAh9itZ + - id: mwWGXJySKTFTHYE8RL4B3q sortOrder: 15 fieldKey: shipping_city label: Shipping City @@ -111147,7 +111147,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2LJ9D8toH93U4xRWUMLGZh + - id: m2twZ8HDKrLMfBSoGANhAP sortOrder: 16 fieldKey: shipping_postal_code label: Shipping Postal Code @@ -111159,7 +111159,7 @@ items: choices: null dynamic: false allowNull: false - - id: joXHYFo8tE1uazEAm9dccx + - id: 3MDaABKamgAmMwG8jkhcrt sortOrder: 17 fieldKey: shipping_country label: Shipping Country @@ -111171,7 +111171,7 @@ items: choices: null dynamic: false allowNull: false - - id: o2m2DAsaT1sPjkjsiiNqj6 + - id: dqXwDX9nTgkGuDeNPj9cMG sortOrder: 18 fieldKey: shipping_street label: Shipping Street @@ -111183,7 +111183,7 @@ items: choices: null dynamic: false allowNull: false - - id: srX3WiJpgQish4yGURXaqN + - id: vqapnhy7KBQrv9PcGXZA8s sortOrder: 19 fieldKey: shipping_state label: Shipping State @@ -111195,7 +111195,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7SREmAFBfCjbBvtQqPkHwA + - id: jE5Fjcka9DCBMgFTeyei3a sortOrder: 20 fieldKey: phone label: Phone @@ -111215,7 +111215,7 @@ items: choices: null dynamic: false allowNull: false - - id: vf6AUv6AzbVJSNTWEZRHex + - id: etW57FKACcuhBKpkoJSB4E sortOrder: 21 fieldKey: description label: Description @@ -111235,7 +111235,7 @@ items: choices: null dynamic: false allowNull: false - - id: oLmWikpbPsZteoK6Yrt6Ai + - id: nJQNfGbPZRe8Y4a4Dn5PgT sortOrder: 22 fieldKey: website label: Website @@ -111255,14 +111255,14 @@ items: choices: null dynamic: false allowNull: false - - id: tCDNHAkHAu6Bh58m1SsfMN + - id: eSQPwQKoULcFqqG6EBRkjd sortOrder: 23 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -111283,7 +111283,7 @@ items: hidden: false defaultTrigger: null fields: - - id: udDhR9mbE4jcX1FAepRV7M + - id: eVFQse4ZWtfrHBCkihQ5hj sortOrder: 0 fieldKey: operation label: Operation @@ -111305,7 +111305,7 @@ items: value: delete dynamic: false allowNull: false - - id: tPeoMnRcfBq9d6DebbwGH8 + - id: cJzvvtc5LcgvQwnTvqQeDp sortOrder: 1 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -111326,7 +111326,7 @@ items: value: AND dynamic: false allowNull: false - - id: w4vuKFfzUR1FXgEP1te5wF + - id: oRYfk1sDd3QSUXd9yiovWu sortOrder: 2 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -111343,7 +111343,7 @@ items: choices: null dynamic: false allowNull: false - - id: kqDZAvgLhYbF2nLHs4JbNm + - id: oRv2PAZv4Rg3AzmXx4rcen sortOrder: 4 fieldKey: traits label: Record Matchers @@ -111352,7 +111352,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -111365,7 +111365,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3FyPxbc2ZUCwiFgzf7NuaM + - id: jRGyAYYWqGmtp5mpm19ndT sortOrder: 5 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -111377,7 +111377,7 @@ items: choices: null dynamic: false allowNull: false - - id: fUM7B9p5YfFCcPHhCSXaEZ + - id: dT2CTTAbqQgQ12pXfjYSBo sortOrder: 6 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -111389,7 +111389,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5znn3ydxWGKso6F1qN6XK8 + - id: upoA89C9mU4LS91ghgY6uJ sortOrder: 7 fieldKey: last_name label: Last Name @@ -111411,7 +111411,7 @@ items: choices: null dynamic: false allowNull: false - - id: cJeHbo2QG6uMYVXqWa8WCF + - id: 5nMD1dc42ZoktSP9RxzWSV sortOrder: 8 fieldKey: first_name label: First Name @@ -111431,7 +111431,7 @@ items: choices: null dynamic: false allowNull: false - - id: gweJAM2bk6vcU33ZqiC9sB + - id: 7Gr44xvZG67NsFJNpgiZHc sortOrder: 9 fieldKey: account_id label: Account ID @@ -111446,7 +111446,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3hsN3eUgxy85FfzB9ujBEn + - id: 8jUG7ZC4X5nr7xpjTGXnVe sortOrder: 10 fieldKey: email label: Email @@ -111466,7 +111466,7 @@ items: choices: null dynamic: false allowNull: false - - id: sy1ArT2JsPZ4bCuXasUGS1 + - id: 69LihDbHNkrSVN5Tn5hQxf sortOrder: 11 fieldKey: mailing_city label: Mailing City @@ -111486,7 +111486,7 @@ items: choices: null dynamic: false allowNull: false - - id: pCVAtySEqnvbQXJLxHeZNZ + - id: 9bDScY2Q7BSGjtPrRPsoxd sortOrder: 12 fieldKey: mailing_postal_code label: Mailing Postal Code @@ -111506,7 +111506,7 @@ items: choices: null dynamic: false allowNull: false - - id: aHJZ7QPsJDfWaS9bP9HS4s + - id: i599LenFA8coUkyUJDk1h1 sortOrder: 13 fieldKey: mailing_country label: Mailing Country @@ -111526,7 +111526,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6DCdKALG8aRGo9iwHTr3XZ + - id: nxEJcFpkzAXNtDLepyKRq8 sortOrder: 14 fieldKey: mailing_street label: Mailing Street @@ -111546,7 +111546,7 @@ items: choices: null dynamic: false allowNull: false - - id: kzG6QgyjvyFmY3zwfbaNAH + - id: 5DdYNX6CWky8abg9wD8JHK sortOrder: 15 fieldKey: mailing_state label: Mailing State @@ -111566,14 +111566,14 @@ items: choices: null dynamic: false allowNull: false - - id: 5RjrvpvLfpDouYoyrK1wja + - id: sox2TQEzLkvCuAaUrHq4pb sortOrder: 16 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -111594,7 +111594,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: pXT3gQtGMcEuJrYrkc1m5C + - id: iwLVqvrC2uNJ2ofrG4UNig sortOrder: 0 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -111611,7 +111611,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8CrutFx7ZgrDcxPYE3eUX3 + - id: j4fhU4eBqiMKCbnqgqhE3a sortOrder: 2 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -111632,7 +111632,7 @@ items: value: AND dynamic: false allowNull: false - - id: wgsuD1U7Rza619YAw3Yi3w + - id: 6WfDNnXH7ApWEL4CThX4kS sortOrder: 3 fieldKey: traits label: Record Matchers @@ -111641,7 +111641,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -111654,7 +111654,7 @@ items: choices: null dynamic: false allowNull: false - - id: jyan8RHbcRDbEHfGpFtHg3 + - id: tAiePW4CUBGeFiZ9mBcx1e sortOrder: 4 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -111666,7 +111666,7 @@ items: choices: null dynamic: false allowNull: false - - id: upoYXudNDxfzDLNQD6iyNw + - id: aaKjWM82NnwiVhPgX3XWdg sortOrder: 5 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -111678,7 +111678,7 @@ items: choices: null dynamic: false allowNull: false - - id: rBfTjRkE2mWpyXc5iJAbLC + - id: dtpsqpfx3ASRUxCHhtLPov sortOrder: 6 fieldKey: name label: Name @@ -111692,7 +111692,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3qfBxcXS5PkmPAJ8jfbDDR + - id: 9jCub8MYh5YmhuvoubKSWU sortOrder: 7 fieldKey: account_number label: Account Number @@ -111708,7 +111708,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7cPbZNKQjW9Zr7ceEmGsUy + - id: 9sZJ7e8MzVDze7u8PWMLU8 sortOrder: 8 fieldKey: number_of_employees label: Number of employees @@ -111728,7 +111728,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2vC915nLHrb7Nc3k1aKJ2g + - id: nzb2AiVrQA38yWjYrbe9PV sortOrder: 9 fieldKey: billing_city label: Billing City @@ -111748,7 +111748,7 @@ items: choices: null dynamic: false allowNull: false - - id: jJqGgZKzYGavWSya8hDQ8Y + - id: YZ5N8TSRkLtXXxwqS6MaE sortOrder: 10 fieldKey: billing_postal_code label: Billing Postal Code @@ -111768,7 +111768,7 @@ items: choices: null dynamic: false allowNull: false - - id: gjhvAy34ZNbJ35hwFEmD7N + - id: kEEGyx279n59cNhKSEJkjP sortOrder: 11 fieldKey: billing_country label: Billing Country @@ -111788,7 +111788,7 @@ items: choices: null dynamic: false allowNull: false - - id: qqwKbiN3xbZzPyeQSq8CkV + - id: o4saTPnzqYwGqawpyFTRqF sortOrder: 12 fieldKey: billing_street label: Billing Street @@ -111808,7 +111808,7 @@ items: choices: null dynamic: false allowNull: false - - id: n7uZCBDPNDbpvRwMnJvrYS + - id: xpNed45ZiFu9fKGnzP7gnc sortOrder: 13 fieldKey: billing_state label: Billing State @@ -111828,7 +111828,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4MkHFhaW4Qwa1LwKeHvqrA + - id: viu6BQza3Z6HRPQpUWuGPA sortOrder: 14 fieldKey: shipping_city label: Shipping City @@ -111840,7 +111840,7 @@ items: choices: null dynamic: false allowNull: false - - id: 37YBesBEY6WLGSrLTdyBqi + - id: sFmbkgnR9h41UMTKAtC8wF sortOrder: 15 fieldKey: shipping_postal_code label: Shipping Postal Code @@ -111852,7 +111852,7 @@ items: choices: null dynamic: false allowNull: false - - id: cRkQwyrKprE5mvC1CZigdL + - id: 3J3pgKPTrsm4FxzdV5LPRm sortOrder: 16 fieldKey: shipping_country label: Shipping Country @@ -111864,7 +111864,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6hhLMamm8MQTu3Nhd5eWNU + - id: tTCqp1Lxbs2W39AjRss84s sortOrder: 17 fieldKey: shipping_street label: Shipping Street @@ -111876,7 +111876,7 @@ items: choices: null dynamic: false allowNull: false - - id: oCaJbBGjgjNNK5eWRGtnSg + - id: tQYKqpKHg3NLenBkMfsM1a sortOrder: 18 fieldKey: shipping_state label: Shipping State @@ -111888,7 +111888,7 @@ items: choices: null dynamic: false allowNull: false - - id: htLCSLxeGJwWVP15w7rk74 + - id: tNBh3r1HCkPyMEzw2AJR5Z sortOrder: 19 fieldKey: phone label: Phone @@ -111908,7 +111908,7 @@ items: choices: null dynamic: false allowNull: false - - id: njGowvjrh7QKBae9y44mZr + - id: nB2qyLmVE8XjQ7H9qEoFxE sortOrder: 20 fieldKey: description label: Description @@ -111928,7 +111928,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5WkcX5tXPz5MTfsDxiaU4p + - id: tU25suUwLpoZ1z743aXEJn sortOrder: 21 fieldKey: website label: Website @@ -111948,14 +111948,14 @@ items: choices: null dynamic: false allowNull: false - - id: RQTQJwNoVJDrGmuQ75nAM + - id: vYkqKNTKexcCdeF5vHNkJV sortOrder: 22 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -111978,7 +111978,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 5yivisMCJGffAQR3aSg7Za + - id: v6Vwydi51DRXWKfvNL9GC1 sortOrder: 0 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -111999,7 +111999,7 @@ items: value: AND dynamic: false allowNull: false - - id: 8tGWdNU33Wiw1ZKuWJ5YSt + - id: wGnnnfv5uhfPahS3HXcyED sortOrder: 1 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -112016,7 +112016,7 @@ items: choices: null dynamic: false allowNull: false - - id: nGyjAGjeUtbfAzjD5fYTzk + - id: 5xjacFo2sgv9no7PhqtLWC sortOrder: 3 fieldKey: traits label: Record Matchers @@ -112025,7 +112025,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -112038,7 +112038,7 @@ items: choices: null dynamic: false allowNull: false - - id: tjnRrCL6tVz6UXtvBbdxcP + - id: pMf8t6N1NnhPesqXiFLwdX sortOrder: 4 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -112050,7 +112050,7 @@ items: choices: null dynamic: false allowNull: false - - id: ijZ62TBKrcmkRruusbPwKo + - id: d2JKM9Ms5Jc1kFDoQK5xdf sortOrder: 5 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -112062,7 +112062,7 @@ items: choices: null dynamic: false allowNull: false - - id: d2acUhEY42TsgPSaPYCT1V + - id: h2LmVMSJFCnxfvpX1zd7mG sortOrder: 6 fieldKey: customObjectName label: Salesforce Object @@ -112077,14 +112077,14 @@ items: choices: null dynamic: true allowNull: false - - id: p4zqsq6HZU24gt567UDGFc + - id: qvLbqRRiMjHqKthL4XvPsd sortOrder: 7 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -112105,7 +112105,7 @@ items: hidden: false defaultTrigger: null fields: - - id: sPHAyQJicqznVMUfKqZLPn + - id: mxwxqvNz1etcGKRybBXi9X sortOrder: 0 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -112126,7 +112126,7 @@ items: value: AND dynamic: false allowNull: false - - id: wHNoGoShDJfMAZA1v1Sah7 + - id: cmyFg4NHBNimuHQRx8cWJ9 sortOrder: 1 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -112143,7 +112143,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8UDtGQdVXm7nXwTBTu7yMT + - id: 9Xnh3krcpPDEyvjbeoZhhF sortOrder: 3 fieldKey: traits label: Record Matchers @@ -112152,7 +112152,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -112165,7 +112165,7 @@ items: choices: null dynamic: false allowNull: false - - id: bPRimFCEt1TcZ8JXiMcLPa + - id: 2S3pG7juzw9PU6dtbnd6Qv sortOrder: 4 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -112177,7 +112177,7 @@ items: choices: null dynamic: false allowNull: false - - id: pYBLXq1gUU4daTYANaJAmj + - id: xb7GoBm5QHAnBxZcXatjA3 sortOrder: 5 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -112189,7 +112189,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3cdPteweK9efsnXdkEB8YE + - id: d7W9bqvSa5z7ZTwirGowkC sortOrder: 6 fieldKey: description label: Description @@ -112201,14 +112201,14 @@ items: choices: null dynamic: false allowNull: false - - id: 6FDSLRKPdQ8KbaoNxaXCQi + - id: hWK3oqsfvdKZ8GwR2Z99U5 sortOrder: 7 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -112229,7 +112229,7 @@ items: hidden: false defaultTrigger: null fields: - - id: vtgmjXTJMYDpvjmH6N96ww + - id: hW8GCWr6uqHMHgaTeJYshu sortOrder: 0 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -112250,7 +112250,7 @@ items: value: AND dynamic: false allowNull: false - - id: vZacJ8GNtHDtA7aYxrxZse + - id: chnPs6Nq9ZtjDrhQzV6mYJ sortOrder: 1 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -112267,7 +112267,7 @@ items: choices: null dynamic: false allowNull: false - - id: rUpRYxgqE2HU42EbPL2mAG + - id: acamJSsawvVwPKfNCJd9QQ sortOrder: 3 fieldKey: traits label: Record Matchers @@ -112276,7 +112276,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -112289,7 +112289,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2maTDzpCNqrp9s63z5APZV + - id: fGEzszrsa7vhjeBaYQ6ERi sortOrder: 4 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -112301,7 +112301,7 @@ items: choices: null dynamic: false allowNull: false - - id: wGvVYgbzunWeWnoGhsSYHe + - id: iqWStAXcnEcJw9oLMKTq23 sortOrder: 5 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -112313,7 +112313,7 @@ items: choices: null dynamic: false allowNull: false - - id: ra3xEQLcTMMK3iRDiqgRdk + - id: nefzmtJ96fkn4Xf3XHZeha sortOrder: 6 fieldKey: close_date label: Close Date @@ -112327,7 +112327,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6wFQUEt7jrvEszYVC61ES9 + - id: o5awkxH5nAHejfMi7VHXod sortOrder: 7 fieldKey: name label: Name @@ -112341,7 +112341,7 @@ items: choices: null dynamic: false allowNull: false - - id: cf9faGTUhCpEyfCeTwbgAR + - id: 5iZ3zusKR4tpQU9ABwGMzG sortOrder: 8 fieldKey: stage_name label: Stage Name @@ -112355,7 +112355,7 @@ items: choices: null dynamic: false allowNull: false - - id: o6swrWKxxt3b3jEpYvoqGe + - id: 9RsUsYEf3QTNC59hjLpaQ sortOrder: 9 fieldKey: amount label: Amount @@ -112367,7 +112367,7 @@ items: choices: null dynamic: false allowNull: false - - id: mLDFRvpu5Lh1wEJB5CwbXv + - id: iNk6GtCKQRpKPortcrk9jN sortOrder: 10 fieldKey: description label: Description @@ -112379,14 +112379,14 @@ items: choices: null dynamic: false allowNull: false - - id: 2pQn4vf9eyBf8YmJuFpWuK + - id: mMRXA7oEMSWu1eaScmZjTj sortOrder: 11 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -112407,7 +112407,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: 5JzsiLnqQyjKbNX5AywUze + - id: p9HUKxio54A2ZomV9ViSfJ sortOrder: 0 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -112428,7 +112428,7 @@ items: value: AND dynamic: false allowNull: false - - id: uQNtN1KHbF7FMdixCzEF21 + - id: iyzUP98LFacuy9RiuEVyqh sortOrder: 1 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -112445,7 +112445,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8KBEStEned3j3nJB8Vwo5K + - id: w5YpPCDL15FTWvnksB8icZ sortOrder: 3 fieldKey: traits label: Record Matchers @@ -112454,7 +112454,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -112467,7 +112467,7 @@ items: choices: null dynamic: false allowNull: false - - id: jNbkutj7SdiEbz9E7ppmcx + - id: 9SRxy4Z3LBfc5TVjXBsuFk sortOrder: 4 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -112479,7 +112479,7 @@ items: choices: null dynamic: false allowNull: false - - id: fu9usahBTC78eFPQurYayB + - id: 9h3hdX9DtgDHwwgw5rxdz5 sortOrder: 5 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -112491,14 +112491,14 @@ items: choices: null dynamic: false allowNull: false - - id: qxb3iQt1wkmr1WCYY2qyvG + - id: gQUM94D2Js2K4EHfh7UGiU sortOrder: 6 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -112511,7 +112511,7 @@ items: choices: null dynamic: false allowNull: false - - id: fSzdFBLos29CMGPTgEDwXC + - id: 7FParuzkFX7aC9doxU1jDF sortOrder: 7 fieldKey: company label: Company @@ -112531,7 +112531,7 @@ items: choices: null dynamic: false allowNull: false - - id: e6hjtChQNMnf9fygoDwfo5 + - id: gRwtoXD2qju2vReV9p72aq sortOrder: 8 fieldKey: last_name label: Last Name @@ -112551,7 +112551,7 @@ items: choices: null dynamic: false allowNull: false - - id: k8Jfw1JYm2cHJdwdQqjB3a + - id: 2WheABUyE642Zx6ceAGdTL sortOrder: 9 fieldKey: first_name label: First Name @@ -112571,7 +112571,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4Rm1ersm94wEvubZhzezgQ + - id: 438x665qq7fKSxCSx2M1up sortOrder: 10 fieldKey: email label: Email @@ -112591,7 +112591,7 @@ items: choices: null dynamic: false allowNull: false - - id: xbimApBc6iJhfwS5z8BLt1 + - id: sJFtgxnY6AEjhJxxnbiHJp sortOrder: 11 fieldKey: city label: City @@ -112611,7 +112611,7 @@ items: choices: null dynamic: false allowNull: false - - id: bh4CYA1K5edxhfEYn1eNHk + - id: sZhiHXejf8AJyXS7cYTHGi sortOrder: 12 fieldKey: postal_code label: Postal Code @@ -112631,7 +112631,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4uaBrRjppwtRRtQLoh9itM + - id: F9hrtr1es3GqS9FmuZ1pN sortOrder: 13 fieldKey: country label: Country @@ -112651,7 +112651,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4QoaHT1ukg6RqUMxaeizuW + - id: 6LwFQe2xFM9SBfWtDDpMEr sortOrder: 14 fieldKey: street label: Street @@ -112671,7 +112671,7 @@ items: choices: null dynamic: false allowNull: false - - id: nAWeupXRqqcNPcaxRjNdbY + - id: qfomtmtBQVPWPhrHLgR81r sortOrder: 15 fieldKey: state label: State @@ -112699,7 +112699,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 7Dpb9ssAxk8m1nAkqXJoeR + - id: s4jsUYH7CQb2LDGiHkCQ3T sortOrder: 0 fieldKey: recordMatcherOperator label: Record Matchers Operator @@ -112720,7 +112720,7 @@ items: value: AND dynamic: false allowNull: false - - id: 5Y1jBX7FnvQUowpGhSx6AA + - id: 8FAtpH84JSaNcyevM6pDKi sortOrder: 1 fieldKey: enable_batching label: Use Salesforce Bulk API @@ -112737,7 +112737,7 @@ items: choices: null dynamic: false allowNull: false - - id: 74oQRhSVZaGurZDPiFZqiJ + - id: bWBHBd3zsgRu99SGyMHuMz sortOrder: 3 fieldKey: traits label: Record Matchers @@ -112746,7 +112746,7 @@ items: The fields used to find Salesforce records for updates. **This is required if the operation is Delete, Update or Upsert.** - Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Any field can function as a matcher, including Record ID, External IDs, standard fields and custom fields. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. If multiple records are found, no changes will be made. **Please use fields that result in unique records.** @@ -112759,7 +112759,7 @@ items: choices: null dynamic: false allowNull: false - - id: 43oWBRfMnv6rZNdfZW1tmY + - id: daKC3XuyVWMZFd1BCsDZgS sortOrder: 4 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id @@ -112771,7 +112771,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7rRX2JvT6XSaQujQup11uf + - id: rEH7XzoKubY2fkb8XqvkqJ sortOrder: 5 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id @@ -112783,7 +112783,7 @@ items: choices: null dynamic: false allowNull: false - - id: r4PM7iLDdqy1TXVuX3U7RU + - id: 3Rw8jWE3coSCxmXShUiAPZ sortOrder: 6 fieldKey: last_name label: Last Name @@ -112805,7 +112805,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9QAZwToh7VW32PecYXzUY5 + - id: dbA63BaaYu9dga4Q9mtQN2 sortOrder: 7 fieldKey: first_name label: First Name @@ -112825,7 +112825,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8owDFskfQKjuhZKQ8Nn1n5 + - id: debqa9NZrLgCcvUurndQaQ sortOrder: 8 fieldKey: account_id label: Account ID @@ -112840,7 +112840,7 @@ items: choices: null dynamic: false allowNull: false - - id: qJJ8tGnQnyRdibviFZWkrY + - id: oJkyAxGgGJTiBr4QurFZjC sortOrder: 9 fieldKey: email label: Email @@ -112860,7 +112860,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2PG67CXKza8uDiP7vMT3dV + - id: cG7ctZPrmQNFFPPCWmqpCH sortOrder: 10 fieldKey: mailing_city label: Mailing City @@ -112880,7 +112880,7 @@ items: choices: null dynamic: false allowNull: false - - id: dmu6E5fibXUq1AZYfMuXaG + - id: 2GTCFbohudkmv5PZ7agWMQ sortOrder: 11 fieldKey: mailing_postal_code label: Mailing Postal Code @@ -112900,7 +112900,7 @@ items: choices: null dynamic: false allowNull: false - - id: WUSWD4btDGzq1juX6aKS9 + - id: mX97JXop9pAvbk8eBkmaML sortOrder: 12 fieldKey: mailing_country label: Mailing Country @@ -112920,7 +112920,7 @@ items: choices: null dynamic: false allowNull: false - - id: uaorbXtTXK2w4rE1NPrTdt + - id: n27xcvB2Miuz4b4FiqRzzw sortOrder: 13 fieldKey: mailing_street label: Mailing Street @@ -112940,7 +112940,7 @@ items: choices: null dynamic: false allowNull: false - - id: mTsmznp2jBXCWCZ9tWncJN + - id: qSVR3sYQqMJ6gkLKEfyroe sortOrder: 14 fieldKey: mailing_state label: Mailing State @@ -112960,14 +112960,14 @@ items: choices: null dynamic: false allowNull: false - - id: 7dDJAWDebNHZwCuquZ1V2r + - id: fBiMqx1EXx3oP6nxnXP6QT sortOrder: 15 fieldKey: customFields label: Other Fields type: OBJECT description: |2- - Additional fields to send to Salesforce. On the left-hand side, input the Salesforce field API name. On the right-hand side, map the Segment field that contains the value. + Additional fields to send to Salesforce. On the left-hand side, map the Segment field that contains the value. On the right-hand side, input the Salesforce field API name. This can include standard or custom fields. Custom fields must be predefined in your Salesforce account and the API field name should have __c appended. @@ -123767,6 +123767,259 @@ items: actions: [] presets: [] partnerOwned: true +- id: 66e96b9f4ee97f41caa06487 + display_name: StackAdapt Audiences + name: StackAdapt Audiences + slug: stackadapt-audiences + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/stackadapt-audiences + previous_names: + - StackAdapt Audiences + website: http://www.stackadapt.com + status: PUBLIC_BETA + categories: + - Advertising + - Marketing Automation + logo: + url: https://cdn-devcenter.segment.com/e8c12cdf-094e-4a6a-b956-f0ab3a3db55e.svg + mark: + url: https://cdn-devcenter.segment.com/039e103f-dad1-4ffd-a4c0-80cdd6ece187.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: advertiser_id + type: string + defaultValue: '' + description: The StackAdapt advertiser ID to add the profile to. + required: true + label: Advertiser ID + - name: apiKey + type: string + defaultValue: '' + description: Your StackAdapt GQL API Token + required: true + label: GraphQL Token + actions: + - id: 3VsBn8QNUSn78hErsz2XZj + name: Sync Audience + slug: forwardAudienceEvent + description: Sync Segment Engage audience and user profile details to StackAdapt + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" or type = "track" + fields: + - id: pMBcchPBnqLtQu6baAXjzN + sortOrder: 0 + fieldKey: standard_traits + label: Standard User Properties + type: OBJECT + description: Standard properties for the user. + placeholder: '' + defaultValue: + first_name: + '@if': + exists: + '@path': $.traits.first_name + then: + '@path': $.traits.first_name + else: + '@path': $.properties.first_name + last_name: + '@if': + exists: + '@path': $.traits.last_name + then: + '@path': $.traits.last_name + else: + '@path': $.properties.last_name + phone: + '@if': + exists: + '@path': $.traits.phone + then: + '@path': $.traits.phone + else: + '@path': $.properties.phone + address: + '@if': + exists: + '@path': $.traits.street + then: + '@path': $.traits.street + else: + '@path': $.properties.street + city: + '@if': + exists: + '@path': $.traits.city + then: + '@path': $.traits.city + else: + '@path': $.properties.city + country: + '@if': + exists: + '@path': $.traits.country + then: + '@path': $.traits.country + else: + '@path': $.properties.country + state: + '@if': + exists: + '@path': $.traits.state + then: + '@path': $.traits.state + else: + '@path': $.properties.state + postal_code: + '@if': + exists: + '@path': $.traits.postal_code + then: + '@path': $.traits.postal_code + else: + '@path': $.properties.postal_code + timezone: + '@if': + exists: + '@path': $.traits.timezone + then: + '@path': $.traits.timezone + else: + '@path': $.properties.timezone + birth_date: + '@if': + exists: + '@path': $.traits.birthday + then: + '@path': $.traits.birthday + else: + '@path': $.properties.birthday + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mMj2rSJZkb8ejE6JzaZ5vN + sortOrder: 1 + fieldKey: custom_traits + label: Custom User Properties + type: OBJECT + description: Custom properties for the user. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: anYqNYEgqiVQBZ2Vsagkzh + sortOrder: 2 + fieldKey: user_id + label: Segment User ID + type: STRING + description: The ID of the user in Segment + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kSM9NYdggpkzRwtg2SS8hE + sortOrder: 3 + fieldKey: event_type + label: Event Type + type: STRING + description: The Segment event type - track or identify + placeholder: '' + defaultValue: + '@path': $.type + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kFeepNqXnuCY4xuxa8p8SK + sortOrder: 4 + fieldKey: marketing_status + label: Marketing Status + type: STRING + description: >- + In certain jurisdictions, explicit consent may be required to send email + marketing communications to imported profiles. Consult independent + counsel for further guidance. + placeholder: '' + required: true + multiple: false + choices: + - label: Opted-in (Profiles can receive email marketing) + value: Opted-in + - label: >- + Indeterminate (Profiles that have not opted-out, but are excluded from + email marketing) + value: Indeterminate + dynamic: false + allowNull: false + - id: fv4EWqKBuvVFxWbZbrCyYe + sortOrder: 10 + fieldKey: email + label: Email + type: STRING + description: The email address of the user. + 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 + presets: [] + partnerOwned: true - id: 65c36c1e127fb2c8188a414c display_name: 'StackAdapt Events & Conversions ' name: 'StackAdapt Events & Conversions ' diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 2c5d663608..7142ee26e3 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-10-30 +# destination data last updated 2025-11-06 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/regional-supported.yml b/src/_data/catalog/regional-supported.yml index 835aea1e74..fc964b3352 100644 --- a/src/_data/catalog/regional-supported.yml +++ b/src/_data/catalog/regional-supported.yml @@ -940,6 +940,15 @@ sources: - us endpoints: - us + - id: DXEMCfUCQI + display_name: Rise AI + hidden: false + slug: rise-ai + url: connections/sources/catalog/cloud-apps/rise-ai + regions: + - us + endpoints: + - us - id: BbupS2SB0b display_name: Roku (alpha) hidden: false diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 04947a52c7..face989481 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-10-30 +# source categories last updated 2025-11-06 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 88b1da4c2a..42faaadd75 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-10-30 +# sources last updated 2025-11-06 items: - id: 8HWbgPTt3k display_name: .NET @@ -2173,6 +2173,26 @@ items: - SMS & Push Notifications status: PUBLIC partnerOwned: false + - id: DXEMCfUCQI + display_name: Rise AI + isCloudEventSource: true + slug: rise-ai + url: connections/sources/catalog/cloud-apps/rise-ai + hidden: false + regions: + - us + endpoints: + - us + source_type: cloud-app + description: 'Zero maintenance digital adoption ' + logo: + url: >- + https://cdn-devcenter.segment.com/61953cd3-7d99-4cbc-8d2e-c338782d5446.svg + categories: + - Livechat + - Customer Success + status: PUBLIC_BETA + partnerOwned: false - id: BbupS2SB0b display_name: Roku (alpha) isCloudEventSource: false From 545c0b4e956d5b2311167ce2384f8cd271c8de6f Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 6 Nov 2025 14:37:00 -0500 Subject: [PATCH 38/38] Update user-deletion-and-suppression.md --- src/privacy/user-deletion-and-suppression.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/privacy/user-deletion-and-suppression.md b/src/privacy/user-deletion-and-suppression.md index fc1802199c..259d82448a 100644 --- a/src/privacy/user-deletion-and-suppression.md +++ b/src/privacy/user-deletion-and-suppression.md @@ -43,7 +43,7 @@ The following Segment & Destination Regulations are available: ## Deletion Support -When you create a `SUPPRESS_WITH_DELETE` and `SUPPRESS_WITH_DELETE_INTERNAL` regulation, Segment begins to suppress new data ingestion for that user, and begins to permanently delete previously ingested data associated with this user from your workspace. This includes scanning and removing all messages related to that `userId` from all data stores that don't automatically expire data within 30 days. +When you create a Segment-only regulation, Segment begins to suppress new data ingestion for that user, and begins to permanently delete previously ingested data associated with this user from your workspace. This includes scanning and removing all messages related to that `userId` from all data stores that don't automatically expire data within 30 days. Segment deletes messages with this `userId` from the following warehouses and storage destinations: - Redshift @@ -129,4 +129,4 @@ Segment creates a `SUPPRESS` regulation, and adds the `userId` to your suppressi To remove a user from the suppression list, click the ellipses (**...**) icon on the `userId` row, and click **Remove**. -This creates an `UNSUPPRESS` regulation and removes the `userId` from your suppression list. Segment processes most `UNSUPPRESS` regulations within 24 hours. \ No newline at end of file +This creates an `UNSUPPRESS` regulation and removes the `userId` from your suppression list. Segment processes most `UNSUPPRESS` regulations within 24 hours.