diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml
index ffee24810c..654d738357 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-09-24
+# destination categories last updated 2024-09-26
items:
- display_name: A/B Testing
slug: a-b-testing
diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml
index 4d3a2ab476..6792a9e906 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-09-24
+# destination data last updated 2024-09-26
items:
- id: 637e8d185e2dec264895ea89
display_name: 1Flow
diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml
index 7aab741add..b325437cc6 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-09-24
+# destination data last updated 2024-09-26
items:
- id: 54521fd925e721e32a72eee1
display_name: Pardot
diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml
index aa7ef936bc..d5cc6e6e0d 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-09-24
+# source categories last updated 2024-09-26
items:
- display_name: A/B Testing
slug: a-b-testing
diff --git a/src/_data/catalog/sources.yml b/src/_data/catalog/sources.yml
index 400d2b648c..e9a88acc0a 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-09-24
+# sources last updated 2024-09-26
items:
- id: 8HWbgPTt3k
display_name: .NET
diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml
index 40fc042aec..74ed36b0ab 100644
--- a/src/_data/sidenav/main.yml
+++ b/src/_data/sidenav/main.yml
@@ -421,8 +421,13 @@ sections:
section:
- path: '/engage/audiences'
title: Audiences Overview
- - path: '/engage/audiences/linked-audiences'
- title: Linked Audiences
+ - section_title: Linked Audiences
+ slug: '/engage/audiences/linked-audiences'
+ section:
+ - path: '/engage/audiences/linked-audiences'
+ title: Linked Audiences Overview
+ - path: '/engage/audiences/linked-audiences-limits'
+ title: Linked Audiences Limits
- path: '/engage/audiences/account-audiences'
title: Account-level Audiences
- path: '/engage/audiences/generative-audiences'
diff --git a/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md b/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md
index a745137faf..f98a6813d2 100644
--- a/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md
+++ b/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md
@@ -62,6 +62,29 @@ Set up your Pixel to work with the Facebook Conversions API (Actions) destinatio
5. On the **Settings** tab, enter in your Pixel ID and click **Save**.
6. Follow the steps in the Destinations Actions documentation on [Customizing mappings](/docs/connections/destinations/actions/#customize-mappings).
+## Actions v2
+Segment created new Actions v2 to provide you with additional access to features. Segment's Actions v2 support the following features:
+ - **Sync modes**: Control how Segment updates your Facebook Business Events Manager by selecting a [sync mode](#sync-modes), or a strategy for updating your downstream data.
+ - **Dynamic dropdowns**: When creating or updating a mapping in the Segment app, the dropdown auto-populates all of the available properties directly from Facebook.
+
+> warning ""
+> You might need to reauthorize your Facebook Business Events Manager account to use all of the features associated with v2 Actions.
+
+The following Facebook Conversions API (Actions) are Actions v2:
+ - [Purchase v2](#purchase-v2)
+ - [Add to Cart v2](#add-to-cart-v2)
+ - [Custom Event v2](#custom-event-v2)
+ - [Page View v2](#page-view-v2)
+ - [View Content v2](#view-content-v2)
+ - [Initiate Checkout v2](#initiate-checkout-v2)
+ - [Search v2](#search-v2)
+
+### Sync modes
+Sync modes allow users to define how Segment should update the data in your destination.
+
+Available sync modes for the Facebook Conversions API (Actions) include:
+- **Add**: Add records to a list, segment, or journey.
+
{% include components/actions-fields.html %}
## Configuration options
diff --git a/src/connections/destinations/catalog/actions-google-sheets/index.md b/src/connections/destinations/catalog/actions-google-sheets/index.md
index 0788216d54..fe6b9ad858 100644
--- a/src/connections/destinations/catalog/actions-google-sheets/index.md
+++ b/src/connections/destinations/catalog/actions-google-sheets/index.md
@@ -27,6 +27,18 @@ The Google Sheets destination can be connected to **Reverse ETL warehouse source
> info ""
> The Google Sheets destination only supports sending new or updated rows to your spreadsheet. Deleting rows is not supported.
+## Actions v2
+
+Segment's v2 Action, [Post Sheet v2](/docs/connections/destinations/catalog/actions-hubspot-cloud/#custom-object-v2), supports **Sync modes**, which allow you to select a strategy for updating your data in Google Sheets.
+
+### Sync modes
+Sync modes allow users to define how Segment updates the data in your destination.
+
+Available sync modes for the Post Sheet v2 Action includes:
+- **Update**: Update a record if a match with the specified identifier is found. Segment does nothing if the row doesn't exist.
+- **Upsert**: If a record with the specified identifier is found, it is updated. If not, a new row is created.
+- **Add**: Add a new record when the specified identifier doesn't exist. If it does, the record is skipped.
+
{% include components/actions-fields.html settings="false"%}
## FAQ
diff --git a/src/connections/reverse-etl/manage-retl.md b/src/connections/reverse-etl/manage-retl.md
index b03b681ad5..4bc6e04093 100644
--- a/src/connections/reverse-etl/manage-retl.md
+++ b/src/connections/reverse-etl/manage-retl.md
@@ -31,6 +31,7 @@ To check the status of your extractions:
* The load results - how many successful records were synced as well as how many records were updated, deleted, or are new.
5. If your sync failed, click the failed reason to get more details on the error and view sample payloads to help troubleshoot the issue.
+
+
## Reset syncs
Reverse ETL uses the Unique Identifier column to detect data changes, like new, updated, and deleted records. If you encounter an error, you can reset Segment’s tracking of this column and force Segment to manually add all records from your dataset.
diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md
index 74ff061d1c..cf7c8613a0 100644
--- a/src/connections/reverse-etl/system.md
+++ b/src/connections/reverse-etl/system.md
@@ -38,7 +38,7 @@ If you have a non-standard or high volume usage plan, you may have unique Revers
Name | Details | Limit
--------- | ------- | ------
-Model query length | The maximum length for the model SQL query. | 131,072 characters
+Model query length | The maximum length for the model SQL query. | 65,535 characters
Model identifier column name length | The maximum length for the ID column name. | 191 characters
Model timestamp column name length | The maximum length for the timestamp column name. | 191 characters
Sync frequency | The shortest possible duration Segment allows between syncs. | 15 minutes
@@ -56,4 +56,4 @@ Column JSON size | The maximum size of any single column value. | 128 KiB
*: _If Segment identifies a sync would be larger than 150 million records, Segment extracts 150 million of the records in the initial sync and syncs any additional records during the next scheduled or manual sync._
-_For example, if a sync would contain 700 million records, Segment would run an initial 150 million record sync, and during the next three scheduled or manual syncs, would sync 150 million records. The fifth scheduled or manual sync would contain the remaining 100 million records._
\ No newline at end of file
+_For example, if a sync would contain 700 million records, Segment would run an initial 150 million record sync, and during the next three scheduled or manual syncs, would sync 150 million records. The fifth scheduled or manual sync would contain the remaining 100 million records._
diff --git a/src/connections/sources/catalog/libraries/server/node/index.md b/src/connections/sources/catalog/libraries/server/node/index.md
index 71fb8d3f72..bd338ad35f 100644
--- a/src/connections/sources/catalog/libraries/server/node/index.md
+++ b/src/connections/sources/catalog/libraries/server/node/index.md
@@ -146,7 +146,7 @@ Field | Details
`event` _String_ | The name of the event you're tracking. We recommend human-readable names like `Song Played` or `Status Updated`.
`properties` _Object, optional_ | A dictionary of properties for the event. If the event was `Product Added`, it might have properties like `price` or `product`.
`timestamp` _Date, optional_ | A JavaScript date object representing when the track took place. If the track just happened, leave it out and we'll use the server's time. If you're importing data from the past make sure you to send a `timestamp`.
-`context` _Object, optional_ | A dictionary of extra [context](https://segment.com/docs/connections/spec/common/#context) to attach to the call. _Note: `context` differs from `traits` because it is not attributes of the user itself._
+`context` _Object, optional_ | A dictionary of extra [context](/docs/connections/spec/common/#context) to attach to the call. _Note: `context` differs from `traits` because it is not attributes of the user itself._
Find details on **best practices in event naming** as well as the **Track method payload** in the [Segment Spec](/docs/connections/spec/track/).
@@ -210,7 +210,7 @@ The Group call has the following fields:
Field | Details
----- | --------
`userId` _String, optional_ | The ID for this user in your database. _Note: at least one of `userId` or `anonymousId` must be included in any group call.
-`anonymousId` _String, optional_ | An ID associated with the user when you don't know who they are (for example), [the anonymousId generated by `analytics.js`](/docs/connections/sources/catalog/libraries/website/javascript/#anonymous-id)). _Note: at least one of `userId` or `anonymousId` must be included in any group call._
+`anonymousId` _String, optional_ | An ID associated with the user when you don't know who they are (for example), [the anonymousId generated by `analytics.js`](/docs/connections/sources/catalog/libraries/website/javascript/#anonymous-id). _Note: at least one of `userId` or `anonymousId` must be included in any group call._
`groupId` _string | The ID of the group.
`traits` _dict, optional_ | A dict of traits you know about the group. For a company, they might be things like `name`, `address`, or `phone`. [Learn more about traits](/docs/connections/spec/group/#traits).
`context` _dict, optional_ | A dict containing any context about the request. To see the full reference of supported keys, check them out in the [context reference](/docs/connections/spec/common/#context)
@@ -407,8 +407,8 @@ Non-critical plugins run through a timeline that executes in order of insertion
| Type | Details
------ | --------
-| `before` | Executes before event processing begins. These are plugins that run before any other plugins run.
For example, validating events before passing them along to other plugins. A failure here could halt the event pipeline.
See the example of how Analytics.js uses the [Event Validation plugin](https://github.com/segmentio/analytics-next/blob/master/packages/browser/src/plugins/validation/index.ts){:target="_blank"} to verify that every event has the correct shape.
-| `enrichment` | Executes as the first level of event processing. These plugins modify an event.
See the example of how Analytics.js uses the [Page Enrichment plugin](https://github.com/segmentio/analytics-next/blob/master/packages/browser/src/plugins/page-enrichment/index.ts){:target="_blank"} to enrich every event with page information.
+| `before` | Executes before event processing begins. These are plugins that run before any other plugins run.
For example, validating events before passing them along to other plugins. A failure here could halt the event pipeline.
+| `enrichment` | Executes as the first level of event processing. These plugins modify an event.
| `destination` | Executes as events begin to pass off to destinations.
This doesn't modify the event outside of the specific destination, and failure doesn't halt the execution.
| `after` | Executes after all event processing completes. You can use this to perform cleanup operations.
An example of this is the [Segment.io Plugin](https://github.com/segmentio/analytics-next/blob/master/packages/browser/src/plugins/segmentio/index.ts){:target="_blank"} which waits for destinations to succeed or fail so it can send it observability metrics.
| `utility` | Executes once during the bootstrap, to give you an outlet to make any modifications as to how Analytics.js works internally. This allows you to augment Analytics.js functionality.
@@ -471,7 +471,7 @@ const identityStitching = () => {
}
```
-You can view Segment's [existing plugins](https://github.com/segmentio/analytics-next/tree/master/src/plugins){:target="_blank"} to see more examples.
+You can view Segment's [existing plugins](https://github.com/segmentio/analytics-next/tree/master/packages/browser/src/plugins){:target="_blank"} to see more examples.
### Register a plugin
Registering plugins enable you to modify your analytics implementation to best fit your needs. You can register a plugin using this:
diff --git a/src/engage/audiences/linked-audiences-limits.md b/src/engage/audiences/linked-audiences-limits.md
new file mode 100644
index 0000000000..c7706d338b
--- /dev/null
+++ b/src/engage/audiences/linked-audiences-limits.md
@@ -0,0 +1,27 @@
+---
+title: Linked Audiences Limits
+plan: engage-foundations
+---
+
+> info ""
+> Linked Audiences is an add-on to Twilio Engage. To use [Linked Audiences](/docs/engage/audiences/linked-audiences), you must have access to Engage.
+
+To provide consistent performance and reliability at scale, Segment enforces default use limits for Linked Audiences.
+
+## Usage limits
+The Linked Audiences module provides you the flexibility to create and publish unlimited Linked Audiences within each billing cycle. This means you won't encounter any limitations or pauses in service related to the number of Linked Audiences you generate.
+
+Linked Audience limits are measured based on Activation Events, which is the number of times profiles are processed to each destination, including audience entered, audience exited, and entity change events. This includes both successful and failed attempts. For example, if you processed an audience of 50k to Braze and Google Ads Conversions, then your total Activation Event usage is 100k records.
+
+Your plan includes a high limit of Activation Events, which ensures that the vast majority of users can use Linked Audiences freely without needing to worry about the limit.
+
+ To see how many Activation Events you’ve processed using Linked Audiences, navigate to **Settings > Usage & billing** and select the **Linked Audiences** tab. If your limit is reached before the end of your billing period, your syncs won't automatically pause to avoid disruptions to your business. You may be billed for overages in cases of significant excess usage. If you consistently require a higher limit, contact your sales representative to upgrade your plan with a custom limit.
+
+ Plan | Linked Audiences Limit | How to increase your limit
+ ---- | ---------------------- | ---------------------------
+ Free | Not available for purchase | N/A
+ Team | Not available for purchase | N/A
+ Business | 40 x the number of MTUs or .25 x the number of monthly API calls | Contact your sales rep to upgrade your plan
+
+If you have a non-standard or high volume usage plan, you have unique Linked Audiences limits or custom pricing.
+
diff --git a/src/engage/trait-activation/id-sync.md b/src/engage/trait-activation/id-sync.md
index ad2db82f35..af30049f23 100644
--- a/src/engage/trait-activation/id-sync.md
+++ b/src/engage/trait-activation/id-sync.md
@@ -39,6 +39,9 @@ You can customize additional event settings at any time.
With Customized setup, you can choose which identifiers you want to map downstream to your destination.
+> warning "Review your settings before configuring an ID strategy"
+> If you want to send `ios.idfa` as a part of your ID strategy, confirm that you've enabled the Send Mobile IDs setting when connecting your destination to an audience or journey.
+
1. Using **Customized Setup**, click **+ Add Identifier** and add the identifiers:
- **Segment**: Choose your identifiers from Segment.
- **Destination**: Choose which identifiers you want to map to from your destination. If the destination doesn't contain the property, then outgoing events may not be delivered.
diff --git a/src/privacy/consent-management/configure-consent-management.md b/src/privacy/consent-management/configure-consent-management.md
index f3f13ba274..e47c607d82 100644
--- a/src/privacy/consent-management/configure-consent-management.md
+++ b/src/privacy/consent-management/configure-consent-management.md
@@ -43,13 +43,15 @@ Once you've created consent categories in the Segment app, you need to integrate
- Reads the end user consent preference from your CMP and includes the [consent object](/docs/privacy/consent-management/consent-in-segment-connections/#consent-object) in every event
- If using Unify and Engage, generates the [Segment Consent Preference Updated](/docs/privacy/consent-management/consent-in-unify/#segment-consent-preference-updated-event) event every time a user provides or updates their consent preferences with their anonymousId and userId
-Segment provides a OneTrust wrapper for the following sources:
+Segment provides a OneTrust wrapper for the following web and mobile sources:
- **Analytics.js**: Please follow the instructions from the README in the [@segmentio/analytics-consent-wrapper-onetrust](https://github.com/segmentio/analytics-next/tree/master/packages/consent/consent-wrapper-onetrust){:target="_blank"} repository. For more information about Segment's Analytics.js OneTrust wrapper, see the [Analytics.js OneTrust Wrapper](/docs/privacy/consent-management/onetrust-wrapper) documentation. You should also navigate to your Analytics.js source in the Segment app, select **Settings > Analytics.js**, and enable **Destination Filters** before enabling your OneTrust wrapper.
- **Kotlin**: Please follow the instructions from the README in the [@segment-integrations/analytics-kotlin-consent](https://github.com/segment-integrations/analytics-kotlin-consent/blob/main/README.md#getting-started){:target="_blank"} repository.
- **Swift**: Please follow the instructions from the README in the [@segment-integrations/analytics-swift-consent](https://github.com/segment-integrations/analytics-swift-consent#segment-consent-management){:target="_blank"} repository.
- **React Native**: Please follow the instructions from the README in the [@segmentio/analytics-react-native](https://github.com/segmentio/analytics-react-native/tree/master/packages/plugins/plugin-onetrust){:target="_blank"} repository.
-Ketch provides an integration for their Consent & Preference Management product. For more information, see the Ketch [Segment Tag Management Automation](https://docs.ketch.com/ketch/docs/segment-tag-management-automation){:target="_blank"} documentation.
+Ketch provides a web integration for their Consent & Preference Management product. For more information, see the Ketch [Segment Tag Management Automation](https://docs.ketch.com/ketch/docs/segment-tag-management-automation){:target="_blank"} documentation.
+
+TrustArc provides a web integration for their Cookie Consent Manager. For more information, see the [TrustArc Segment Wrapper](https://github.com/trustarc/trustarc-segment-wrapper){:target="_blank"} documentation.
If you'd like to integrate with any other CMP, Segment requires you to build your own wrapper or use any mechanism provided it meets the above requirements of data and event generation. To get started building your own wrapper, follow the instructions in the [@segment/analytics-consent-tools](https://github.com/segmentio/analytics-next/tree/master/packages/consent/consent-tools){:target="_blank"} repository.
@@ -83,4 +85,4 @@ Disabling a consent category means that Segment no longer enforces end user cons
1. From the [Segment homepage](https://app.segment.com/goto-my-workspace/){:target="_blank”}, select the Privacy tab and click **Consent Management**.
2. On the Consent Management page, disable the toggle for the category you'd like to disable.
-3. On the "Disable [category-name]?" popup, enter the category name in the Consent category name field and click **Disable category**.
+3. On the "Disable [category-name]?" popup, enter the category name in the Consent category name field and click **Disable category**.
\ No newline at end of file