From 002677fbba8343cd9c81b556ccbf8b051bb522da Mon Sep 17 00:00:00 2001 From: Samantha Crespo <100810716+samkcrespo@users.noreply.github.com> Date: Tue, 10 Sep 2024 16:12:51 -0700 Subject: [PATCH 01/63] Update destination-functions.md - add details on how to gracefully handle func errors --- src/connections/functions/destination-functions.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/connections/functions/destination-functions.md b/src/connections/functions/destination-functions.md index 915f9f6d7d..5ba6c76de1 100644 --- a/src/connections/functions/destination-functions.md +++ b/src/connections/functions/destination-functions.md @@ -92,6 +92,10 @@ You can read more about [error handling](#destination-functions-logs-and-errors) + +To ensure smooth operation of functions even when fetch calls fail, a `try-catch` block can be incorporated. This allows for the interception of any errors during the API call, enabling the application of specific error handling procedures such as error logging for future debugging or the assignment of fallback values when the API call is unsuccessful. By positioning the continuation logic either outside the `try-catch` block or within a `finally` block, the function is guaranteed to proceed with its execution, maintaining its workflow irrespective of the outcome of the API call. + + ## Create settings and secrets {% include content/functions/settings.md %} From 82c171dd70dd69aed50d0450913c89b22c0d2a7d Mon Sep 17 00:00:00 2001 From: Niall Date: Thu, 19 Sep 2024 16:33:58 +0100 Subject: [PATCH 02/63] add package implementation --- .../website/javascript/cookie-validity-update.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md b/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md index 39ab1647f2..8550e9efc8 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md +++ b/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md @@ -43,6 +43,21 @@ analytics.load('writeKey', { } }) ``` + +To set these values via the [NPM package](https://github.com/segmentio/analytics-next/tree/master/packages/browser), you can set these cookie values like so: +```js + analytics = AnalyticsBrowser.load({ + writeKey: 'writeKey' + }, { + cookie: { + domain: 'sub.site.example', + maxage: 7, // 7 days + path: '/', + sameSite: 'Lax', + secure: true + } + }) +``` > info "" > Chrome has a maximum limit of 400 days for cookies. If a value is set beyond that, then Chrome sets the upper limit to 400 days instead of rejecting it. Visit Chrome's [docs](https://developer.chrome.com/blog/cookie-max-age-expires/){:target="blank"} to learn more. From 8d7ba9f0528380c4a3a9eaae6776d62e646300fb Mon Sep 17 00:00:00 2001 From: Niall Brennan Date: Wed, 25 Sep 2024 11:08:12 +0100 Subject: [PATCH 03/63] Update src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- .../libraries/website/javascript/cookie-validity-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md b/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md index 8550e9efc8..9a6e0137f5 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md +++ b/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md @@ -44,7 +44,7 @@ analytics.load('writeKey', { }) ``` -To set these values via the [NPM package](https://github.com/segmentio/analytics-next/tree/master/packages/browser), you can set these cookie values like so: +To set the values using the [NPM package](https://github.com/segmentio/analytics-next/tree/master/packages/browser){:target="_blank"}, set the cookie values like to: ```js analytics = AnalyticsBrowser.load({ writeKey: 'writeKey' From 0d3cca5c3b686fea3402f7ba8ecbe177a1039a9f Mon Sep 17 00:00:00 2001 From: Panandhan22 <115441424+Panandhan22@users.noreply.github.com> Date: Mon, 30 Sep 2024 18:33:16 +0800 Subject: [PATCH 04/63] Click conversion v2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### what is the difference between the action "Upload Click Conversions" and "Click Conversion V2"? The only difference with the new "Click Conversion v2" action is the rollout of [sync modes]([https://developers.google.com/google-ads/api/reference/rpc/v15/ConversionUploadErrorEnum.ConversionUploadError#invalid_conversion_action_type](https://segment.com/docs/connections/destinations/#sync-modes)){:target="_blank”}. And these sync mode options will not be available for the "Upload click conversion" actions mapping over the UI. Other than that, both action mappings will work in the same way. --- .../catalog/actions-google-enhanced-conversions/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md b/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md index 96fb82a4d6..cb525d041b 100644 --- a/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md +++ b/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md @@ -181,3 +181,7 @@ To resolve this, ensure that the ConversionActionType value in Google Ads is cor ### `The required field was not present., at conversions[0].gclid` Error Events going to Google for this integration require a `GCLID` field, an `email`, or a `phone_number`. If one of those identifiers isn't being sent properly, then you may see the `The required field was not present., at conversions[0].gclid` error. To fix this, double check that at least one of those fields is being passed to Google on each payload. + +### what is the difference between the action "Upload Click Conversions" and "Click Conversion V2"? +The only difference with the new "Click Conversion v2" action is the rollout of [sync modes]([https://developers.google.com/google-ads/api/reference/rpc/v15/ConversionUploadErrorEnum.ConversionUploadError#invalid_conversion_action_type](https://segment.com/docs/connections/destinations/#sync-modes)){:target="_blank”}. And these sync mode options will not be available for the "Upload click conversion" actions mapping over the UI. Other than that, both action mappings will work in the same way. + From 554b9f3e11ae642b9cf1349ec2d289e850d013c2 Mon Sep 17 00:00:00 2001 From: Ashton Huxtable <78318468+ashton-huxtable@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:10:52 -0600 Subject: [PATCH 05/63] Add note about 'value' property in Facebook PIxel --- src/connections/destinations/catalog/facebook-pixel/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/connections/destinations/catalog/facebook-pixel/index.md b/src/connections/destinations/catalog/facebook-pixel/index.md index 6071fec508..1161ac3276 100644 --- a/src/connections/destinations/catalog/facebook-pixel/index.md +++ b/src/connections/destinations/catalog/facebook-pixel/index.md @@ -245,5 +245,9 @@ Facebook Pixel events typically don't display in real-time within the Facebook A Segment does not handle nested properties that need to be blocklisted, including the standard PII properties. If you have properties you would like to blocklist, you can use [destination filters](/docs/connections/destinations/destination-filters/) to drop those properties before they are sent downstream. +### Mapping `revenue` to `value` + +Segment pre-maps `revenue` or `total` to `value`. If you have a custom `value` property, it will be overwritten with the value from `revenue` or `total`, or it will appear as '0.00' if those two properties are not present. If you have a `value` property, a [destination middleware](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/middleware/#using-destination-middlewares){:target="_blank"} or [destination plugin](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#advanced-plugin-api){:target="_blank"} can be used to transform the name before it is sent downstream to avoid any data loss. + {% include content/client-side-script-unverified.md %} From 3fd7ceb4f33fa3b192bbb23e892c5adcc6948d96 Mon Sep 17 00:00:00 2001 From: Ashton Huxtable <78318468+ashton-huxtable@users.noreply.github.com> Date: Fri, 4 Oct 2024 09:38:34 -0600 Subject: [PATCH 06/63] Update per recommendation Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/connections/destinations/catalog/facebook-pixel/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/facebook-pixel/index.md b/src/connections/destinations/catalog/facebook-pixel/index.md index 1161ac3276..4f8dbd7080 100644 --- a/src/connections/destinations/catalog/facebook-pixel/index.md +++ b/src/connections/destinations/catalog/facebook-pixel/index.md @@ -247,7 +247,7 @@ Segment does not handle nested properties that need to be blocklisted, including ### Mapping `revenue` to `value` -Segment pre-maps `revenue` or `total` to `value`. If you have a custom `value` property, it will be overwritten with the value from `revenue` or `total`, or it will appear as '0.00' if those two properties are not present. If you have a `value` property, a [destination middleware](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/middleware/#using-destination-middlewares){:target="_blank"} or [destination plugin](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#advanced-plugin-api){:target="_blank"} can be used to transform the name before it is sent downstream to avoid any data loss. +Segment pre-maps `revenue` or `total` to `value`. If you have a custom `value` property, it's overwritten with the value from `revenue` or `total`, or it appears as '0.00' if those two properties aren't present. If you have a `value` property, you can use a [destination middleware](/docs/connections/sources/catalog/libraries/website/javascript/middleware/#using-destination-middlewares) or [destination plugin](/docs/connections/sources/catalog/libraries/website/javascript/#advanced-plugin-api){:target="_blank"} to transform the name before it is sent downstream to avoid any data loss. {% include content/client-side-script-unverified.md %} From ba0a256ce358829464ff79d702ba274d5ce08061 Mon Sep 17 00:00:00 2001 From: Atif Javed <46914900+muhammadatifjav@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:31:53 +1100 Subject: [PATCH 07/63] Add faqs about null values --- src/engage/faqs.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/engage/faqs.md b/src/engage/faqs.md index d8d2e8b842..048edace2e 100644 --- a/src/engage/faqs.md +++ b/src/engage/faqs.md @@ -84,6 +84,10 @@ In this example, `anonymous_id: a1` is not reset during a `User Logout`. Without This is especially helpful for preventing "blob users" that are merged together by non-unique anonymous IDs or by common group emails like `team@company.com`. +## Can we remove a trait from a User profile? + +To remove a trait from a user profile, you can send in a key-value pair in the properties object with null as the value for that trait from one of the connected sources. E.g. `"properties": {"trait1": null, ...}, ....` Sending in an empty string i.e. `trait2: ""` will also have the same effect. + ## Which destinations support syncing the identity graph? Most destinations on the Segment Platform are built up around a user model. They assume that a user will have a single userId. Further, most Destinations are not built to handle anonymous traffic. From aced8683e557ac6fdee1d727c2ebf12ba6d5b71f Mon Sep 17 00:00:00 2001 From: Atif Javed <46914900+muhammadatifjav@users.noreply.github.com> Date: Mon, 28 Oct 2024 18:01:41 +1100 Subject: [PATCH 08/63] Update faqs.md reverting change --- src/engage/faqs.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/engage/faqs.md b/src/engage/faqs.md index 048edace2e..d8d2e8b842 100644 --- a/src/engage/faqs.md +++ b/src/engage/faqs.md @@ -84,10 +84,6 @@ In this example, `anonymous_id: a1` is not reset during a `User Logout`. Without This is especially helpful for preventing "blob users" that are merged together by non-unique anonymous IDs or by common group emails like `team@company.com`. -## Can we remove a trait from a User profile? - -To remove a trait from a user profile, you can send in a key-value pair in the properties object with null as the value for that trait from one of the connected sources. E.g. `"properties": {"trait1": null, ...}, ....` Sending in an empty string i.e. `trait2: ""` will also have the same effect. - ## Which destinations support syncing the identity graph? Most destinations on the Segment Platform are built up around a user model. They assume that a user will have a single userId. Further, most Destinations are not built to handle anonymous traffic. From a5754919a35906fbd77af95ba532e893bec167b3 Mon Sep 17 00:00:00 2001 From: Atif Javed <46914900+muhammadatifjav@users.noreply.github.com> Date: Mon, 28 Oct 2024 18:13:46 +1100 Subject: [PATCH 09/63] Update faqs.md Added the Faq to unify section and added some clarity --- src/unify/faqs.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/unify/faqs.md b/src/unify/faqs.md index 251af20490..4a83735a22 100644 --- a/src/unify/faqs.md +++ b/src/unify/faqs.md @@ -54,6 +54,9 @@ No. As the Identity Graph uses ExternalIDs, they remain for the lifetime of the ### Can I delete specific events from a user profile in Unify? No. Alternatively, you may delete the entire user profile from Segment using a [GDPR deletion request](/docs/privacy/user-deletion-and-suppression/). +## Can I remove a trait from a User profile? +To remove a trait from a user profile, you can send in an identify event with null as the value for the trait in the traits object from one of the connected sources. E.g. `"traits": {"trait1": null, ..}, ...`. Note that sending in an empty string (i.e. `"traits": {"trait2": "", ..}, ...` will update the trait to be an 'empty' string, and will not remove the trait from the user profile. + ### How does profile creation affect MTUs, particularly where a profile isn't merged with the parent profile due to exceeding the merge limit? Segment determines the Monthly Tracked Users (MTUs) count by the number of unique user IDs and anonymous IDs processed, regardless of how you manage these profiles in Unify and Engage. This count is taken as events are sent to Segment, before they reach Unify and Engage. Therefore, the creation of new profiles or the merging of profiles in Unify doesn't affect the MTU count. The MTU count only increases when you send new unique user or anonymous IDs to Segment. From bcb7dacb99477a27316c1f3c4a132868a614d9f2 Mon Sep 17 00:00:00 2001 From: Ashton Huxtable <78318468+ashton-huxtable@users.noreply.github.com> Date: Thu, 31 Oct 2024 14:12:54 -0600 Subject: [PATCH 10/63] Add FAQ on omitted properties --- src/protocols/faq.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/protocols/faq.md b/src/protocols/faq.md index d91b5cdb6e..fedfe06638 100644 --- a/src/protocols/faq.md +++ b/src/protocols/faq.md @@ -148,6 +148,10 @@ That being said, there are plenty of scenarios where the reactive Schema functio Blocked events are blocked from sending to all Segment Destinations, including warehouses and streaming Destinations. When an Event is blocked using a Tracking Plan, it does not count towards your MTU limit. They will, however, count toward your MTU limit if you enable [blocked event forwarding](/docs/protocols/enforce/forward-blocked-events/) in your Source settings. +### If I omit unplanned properties or properties that generate JSON schema violations, what happens to them? + +Properties that are omitted due to JSON Schema Violations or being unplanned are not stored in Segment logs. Segment only stores fully blocked events for 30 days. Omitted properties are dropped from the events and can only be found in the `context.violations` object of an event payload. If Violations are forwarded to a new source, then the omitted properties can also be seen in the Violation Generated event under `violationField` in the `properties` object of the event. + ### Why am I seeing unplanned properties/traits in the payload when violations are triggered, despite using schema controls to omit them? If you're seeing unplanned properties/traits in your payload despite using Schema Controls, you might want to select a new degree of blocking controls. From 694f57fd1662f00fe80838a2f847e0ddd7de44fb Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:56:46 -0800 Subject: [PATCH 11/63] Apply suggestions from code review --- src/unify/faqs.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/unify/faqs.md b/src/unify/faqs.md index 4a83735a22..215c4c517d 100644 --- a/src/unify/faqs.md +++ b/src/unify/faqs.md @@ -54,8 +54,8 @@ No. As the Identity Graph uses ExternalIDs, they remain for the lifetime of the ### Can I delete specific events from a user profile in Unify? No. Alternatively, you may delete the entire user profile from Segment using a [GDPR deletion request](/docs/privacy/user-deletion-and-suppression/). -## Can I remove a trait from a User profile? -To remove a trait from a user profile, you can send in an identify event with null as the value for the trait in the traits object from one of the connected sources. E.g. `"traits": {"trait1": null, ..}, ...`. Note that sending in an empty string (i.e. `"traits": {"trait2": "", ..}, ...` will update the trait to be an 'empty' string, and will not remove the trait from the user profile. +## Can I remove a trait from a user profile? +To remove a trait from a user profile, send an identify event with null as the value for the trait in the traits object from one of the connected sources. For example, `"traits": {"trait1": null, ..}, ...`. Note that sending in an empty string such as,`"traits": {"trait2": "", ..}, ...` updates the trait to be an 'empty' string and won't remove the trait from the user profile. ### How does profile creation affect MTUs, particularly where a profile isn't merged with the parent profile due to exceeding the merge limit? Segment determines the Monthly Tracked Users (MTUs) count by the number of unique user IDs and anonymous IDs processed, regardless of how you manage these profiles in Unify and Engage. This count is taken as events are sent to Segment, before they reach Unify and Engage. Therefore, the creation of new profiles or the merging of profiles in Unify doesn't affect the MTU count. The MTU count only increases when you send new unique user or anonymous IDs to Segment. From 88b33b934804d92300ee666b433ca22275d53a6b Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:58:43 -0800 Subject: [PATCH 12/63] Update src/unify/faqs.md --- src/unify/faqs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/faqs.md b/src/unify/faqs.md index 215c4c517d..cce2cce467 100644 --- a/src/unify/faqs.md +++ b/src/unify/faqs.md @@ -54,7 +54,7 @@ No. As the Identity Graph uses ExternalIDs, they remain for the lifetime of the ### Can I delete specific events from a user profile in Unify? No. Alternatively, you may delete the entire user profile from Segment using a [GDPR deletion request](/docs/privacy/user-deletion-and-suppression/). -## Can I remove a trait from a user profile? +### Can I remove a trait from a user profile? To remove a trait from a user profile, send an identify event with null as the value for the trait in the traits object from one of the connected sources. For example, `"traits": {"trait1": null, ..}, ...`. Note that sending in an empty string such as,`"traits": {"trait2": "", ..}, ...` updates the trait to be an 'empty' string and won't remove the trait from the user profile. ### How does profile creation affect MTUs, particularly where a profile isn't merged with the parent profile due to exceeding the merge limit? From 8f3f58e6b81824059ff5a956bbb8679c2c087271 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Sun, 17 Nov 2024 19:10:30 -0600 Subject: [PATCH 13/63] cleanup --- src/unify/faqs.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/unify/faqs.md b/src/unify/faqs.md index cce2cce467..46644119e5 100644 --- a/src/unify/faqs.md +++ b/src/unify/faqs.md @@ -9,13 +9,13 @@ Yes, Identity Graph supports multiple external IDs. Identity Graph automatically collects a rich set of external IDs without any additional code: -1. Device level IDs (ex: `anonymous_id`, `ios.idfa` and `android.id`) -2. Device token IDs (ex: `ios.push_token` and `android_push_token`) -3. User level IDs (ex: `user_id`) +1. Device level IDs (example: `anonymous_id`, `ios.idfa` and `android.id`) +2. Device token IDs (example: `ios.push_token` and `android_push_token`) +3. User level IDs (example: `user_id`) 4. Common external IDs (`email`) -5. Cross domain analytics IDs (`cross_domain_id`) +5. Cross-domain analytics IDs (`cross_domain_id`) -If you want Identity Graph to operate on a different custom ID, you can pass it in using `context.externalIds` on an `identify()` or `track()`. If you're interested in this feature, contact your CSM to discuss the best way to implement this feature. +If you want Identity Graph to operate on a different custom ID, you can pass it in using `context.externalIds` on an [Identify](/docs/connections/spec/identify/) or [Track call](/docs/connections/spec/identify/). If you're interested in this feature, contact your CSM to discuss the best way to implement this feature. ## How does Unify handle identity merging? Each incoming event is analyzed and external IDs are extracted (`user_id`, `anonymous_id`, `email`). The simplified algorithm works as follows: From 44fcd00b9be78d2178260969e293b0e66fde34eb Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Sun, 17 Nov 2024 19:17:04 -0600 Subject: [PATCH 14/63] clean up new FAQ --- src/unify/faqs.md | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/unify/faqs.md b/src/unify/faqs.md index 46644119e5..a42a113118 100644 --- a/src/unify/faqs.md +++ b/src/unify/faqs.md @@ -18,13 +18,13 @@ Identity Graph automatically collects a rich set of external IDs without any add If you want Identity Graph to operate on a different custom ID, you can pass it in using `context.externalIds` on an [Identify](/docs/connections/spec/identify/) or [Track call](/docs/connections/spec/identify/). If you're interested in this feature, contact your CSM to discuss the best way to implement this feature. ## How does Unify handle identity merging? -Each incoming event is analyzed and external IDs are extracted (`user_id`, `anonymous_id`, `email`). The simplified algorithm works as follows: +Segment analyzes each incoming event and extracts external IDs (like `user_id`, `anonymous_id`, `email`). The simplified algorithm works as follows: 1. Segment first searches the Identity Graph for incoming external IDs. 2. If Segment finds no matching profile(s), it creates one. -3. If Segment finds one profile, it merges the incoming event with that profile. (This means that Segment adds the external IDs on the incoming message and resolves the event to the profile.) +3. If Segment finds one profile, it merges the incoming event with that profile. This means that Segment adds the external IDs on the incoming message and resolves the event to the profile. 4. If Segment finds multiple matching profiles, Segment applies the identity resolution settings for merge protection. Specifically, Segment uses identifier limits and priorities to add the correct identifiers to the profile. -5. Segment then applies [limits](/docs/unify/profile-api-limits/) to ensure profiles remain under these limits. Segment doesn't add any further merges or mappings if the profile is at either limit, but event resolution for the profile will continue. +5. Segment then [applies limits](/docs/unify/profile-api-limits/) to ensure profiles remain under these limits. Segment doesn't add any further merges or mappings if the profile is at either limit, but event resolution for the profile will continue. {% comment %} @@ -48,17 +48,37 @@ If two merged user profiles contain conflicting profile attributes, Segment sele Any of the external IDs can be used to query a profile. When a profile is requested, Segment traverses the merge graph and resolves all merged profiles. The result is a single profile, with the latest state of all traits, events, and identifiers. -### Can ExternalID's be changed or removed from the profiles? -No. As the Identity Graph uses ExternalIDs, they remain for the lifetime of the user profile. +### Can external IDs be changed or removed from the profiles? +No. As the Identity Graph uses external IDs, they remain for the lifetime of the user profile. ### Can I delete specific events from a user profile in Unify? No. Alternatively, you may delete the entire user profile from Segment using a [GDPR deletion request](/docs/privacy/user-deletion-and-suppression/). -### Can I remove a trait from a user profile? -To remove a trait from a user profile, send an identify event with null as the value for the trait in the traits object from one of the connected sources. For example, `"traits": {"trait1": null, ..}, ...`. Note that sending in an empty string such as,`"traits": {"trait2": "", ..}, ...` updates the trait to be an 'empty' string and won't remove the trait from the user profile. - ### How does profile creation affect MTUs, particularly where a profile isn't merged with the parent profile due to exceeding the merge limit? Segment determines the Monthly Tracked Users (MTUs) count by the number of unique user IDs and anonymous IDs processed, regardless of how you manage these profiles in Unify and Engage. This count is taken as events are sent to Segment, before they reach Unify and Engage. Therefore, the creation of new profiles or the merging of profiles in Unify doesn't affect the MTU count. The MTU count only increases when you send new unique user or anonymous IDs to Segment. ### What is the event lookback period on the Profile Explorer? The [Profile Explorer](/docs/unify/#profile-explorer) retains event details for a period of up to 2 weeks. If you need event information beyond this timeframe, Segment recommends using [Profiles Sync](/docs/unify/profiles-sync/overview/) for comprehensive event analysis and retention. + +### Can I remove a trait from a user profile? + +Yes, you can remove a trait from a user profile by sending an identify event with the trait value set to `null` in the traits object from one of your connected sources. For example: + +```json +{ + "traits": { + "trait1": null + } +} +``` +Setting the trait value to an empty string won't remove the trait, like in this example: + +```json +{ + "traits": { + "trait2": "" + } +} +``` + +Instead, this updates the trait to an empty string within the user profile. From d49136cec9d765deec7ad89bd71975dae2d7b4f0 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Sun, 17 Nov 2024 19:17:37 -0600 Subject: [PATCH 15/63] style Identify call --- src/unify/faqs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/unify/faqs.md b/src/unify/faqs.md index a42a113118..189654b8de 100644 --- a/src/unify/faqs.md +++ b/src/unify/faqs.md @@ -62,7 +62,7 @@ The [Profile Explorer](/docs/unify/#profile-explorer) retains event details for ### Can I remove a trait from a user profile? -Yes, you can remove a trait from a user profile by sending an identify event with the trait value set to `null` in the traits object from one of your connected sources. For example: +Yes, you can remove a trait from a user profile by sending an Identify event with the trait value set to `null` in the traits object from one of your connected sources. For example: ```json { From 3905b1948c1c20b15d6257b7396bdced8cd9eee1 Mon Sep 17 00:00:00 2001 From: joeynmq <37472597+joeynmq@users.noreply.github.com> Date: Tue, 19 Nov 2024 17:08:08 +0800 Subject: [PATCH 16/63] Update setup.md --- src/connections/reverse-etl/setup.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md index ba795eb770..3d8674d27a 100644 --- a/src/connections/reverse-etl/setup.md +++ b/src/connections/reverse-etl/setup.md @@ -50,6 +50,10 @@ Models define sets of data you want to sync to your Reverse ETL destinations. A ### dbt model Use Segment's dbt extension to centralize model management and versioning. Users who set up a BigQuery, Databricks, Postgres, Redshift, or Snowflake source 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. +> warning "Limitation" +> Please be aware that if there are **5** mappings with a dbt Cloud schedule for a model, you will not be able to create additional mappings with the same dbt Cloud schedule type, regardless of the account or job selected. The limit applies per model. + + ## Step 3: Add a destination In Reverse ETL, destinations are the business tools or apps you use that Segment syncs the data from your warehouse to. A model can have multiple destinations. From 243ccfbd3606a380c4a88e52a4522f5855f8973e Mon Sep 17 00:00:00 2001 From: Samantha Crespo <100810716+samkcrespo@users.noreply.github.com> Date: Thu, 21 Nov 2024 10:59:24 -0800 Subject: [PATCH 17/63] Update insert-functions.md - faq (can i connect multiple functions to one destination) --- src/connections/functions/insert-functions.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/connections/functions/insert-functions.md b/src/connections/functions/insert-functions.md index c43b130209..adf1db93f5 100644 --- a/src/connections/functions/insert-functions.md +++ b/src/connections/functions/insert-functions.md @@ -506,7 +506,11 @@ Insert Functions are only supported by Cloud Mode (server-side) destinations and ##### Can I connect an insert function to multiple destinations? -Yes, an insert function can be connected to multiple destinations. +Yes, an insert function can be connected to multiple destinations. + +##### Can I connect multiple insert functions to one destination? + +No, a destination can have only one insert function connected to it at any given time. ##### Can I have destination filters and a destination insert function in the same connection? From ab56b2749de761ad048a9ca270c7ca4bdfd56683 Mon Sep 17 00:00:00 2001 From: "balint.bozoki" Date: Fri, 29 Nov 2024 10:53:51 +0100 Subject: [PATCH 18/63] antavo destination docs --- .../antavo/images/1-antavo-select_type.png | Bin 0 -> 43748 bytes .../antavo/images/2-antavo-map_fields.png | Bin 0 -> 46332 bytes .../destinations/catalog/antavo/index.md | 29 ++++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 src/connections/destinations/catalog/antavo/images/1-antavo-select_type.png create mode 100644 src/connections/destinations/catalog/antavo/images/2-antavo-map_fields.png create mode 100644 src/connections/destinations/catalog/antavo/index.md diff --git a/src/connections/destinations/catalog/antavo/images/1-antavo-select_type.png b/src/connections/destinations/catalog/antavo/images/1-antavo-select_type.png new file mode 100644 index 0000000000000000000000000000000000000000..593ef24eb81b56b3a2afe444b6bf886f204f2695 GIT binary patch literal 43748 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�c5I!1V-l%Z0!<9zVg=EutPuQ{ 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 literal 0 HcmV?d00001 diff --git a/src/connections/destinations/catalog/antavo/images/2-antavo-map_fields.png b/src/connections/destinations/catalog/antavo/images/2-antavo-map_fields.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc4f2d85943f632e95382c7ed0b24f6902227f4 GIT binary patch literal 46332 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 KU;3Wd?7skZa;9DY literal 0 HcmV?d00001 diff --git a/src/connections/destinations/catalog/antavo/index.md b/src/connections/destinations/catalog/antavo/index.md new file mode 100644 index 0000000000..da54ff7057 --- /dev/null +++ b/src/connections/destinations/catalog/antavo/index.md @@ -0,0 +1,29 @@ +``` +title: Antavo Actions Destination +``` + +Antavo Actions Destination app allows you to sync profile updates in Segment and trigger loyalty events. + +This destination app is maintained by Antavo. For any issues with the destination app, [contact the Antavo support team](mailto:support@antavo.com). + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Antavo Actions". +2. Select and click **Add Destination**. +3. Select an existing Source to connect to Antavo Actions. +4. Log in to Antavo and go to the **Settings → API Settings** menu; find and copy your Antavo **API key**. +5. Paste the **API Key** in the destination settings in Segment. +6. Go to mappings to set events you want to sync into Antavo + - Select the Profile event template to sync customer data changes into Antavo + - in this template, you need to map the customer ID first, which should match with the Antavo settings + - if the multi-account extension is enabled in Antavo, you need to make sure to include the account ID + - customer attributes be included in the Data section - make sure attribute names match your Antavo settings + + ![Enable Twilio Segment extension](images/1-antavo-select_type.png) + - Select the Loyalty event template to trigger loyalty events. + - in this template, you need to map the customer ID first, which should match with the Antavo settings + - if the multi-account extension is enabled in Antavo, you need to make sure to include the account ID + - event attributes can be included in the Data section - make sure attribute names match your Antavo settings + + ![Enable Twilio Segment extension](images/2-antavo-map_fields.png) +7. If you haven’t configured the Segment integration in Antavo, please go to the Modules menu and enable Twilio Segment Extension From f14509e99102fe195434cde21eaf0bbcb24007dd Mon Sep 17 00:00:00 2001 From: "balint.bozoki" Date: Fri, 29 Nov 2024 16:24:44 +0100 Subject: [PATCH 19/63] quote character fix --- src/connections/destinations/catalog/antavo/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/antavo/index.md b/src/connections/destinations/catalog/antavo/index.md index da54ff7057..0d7aa9d221 100644 --- a/src/connections/destinations/catalog/antavo/index.md +++ b/src/connections/destinations/catalog/antavo/index.md @@ -8,7 +8,7 @@ This destination app is maintained by Antavo. For any issues with the destinatio ## Getting started -1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "Antavo Actions". +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"} search for "Antavo Actions". 2. Select and click **Add Destination**. 3. Select an existing Source to connect to Antavo Actions. 4. Log in to Antavo and go to the **Settings → API Settings** menu; find and copy your Antavo **API key**. From 6bd50d2ce9a3ec07f021814675f2444b1ed9d1f0 Mon Sep 17 00:00:00 2001 From: "balint.bozoki" Date: Wed, 4 Dec 2024 16:46:21 +0100 Subject: [PATCH 20/63] updated text + removed images --- .../antavo/images/1-antavo-select_type.png | Bin 43748 -> 0 bytes .../antavo/images/2-antavo-map_fields.png | Bin 46332 -> 0 bytes .../destinations/catalog/antavo/index.md | 37 ++++++------------ 3 files changed, 13 insertions(+), 24 deletions(-) delete mode 100644 src/connections/destinations/catalog/antavo/images/1-antavo-select_type.png delete mode 100644 src/connections/destinations/catalog/antavo/images/2-antavo-map_fields.png diff --git a/src/connections/destinations/catalog/antavo/images/1-antavo-select_type.png b/src/connections/destinations/catalog/antavo/images/1-antavo-select_type.png deleted file mode 100644 index 593ef24eb81b56b3a2afe444b6bf886f204f2695..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43748 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�c5I!1V-l%Z0!<9zVg=EutPuQ{ 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 diff --git a/src/connections/destinations/catalog/antavo/images/2-antavo-map_fields.png b/src/connections/destinations/catalog/antavo/images/2-antavo-map_fields.png deleted file mode 100644 index ddc4f2d85943f632e95382c7ed0b24f6902227f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46332 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 KU;3Wd?7skZa;9DY diff --git a/src/connections/destinations/catalog/antavo/index.md b/src/connections/destinations/catalog/antavo/index.md index 0d7aa9d221..32b7a397eb 100644 --- a/src/connections/destinations/catalog/antavo/index.md +++ b/src/connections/destinations/catalog/antavo/index.md @@ -1,29 +1,18 @@ -``` -title: Antavo Actions Destination -``` +--- +title: Antavo (Actions) Destination +--- -Antavo Actions Destination app allows you to sync profile updates in Segment and trigger loyalty events. - -This destination app is maintained by Antavo. For any issues with the destination app, [contact the Antavo support team](mailto:support@antavo.com). +The Antavo (Actions) Destination allows you to sync profile updates in Segment and trigger loyalty events. +This destination is maintained by Antavo. For any issues with the destination, [contact the Antavo support team](mailto:support@antavo.com). ## Getting started -1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"} search for "Antavo Actions". -2. Select and click **Add Destination**. -3. Select an existing Source to connect to Antavo Actions. -4. Log in to Antavo and go to the **Settings → API Settings** menu; find and copy your Antavo **API key**. +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"} search for **Antavo (Actions)**. +2. Click **Add Destination**. +3. Select an existing Source to connect to Antavo (Actions). +4. Log in to Antavo and go to the **Settings > API Settings** and copy your Antavo **API key**. 5. Paste the **API Key** in the destination settings in Segment. -6. Go to mappings to set events you want to sync into Antavo - - Select the Profile event template to sync customer data changes into Antavo - - in this template, you need to map the customer ID first, which should match with the Antavo settings - - if the multi-account extension is enabled in Antavo, you need to make sure to include the account ID - - customer attributes be included in the Data section - make sure attribute names match your Antavo settings - - ![Enable Twilio Segment extension](images/1-antavo-select_type.png) - - Select the Loyalty event template to trigger loyalty events. - - in this template, you need to map the customer ID first, which should match with the Antavo settings - - if the multi-account extension is enabled in Antavo, you need to make sure to include the account ID - - event attributes can be included in the Data section - make sure attribute names match your Antavo settings - - ![Enable Twilio Segment extension](images/2-antavo-map_fields.png) -7. If you haven’t configured the Segment integration in Antavo, please go to the Modules menu and enable Twilio Segment Extension +6. Configure your mappings to set events you want to sync to Antavo. You can choose from 2 actions: Send Loyalty Event and Send Profile Update. + - If the multi-account extension is enabled in Antavo, make sure to include the account ID. + - If customer attributes are included in the Data section - make sure attribute names match your Antavo settings. +7. If you haven’t configured the Segment integration in Antavo, go to the **Modules** menu and enable the Twilio Segment Extension in Antavo. From 81043c828c38435afb3b43e7bd2d5d8e9803a493 Mon Sep 17 00:00:00 2001 From: maxmilhan <34718789+maxmilhan@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:26:59 -0500 Subject: [PATCH 21/63] clarify destination activation steps --- .../journeys/event-triggered-journeys.md | 53 +++++++++++++++---- 1 file changed, 44 insertions(+), 9 deletions(-) diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/event-triggered-journeys.md index 24de8a47e2..cbc5360337 100644 --- a/src/engage/journeys/event-triggered-journeys.md +++ b/src/engage/journeys/event-triggered-journeys.md @@ -37,15 +37,50 @@ To set up an event-triggered journey: 3. Give your new journey a name and, optionally, a description. 4. Select entry event: - Choose the event that will trigger user entry into the journey. - - (*Optional*) Use an audience filter to restrict entry to users who are already part of a specific audience. + - (*Optional*) Use an audience filter to restrict entry to users who are already part of a specific audience when they perform the triggering event. - (*Optional*) Apply filters based on event property values to refine entry conditions. For example, enter only if `{property} = value A, value B, or value C`. 5. Configure entry rules: - **Re-enter every time event occurs** (*default*): Users enter the journey each time they trigger the specified event. - **Enter one time**: Users enter the journey once only, regardless of repeated event triggers. -6. **If you chose Re-enter every time event occurs in Step 5**, select a [unique identifier](#unique-identifiers). -7. Configure event delivery to destinations by selecting a destination or setting up a custom destination function. -8. Preview the contextual payload that Segment will send to your destination(s). -9. After you've finished setting up your journey, click **Publish**, then click **Publish** again in the popup. +6. **If you chose Re-enter every time event occurs in Step 5**, select a [unique identifier](#unique-identifiers). +7. Build your journey using logical operators. +8. Configure event delivery to destinations by selecting a destination or setting up a custom destination function. +9. Preview the contextual payload that Segment will send to your destination(s). +10. After you've finished setting up your journey, click **Publish**, then click **Publish** again in the popup. + +### Send data to downstream destinations + +When a journey instance reaches a **Send to Destination** step, you can configure how data is sent to your desired destination. This step allows you to define where the data goes, what actions are performed, and how information is mapped, giving you control over the integration. Event-Triggered Journeys currently supports all [Actions Destinations](docs/connections/destinations/actions/). + +For other destinations or more complex logic, you can use [Destination Functions](/docs/connections/functions/destination-functions/). + +#### Configure the Destination Send Step + +1. **Select a Destination** + Choose the destination where you want to send data. Currently, only [Actions Destinations](docs/connections/destinations/actions/) and [Destination Functions](/docs/connections/functions/destination-functions/) are supported. + +2. **Choose an Action** + Specify the action to take within the selected destination. For example, you might update a user profile, trigger an email, or log an event. + +3. **Define the Event Name** + Add a descriptive event name to send to your destination. + +4. **Define the Payload Attributes** + - The **journey context** provides a set of attributes from the entry event or events used in the Hold Until operator that can be included in the payload. + - You may also add a user's profile traits to the destination payload. + - Review the available attributes and decide which ones to include in your data send. + +5. **Map Attributes to Destination Keys** + - Use the mapping interface to link payload attributes to the appropriate keys required by the destination. + - For example, map `user_email` from the journey context to the `email` field expected by the destination. + +6. **Test the Integration** + - Send a **test event** to validate the configuration. + - Ensure that the data is received correctly by the destination and mapped as expected. + +#### Behind the Scenes + +When a journey reaches this step, the system prepares and sends the payload based on your configuration. The integration ensures compatibility with the selected destination’s API, allowing seamless data transfer and execution of the specified action. ### Journey setup configuration options @@ -62,11 +97,11 @@ When you select **Re-enter every time event occurs** when you create an event-tr For example, in an abandonment journey, suppose a user starts two applications (like `application_started`), each with a different `application_id`. By setting `application_id` as the unique identifier, Segment can match follow-up events (like `application_completed`) to the correct application journey. As a result, each journey instance only receives the completion event for its specific application. -#### Send data to downstream destinations +### Notes and Limitations -Event-Triggered Journeys lets you send journey data to supported destinations, facilitating real-time, personalized messaging. Event-Triggered Journeys supports the [Braze (Actions)](/docs/connections/destinations/catalog/actions-braze-cloud/), [Customer.io (Actions)](/docs/connections/destinations/catalog/actions-customerio/), and [Iterable (Actions)](/docs/connections/destinations/catalog/actions-iterable/) destinations. +- **Supported Destinations:** Currently, only Actions Destinations in the Segment catalog are supported. +- **Data Mapping:** Ensure all required keys for the destination are properly mapped to avoid errors. -For other destinations, you can use [Destination Functions](/docs/connections/functions/destination-functions/) to run additional logic, like enriching with [Profile API traits](/docs/unify/profile-api/) or filtering the payload. ## Best practices @@ -87,7 +122,7 @@ Segment built Event-Triggered Journeys to respond instantly to events, offering - **Entry event requirements**: The entry event you use must already exist in your Segment workspace for it to appear as a selection in journey setup. Make sure that you've already created the event before setting up your journey. - **Event property filters**: You can filter event properties using the `equals` or `equals any of` operators. When you apply multiple conditions, filters operate with `AND` logic, meaning all conditions must be true for the event to trigger entry into the journey. - **Audience filtering**: You can only use active, pre-existing audience records as filters. For more complex filtering, like specific profile traits or multiple audiences, first [create the audience](/docs/engage/audiences/#building-an-audience) in **Engage > Audiences**, then apply it as a filter once it’s live. -- **Destination options**: While Event-Triggered Journeys support several [actions-based destinations](/docs/connections/destinations/actions/) (like Braze, Customer.io, and Iterable) you can only add one destination for each journey instance. For other destinations, use a Destination Function to apply custom logic to the payload. +- **Destination options**: While Event-Triggered Journeys support all [actions-based destinations](/docs/connections/destinations/actions/) and Destination Functions, you can currently only add one destination per Send to Destination step. If you need to send to multiple destinations, you can use multiple Send to Destination steps. - **Event payload structure**: Each payload sent to a destination includes a unique key to identify the specific send step within the journey, rather than the journey instance itself. You can also set a custom event name to make it easier to identify the specific event instance you want to track in your destination. - **Editing and versioning**: After you publish an event-triggered journey, you won't be able to edit it. To modify a journey, create a new journey. - **Real-time delivery**: Event-Triggered Journeys aim for an expected delivery time of under 5 minutes from the moment an event is performed to when the payload reaches the destination, assuming there is no delay step in the journey. However, external factors outside of Segment's control may occasionally introduce latency. From 1016f2573cfdc52007e0b36a85c17ec1ad4f91fd Mon Sep 17 00:00:00 2001 From: prigiattiperrut <47340158+prigiattiperrut@users.noreply.github.com> Date: Thu, 12 Dec 2024 09:59:17 -0300 Subject: [PATCH 22/63] Update index.md --- .../sources/catalog/libraries/website/javascript/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/connections/sources/catalog/libraries/website/javascript/index.md b/src/connections/sources/catalog/libraries/website/javascript/index.md index a247af0176..f62e0e9330 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/index.md +++ b/src/connections/sources/catalog/libraries/website/javascript/index.md @@ -838,6 +838,9 @@ So, for example, if somebody follows the link with above query string to your si Whenever the UTM parameters are no longer a part of the URL, Segment no longer includes them. For example, if the user goes to a new page within your website which does not contain these parameters, they will not be included in subsequent events. UTM parameters are non-persistent by default as they could potentially cause data accuracy problems. Here's an example of why: Say a user clicks on an ad and lands on your site. He navigates around and bookmarks an internal page - or maybe shares a link with a friend, who shares it with another friend. All those links would then point back to the same test utm_source as the initial referrer for any purchase. +**Additional Note**: +Segment does not validate UTM parameter names. This design supports the flexibility to track both standard parameters (e.g., utm_source, utm_medium) and custom parameters defined by users. As a result, all parameters present in the URL are collected as-is and added to the context field, without checks for naming conventions or validity. + ## Analytics.js performance The Analytics.js library and all Destination libraries are loaded with the [HTML script `async` tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-async){:target="_blank"}. This also means that Segment fires methods asynchronously, so you should adjust your code accordingly if you require that events be sent from the browser in a specific order. From 2fca0861fd688c935726ec61aab139fefb374c38 Mon Sep 17 00:00:00 2001 From: prigiattiperrut <47340158+prigiattiperrut@users.noreply.github.com> Date: Thu, 12 Dec 2024 15:04:36 -0300 Subject: [PATCH 23/63] Update index.md --- .../libraries/website/javascript/index.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/connections/sources/catalog/libraries/website/javascript/index.md b/src/connections/sources/catalog/libraries/website/javascript/index.md index f62e0e9330..45c9a5fb3f 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/index.md +++ b/src/connections/sources/catalog/libraries/website/javascript/index.md @@ -841,6 +841,24 @@ Whenever the UTM parameters are no longer a part of the URL, Segment no longer i **Additional Note**: Segment does not validate UTM parameter names. This design supports the flexibility to track both standard parameters (e.g., utm_source, utm_medium) and custom parameters defined by users. As a result, all parameters present in the URL are collected as-is and added to the context field, without checks for naming conventions or validity. +If you want to ensure that only standard UTM parameters (e.g., utm_source, utm_medium, utm_campaign, utm_content, utm_term) are included in the context.campaign object, you can implement [Source middleware](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/middleware/) in your analytics.js setup. Here’s an example: + +```js +window.analytics.addSourceMiddleware(({ payload, next }) => { + if (payload.obj.context?.campaign) { + const allowedFields = ["source", "medium", "term", "campaign", "content"]; + const campaign = payload.obj.context.campaign; + Object.keys(campaign).forEach(key => { + if (!allowedFields.includes(key)) { + delete campaign[key]; + } + }); + } + next(payload); +}); +``` +This middleware will filter out any non-standard parameters from the context.campaign object before they are sent to Segment or forwarded to your enabled destinations. + ## Analytics.js performance The Analytics.js library and all Destination libraries are loaded with the [HTML script `async` tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script#attr-async){:target="_blank"}. This also means that Segment fires methods asynchronously, so you should adjust your code accordingly if you require that events be sent from the browser in a specific order. From 2333242437db07c2890dd42bcbc1fe84da5f0c3d Mon Sep 17 00:00:00 2001 From: Niall Date: Fri, 13 Dec 2024 11:44:16 +0000 Subject: [PATCH 24/63] object support --- .../destinations/catalog/actions-google-sheets/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/connections/destinations/catalog/actions-google-sheets/index.md b/src/connections/destinations/catalog/actions-google-sheets/index.md index fe6b9ad858..c0358dc976 100644 --- a/src/connections/destinations/catalog/actions-google-sheets/index.md +++ b/src/connections/destinations/catalog/actions-google-sheets/index.md @@ -58,3 +58,7 @@ When syncing data to Google Sheets, the columns will be arranged alphabetically, ### Can I add or remove columns after data has been synced? Once data has been synced to Google Sheets, any subsequent addition or removal of columns in the RETL Model and/or Mapping may lead to misalignment of existing data, as Segment does not retroactively adjust previously synced data. For updates involving column modifications, Segment recommends starting with a new Sheet to ensure data integrity. + +### Can I send objects to Google Sheets? + +Sending a JavaScript Object is not a supported data type in Google Sheets. You would need to stringify this property first, failure to do so may result in a `400` error. Our Actions mapping framework supports encoding Objects as Strings via the `json(properties, encode)` method. Alternatively an Insert Function can be used to modify the property. From 80cdb2d91f260079fa870b8541c77ce6acc9d08f Mon Sep 17 00:00:00 2001 From: Panandhan22 <115441424+Panandhan22@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:48:00 +0800 Subject: [PATCH 25/63] Unable to view/edit the mapping as expected, and it is throwing a 'Couldn't load page' error. It might be due to the browser cache or the event property name containing a "/". To resolve this, try clearing the browser cache or accessing the mapping page in an Incognito window. Additionally, check if the property name mapped in the mapping contains a "/". If so, please try renaming the property name without the "/" and map it in the mapping to avoid this error. --- src/connections/destinations/actions.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 7f76703047..4be77c450d 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -305,3 +305,7 @@ Threfore, if you see a 401 error in a sample response, it is likely that you’l ### Is it possible to map a field from one event to another? Segment integrations process events through mappings individially. This means that no context is held that would allow you to map a value from one event to the field of a subsequent event. Each event itself must contain all of the data you'd like to send downstream in regards to it. For example, you cannot send `email` in on an Identify call and then access that same `email` field on a Track call that comes in later if that Track call doesn't also have `email` set on it. + +### Unable to view/edit the mapping as expected, and it is throwing a 'Couldn't load page' error. + +It might be due to the browser cache or the event property name containing a "/". To resolve this, try clearing the browser cache or accessing the mapping page in an Incognito window. Additionally, check if the property name mapped in the mapping contains a "/". If so, please try renaming the property name without the "/" and map it in the mapping to avoid this error. From bc87418f6ee84e23cdd496b342370163d99831fd Mon Sep 17 00:00:00 2001 From: Jeremy Pang Date: Mon, 16 Dec 2024 10:14:17 -0800 Subject: [PATCH 26/63] adding new documentation on supported integrations, and mappings --- .../destinations/catalog/actions-s3/index.md | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/connections/destinations/catalog/actions-s3/index.md b/src/connections/destinations/catalog/actions-s3/index.md index 906f2cf0c6..433b914b18 100644 --- a/src/connections/destinations/catalog/actions-s3/index.md +++ b/src/connections/destinations/catalog/actions-s3/index.md @@ -25,6 +25,12 @@ The AWS S3 (Actions) destination enhances this capability by introducing configu * **Enhanced Delivery Controls**. The destination provides advanced options for batch size controls and file naming conventions. These controls can help optimize efficiency and simplify data retrieval workflows. +## Supported Integrations +The AWS S3 (Actions) Destination supports the following Segment features as supported native Destination integration points: +* rETL +* Classic and Linked Audiences +* Connections + ## Getting started Setting up the AWS S3 (Actions) destination is a straightforward process designed to help you configure and deploy standardized event data to your Amazon S3 bucket. Follow these steps to get started: @@ -36,7 +42,7 @@ Ensure you have the following in place before configuring the AWS S3 (Actions) d - IAM Access IDs: Prepare your AWS IAM ARN ID and IAM External ID. These will be needed to authenticate and authorize Segment with your S3 bucket. -### Step 1: Create an IAM role in the AWS console +## Step 1: Create an IAM role in the AWS console To set up the IAM role to properly authorize Segment with the AWS S3 (Actions) destination: 1. Log in to your AWS account. @@ -69,7 +75,7 @@ To set up the IAM role to properly authorize Segment with the AWS S3 (Actions) d "Effect": "Allow", "Principal": { "AWS": - "arn:aws:iam::595280932656:role/customer-s3-prod-action-destination-access" + "arn:aws:iam::595280932656:role/customer-s3-prod-action-destination-access" }, "Action": "sts:AssumeRole", "Condition": { @@ -81,8 +87,9 @@ To set up the IAM role to properly authorize Segment with the AWS S3 (Actions) d ] } ``` + ## Step 2: Add the AWS S3 (Actions) Destination in Segment -To finish the configuration, enable the AWS S3 (Actions) Destination in your workspace. +To finish the setup, enable the AWS S3 (Actions) Destination in your workspace: 1. Add the **AWS S3 (Actions)** destination from the Destinations tab of the catalog. 2. Select the data source you want to connect to the destination. @@ -93,8 +100,17 @@ To finish the configuration, enable the AWS S3 (Actions) Destination in your wor * Enter the ARN of the IAM role you created above. The ARN should follow the format `arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME.` * Enter the IAM External ID, which is a value set in the Trust Relationship under your AWS IAM Role. 5. Enable the destination. -6. Verify the Segment data is stored in the S3 bucket by navigating to the `/` in the AWS console. {% include components/actions-fields.html settings="true"%} - +## Step 3: Configure the AWS S3 (Actions) Destination mappings +To finish the configuration, finalize the mappings of the new AWS S3 (Actions) Destination: + +1. Add a new **Sync to S3** Action into the destination. +2. Define the Event Trigger +3. Configure the Column Mappings that are needed, if any of the default columns are **not** needed, leave the value blank. You can also choose to add new mapping fields to set up any customized columns as needed. +4. Configure the Other Settings as needed: + * Enable Batching, Delimiter and File Extension are all required. + * **Note** If the audience_action or batch_size column names are not needed, these fields can be left blank so they do not output on the S3 file. +5. Enable the Mapping and start sending data! +6. Verify the Segment data is stored in the S3 bucket by navigating to the `/` in the AWS console. \ No newline at end of file From 747b73c7be33d06428ce013ce1453fd6813774bc Mon Sep 17 00:00:00 2001 From: Jeremy Pang Date: Mon, 16 Dec 2024 10:57:42 -0800 Subject: [PATCH 27/63] adding event trigger behavior --- src/connections/destinations/catalog/actions-s3/index.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/connections/destinations/catalog/actions-s3/index.md b/src/connections/destinations/catalog/actions-s3/index.md index 433b914b18..3ef4b67d7e 100644 --- a/src/connections/destinations/catalog/actions-s3/index.md +++ b/src/connections/destinations/catalog/actions-s3/index.md @@ -107,10 +107,8 @@ To finish the setup, enable the AWS S3 (Actions) Destination in your workspace: To finish the configuration, finalize the mappings of the new AWS S3 (Actions) Destination: 1. Add a new **Sync to S3** Action into the destination. -2. Define the Event Trigger +2. Define the Event Trigger. If multiple types are accepted in the Event Trigger, the generated files will automatically be split by type in S3 (i.e Track events file and Identifer events file). 3. Configure the Column Mappings that are needed, if any of the default columns are **not** needed, leave the value blank. You can also choose to add new mapping fields to set up any customized columns as needed. -4. Configure the Other Settings as needed: - * Enable Batching, Delimiter and File Extension are all required. - * **Note** If the audience_action or batch_size column names are not needed, these fields can be left blank so they do not output on the S3 file. +4. Configure the Other Settings as needed. 5. Enable the Mapping and start sending data! 6. Verify the Segment data is stored in the S3 bucket by navigating to the `/` in the AWS console. \ No newline at end of file From 7321bbc67f46f5f57eb5f2e716bd76070c426438 Mon Sep 17 00:00:00 2001 From: Jeremy Pang Date: Mon, 16 Dec 2024 14:20:24 -0800 Subject: [PATCH 28/63] adding fixes to suggestions --- .../destinations/catalog/actions-s3/index.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/connections/destinations/catalog/actions-s3/index.md b/src/connections/destinations/catalog/actions-s3/index.md index 3ef4b67d7e..5fde2ed21b 100644 --- a/src/connections/destinations/catalog/actions-s3/index.md +++ b/src/connections/destinations/catalog/actions-s3/index.md @@ -27,9 +27,9 @@ The AWS S3 (Actions) destination enhances this capability by introducing configu ## Supported Integrations The AWS S3 (Actions) Destination supports the following Segment features as supported native Destination integration points: -* rETL -* Classic and Linked Audiences -* Connections +* [Reverse ETL](/docs/connections/reverse-etl/) +* [Classic and Linked Audiences](/docs/engage/audiences/) +* [Connections](/docs/connections/) ## Getting started Setting up the AWS S3 (Actions) destination is a straightforward process designed to help you configure and deploy standardized event data to your Amazon S3 bucket. Follow these steps to get started: @@ -42,7 +42,7 @@ Ensure you have the following in place before configuring the AWS S3 (Actions) d - IAM Access IDs: Prepare your AWS IAM ARN ID and IAM External ID. These will be needed to authenticate and authorize Segment with your S3 bucket. -## Step 1: Create an IAM role in the AWS console +### Step 1: Create an IAM role in the AWS console To set up the IAM role to properly authorize Segment with the AWS S3 (Actions) destination: 1. Log in to your AWS account. @@ -88,7 +88,7 @@ To set up the IAM role to properly authorize Segment with the AWS S3 (Actions) d } ``` -## Step 2: Add the AWS S3 (Actions) Destination in Segment +### Step 2: Add the AWS S3 (Actions) Destination in Segment To finish the setup, enable the AWS S3 (Actions) Destination in your workspace: 1. Add the **AWS S3 (Actions)** destination from the Destinations tab of the catalog. @@ -104,11 +104,11 @@ To finish the setup, enable the AWS S3 (Actions) Destination in your workspace: {% include components/actions-fields.html settings="true"%} ## Step 3: Configure the AWS S3 (Actions) Destination mappings -To finish the configuration, finalize the mappings of the new AWS S3 (Actions) Destination: +To finish the configuration, add mappings to your new AWS S3 (Actions) Destination: 1. Add a new **Sync to S3** Action into the destination. -2. Define the Event Trigger. If multiple types are accepted in the Event Trigger, the generated files will automatically be split by type in S3 (i.e Track events file and Identifer events file). -3. Configure the Column Mappings that are needed, if any of the default columns are **not** needed, leave the value blank. You can also choose to add new mapping fields to set up any customized columns as needed. -4. Configure the Other Settings as needed. -5. Enable the Mapping and start sending data! +2. Define the Event Trigger. If multiple types are accepted in the Event Trigger, the generated files will automatically be split by type in S3 (for example, you might have a Track events file and an Identify events file). +3. Configure the Column Mappings. If you don't need any of the default columns, leave the value blank. You can also choose to add new mapping fields to set up customized columns as needed. +4. Configure any additional settings as required. +5. Enable the Mapping. 6. Verify the Segment data is stored in the S3 bucket by navigating to the `/` in the AWS console. \ No newline at end of file From 2a64fe8b2bfe8ca5a6c52dc0f75f2fa84b767b8c Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Mon, 16 Dec 2024 18:37:17 -0500 Subject: [PATCH 29/63] Apply suggestions from code review --- src/connections/destinations/catalog/actions-s3/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-s3/index.md b/src/connections/destinations/catalog/actions-s3/index.md index 5fde2ed21b..61acf60c98 100644 --- a/src/connections/destinations/catalog/actions-s3/index.md +++ b/src/connections/destinations/catalog/actions-s3/index.md @@ -103,7 +103,7 @@ To finish the setup, enable the AWS S3 (Actions) Destination in your workspace: {% include components/actions-fields.html settings="true"%} -## Step 3: Configure the AWS S3 (Actions) Destination mappings +### Step 3: Configure the AWS S3 (Actions) Destination mappings To finish the configuration, add mappings to your new AWS S3 (Actions) Destination: 1. Add a new **Sync to S3** Action into the destination. @@ -111,4 +111,4 @@ To finish the configuration, add mappings to your new AWS S3 (Actions) Destinati 3. Configure the Column Mappings. If you don't need any of the default columns, leave the value blank. You can also choose to add new mapping fields to set up customized columns as needed. 4. Configure any additional settings as required. 5. Enable the Mapping. -6. Verify the Segment data is stored in the S3 bucket by navigating to the `/` in the AWS console. \ No newline at end of file +6. Verify that Segment is sending data to your S3 bucket by navigating to `/` in the AWS console. \ No newline at end of file From b67c095215e0f383222fded3cf2c425be765d003 Mon Sep 17 00:00:00 2001 From: Ron Cohen Date: Tue, 17 Dec 2024 13:38:13 +0100 Subject: [PATCH 30/63] Update index.md for Bucket --- src/connections/destinations/catalog/bucket/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/bucket/index.md b/src/connections/destinations/catalog/bucket/index.md index 158b8d0134..b6833a3ce0 100644 --- a/src/connections/destinations/catalog/bucket/index.md +++ b/src/connections/destinations/catalog/bucket/index.md @@ -4,7 +4,11 @@ rewrite: true id: 5fabc0b00f88248bbce4db48 --- -[Bucket](https://bucket.co/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="blank"} is feature-focused analytics. Bucket empowers software teams with a repeatable approach to shipping features that customers crave. +[Bucket](https://bucket.co/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="blank"} is feature flagging that’s purpose-built for B2B. + +- Release features gradually with simple flags. +- Gate features based on customer subscriptions. +- Iterate fast with adoption metrics and feedback. This destination is maintained by Bucket. For any issues with the destination, [contact the Bucket Support team](mailto:support@bucket.co). From 1b6ec7527617fd4aeff50d2eff352cb2663a0735 Mon Sep 17 00:00:00 2001 From: Ron Cohen Date: Tue, 17 Dec 2024 13:40:51 +0100 Subject: [PATCH 31/63] Link directly to keys --- src/connections/destinations/catalog/bucket/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/bucket/index.md b/src/connections/destinations/catalog/bucket/index.md index b6833a3ce0..473c672553 100644 --- a/src/connections/destinations/catalog/bucket/index.md +++ b/src/connections/destinations/catalog/bucket/index.md @@ -19,7 +19,7 @@ This destination is maintained by Bucket. For any issues with the destination, [ 1. From the Destinations catalog page in the Segment App, click **Add Destination**. 2. Search for "Bucket" in the Destinations Catalog, and select the Bucket destination. 3. Choose which Source should send data to the Bucket destination. -4. Go to [Bucket's Settings](https://app.bucket.co){:target="blank"} and find and copy the "Publishable Key" under Settings. +4. Go to [Bucket's Environment Settings](https://app.bucket.co/envs/current/settings/app-environments){:target="blank"} and find and copy the "Publishable Key" for the Production environment. 5. Enter the "Publishable Key" as "Publishable Key" in the "Bucket" destination settings in Segment. ## Identify From 51ad324bedcfe889d248838f636b625cdf729788 Mon Sep 17 00:00:00 2001 From: "balint.bozoki" Date: Tue, 17 Dec 2024 16:45:18 +0100 Subject: [PATCH 32/63] updated index.md --- src/connections/destinations/catalog/antavo/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/connections/destinations/catalog/antavo/index.md b/src/connections/destinations/catalog/antavo/index.md index 32b7a397eb..1ecd5eeb07 100644 --- a/src/connections/destinations/catalog/antavo/index.md +++ b/src/connections/destinations/catalog/antavo/index.md @@ -1,5 +1,6 @@ --- title: Antavo (Actions) Destination +hidden: true --- The Antavo (Actions) Destination allows you to sync profile updates in Segment and trigger loyalty events. @@ -16,3 +17,5 @@ This destination is maintained by Antavo. For any issues with the destination, [ - If the multi-account extension is enabled in Antavo, make sure to include the account ID. - If customer attributes are included in the Data section - make sure attribute names match your Antavo settings. 7. If you haven’t configured the Segment integration in Antavo, go to the **Modules** menu and enable the Twilio Segment Extension in Antavo. + +{% include components/actions-fields.html %} From 941a536c548d88dd071319564a406c955b13dd3c Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:00:13 -0500 Subject: [PATCH 33/63] Update src/protocols/faq.md --- src/protocols/faq.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/protocols/faq.md b/src/protocols/faq.md index fedfe06638..42c0c54683 100644 --- a/src/protocols/faq.md +++ b/src/protocols/faq.md @@ -150,7 +150,9 @@ Blocked events are blocked from sending to all Segment Destinations, including w ### If I omit unplanned properties or properties that generate JSON schema violations, what happens to them? -Properties that are omitted due to JSON Schema Violations or being unplanned are not stored in Segment logs. Segment only stores fully blocked events for 30 days. Omitted properties are dropped from the events and can only be found in the `context.violations` object of an event payload. If Violations are forwarded to a new source, then the omitted properties can also be seen in the Violation Generated event under `violationField` in the `properties` object of the event. +Segment doesn't store unplanned properties and properties omitted due to JSON Schema Violations in Segment logs. Segment drops omitted properties from the events. You can find the omitted properties in the `context.violations` object of an event payload. If you forward Violations to a new source, then you can also see the omitted properties in the Violation Generated event under `violationField` in the `properties` object. + +Segment only stores fully blocked events for 30 days. ### Why am I seeing unplanned properties/traits in the payload when violations are triggered, despite using schema controls to omit them? From b1e5043e7cb64fd4ffb6cfcc15332706d301d33a Mon Sep 17 00:00:00 2001 From: Spencer Attick <23665784+spencerattick@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:16:47 -0500 Subject: [PATCH 34/63] Custom Activity behavior --- src/connections/destinations/catalog/marketo-v2/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/marketo-v2/index.md b/src/connections/destinations/catalog/marketo-v2/index.md index c3e01de9a0..05c4b75fd7 100644 --- a/src/connections/destinations/catalog/marketo-v2/index.md +++ b/src/connections/destinations/catalog/marketo-v2/index.md @@ -162,6 +162,8 @@ Analytics.track( - **Primary Field**. When creating a Custom Activity in Marketo, you have to set a Primary Field. If you are unsure which field was set as the primary field, when you are looking at the list of fields for your Custom Activity in Marketo, there will be a red star next to your Primary Field. ![A screenshot of the Fields tab inside of the Marketo Custom Activities page.](images/cZuvsHeaepX+.png) +Please note that you cannot map fields nested in objects as Marketo Custom Activitiy property names. Please flatten any objects you may need to access data from either before you send it to Segment or using an [Insert Function]([url](https://segment.com/docs/connections/functions/insert-functions/)). + ## Page When you call [`Page`](/docs/connections/spec/page/), Segment uses [Marketo's Munchkin.js `visitWebPage` method](http://developers.marketo.com/javascript-api/lead-tracking/api-reference/#munchkin_visitwebpage){:target="_blank"}. The URL is built from your `.page()` event and properties object into the form Marketo expects, so no need to worry about doing that yourself. From b02e3678c58fe6153bb41e84a32c6e277249a4fa Mon Sep 17 00:00:00 2001 From: Ron Cohen Date: Tue, 17 Dec 2024 19:34:02 +0100 Subject: [PATCH 35/63] Update src/connections/destinations/catalog/bucket/index.md Co-authored-by: forstisabella <92472883+forstisabella@users.noreply.github.com> --- src/connections/destinations/catalog/bucket/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/bucket/index.md b/src/connections/destinations/catalog/bucket/index.md index 473c672553..fd6d353eb7 100644 --- a/src/connections/destinations/catalog/bucket/index.md +++ b/src/connections/destinations/catalog/bucket/index.md @@ -6,6 +6,8 @@ id: 5fabc0b00f88248bbce4db48 [Bucket](https://bucket.co/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="blank"} is feature flagging that’s purpose-built for B2B. + +With Bucket, you can: - Release features gradually with simple flags. - Gate features based on customer subscriptions. - Iterate fast with adoption metrics and feedback. From dbaecd0f1c23a79ff0c68e765816f3e7fefe7ddc Mon Sep 17 00:00:00 2001 From: "will.i.am" <110120307+wilwong-segment@users.noreply.github.com> Date: Tue, 17 Dec 2024 11:42:49 -0800 Subject: [PATCH 36/63] Update linked-audiences-limits.md --- src/engage/audiences/linked-audiences-limits.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/engage/audiences/linked-audiences-limits.md b/src/engage/audiences/linked-audiences-limits.md index fa8e777feb..0f5e05b1ab 100644 --- a/src/engage/audiences/linked-audiences-limits.md +++ b/src/engage/audiences/linked-audiences-limits.md @@ -31,11 +31,12 @@ Name | Limit | Details ---- | ----- | -------- RETL row limit | 150 million | The audience compute fails if the total output exceeds the limit. RETL column limit | 500 columns | The audience compute fails if the number of columns exceeds the limit. -Global concurrent audience runs | 5 total within any given space | New audience runs are queued once the limit is reached and will start execution once prior audience runs complete. +Global concurrent audience runs | 5 total within any given space | New audience runs are queued once the limit is reached and will start execution once prior audience runs complete. If you have need a higher global concurrent audience runs limit, please contact friends@segment.com Event Size | 32 KB | Segment doesn’t emit messages for profiles whose total related entities and enrichments exceed the limit. Data Graph depth | 6 | You can't save a Data Graph if you exceed the limit. Preview size | 3K rows | The maximum number of rows you can have to generate a preview. The preview fails if you bring back too many entities. Entity value type ahead cache | Up to 100 unique values | The maximum number of entity values Segment stores in cache. Entity columns | Up to 1000 unique values | The maximum number of entity property columns Segment surfaces in the condition builder. -Run frequency | 15 minutes (this is the fastest time) | You can’t configure more frequency syncs. You can select **Run Now** to trigger runs, but you’re limited by Profiles Sync for when new data syncs back to the data warehouse. +Run frequency | 15 minutes (this is the fastest time) | You can’t configure more frequency syncs. You can select **Run Now** to trigger runs, but you’re limited by Profiles Sync for when new data syncs back to the data warehouse. +Destination Mappings | Up to 100 mappings | You can set up to 100 action destination mappings per destination instance. From 3701b738b9f034fe53b6f8130d199a626cf26112 Mon Sep 17 00:00:00 2001 From: Lfdelossantos <67085442+Lfdelossantos@users.noreply.github.com> Date: Tue, 17 Dec 2024 17:20:32 -0500 Subject: [PATCH 37/63] Fix the wrong version of its/it's --- src/connections/storage/warehouses/schema.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/storage/warehouses/schema.md b/src/connections/storage/warehouses/schema.md index e8eaeaafc7..4c35f49b72 100644 --- a/src/connections/storage/warehouses/schema.md +++ b/src/connections/storage/warehouses/schema.md @@ -132,7 +132,7 @@ The table below describes the schema in Segment Warehouses: | `.pages` | A table with your `page` method calls. This table includes the `properties` you record for pages as top-level columns, for example `.pages.title`. | | `.screens` | A table with your `screen` method calls. This table includes `properties` you record for screens as top-level columns, for example `.screens.title`. | | `.tracks` | A table with your `track` method calls. This table includes standardized properties that are all common to all events: `anonymous_id`, `context_*`, `event`, `event_text`, `received_at`, `sent_at`, and `user_id`. This is because every event that you send to Segment has different properties. For querying by the custom properties, use the `.` tables instead. | -| `.` | For `track` calls, each event like `Signed Up` or `Order Completed` also has it's own table (for example. `initech.clocked_in`) with columns for each of the event's distinct `properties` (for example. `initech.clocked_in.time`). | +| `.` | For `track` calls, each event like `Signed Up` or `Order Completed` also has its own table (for example. `initech.clocked_in`) with columns for each of the event's distinct `properties` (for example. `initech.clocked_in.time`). | ## Identifies table From b5f84bb846ff2767f2880885458340770959dfa7 Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Tue, 17 Dec 2024 14:24:06 -0800 Subject: [PATCH 38/63] Update src/connections/destinations/catalog/marketo-v2/index.md --- src/connections/destinations/catalog/marketo-v2/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/marketo-v2/index.md b/src/connections/destinations/catalog/marketo-v2/index.md index 05c4b75fd7..635c934faa 100644 --- a/src/connections/destinations/catalog/marketo-v2/index.md +++ b/src/connections/destinations/catalog/marketo-v2/index.md @@ -162,7 +162,8 @@ Analytics.track( - **Primary Field**. When creating a Custom Activity in Marketo, you have to set a Primary Field. If you are unsure which field was set as the primary field, when you are looking at the list of fields for your Custom Activity in Marketo, there will be a red star next to your Primary Field. ![A screenshot of the Fields tab inside of the Marketo Custom Activities page.](images/cZuvsHeaepX+.png) -Please note that you cannot map fields nested in objects as Marketo Custom Activitiy property names. Please flatten any objects you may need to access data from either before you send it to Segment or using an [Insert Function]([url](https://segment.com/docs/connections/functions/insert-functions/)). +> info "" +> You can't map fields nested in objects as Marketo Custom Activity property names. You must flatten any objects you may need to access data from either before you send it to Segment, or while using an [Insert Function](/docs/connections/functions/insert-functions/). ## Page From ffaf4011a54f8118e6e9b9c33d77d726a6480b5e Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Tue, 17 Dec 2024 14:40:44 -0800 Subject: [PATCH 39/63] Update src/connections/destinations/catalog/actions-google-sheets/index.md --- .../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 c0358dc976..764e89c89f 100644 --- a/src/connections/destinations/catalog/actions-google-sheets/index.md +++ b/src/connections/destinations/catalog/actions-google-sheets/index.md @@ -61,4 +61,4 @@ Once data has been synced to Google Sheets, any subsequent addition or removal o ### Can I send objects to Google Sheets? -Sending a JavaScript Object is not a supported data type in Google Sheets. You would need to stringify this property first, failure to do so may result in a `400` error. Our Actions mapping framework supports encoding Objects as Strings via the `json(properties, encode)` method. Alternatively an Insert Function can be used to modify the property. +You can't send JavaScript objects as they're not a supported data type in Google Sheets. You need to stringify the property first. Failure to do so results in a `400` error. Segment's Actions mapping framework supports encoding objects as strings through the `json(properties, encode)` method. Alternatively, you can use an Insert Function to modify the property. From 8800330919ccc99c1e0c1279d3b08f4de5d778ef Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Tue, 17 Dec 2024 15:53:22 -0800 Subject: [PATCH 40/63] Apply suggestions from code review --- .../catalog/libraries/website/javascript/index.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/index.md b/src/connections/sources/catalog/libraries/website/javascript/index.md index 45c9a5fb3f..44e3a40650 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/index.md +++ b/src/connections/sources/catalog/libraries/website/javascript/index.md @@ -838,10 +838,11 @@ So, for example, if somebody follows the link with above query string to your si Whenever the UTM parameters are no longer a part of the URL, Segment no longer includes them. For example, if the user goes to a new page within your website which does not contain these parameters, they will not be included in subsequent events. UTM parameters are non-persistent by default as they could potentially cause data accuracy problems. Here's an example of why: Say a user clicks on an ad and lands on your site. He navigates around and bookmarks an internal page - or maybe shares a link with a friend, who shares it with another friend. All those links would then point back to the same test utm_source as the initial referrer for any purchase. -**Additional Note**: -Segment does not validate UTM parameter names. This design supports the flexibility to track both standard parameters (e.g., utm_source, utm_medium) and custom parameters defined by users. As a result, all parameters present in the URL are collected as-is and added to the context field, without checks for naming conventions or validity. +Segment doesn't validate UTM parameter names. This design supports the flexibility to track both standard parameters (for example, utm_source, utm_medium) and custom parameters defined by users. As a result, all parameters present in the URL collected as is, and are added to the context field without checks for naming conventions or validity. -If you want to ensure that only standard UTM parameters (e.g., utm_source, utm_medium, utm_campaign, utm_content, utm_term) are included in the context.campaign object, you can implement [Source middleware](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/middleware/) in your analytics.js setup. Here’s an example: +If you want to ensure that only standard UTM parameters (such as, utm_source, utm_medium, utm_campaign, utm_content, utm_term) are included in the context.campaign object, you can implement [Source middleware](/docs/connections/sources/catalog/libraries/website/javascript/middleware/) in your Analytics.js setup. + +For example: ```js window.analytics.addSourceMiddleware(({ payload, next }) => { @@ -857,7 +858,7 @@ window.analytics.addSourceMiddleware(({ payload, next }) => { next(payload); }); ``` -This middleware will filter out any non-standard parameters from the context.campaign object before they are sent to Segment or forwarded to your enabled destinations. +This middleware filters out any non-standard parameters from the `context.campaign` object before they're sent to Segment or forwarded to your enabled destinations. ## Analytics.js performance From 0c4649a1881892351503cde52b8499d83fb6b7f5 Mon Sep 17 00:00:00 2001 From: stayseesong <83784848+stayseesong@users.noreply.github.com> Date: Tue, 17 Dec 2024 16:18:11 -0800 Subject: [PATCH 41/63] Update src/connections/functions/insert-functions.md --- src/connections/functions/insert-functions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/functions/insert-functions.md b/src/connections/functions/insert-functions.md index adf1db93f5..07211091be 100644 --- a/src/connections/functions/insert-functions.md +++ b/src/connections/functions/insert-functions.md @@ -506,11 +506,11 @@ Insert Functions are only supported by Cloud Mode (server-side) destinations and ##### Can I connect an insert function to multiple destinations? -Yes, an insert function can be connected to multiple destinations. +Yes, you can connect an insert function to multiple destinations. ##### Can I connect multiple insert functions to one destination? -No, a destination can have only one insert function connected to it at any given time. +No, you can only connect one insert function to a destination. ##### Can I have destination filters and a destination insert function in the same connection? From 3de56a5e3d52238d0ef73f438bf5ee57fd452a9a Mon Sep 17 00:00:00 2001 From: Thomas Gilbert Date: Wed, 18 Dec 2024 10:35:17 -0500 Subject: [PATCH 42/63] clarify regional instructions for go server --- .../sources/catalog/libraries/server/go/index.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/connections/sources/catalog/libraries/server/go/index.md b/src/connections/sources/catalog/libraries/server/go/index.md index bd8c279e48..e6fe6f457a 100644 --- a/src/connections/sources/catalog/libraries/server/go/index.md +++ b/src/connections/sources/catalog/libraries/server/go/index.md @@ -41,11 +41,17 @@ That will create a `client` that you can use to send data to Segment for your so The default initialization settings are production-ready and queue 20 messages before sending a batch request, and a 5 second interval. ### Regional configuration -For Business plans with access to Regional Segment, you can use the host configuration parameter to send data to the desired region: +For Business plans with access to Regional Segment, you can use the endpoint configuration parameter to send data to the desired region: -Oregon (Default) — api.segment.io/ -Dublin — events.eu1.segmentapis.com +- Oregon (Default) — https://api.segment.io +- Dublin — https://events.eu1.segmentapis.com +Example configuration for EU region: +```go +client, err := analytics.NewWithConfig(writeKey, analytics.Config{ + Endpoint: "https://events.eu1.segmentapis.com", +}) +``` ## Identify > note "" From 36fbeb533b3d3fb9baed08849066c5a98ef76b7a Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:36:48 -0500 Subject: [PATCH 43/63] Update src/connections/reverse-etl/setup.md --- src/connections/reverse-etl/setup.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md index 3d8674d27a..c1a7a201ac 100644 --- a/src/connections/reverse-etl/setup.md +++ b/src/connections/reverse-etl/setup.md @@ -50,8 +50,8 @@ Models define sets of data you want to sync to your Reverse ETL destinations. A ### dbt model Use Segment's dbt extension to centralize model management and versioning. Users who set up a BigQuery, Databricks, Postgres, Redshift, or Snowflake source 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. -> warning "Limitation" -> Please be aware that if there are **5** mappings with a dbt Cloud schedule for a model, you will not be able to create additional mappings with the same dbt Cloud schedule type, regardless of the account or job selected. The limit applies per model. +> success " " +> If you use dbt Cloud with Reverse ETL, you can [create up to 5 mappings](#step-4-create-mappings) that use the sync strategy **dbt Cloud**, which extracts data from your warehouse and syncs it with your destination after a job in dbt Cloud is complete. ## Step 3: Add a destination From 624d311539352a819da993816a2e7d17ac1c7d19 Mon Sep 17 00:00:00 2001 From: Niall Brennan Date: Wed, 18 Dec 2024 21:50:25 +0000 Subject: [PATCH 44/63] csharp singleton update (#7226) * csharp singleton update * Update src/connections/sources/catalog/libraries/server/csharp/index.md Co-authored-by: Wenxi Zeng --------- Co-authored-by: Wenxi Zeng --- .../sources/catalog/libraries/server/csharp/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/connections/sources/catalog/libraries/server/csharp/index.md b/src/connections/sources/catalog/libraries/server/csharp/index.md index 9281e8cab4..493245910a 100644 --- a/src/connections/sources/catalog/libraries/server/csharp/index.md +++ b/src/connections/sources/catalog/libraries/server/csharp/index.md @@ -56,6 +56,9 @@ To get started with the Analytics-CSharp library: var analytics = new Analytics(configuration); ``` +> info "" +> Segment's SDK is designed to be disposable, meaning Segment disposes of objects when the analytics instance is disposed. Segment avoids using singletons for configurations or HTTP clients to prevent memory management issues. If you want to use singletons, create your own HTTP client provider with a singleton HTTP client for better control and management. + | Option Name | Description | |-----------------------------|---------------| | `writeKey` *required* | This is your Segment write key. | From 83d1cc6d131002fa2765871f97e80df2ff715eb0 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:53:38 -0500 Subject: [PATCH 45/63] Update src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md --- .../libraries/website/javascript/cookie-validity-update.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md b/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md index 9a6e0137f5..4a647e6eda 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md +++ b/src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md @@ -44,7 +44,8 @@ analytics.load('writeKey', { }) ``` -To set the values using the [NPM package](https://github.com/segmentio/analytics-next/tree/master/packages/browser){:target="_blank"}, set the cookie values like to: +To set cookie values using the [NPM package](https://github.com/segmentio/analytics-next/tree/master/packages/browser){:target="_blank"}, use the following code snippet: + ```js analytics = AnalyticsBrowser.load({ writeKey: 'writeKey' From d8b5667945d63d861b30f6f7600297a5bff48b50 Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 19 Dec 2024 00:36:00 -0600 Subject: [PATCH 46/63] unhide docs --- src/engage/journeys/event-triggered-journeys.md | 1 - src/engage/journeys/journey-context.md | 1 - 2 files changed, 2 deletions(-) diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/event-triggered-journeys.md index 9b4010a2b8..5bb4c94812 100644 --- a/src/engage/journeys/event-triggered-journeys.md +++ b/src/engage/journeys/event-triggered-journeys.md @@ -1,7 +1,6 @@ --- title: Event-Triggered Journeys plan: engage-foundations -hidden: true --- With Event-Triggered Journeys, you can build real-time, event-based marketing workflows to automate and personalize customer journeys. diff --git a/src/engage/journeys/journey-context.md b/src/engage/journeys/journey-context.md index 4466399871..a6d8410e5a 100644 --- a/src/engage/journeys/journey-context.md +++ b/src/engage/journeys/journey-context.md @@ -1,7 +1,6 @@ --- title: Journey Context plan: engage-foundations -hidden: true --- [Event-Triggered Journeys](/docs/engage/journeys/event-triggered-journeys/) redefine how you orchestrate and personalize customer experiences. From 523cadb3d7da083d91195bf319b1809f9fca21af Mon Sep 17 00:00:00 2001 From: prigiattiperrut <47340158+prigiattiperrut@users.noreply.github.com> Date: Thu, 19 Dec 2024 11:22:54 -0300 Subject: [PATCH 47/63] Update index.md --- .../catalog/actions-amplitude/index.md | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/src/connections/destinations/catalog/actions-amplitude/index.md b/src/connections/destinations/catalog/actions-amplitude/index.md index 90ba8fb904..f134773b1e 100644 --- a/src/connections/destinations/catalog/actions-amplitude/index.md +++ b/src/connections/destinations/catalog/actions-amplitude/index.md @@ -243,11 +243,38 @@ In the following example, the Amplitude User property `friendCount` equals 4. ``` ## FAQ and troubleshooting -### Why doesn't Segment automatically add the `session_id` to my web events? -For Segment to automatically add the `session_id` to events, your browser must allow the following request URL to load: +### Does Segment load the Amplitude SDK on the webpage to collect data? +Segment does not load the Amplitude SDK directly on the webpage. Instead, Segment collects data using our Analytics.js library. Once events reach Segment’s servers, they are forwarded to Amplitude’s servers using Amplitude’s HTTP API. +### How does Segment handle the Amplitude session ID? +Although the Amplitude SDK is not loaded, the Analytics.js library includes a plugin that sets the Amplitude session ID on the device. This session ID is used to track sessions and is automatically attached to events sent to Amplitude. By default, the session ID is set to timeout after 30 minutes of inactivity. You can review the code implementation for setting the [session ID here](https://github.com/segmentio/action-destinations/blob/12255568e4a6d35cf05ee79a118ee6c1a6823f31/packages/browser-destinations/destinations/amplitude-plugins/src/sessionId/index.ts#L33){:target="_blank”}. + +### How can I retrieve the Amplitude session ID set by Segment? +Since Segment does not load the Amplitude SDK, the Amplitude native method `amplitude.getInstance()._sessionId` will not work. However, you can retrieve the session ID using the following method: + +``` js +localStorage.getItem('analytics_session_id'); ``` + +This call accesses the session ID stored in the browser's local storage. You can review the [retrieval code here](https://github.com/segmentio/action-destinations/blob/12255568e4a6d35cf05ee79a118ee6c1a6823f31/packages/browser-destinations/destinations/amplitude-plugins/src/sessionId/index.ts#L64 ){:target="_blank”}. + +### Why is Segment not automatically adding the session_id to my Web Events? + +For Segment to automatically add the session_id to your web events, your website must allow the following URL to load: + +``` js https://cdn.segment.com/next-integrations/actions/amplitude-plugins/.. ``` -To check if you are loading this request, [inspect the network requests](https://developer.chrome.com/docs/devtools/network){:target="_blank”} on your website and look for 'Amplitude.' If the request is not loading, confirm it is allowed on your side. +How to Check: + + 1. Open your browser’s developer tools and [inspect the network requests](https://developer.chrome.com/docs/devtools/network){:target="_blank”} on your website. + 2. Look for a request related to Amplitude. + +If the request is missing: + + - Ensure your browser settings or network configuration allow this URL to load. + - Check for any third-party script blockers or restrictions that might be preventing it. + +If you still encounter issues, feel free to reach out for support! + From 068957c27589d8f5b7c47716bb9f1a863a335490 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 19 Dec 2024 10:11:00 -0500 Subject: [PATCH 48/63] Update src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md --- .../catalog/actions-google-enhanced-conversions/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md b/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md index cb525d041b..5af54aac79 100644 --- a/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md +++ b/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md @@ -182,6 +182,6 @@ To resolve this, ensure that the ConversionActionType value in Google Ads is cor Events going to Google for this integration require a `GCLID` field, an `email`, or a `phone_number`. If one of those identifiers isn't being sent properly, then you may see the `The required field was not present., at conversions[0].gclid` error. To fix this, double check that at least one of those fields is being passed to Google on each payload. -### what is the difference between the action "Upload Click Conversions" and "Click Conversion V2"? -The only difference with the new "Click Conversion v2" action is the rollout of [sync modes]([https://developers.google.com/google-ads/api/reference/rpc/v15/ConversionUploadErrorEnum.ConversionUploadError#invalid_conversion_action_type](https://segment.com/docs/connections/destinations/#sync-modes)){:target="_blank”}. And these sync mode options will not be available for the "Upload click conversion" actions mapping over the UI. Other than that, both action mappings will work in the same way. +### What are the differences between the Upload Click Conversions and Click Conversion V2 Actions? +The only difference between the Upload Click Conversions and Click Conversion V2 Actions is that the Click Conversion V2 Action has [sync modes](/docs/connections/destinations/#sync-modes). From 18114b84edf6facfaa942329889290bf05ee8374 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 19 Dec 2024 11:49:00 -0500 Subject: [PATCH 49/63] Update index.md --- src/connections/destinations/catalog/actions-sendgrid/index.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/connections/destinations/catalog/actions-sendgrid/index.md b/src/connections/destinations/catalog/actions-sendgrid/index.md index 666c4a5db0..102a99527b 100644 --- a/src/connections/destinations/catalog/actions-sendgrid/index.md +++ b/src/connections/destinations/catalog/actions-sendgrid/index.md @@ -5,9 +5,6 @@ hide-dossier: true redirect_from: - "/connections/destinations/catalog/sendgrid-marketing-campaigns/" id: 631a6f32946dd8197e9cab66 -hide_action: - - id: 2NyqxNN5TGJa1CP5xEYeLu - name: "Send email with Dynamic Template" --- From ef31c660c7aaaecf9559f1a71baa6519f39e7c68 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Thu, 19 Dec 2024 10:31:25 -0800 Subject: [PATCH 50/63] edits --- .../catalog/actions-amplitude/index.md | 26 ++++++++----------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/connections/destinations/catalog/actions-amplitude/index.md b/src/connections/destinations/catalog/actions-amplitude/index.md index f134773b1e..9cc26de022 100644 --- a/src/connections/destinations/catalog/actions-amplitude/index.md +++ b/src/connections/destinations/catalog/actions-amplitude/index.md @@ -241,40 +241,36 @@ In the following example, the Amplitude User property `friendCount` equals 4. "traits" : {"$add": {"friendCount": 3} } "traits" : {"$add": {"friendCount": 1} } ``` -## FAQ and troubleshooting +## FAQs and troubleshooting ### Does Segment load the Amplitude SDK on the webpage to collect data? -Segment does not load the Amplitude SDK directly on the webpage. Instead, Segment collects data using our Analytics.js library. Once events reach Segment’s servers, they are forwarded to Amplitude’s servers using Amplitude’s HTTP API. +Segment doesn't load the Amplitude SDK directly on the webpage. Instead, Segment collects data using the Analytics.js library. Once events reach Segment’s servers, they are forwarded to Amplitude’s servers using Amplitude’s HTTP API. ### How does Segment handle the Amplitude session ID? -Although the Amplitude SDK is not loaded, the Analytics.js library includes a plugin that sets the Amplitude session ID on the device. This session ID is used to track sessions and is automatically attached to events sent to Amplitude. By default, the session ID is set to timeout after 30 minutes of inactivity. You can review the code implementation for setting the [session ID here](https://github.com/segmentio/action-destinations/blob/12255568e4a6d35cf05ee79a118ee6c1a6823f31/packages/browser-destinations/destinations/amplitude-plugins/src/sessionId/index.ts#L33){:target="_blank”}. +The Analytics.js library includes a plugin that sets the Amplitude session ID on the device. This session ID is used to track sessions and is automatically attached to events sent to Amplitude. By default, the session ID is set to timeout after 30 minutes of inactivity. You can review the code implementation for setting the [session ID](https://github.com/segmentio/action-destinations/blob/12255568e4a6d35cf05ee79a118ee6c1a6823f31/packages/browser-destinations/destinations/amplitude-plugins/src/sessionId/index.ts#L33){:target="_blank”}. ### How can I retrieve the Amplitude session ID set by Segment? -Since Segment does not load the Amplitude SDK, the Amplitude native method `amplitude.getInstance()._sessionId` will not work. However, you can retrieve the session ID using the following method: +Since Segment doesn't load the Amplitude SDK, the Amplitude native method `amplitude.getInstance()._sessionId` won't work. You can retrieve the session ID using the this method: ``` js localStorage.getItem('analytics_session_id'); ``` -This call accesses the session ID stored in the browser's local storage. You can review the [retrieval code here](https://github.com/segmentio/action-destinations/blob/12255568e4a6d35cf05ee79a118ee6c1a6823f31/packages/browser-destinations/destinations/amplitude-plugins/src/sessionId/index.ts#L64 ){:target="_blank”}. +This call accesses the session ID stored in the browser's local storage. You can review the [retrieval code](https://github.com/segmentio/action-destinations/blob/12255568e4a6d35cf05ee79a118ee6c1a6823f31/packages/browser-destinations/destinations/amplitude-plugins/src/sessionId/index.ts#L64){:target="_blank”}. ### Why is Segment not automatically adding the session_id to my Web Events? -For Segment to automatically add the session_id to your web events, your website must allow the following URL to load: +For Segment to automatically add the session_id to your web events, your website must allow the following URL: ``` js https://cdn.segment.com/next-integrations/actions/amplitude-plugins/.. ``` -How to Check: +To check if your website allows the URL: - 1. Open your browser’s developer tools and [inspect the network requests](https://developer.chrome.com/docs/devtools/network){:target="_blank”} on your website. - 2. Look for a request related to Amplitude. +1. Open your browser’s developer tools and [inspect the network requests](https://developer.chrome.com/docs/devtools/network){:target="_blank”} on your website. +2. Look for a request related to Amplitude. If the request is missing: - - - Ensure your browser settings or network configuration allow this URL to load. - - Check for any third-party script blockers or restrictions that might be preventing it. - -If you still encounter issues, feel free to reach out for support! - + * Ensure your browser settings or network configuration allow the URL to load. + * Check for any third-party script blockers or restrictions that might prevent it. From 61e5690a57a13c3ab86d974d66ee50e25588a417 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Thu, 19 Dec 2024 10:38:02 -0800 Subject: [PATCH 51/63] edits --- src/connections/destinations/catalog/actions-amplitude/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/destinations/catalog/actions-amplitude/index.md b/src/connections/destinations/catalog/actions-amplitude/index.md index 9cc26de022..3427980bac 100644 --- a/src/connections/destinations/catalog/actions-amplitude/index.md +++ b/src/connections/destinations/catalog/actions-amplitude/index.md @@ -258,7 +258,7 @@ localStorage.getItem('analytics_session_id'); This call accesses the session ID stored in the browser's local storage. You can review the [retrieval code](https://github.com/segmentio/action-destinations/blob/12255568e4a6d35cf05ee79a118ee6c1a6823f31/packages/browser-destinations/destinations/amplitude-plugins/src/sessionId/index.ts#L64){:target="_blank”}. -### Why is Segment not automatically adding the session_id to my Web Events? +### Why doesn't Segment automatically add the session_id to my Web Events? For Segment to automatically add the session_id to your web events, your website must allow the following URL: From e5b06af8cae56ef1ef07941fb8a796a56fe883e0 Mon Sep 17 00:00:00 2001 From: stayseesong Date: Thu, 19 Dec 2024 11:03:47 -0800 Subject: [PATCH 52/63] edits --- src/connections/functions/destination-functions.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/functions/destination-functions.md b/src/connections/functions/destination-functions.md index 5ba6c76de1..70e62d3f10 100644 --- a/src/connections/functions/destination-functions.md +++ b/src/connections/functions/destination-functions.md @@ -83,6 +83,8 @@ To change which event type the handler listens to, you can rename it to the name {% include content/functions/errors-and-error-handling.md %} +You can incorporate a a `try-catch` block to ensure smooth operation of functions even when fetch calls fail. This allows for the interception of any errors during the API call, enabling the application of specific error handling procedures, such as error logging for future debugging, or the assignment of fallback values when the API call is unsuccessful. By positioning the continuation logic either outside the `try-catch` block or within a `finally` block, the function is guaranteed to proceed with its execution, maintaining its workflow irrespective of the outcome of the API call. + You can read more about [error handling](#destination-functions-logs-and-errors) below. ### Runtime and dependencies From 6e536fc6b6d74932059232261412d963784e559c Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 19 Dec 2024 13:09:15 -0600 Subject: [PATCH 53/63] update sidenav --- src/_data/sidenav/main.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index c1b1f0ac97..ac7c5bd8e3 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -482,6 +482,13 @@ sections: title: Send Data to Destinations - path: '/engage/journeys/journeys-analytics' title: Journeys Analytics + - section_title: Event-Triggered Journeys + slug: '/engage/journeys/event-triggered-journeys' + section: + - path: '/engage/journeys/event-triggered-journeys' + title: Event-Triggered Journeys Overview + - path: '/engage/journeys/journey-context/' + title: Journey Context - path: '/engage/journeys/faq-best-practices' title: Journeys Best Practices and FAQ - path: '/engage/journeys/use-cases' From 324f793242582aa2d23eed0217e3fca95daafb8d Mon Sep 17 00:00:00 2001 From: stayseesong Date: Thu, 19 Dec 2024 11:09:36 -0800 Subject: [PATCH 54/63] edit --- src/connections/functions/destination-functions.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/connections/functions/destination-functions.md b/src/connections/functions/destination-functions.md index 70e62d3f10..0efa9fc2fa 100644 --- a/src/connections/functions/destination-functions.md +++ b/src/connections/functions/destination-functions.md @@ -94,10 +94,6 @@ You can read more about [error handling](#destination-functions-logs-and-errors) - -To ensure smooth operation of functions even when fetch calls fail, a `try-catch` block can be incorporated. This allows for the interception of any errors during the API call, enabling the application of specific error handling procedures such as error logging for future debugging or the assignment of fallback values when the API call is unsuccessful. By positioning the continuation logic either outside the `try-catch` block or within a `finally` block, the function is guaranteed to proceed with its execution, maintaining its workflow irrespective of the outcome of the API call. - - ## Create settings and secrets {% include content/functions/settings.md %} From db21e06fc6f927ccfb30b8eeeac5558ad087e86a Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 19 Dec 2024 13:30:45 -0600 Subject: [PATCH 55/63] one more sidenav update [netlify-build] --- src/_data/sidenav/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index ac7c5bd8e3..fa6d41dfc7 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -485,9 +485,9 @@ sections: - section_title: Event-Triggered Journeys slug: '/engage/journeys/event-triggered-journeys' section: - - path: '/engage/journeys/event-triggered-journeys' + - path: /engage/journeys/event-triggered-journeys title: Event-Triggered Journeys Overview - - path: '/engage/journeys/journey-context/' + - path: /engage/journeys/journey-context title: Journey Context - path: '/engage/journeys/faq-best-practices' title: Journeys Best Practices and FAQ From 41ce8e41ab9e788cf52dd5985166e09736783221 Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 19 Dec 2024 13:41:06 -0600 Subject: [PATCH 56/63] catalog update --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 4 ++-- src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index b4bed5a424..313cc8de2e 100644 --- a/src/_data/catalog/destination_categories.yml +++ b/src/_data/catalog/destination_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination categories last updated 2024-12-16 +# destination categories last updated 2024-12-19 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 839b172a31..123a51d90e 100644 --- a/src/_data/catalog/destinations.yml +++ b/src/_data/catalog/destinations.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-12-16 +# destination data last updated 2024-12-19 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -73357,7 +73357,7 @@ items: previous_names: - Klaviyo (Actions) website: http://www.segment.com - status: PUBLIC_BETA + status: PUBLIC categories: [] logo: url: https://cdn-devcenter.segment.com/1e93dfd5-878e-4a28-8ffe-bcb562b27861.svg diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index adaddb2da3..06a0c4819e 100644 --- a/src/_data/catalog/destinations_private.yml +++ b/src/_data/catalog/destinations_private.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-12-16 +# destination data last updated 2024-12-19 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 4bb9592d8c..27434ac33c 100644 --- a/src/_data/catalog/source_categories.yml +++ b/src/_data/catalog/source_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# source categories last updated 2024-12-16 +# source categories last updated 2024-12-19 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 cb465a0818..74b2a13c38 100644 --- a/src/_data/catalog/sources.yml +++ b/src/_data/catalog/sources.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# sources last updated 2024-12-16 +# sources last updated 2024-12-19 items: - id: 8HWbgPTt3k display_name: .NET From cf282f6cbdf13a2871f7d889cc1aab3aca957384 Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 19 Dec 2024 13:50:08 -0600 Subject: [PATCH 57/63] changelog updates --- src/_data/changelogs/analytics-android.yml | 2 +- src/_data/changelogs/analytics-go.yml | 2 +- src/_data/changelogs/analytics-ios.yml | 2 +- src/_data/changelogs/analytics-java.yml | 2 +- src/_data/changelogs/analytics-node.yml | 2 +- src/_data/changelogs/analytics-php.yml | 6 +- src/_data/changelogs/analytics-python.yml | 2 +- .../changelogs/analytics-react-native.yml | 811 ++++-------------- src/_data/changelogs/analytics.NET.yml | 2 +- 9 files changed, 182 insertions(+), 649 deletions(-) diff --git a/src/_data/changelogs/analytics-android.yml b/src/_data/changelogs/analytics-android.yml index bbf55d2454..4c27a09432 100644 --- a/src/_data/changelogs/analytics-android.yml +++ b/src/_data/changelogs/analytics-android.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM GITHUB API. DO NOT EDIT -# Releases last updated 2024-01-30 +# Releases last updated 2024-12-19 releases: - version: 4.11.3 url: https://github.com/segmentio/analytics-android/releases/tag/4.11.3 diff --git a/src/_data/changelogs/analytics-go.yml b/src/_data/changelogs/analytics-go.yml index 4f1bab3b81..e24c0d7594 100644 --- a/src/_data/changelogs/analytics-go.yml +++ b/src/_data/changelogs/analytics-go.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM GITHUB API. DO NOT EDIT -# Releases last updated 2024-01-30 +# Releases last updated 2024-12-19 releases: - version: v3.3.0 url: https://github.com/segmentio/analytics-go/releases/tag/v3.3.0 diff --git a/src/_data/changelogs/analytics-ios.yml b/src/_data/changelogs/analytics-ios.yml index 4f3d743303..8a96782e5d 100644 --- a/src/_data/changelogs/analytics-ios.yml +++ b/src/_data/changelogs/analytics-ios.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM GITHUB API. DO NOT EDIT -# Releases last updated 2024-01-30 +# Releases last updated 2024-12-19 releases: - version: 4.1.8 url: https://github.com/segmentio/analytics-ios/releases/tag/4.1.8 diff --git a/src/_data/changelogs/analytics-java.yml b/src/_data/changelogs/analytics-java.yml index 92a9c7423b..f8a187c8e0 100644 --- a/src/_data/changelogs/analytics-java.yml +++ b/src/_data/changelogs/analytics-java.yml @@ -1,3 +1,3 @@ # AUTOGENERATED FROM GITHUB API. DO NOT EDIT -# Releases last updated 2024-01-30 +# Releases last updated 2024-12-19 releases: [] diff --git a/src/_data/changelogs/analytics-node.yml b/src/_data/changelogs/analytics-node.yml index 5471ab37e7..1fac05eb28 100644 --- a/src/_data/changelogs/analytics-node.yml +++ b/src/_data/changelogs/analytics-node.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM GITHUB API. DO NOT EDIT -# Releases last updated 2024-01-30 +# Releases last updated 2024-12-19 releases: - version: '' url: https://github.com/segmentio/analytics-node/releases/tag/v6.2.0 diff --git a/src/_data/changelogs/analytics-php.yml b/src/_data/changelogs/analytics-php.yml index a56bc6e5c3..75578a34c5 100644 --- a/src/_data/changelogs/analytics-php.yml +++ b/src/_data/changelogs/analytics-php.yml @@ -1,6 +1,10 @@ # AUTOGENERATED FROM GITHUB API. DO NOT EDIT -# Releases last updated 2024-01-30 +# Releases last updated 2024-12-19 releases: +- version: 3.8.0 + url: https://github.com/segmentio/analytics-php/releases/tag/3.8.0 + date: '2024-02-15T16:09:44Z' + notes: "## What's Changed\r\n* Update to PHP 8.3 by @nd4p90x in https://github.com/segmentio/analytics-php/pull/231\r\n\r\n**Full Changelog**: https://github.com/segmentio/analytics-php/compare/3.7.0...3.8.0" - version: 3.7.0 url: https://github.com/segmentio/analytics-php/releases/tag/3.7.0 date: '2023-09-11T13:53:19Z' diff --git a/src/_data/changelogs/analytics-python.yml b/src/_data/changelogs/analytics-python.yml index 92a9c7423b..f8a187c8e0 100644 --- a/src/_data/changelogs/analytics-python.yml +++ b/src/_data/changelogs/analytics-python.yml @@ -1,3 +1,3 @@ # AUTOGENERATED FROM GITHUB API. DO NOT EDIT -# Releases last updated 2024-01-30 +# Releases last updated 2024-12-19 releases: [] diff --git a/src/_data/changelogs/analytics-react-native.yml b/src/_data/changelogs/analytics-react-native.yml index 11ea6df108..b245dbd731 100644 --- a/src/_data/changelogs/analytics-react-native.yml +++ b/src/_data/changelogs/analytics-react-native.yml @@ -1,692 +1,221 @@ # AUTOGENERATED FROM GITHUB API. DO NOT EDIT -# Releases last updated 2024-01-30 +# Releases last updated 2024-12-19 releases: -- version: '@segment/sovran-react-native-v1.1.0-beta.1' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/sovran-react-native-v1.1.0-beta.1 - date: '2023-12-15T20:21:53Z' - notes: >+ - ## @segment/sovran-react-native - [1.1.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/sovran-react-native-v1.0.4...@segment/sovran-react-native-v1.1.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - -- version: '@segment/analytics-react-native-v2.18.0-beta.1' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.18.0-beta.1 - date: '2023-12-15T20:23:24Z' - notes: >- - ## @segment/analytics-react-native - [2.18.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-v2.17.0...@segment/analytics-react-native-v2.18.0-beta.1) - (2023-12-15) - - - - ### Features - - - * add support for hasUnmappedDestinations - ([#905](https://github.com/segmentio/analytics-react-native/issues/905)) - ([545d596](https://github.com/segmentio/analytics-react-native/commit/545d596e2b1fd5f83b229e7d3526ebf59ab62295)) - - * consent plugin updates and test cases - ([#894](https://github.com/segmentio/analytics-react-native/issues/894)) - ([ff1d332](https://github.com/segmentio/analytics-react-native/commit/ff1d33213108199d9486592d8a0372191f17dc2e)) - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - +- version: '@segment/analytics-react-native-plugin-advertising-id-v1.3.3' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-advertising-id-v1.3.3 + date: '2024-11-14T20:19:14Z' + notes: '' +- version: '@segment/analytics-react-native-v2.20.3' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.20.3 + date: '2024-11-13T15:47:18Z' + notes: '' +- version: '@segment/analytics-react-native-v2.20.2' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.20.2 + date: '2024-10-23T09:15:00Z' + notes: '' +- version: '@segment/analytics-react-native-plugin-advertising-id-v1.3.2' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-advertising-id-v1.3.2 + date: '2024-10-23T09:15:29Z' + notes: |- ### Dependencies - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-mixpanel-v0.4.0-beta.1' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-mixpanel-v0.4.0-beta.1 - date: '2023-12-15T20:40:30Z' - notes: >- - ## @segment/analytics-react-native-plugin-mixpanel - [0.4.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-mixpanel-v0.3.4...@segment/analytics-react-native-plugin-mixpanel-v0.4.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + * **@segment/analytics-react-native:** upgraded to 2.20.2 +- version: '@segment/analytics-react-native-v2.20.1' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.20.1 + date: '2024-10-11T19:53:05Z' + notes: '' +- version: '@segment/analytics-react-native-v2.20.0' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.20.0 + date: '2024-10-08T20:16:21Z' + notes: '' +- version: '' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.19.5 + date: '2024-09-16T13:45:20Z' + notes: "- fix: add conditional to queue restoration error reporting #999 \r\n- chore: update async-storage dependency to 2.0.0 #1000 " +- version: '@segment/analytics-react-native-v2.19.4' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.19.4 + date: '2024-08-15T13:43:33Z' + notes: '' +- version: '@segment/analytics-react-native-plugin-firebase-v0.4.2' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-firebase-v0.4.2 + date: '2024-08-01T15:34:51Z' + notes: '' +- version: '@segment/analytics-react-native-plugin-onetrust-v1.2.1' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-onetrust-v1.2.1 + date: '2024-07-31T15:27:06Z' + notes: '' +- version: '@segment/analytics-react-native-v2.19.1' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.19.1 + date: '2024-02-28T00:40:43Z' + notes: '' +- version: '@segment/analytics-react-native-plugin-idfa-v0.7.2' + url: >- + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-idfa-v0.7.2 + date: '2024-02-28T00:41:22Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-idfa-v0.7.0-beta.1' + * **@segment/analytics-react-native:** upgraded to 2.19.1 +- version: '@segment/sovran-react-native-v1.1.1' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-idfa-v0.7.0-beta.1 - date: '2023-12-15T20:38:11Z' - notes: >- - ## @segment/analytics-react-native-plugin-idfa - [0.7.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-idfa-v0.6.2...@segment/analytics-react-native-plugin-idfa-v0.7.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - - ### Dependencies - - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-firebase-v0.4.0-beta.1' + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/sovran-react-native-v1.1.1 + date: '2024-02-26T23:22:10Z' + notes: '' +- version: '@segment/analytics-react-native-v2.19.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-firebase-v0.4.0-beta.1 - date: '2023-12-15T20:37:44Z' - notes: >- - ## @segment/analytics-react-native-plugin-firebase - [0.4.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-firebase-v0.3.11...@segment/analytics-react-native-plugin-firebase-v0.4.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.19.0 + date: '2024-02-26T23:22:58Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-facebook-app-events-v0.6.0-beta.1' + * **@segment/sovran-react-native:** upgraded to 1.1.1 +- version: '@segment/analytics-react-native-plugin-onetrust-v1.2.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-facebook-app-events-v0.6.0-beta.1 - date: '2023-12-15T20:36:58Z' - notes: >- - ## @segment/analytics-react-native-plugin-facebook-app-events - [0.6.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-facebook-app-events-v0.5.4...@segment/analytics-react-native-plugin-facebook-app-events-v0.6.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-onetrust-v1.2.0 + date: '2024-02-26T23:28:18Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-device-token-v1.1.0-beta.1' + * **@segment/analytics-react-native:** upgraded to 2.19.0 + * **@segment/sovran-react-native:** upgraded to 1.1.1 +- version: '@segment/analytics-react-native-plugin-idfa-v0.7.1' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-device-token-v1.1.0-beta.1 - date: '2023-12-15T20:35:27Z' - notes: >- - ## @segment/analytics-react-native-plugin-device-token - [1.1.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-device-token-v1.0.2...@segment/analytics-react-native-plugin-device-token-v1.1.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-idfa-v0.7.1 + date: '2024-02-26T23:27:34Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-destination-filters-v1.1.0-beta.1' + * **@segment/analytics-react-native:** upgraded to 2.19.0 + * **@segment/sovran-react-native:** upgraded to 1.1.1 +- version: '@segment/analytics-react-native-plugin-firebase-v0.4.1' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-destination-filters-v1.1.0-beta.1 - date: '2023-12-15T20:34:33Z' - notes: >- - ## @segment/analytics-react-native-plugin-destination-filters - [1.1.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-destination-filters-v1.0.4...@segment/analytics-react-native-plugin-destination-filters-v1.1.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-firebase-v0.4.1 + date: '2024-02-26T23:26:52Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-clevertap-v1.1.0-beta.1' + * **@segment/analytics-react-native:** upgraded to 2.19.0 + * **@segment/sovran-react-native:** upgraded to 1.1.1 +- version: '@segment/analytics-react-native-plugin-device-token-v1.1.1' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-clevertap-v1.1.0-beta.1 - date: '2023-12-15T20:33:38Z' - notes: >- - ## @segment/analytics-react-native-plugin-clevertap - [1.1.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-clevertap-v1.0.3...@segment/analytics-react-native-plugin-clevertap-v1.1.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-device-token-v1.1.1 + date: '2024-02-26T23:26:07Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-braze-v0.6.0-beta.1' + * **@segment/analytics-react-native:** upgraded to 2.19.0 + * **@segment/sovran-react-native:** upgraded to 1.1.1 +- version: '@segment/analytics-react-native-plugin-braze-v0.6.1' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-braze-v0.6.0-beta.1 - date: '2023-12-15T20:29:43Z' - notes: >- - ## @segment/analytics-react-native-plugin-braze - [0.6.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-braze-v0.5.4...@segment/analytics-react-native-plugin-braze-v0.6.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-braze-v0.6.1 + date: '2024-02-26T23:25:15Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-braze-middleware-v1.1.0-beta.1' + * **@segment/analytics-react-native:** upgraded to 2.19.0 + * **@segment/sovran-react-native:** upgraded to 1.1.1 +- version: '@segment/analytics-react-native-plugin-branch-v1.1.1' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-braze-middleware-v1.1.0-beta.1 - date: '2023-12-15T20:31:18Z' - notes: >- - ## @segment/analytics-react-native-plugin-braze-middleware - [1.1.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-braze-middleware-v1.0.1...@segment/analytics-react-native-plugin-braze-middleware-v1.1.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-branch-v1.1.1 + date: '2024-02-26T23:24:32Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-branch-v1.1.0-beta.1' + * **@segment/analytics-react-native:** upgraded to 2.19.0 + * **@segment/sovran-react-native:** upgraded to 1.1.1 +- version: '@segment/analytics-react-native-plugin-advertising-id-v1.3.1' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-branch-v1.1.0-beta.1 - date: '2023-12-15T20:28:46Z' - notes: >- - ## @segment/analytics-react-native-plugin-branch - [1.1.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-branch-v1.0.3...@segment/analytics-react-native-plugin-branch-v1.1.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-advertising-id-v1.3.1 + date: '2024-02-26T23:23:43Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-appsflyer-v0.6.0-beta.1' + * **@segment/analytics-react-native:** upgraded to 2.19.0 + * **@segment/sovran-react-native:** upgraded to 1.1.1 +- version: '@segment/sovran-react-native-v1.1.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-appsflyer-v0.6.0-beta.1 - date: '2023-12-15T20:27:52Z' - notes: >- - ## @segment/analytics-react-native-plugin-appsflyer - [0.6.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-appsflyer-v0.5.3...@segment/analytics-react-native-plugin-appsflyer-v0.6.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - - ### Dependencies - - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-amplitude-session-v0.4.0-beta.1' + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/sovran-react-native-v1.1.0 + date: '2024-02-05T22:29:56Z' + notes: '' +- version: '@segment/analytics-react-native-v2.18.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-amplitude-session-v0.4.0-beta.1 - date: '2023-12-15T20:25:34Z' - notes: >- - ## @segment/analytics-react-native-plugin-amplitude-session - [0.4.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-amplitude-session-v0.3.3...@segment/analytics-react-native-plugin-amplitude-session-v0.4.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.18.0 + date: '2024-02-05T22:31:36Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-advertising-id-v1.3.0-beta.1' + * **@segment/sovran-react-native:** upgraded to 1.1.0 +- version: '@segment/analytics-react-native-plugin-onetrust-v1.1.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-advertising-id-v1.3.0-beta.1 - date: '2023-12-15T20:24:41Z' - notes: >- - ## @segment/analytics-react-native-plugin-advertising-id - [1.3.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-advertising-id-v1.2.4...@segment/analytics-react-native-plugin-advertising-id-v1.3.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-onetrust-v1.1.0 + date: '2024-02-05T22:51:01Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-plugin-adjust-v0.7.0-beta.1' + * **@segment/analytics-react-native:** upgraded to 2.18.0 + * **@segment/sovran-react-native:** upgraded to 1.1.0 +- version: '@segment/analytics-react-native-plugin-mixpanel-v0.4.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-adjust-v0.7.0-beta.1 - date: '2023-12-15T20:23:46Z' - notes: >- - ## @segment/analytics-react-native-plugin-adjust - [0.7.0-beta.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-adjust-v0.6.3...@segment/analytics-react-native-plugin-adjust-v0.7.0-beta.1) - (2023-12-15) - - - - ### Features - - - * RN 0.72 Upgrade - ([03f13a1](https://github.com/segmentio/analytics-react-native/commit/03f13a19c79d8aaad726639de5f0327c748fed1f)) - - - - + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-mixpanel-v0.4.0 + date: '2024-02-05T22:50:09Z' + notes: |- ### Dependencies - - * **@segment/analytics-react-native:** upgraded to 2.18.0-beta.1 - - * **@segment/sovran-react-native:** upgraded to 1.1.0-beta.1 -- version: '@segment/analytics-react-native-v2.17.0' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.17.0 - date: '2023-10-20T22:05:30Z' - notes: >+ - ## - [@segment/analytics-react-native-v2.17.0](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-v2.16.1...@segment/analytics-react-native-v2.17.0) - (2023-10-20) - - - - ### Features - - - * add consent management and support for onetrust cmp - ([#882](https://github.com/segmentio/analytics-react-native/issues/882)) - ([375684f](https://github.com/segmentio/analytics-react-native/commit/375684f99ac4324d30c009924ad004098d9feb38)) - - - - ### Bug Fixes - - - * add unknown option to current state - ([#887](https://github.com/segmentio/analytics-react-native/issues/887)) - ([a0a3b0d](https://github.com/segmentio/analytics-react-native/commit/a0a3b0df3269542fcbd836ae1d2d5d7a77157313)) - - * change content type to json - ([#885](https://github.com/segmentio/analytics-react-native/issues/885)) - ([e8ddeb4](https://github.com/segmentio/analytics-react-native/commit/e8ddeb49a97e62ccd6150e88bfb16014ede1332e)) - -- version: '@segment/analytics-react-native-plugin-onetrust-v1.0.0' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-onetrust-v1.0.0 - date: '2023-10-20T22:07:14Z' - notes: >+ - ## @segment/analytics-react-native-plugin-onetrust-v1.0.0 (2023-10-20) - - - - ### Features - - - * add consent management and support for onetrust cmp - ([#882](https://github.com/segmentio/analytics-react-native/issues/882)) - ([375684f](https://github.com/segmentio/analytics-react-native/commit/375684f99ac4324d30c009924ad004098d9feb38)) - -- version: '@segment/analytics-react-native-plugin-firebase-v0.3.11' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-firebase-v0.3.11 - date: '2023-10-20T22:06:39Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-firebase-v0.3.11](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-firebase-v0.3.10...@segment/analytics-react-native-plugin-firebase-v0.3.11) - (2023-10-20) - - - - ### Bug Fixes - - - * update peer dependency to version 18 of Firebase - ([#883](https://github.com/segmentio/analytics-react-native/issues/883)) - ([8796020](https://github.com/segmentio/analytics-react-native/commit/87960204260bf3aa14ad5f7d777b2f7bbb42c018)) - -- version: '@segment/analytics-react-native-v2.16.1' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.16.1 - date: '2023-09-14T15:21:01Z' - notes: >+ - ## - [@segment/analytics-react-native-v2.16.1](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-v2.16.0...@segment/analytics-react-native-v2.16.1) - (2023-09-14) - - - - ### Bug Fixes - - - * split userInfo/context stamping from raw event data - ([#876](https://github.com/segmentio/analytics-react-native/issues/876)) - ([c220376](https://github.com/segmentio/analytics-react-native/commit/c220376a393b2d89a3ebb91b572edeb21cdcd5a4)) - -- version: '@segment/analytics-react-native-plugin-mixpanel-v0.3.4' + * **@segment/analytics-react-native:** upgraded to 2.18.0 + * **@segment/sovran-react-native:** upgraded to 1.1.0 +- version: '@segment/analytics-react-native-plugin-idfa-v0.7.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-mixpanel-v0.3.4 - date: '2023-09-14T15:23:26Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-mixpanel-v0.3.4](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-mixpanel-v0.3.3...@segment/analytics-react-native-plugin-mixpanel-v0.3.4) - (2023-09-14) - - - - ### Bug Fixes - - - * package dependency fixes - ([#869](https://github.com/segmentio/analytics-react-native/issues/869)) - ([08d415e](https://github.com/segmentio/analytics-react-native/commit/08d415e3b1cfd8499f5f6984f2859a30a851da12)) - -- version: '@segment/analytics-react-native-plugin-firebase-v0.3.10' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-firebase-v0.3.10 - date: '2023-09-14T15:22:53Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-firebase-v0.3.10](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-firebase-v0.3.9...@segment/analytics-react-native-plugin-firebase-v0.3.10) - (2023-09-14) - - - - ### Bug Fixes - - - * add firebase view cart mapping - ([#871](https://github.com/segmentio/analytics-react-native/issues/871)) - ([ef0e02f](https://github.com/segmentio/analytics-react-native/commit/ef0e02fcc247e722c0119e3420812d855a2fe5c1)) - -- version: '@segment/analytics-react-native-plugin-facebook-app-events-v0.5.4' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-facebook-app-events-v0.5.4 - date: '2023-09-14T15:22:24Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-facebook-app-events-v0.5.4](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-facebook-app-events-v0.5.3...@segment/analytics-react-native-plugin-facebook-app-events-v0.5.4) - (2023-09-14) - - - - ### Bug Fixes - - - * switch FBSDK logTime to number - ([#878](https://github.com/segmentio/analytics-react-native/issues/878)) - ([2ed6d34](https://github.com/segmentio/analytics-react-native/commit/2ed6d34c46063330c6573774906cae5afc9d5e06)) - -- version: '@segment/analytics-react-native-v2.16.0' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-v2.16.0 - date: '2023-08-21T16:56:42Z' - notes: >+ - ## - [@segment/analytics-react-native-v2.16.0](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-v2.15.0...@segment/analytics-react-native-v2.16.0) - (2023-08-21) - - - - ### Features - - - * add saveDelay option for persistor - ([#811](https://github.com/segmentio/analytics-react-native/issues/811)) - ([11d5e87](https://github.com/segmentio/analytics-react-native/commit/11d5e87648938220732ea2e2c35d499789413b72)) - - - - ### Bug Fixes - - - * package dependency fixes - ([#869](https://github.com/segmentio/analytics-react-native/issues/869)) - ([08d415e](https://github.com/segmentio/analytics-react-native/commit/08d415e3b1cfd8499f5f6984f2859a30a851da12)) - - * resolve potential build issues with RN 0.72 - ([#841](https://github.com/segmentio/analytics-react-native/issues/841)) - ([d287304](https://github.com/segmentio/analytics-react-native/commit/d287304383b22b7d0344d0f2c68fccce8aec76cb)) - -- version: '@segment/analytics-react-native-plugin-facebook-app-events-v0.5.3' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-facebook-app-events-v0.5.3 - date: '2023-08-21T17:00:29Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-facebook-app-events-v0.5.3](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-facebook-app-events-v0.5.2...@segment/analytics-react-native-plugin-facebook-app-events-v0.5.3) - (2023-08-21) - - - - ### Bug Fixes - - - * package dependency fixes - ([#869](https://github.com/segmentio/analytics-react-native/issues/869)) - ([08d415e](https://github.com/segmentio/analytics-react-native/commit/08d415e3b1cfd8499f5f6984f2859a30a851da12)) - -- version: '@segment/analytics-react-native-plugin-destination-filters-v1.0.4' - url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-destination-filters-v1.0.4 - date: '2023-08-21T16:59:57Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-destination-filters-v1.0.4](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-destination-filters-v1.0.3...@segment/analytics-react-native-plugin-destination-filters-v1.0.4) - (2023-08-21) - - - - ### Bug Fixes - - - * package dependency fixes - ([#869](https://github.com/segmentio/analytics-react-native/issues/869)) - ([08d415e](https://github.com/segmentio/analytics-react-native/commit/08d415e3b1cfd8499f5f6984f2859a30a851da12)) + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-idfa-v0.7.0 + date: '2024-02-05T22:47:41Z' + notes: |- + ### Dependencies -- version: '@segment/analytics-react-native-plugin-clevertap-v1.0.3' + * **@segment/analytics-react-native:** upgraded to 2.18.0 + * **@segment/sovran-react-native:** upgraded to 1.1.0 +- version: '@segment/analytics-react-native-plugin-firebase-v0.4.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-clevertap-v1.0.3 - date: '2023-08-21T16:59:31Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-clevertap-v1.0.3](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-clevertap-v1.0.2...@segment/analytics-react-native-plugin-clevertap-v1.0.3) - (2023-08-21) - - - - ### Bug Fixes - - - * package dependency fixes - ([#869](https://github.com/segmentio/analytics-react-native/issues/869)) - ([08d415e](https://github.com/segmentio/analytics-react-native/commit/08d415e3b1cfd8499f5f6984f2859a30a851da12)) + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-firebase-v0.4.0 + date: '2024-02-05T22:47:08Z' + notes: |- + ### Dependencies -- version: '@segment/analytics-react-native-plugin-branch-v1.0.3' + * **@segment/analytics-react-native:** upgraded to 2.18.0 + * **@segment/sovran-react-native:** upgraded to 1.1.0 +- version: '@segment/analytics-react-native-plugin-facebook-app-events-v0.6.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-branch-v1.0.3 - date: '2023-08-21T16:58:54Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-branch-v1.0.3](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-branch-v1.0.2...@segment/analytics-react-native-plugin-branch-v1.0.3) - (2023-08-21) - - - - ### Bug Fixes - - - * package dependency fixes - ([#869](https://github.com/segmentio/analytics-react-native/issues/869)) - ([08d415e](https://github.com/segmentio/analytics-react-native/commit/08d415e3b1cfd8499f5f6984f2859a30a851da12)) + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-facebook-app-events-v0.6.0 + date: '2024-02-05T22:46:10Z' + notes: |- + ### Dependencies -- version: '@segment/analytics-react-native-plugin-appsflyer-v0.5.3' + * **@segment/analytics-react-native:** upgraded to 2.18.0 + * **@segment/sovran-react-native:** upgraded to 1.1.0 +- version: '@segment/analytics-react-native-plugin-device-token-v1.1.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-appsflyer-v0.5.3 - date: '2023-08-21T16:58:27Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-appsflyer-v0.5.3](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-appsflyer-v0.5.2...@segment/analytics-react-native-plugin-appsflyer-v0.5.3) - (2023-08-21) - - - - ### Bug Fixes - - - * package dependency fixes - ([#869](https://github.com/segmentio/analytics-react-native/issues/869)) - ([08d415e](https://github.com/segmentio/analytics-react-native/commit/08d415e3b1cfd8499f5f6984f2859a30a851da12)) + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-device-token-v1.1.0 + date: '2024-02-05T22:44:32Z' + notes: |- + ### Dependencies -- version: '@segment/analytics-react-native-plugin-advertising-id-v1.2.4' + * **@segment/analytics-react-native:** upgraded to 2.18.0 + * **@segment/sovran-react-native:** upgraded to 1.1.0 +- version: '@segment/analytics-react-native-plugin-destination-filters-v1.1.0' url: >- - https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-advertising-id-v1.2.4 - date: '2023-08-21T16:57:54Z' - notes: >+ - ## - [@segment/analytics-react-native-plugin-advertising-id-v1.2.4](https://github.com/segmentio/analytics-react-native/compare/@segment/analytics-react-native-plugin-advertising-id-v1.2.3...@segment/analytics-react-native-plugin-advertising-id-v1.2.4) - (2023-08-21) - - - - ### Bug Fixes - - - * resolve potential build issues with RN 0.72 - ([#841](https://github.com/segmentio/analytics-react-native/issues/841)) - ([d287304](https://github.com/segmentio/analytics-react-native/commit/d287304383b22b7d0344d0f2c68fccce8aec76cb)) + https://github.com/segmentio/analytics-react-native/releases/tag/%40segment/analytics-react-native-plugin-destination-filters-v1.1.0 + date: '2024-02-05T22:43:30Z' + notes: |- + ### Dependencies + * **@segment/analytics-react-native:** upgraded to 2.18.0 + * **@segment/sovran-react-native:** upgraded to 1.1.0 diff --git a/src/_data/changelogs/analytics.NET.yml b/src/_data/changelogs/analytics.NET.yml index 337e4f0234..35bd8b5a18 100644 --- a/src/_data/changelogs/analytics.NET.yml +++ b/src/_data/changelogs/analytics.NET.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM GITHUB API. DO NOT EDIT -# Releases last updated 2024-01-30 +# Releases last updated 2024-12-19 releases: - version: '' url: https://github.com/segmentio/Analytics.NET/releases/tag/3.8.1 From d0c0d88fe2ec1ab5b6f9dc36180722c218ee031b Mon Sep 17 00:00:00 2001 From: pwseg Date: Thu, 19 Dec 2024 13:55:15 -0600 Subject: [PATCH 58/63] add application deadline callout [netlify-build] --- src/guides/usage-and-billing/startup-program.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/guides/usage-and-billing/startup-program.md b/src/guides/usage-and-billing/startup-program.md index 1a0eff242d..01a56cc9f3 100644 --- a/src/guides/usage-and-billing/startup-program.md +++ b/src/guides/usage-and-billing/startup-program.md @@ -2,7 +2,7 @@ title: Segment Startup Program --- -Segment offers a **Startup Program** to enable early startups to track data correctly and easily test the marketing and analytics tools necessary to grow their business. The program is open to any early-stage startup that meets the following eligibility requirements: +Segment offers a **Startup Program** to enable early startups to track data correctly and test the marketing and analytics tools necessary to grow their business. The program is open to any early-stage startup that meets the following eligibility requirements: - Incorporated less than two years ago @@ -18,6 +18,9 @@ The Segment Startup Program includes three components: Interested companies can apply on the [Startup Program](http://segment.com/industry/startups){:target="_blank”} site. +> info "Application deadline" +> Effective January 6, 2025, Segment will no longer accept applications for the Segment Startup Program. Applications submitted before 11:59 PM PT on December 5, 2024 will be reviewed and honored. However, any applications received after this deadline will not be accepted. There will be no exceptions. + *Can vary based on affiliated accelerator and VC partners. From c3e68b4eb546f093eb5ee2ec98390c5f385ec6a2 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:42:53 -0600 Subject: [PATCH 59/63] Update src/guides/usage-and-billing/startup-program.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/guides/usage-and-billing/startup-program.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/usage-and-billing/startup-program.md b/src/guides/usage-and-billing/startup-program.md index 01a56cc9f3..f97ca85994 100644 --- a/src/guides/usage-and-billing/startup-program.md +++ b/src/guides/usage-and-billing/startup-program.md @@ -2,7 +2,7 @@ title: Segment Startup Program --- -Segment offers a **Startup Program** to enable early startups to track data correctly and test the marketing and analytics tools necessary to grow their business. The program is open to any early-stage startup that meets the following eligibility requirements: +Segment offers a **Startup Program** to enable early startups to track data and test the marketing and analytics tools necessary to grow their business. The program is open to any early-stage startup that meets the following eligibility requirements: - Incorporated less than two years ago From 41cf5d8abb261fd65cd928e8a77359ce280b541d Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:43:27 -0600 Subject: [PATCH 60/63] Update src/guides/usage-and-billing/startup-program.md Co-authored-by: stayseesong <83784848+stayseesong@users.noreply.github.com> --- src/guides/usage-and-billing/startup-program.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/usage-and-billing/startup-program.md b/src/guides/usage-and-billing/startup-program.md index f97ca85994..34550e8c16 100644 --- a/src/guides/usage-and-billing/startup-program.md +++ b/src/guides/usage-and-billing/startup-program.md @@ -19,7 +19,7 @@ The Segment Startup Program includes three components: Interested companies can apply on the [Startup Program](http://segment.com/industry/startups){:target="_blank”} site. > info "Application deadline" -> Effective January 6, 2025, Segment will no longer accept applications for the Segment Startup Program. Applications submitted before 11:59 PM PT on December 5, 2024 will be reviewed and honored. However, any applications received after this deadline will not be accepted. There will be no exceptions. +> Effective January 6, 2025, Segment will no longer accept applications for the Segment Startup Program. Applications submitted before 11:59 PM PT on December 5, 2024 will be reviewed and honored. Any applications received after this deadline won't be accepted. There will be no exceptions. *Can vary based on affiliated accelerator and VC partners. From 10701433f5fe0c322e6fd0d96bfdbb22c6ee513c Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:50:24 -0600 Subject: [PATCH 61/63] [netlify-build] --- src/engage/audiences/linked-audiences-limits.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engage/audiences/linked-audiences-limits.md b/src/engage/audiences/linked-audiences-limits.md index 0f5e05b1ab..97adbb5587 100644 --- a/src/engage/audiences/linked-audiences-limits.md +++ b/src/engage/audiences/linked-audiences-limits.md @@ -31,7 +31,7 @@ Name | Limit | Details ---- | ----- | -------- RETL row limit | 150 million | The audience compute fails if the total output exceeds the limit. RETL column limit | 500 columns | The audience compute fails if the number of columns exceeds the limit. -Global concurrent audience runs | 5 total within any given space | New audience runs are queued once the limit is reached and will start execution once prior audience runs complete. If you have need a higher global concurrent audience runs limit, please contact friends@segment.com +Global concurrent audience runs | 5 total within any given space | New audience runs are queued once the limit is reached and will start execution once prior audience runs complete. If you need a higher global concurrent audience runs limit, contact [friends@segment.com](mailto:friends@segment.com){:target="_blank"}. Event Size | 32 KB | Segment doesn’t emit messages for profiles whose total related entities and enrichments exceed the limit. Data Graph depth | 6 | You can't save a Data Graph if you exceed the limit. Preview size | 3K rows | The maximum number of rows you can have to generate a preview. The preview fails if you bring back too many entities. From 1b126dca6711839eb5083bc3d4db88645a4a001c Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Thu, 19 Dec 2024 14:55:32 -0600 Subject: [PATCH 62/63] cleanup --- src/connections/destinations/actions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 4be77c450d..040d47fd55 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -306,6 +306,6 @@ Threfore, if you see a 401 error in a sample response, it is likely that you’l Segment integrations process events through mappings individially. This means that no context is held that would allow you to map a value from one event to the field of a subsequent event. Each event itself must contain all of the data you'd like to send downstream in regards to it. For example, you cannot send `email` in on an Identify call and then access that same `email` field on a Track call that comes in later if that Track call doesn't also have `email` set on it. -### Unable to view/edit the mapping as expected, and it is throwing a 'Couldn't load page' error. +### I'm getting a 'Couldn't load page' error when viewing or editing a mapping -It might be due to the browser cache or the event property name containing a "/". To resolve this, try clearing the browser cache or accessing the mapping page in an Incognito window. Additionally, check if the property name mapped in the mapping contains a "/". If so, please try renaming the property name without the "/" and map it in the mapping to avoid this error. +This issue can occur due to a browser cache conflict or if an event property name includes a `/`. To resolve it, try clearing your browser cache or accessing the mapping page in an incognito window. Additionally, check if the mapped property name contains a `/`. If it does, rename the property to remove the `/` and update the mapping. From 6cb7250ba6eab7b7fd0a8a8521df5f0d431cc4b0 Mon Sep 17 00:00:00 2001 From: pwseg <86626706+pwseg@users.noreply.github.com> Date: Thu, 19 Dec 2024 15:03:01 -0600 Subject: [PATCH 63/63] some style stuff --- src/engage/journeys/event-triggered-journeys.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/event-triggered-journeys.md index cbc5360337..40b32d7b81 100644 --- a/src/engage/journeys/event-triggered-journeys.md +++ b/src/engage/journeys/event-triggered-journeys.md @@ -78,9 +78,7 @@ For other destinations or more complex logic, you can use [Destination Functions - Send a **test event** to validate the configuration. - Ensure that the data is received correctly by the destination and mapped as expected. -#### Behind the Scenes - -When a journey reaches this step, the system prepares and sends the payload based on your configuration. The integration ensures compatibility with the selected destination’s API, allowing seamless data transfer and execution of the specified action. +When a journey reaches this step, the Segment prepares and sends the payload based on your configuration. The integration ensures compatibility with the selected destination’s API, allowing seamless data transfer and execution of the specified action. ### Journey setup configuration options @@ -97,11 +95,10 @@ When you select **Re-enter every time event occurs** when you create an event-tr For example, in an abandonment journey, suppose a user starts two applications (like `application_started`), each with a different `application_id`. By setting `application_id` as the unique identifier, Segment can match follow-up events (like `application_completed`) to the correct application journey. As a result, each journey instance only receives the completion event for its specific application. -### Notes and Limitations - -- **Supported Destinations:** Currently, only Actions Destinations in the Segment catalog are supported. -- **Data Mapping:** Ensure all required keys for the destination are properly mapped to avoid errors. +### Notes and limitations +- **Supported destinations:** Only Actions Destinations in the Segment catalog are supported. +- **Data mapping:** Ensure all required keys for the destination are properly mapped to avoid errors. ## Best practices @@ -122,7 +119,7 @@ Segment built Event-Triggered Journeys to respond instantly to events, offering - **Entry event requirements**: The entry event you use must already exist in your Segment workspace for it to appear as a selection in journey setup. Make sure that you've already created the event before setting up your journey. - **Event property filters**: You can filter event properties using the `equals` or `equals any of` operators. When you apply multiple conditions, filters operate with `AND` logic, meaning all conditions must be true for the event to trigger entry into the journey. - **Audience filtering**: You can only use active, pre-existing audience records as filters. For more complex filtering, like specific profile traits or multiple audiences, first [create the audience](/docs/engage/audiences/#building-an-audience) in **Engage > Audiences**, then apply it as a filter once it’s live. -- **Destination options**: While Event-Triggered Journeys support all [actions-based destinations](/docs/connections/destinations/actions/) and Destination Functions, you can currently only add one destination per Send to Destination step. If you need to send to multiple destinations, you can use multiple Send to Destination steps. +- **Destination options**: While Event-Triggered Journeys support all [actions-based destinations](/docs/connections/destinations/actions/) and Destination Functions, you can only add one destination per Send to Destination step. If you need to send to multiple destinations, you can use multiple Send to Destination steps. - **Event payload structure**: Each payload sent to a destination includes a unique key to identify the specific send step within the journey, rather than the journey instance itself. You can also set a custom event name to make it easier to identify the specific event instance you want to track in your destination. - **Editing and versioning**: After you publish an event-triggered journey, you won't be able to edit it. To modify a journey, create a new journey. - **Real-time delivery**: Event-Triggered Journeys aim for an expected delivery time of under 5 minutes from the moment an event is performed to when the payload reaches the destination, assuming there is no delay step in the journey. However, external factors outside of Segment's control may occasionally introduce latency.