diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml
index 5d25326fa8..417fd8fed6 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-08-20
+# destination categories last updated 2024-08-22
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 b428f26825..5d918c8088 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-08-20
+# destination data last updated 2024-08-22
items:
- id: 637e8d185e2dec264895ea89
display_name: 1Flow
diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml
index 45ba02a311..f2361635f0 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-08-20
+# destination data last updated 2024-08-22
items:
- id: 54521fd925e721e32a72eee1
display_name: Pardot
diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml
index de5cde6143..47db547ef4 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-08-20
+# source categories last updated 2024-08-22
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 ca7f251b3f..f815329da6 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-08-20
+# sources last updated 2024-08-22
items:
- id: 8HWbgPTt3k
display_name: .NET
diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml
index 51679f9cca..8a50253069 100644
--- a/src/_data/sidenav/main.yml
+++ b/src/_data/sidenav/main.yml
@@ -339,6 +339,18 @@ sections:
title: Sample Queries
- path: /unify/profiles-sync/tables
title: Tables & Materialized Views
+ - section_title: Data Graph
+ slug: unify/data-graph
+ section:
+ - path: /unify/data-graph/
+ title: Data Graph
+ - section_title: Setup Guides
+ slug: /unify/data-graph/setup-guides/
+ section:
+ - path: /unify/data-graph/setup-guides/snowflake-setup/
+ title: Snowflake Setup
+ - path: /unify/data-graph/setup-guides/databricks-setup/
+ title: Databricks Setup
- section_title: Traits
slug: unify/traits
section:
@@ -409,6 +421,8 @@ sections:
section:
- path: '/engage/audiences'
title: Audiences Overview
+ - path: '/engage/audiences/linked-audiences'
+ title: Linked Audiences
- path: '/engage/audiences/account-audiences'
title: Account-level Audiences
- path: '/engage/audiences/generative-audiences'
diff --git a/src/connections/destinations/catalog/actions-dynamic-yield-audiences/index.md b/src/connections/destinations/catalog/actions-dynamic-yield-audiences/index.md
new file mode 100644
index 0000000000..7c8770a470
--- /dev/null
+++ b/src/connections/destinations/catalog/actions-dynamic-yield-audiences/index.md
@@ -0,0 +1,69 @@
+---
+title: Dynamic Yield By Mastercard Audiences Destination
+id: 64ede9fe67158afa8de61480
+engage: true
+beta: true
+---
+
+{% include content/plan-grid.md name=actions %}
+
+[Dynamic Yield by Mastercard](https://www.dynamicyield.com/){:target="_blank”} helps businesses deliver digital customer experiences that are personalized, optimized, and synchronized.
+With Dynamic Yield’s Experience OS, you can algorithmically match content, products, and offers to each individual customer to increase revenue, build customer loyalty, and gain a sustainable competitive advantage.
+
+This destination is maintained by Dynamic Yield by Mastercard. For any issues with the destination, [contact the Dynamic Yield support team](mailto:info@dynamicyield.com).
+
+## Getting started
+
+**Dynamic Yield by Mastercard Audiences** is an Audience Destination which must be first connected to an Engage Space before it can be connected to individual Engage Audiences. The steps below outline how to connect the Destination to an Engage Space and then to an Audience.
+
+### Create an instance of the Dynamic Yield Destination
+
+1. From your Segment workspace, navigate to **Connections > Catalog**.
+2. Use the search field to find the **Dynamic Yield by Mastercard Audiences** Destination, then select it.
+3. Click **Add destination**.
+4. Select the Engage Space you'd like to connect your destination to and click **Next**.
+5. Enter a name for your destination and click **Create destination**.
+
+### Configuring Basic Settings
+1. Provide the Section ID and Connection Key on the Settings tab for your Dynamic Yield by Mastercard destination.
+2. Enable the Destination using the toggle, then click the **Save changes** button.
+
+
+### Create and configure a Mapping
+You must first create, configure, and enable a Mapping before connecting your Audiences to the Dynamic Yield by Mastercard destination.
+
+1. Navigate to the Mappings tab in the Dynamic Yield by Mastercard Destination.
+2. Click **New Mapping** and select the **Sync Audience Action**.
+3. Ensure that the only condition to trigger the mapping is **Event Type is Track** (remove the **Event Type is Identify** condition, if present).
+4. Click **Save**.
+5. Enable the Mapping from the Mappings tab using the **Status** toggle.
+
+Once these steps have been completed you can connect Audiences to the Destination.
+
+### Connecting Audiences to the Dynamic Yield by Mastercard Destination
+
+1. Navigate to your **Engage Space > Audiences**.
+2. Select the Audience you'd like to sync to your Dynamic Yield by Mastercard Audiences destination.
+3. Click **+ Add destination**, select the **Dynamic Yield by Mastercard Audiences** Destination you connected earlier, and click **Add Destination**.
+4. On the Audience Settings panel, provide a value for the following fields:
+ - **Audience Name**: The name Segment uses when creating the Audience in Dynamic Yield.
+ - **Identifier Type**: Select `userid`, `anonymousid`, or `email`. * See [Customized Identifier Setup](#customized-identifier-setup) for how to configure identifiers other than userid, email or anonymousid.
+5. Enable the **Send Track** toggle. You don't need to change the **Enter Event** or **Exit Event** fields, as these are not used by this Destination.
+6. Click **Default Setup** panel under **Event settings**.
+7. Click **Save** and then click **Add Destination**.
+
+The Destination is now connected to your Audience and starts syncing data to Dynamic Yield.
+
+
+### Customized Identifier Setup
+The Dynamic Yield Audience Destination can accept identifiers other than userId, anonymousId or email. However, this requires some additional configuration steps when connecting the Audience to your Dynamic Yield Audiences Destination.
+
+1. When connecting your Audience to the **Dynamic Yield Audiences** Destination, select the **Customized Setup** panel under **Event Settings**.
+2. Click**Add identifier** then select the identifier type you'd like to use.
+3. Provide a name for the identifier in the **Identifier in destination** field.
+4. Scroll back up to the top of the Audience Settings panel and ensure that the **Identifier Type** field contains the name of the identifier you configured in the Customized Setup panel.
+5. Click **Save** and then click **Add Destination** button.
+
+The Destination is now connected to your Audience and starts syncing data to Dynamic Yield with the specified custom identifier.
+
+{% include components/actions-fields.html %}
diff --git a/src/connections/destinations/catalog/facebook-pixel/index.md b/src/connections/destinations/catalog/facebook-pixel/index.md
index 4c667874d9..6071fec508 100644
--- a/src/connections/destinations/catalog/facebook-pixel/index.md
+++ b/src/connections/destinations/catalog/facebook-pixel/index.md
@@ -193,6 +193,8 @@ If you're using real estate, travel, or automotive [Dynamic Ads](https://www.fac
For most implementations, Segment recommends leaving these mappings blank. By default, Segment sets `content_type` to "product".
+The same mapping can be used to change the `content_id` from the default value (product_id or the sku) to anything specific for Meta Pixel. For more information about required Meta Pixel events, see Meta's [Required Meta Pixel events and parameters for Advantage+ catalog ads](https://www.facebook.com/business/help/606577526529702?id=1205376682832142){:target="_blank”} documentation.
+
## Troubleshooting
### PII blocklisting
diff --git a/src/connections/destinations/catalog/inkit/index.md b/src/connections/destinations/catalog/inkit/index.md
index 18915b2595..e6a2360d37 100644
--- a/src/connections/destinations/catalog/inkit/index.md
+++ b/src/connections/destinations/catalog/inkit/index.md
@@ -2,7 +2,9 @@
title: Inkit Destination
rewrite: true
id: 5f0746ced1c79b49ddee49fd
+hidden: true
---
+
[Inkit](https://inkit.com){:target="_blank"} and Segment empower organizations to securely generate and distribute documents - both digitally as well as through direct mail.
For example, automatically create and send electronic documents like invoices, reports, notices, and more through a magic link or e-delivery. Or generate and send documents for e-signature, storage, postcards, letters, and more, all powered by the Inkit integration for Segment.
diff --git a/src/connections/destinations/destination-filters.md b/src/connections/destinations/destination-filters.md
index b8db2f0ee1..7f4a1ce5a3 100644
--- a/src/connections/destinations/destination-filters.md
+++ b/src/connections/destinations/destination-filters.md
@@ -259,3 +259,7 @@ When Segment sends an event to a destination but encounters a timeout error, it
#### How do destination filters handle Protocols Transformations?
- **Source-Scoped Transformations**: If destination filters are enabled, Segment processes [source scoped transformations](/docs/protocols/transform/#step-2-set-up-the-transformation) before the events reach destination filters.
- **Destination-Scoped Transformations**: Segment processes [destination-specific transformations](/docs/protocols/transform/#step-2-set-up-the-transformation) after the events have passed through the destination filters.
+
+#### Are destination filter conditions case-sensitive?
+
+Destination filters are case-sensitive. Make sure to test your filter conditions with a test event before saving and enabling the filter.
diff --git a/src/connections/sources/catalog/libraries/server/http-api/index.md b/src/connections/sources/catalog/libraries/server/http-api/index.md
index c3c04e4aac..fa6cca8ceb 100644
--- a/src/connections/sources/catalog/libraries/server/http-api/index.md
+++ b/src/connections/sources/catalog/libraries/server/http-api/index.md
@@ -74,19 +74,6 @@ You can reuse the access token until the expiry period specified on the OAuth ap
To send data to Segment's HTTP API, a content-type header must be set to `'application/json'`.
-## Errors
-
-Segment returns a `200` response for all API requests except errors caused by large payloads and JSON errors (which return `400` responses.) To debug events that return `200` responses but aren't accepted by Segment, use the Segment Debugger.
-
-Common reasons events are not accepted by Segment include:
- - **Payload is too large:** The HTTP API can handle API requests that are 32KB or smaller. The batch API endpoint accepts a maximum of 500KB per request, with a limit of 32KB per event in the batch. If these limits are exceeded, Segment returns a 400 Bad Request error.
- - **Identifier is not present**: The HTTP API requires that each payload has a userId and/or anonymousId.
- - **Track event is missing name**: All Track events sent to Segment must have an `event` field.
- - **Deduplication**: Segment deduplicates events using the `messageId` field, which is automatically added to all payloads coming into Segment. If you're setting up the HTTP API yourself, ensure all events have unique messageId values with fewer than 100 characters.
- - **Invalid JSON**: If you send an event with invalid JSON, Segment returns a 400 Bad Request error.
-
-Segment welcomes feedback on API responses and error messages. [Reach out to support](https://segment.com/help/contact/){:target="_blank"} with any requests or suggestions you may have.
-
## Rate limits
For each workspace, Segment recommends you to not exceed 1,000 requests per second with the HTTP API. If you exceed this, Segment reserves the right to queue any additional events and process those at a rate that doesn't exceed the limit. Requests that exceed acceptable limits may be rejected with HTTP Status Code 429. When Segment rejects the requests, the response header contains `Retry-After` and `X-RateLimit-Reset` headers, which contains the number of seconds after which you can retry the request.
@@ -470,16 +457,26 @@ Destination flags are **case sensitive** and match [the destination's name in th
When sending a HTTP call from a user's device, you can collect the IP address by setting `context.direct` to `true`.
-## Troubleshooting
+## Errors
+
+Segment returns a `200` response for all API requests except errors caused by large payloads and JSON errors (which return `400` responses.) To debug events that return `200` responses but aren't accepted by Segment, use the Segment Debugger.
+
+Common reasons events are not accepted by Segment include:
+ - **Payload is too large:** The HTTP API can handle API requests that are 32KB or smaller. The batch API endpoint accepts a maximum of 500KB per request, with a limit of 32KB per event in the batch. If these limits are exceeded, Segment returns a 400 Bad Request error.
+ - **Identifier is not present**: The HTTP API requires that each payload has a userId and/or anonymousId. If you send events without either the userId or anonymousId, Segment’s tracking API responds with an no_user_anon_id error. Check the event payload and client instrumentation for more details.
+ - **Track event is missing name**: All Track events sent to Segment must have an `event` field.
+ - **Deduplication**: Segment deduplicates events using the `messageId` field, which is automatically added to all payloads coming into Segment. If you're setting up the HTTP API yourself, ensure all events have unique messageId values with fewer than 100 characters.
+ - **Invalid JSON**: If you send an event with invalid JSON, Segment returns a 400 Bad Request error.
+ - **Incorrect credentials**: Double check your credentials for your downstream destinations.
+ - **Destination incompatibility**: Make sure that the destination you are troubleshooting can accept server-side API calls. You can see compatibility information on the [Destination comparison by category](/docs/connections/destinations/category-compare/) page and in the documentation for your specific destination.
+ - **Destination-specific requirements**: Check the documentation specific to the destination to see if there are other requirements for using the method and destination that you're trying to get working.
-{% include content/troubleshooting-intro.md %}
+Segment welcomes feedback on API responses and error messages. [Reach out to support](https://segment.com/help/contact/){:target="_blank"} with any requests or suggestions you may have.
-
+## Troubleshooting
### No events in my debugger
1. Double check that you've set up the library correctly.
2. Make sure that you're calling a Segment API method after the library is successfully installed—[Identify](#identify), [Track](#track), and so on.
-
-{% include content/server-side-troubleshooting.md %}
diff --git a/src/engage/audiences/linked-audiences.md b/src/engage/audiences/linked-audiences.md
index 2936dc5c02..26371b4778 100644
--- a/src/engage/audiences/linked-audiences.md
+++ b/src/engage/audiences/linked-audiences.md
@@ -1,31 +1,29 @@
---
title: Linked Audiences
plan: engage-foundations
-beta: true
redirect_from:
- '/unify/linked-profiles/linked-audiences'
-hidden: true
---
-> info "Linked Audiences is in public beta"
-> Linked Audiences is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available.
-Linked Audiences allows you to build a warehouse-first solution that powers individualized customer experiences using the relational data you've defined in your [Data Graph](/docs/unify/linked-profiles/data-graph/).
+Linked Audiences empowers marketers to effortlessly create targeted audiences by combining behavioral data from the Segment Profile and warehouse entity data within a self-serve, no-code interface.
-You can:
+This tool accelerates audience creation, enabling precise targeting, enhanced customer personalization, and optimized marketing spend without the need for constant data team support.
+
+With Linked Audiences, you can:
- Preserve rich relationships between all the data in your warehouse by creating connections with any entity data back to your audience profile.
- Build advanced audience segments that include the rich context needed for personalization downstream.
- Use a low code builder, enabling marketers to activate warehouse data without having to wait for data pull requests before launching campaigns to targeted audiences.
-To learn more about specific use cases you can set up with Linked Audiences, see the [Linked Audiences Use Cases](/docs/engage/audiences/linked-audiences-use-cases/) topic.
+To learn more about specific use cases you can set up with Linked Audiences, see [Linked Audiences Use Cases](/docs/engage/audiences/linked-audiences-use-cases/).
## Prerequisites
Before you begin setting up your Linked Audience, ensure you have:
- [Set up Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/).
-- Set up your warehouse permissions using [Snowflake](/docs/unify/linked-profiles/setup-guides/snowflake-setup/).
-- [Ensure someone has set up your data graph](/docs/unify/linked-profiles/data-graph/).
+- Set up your warehouse permissions using [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/).
+- [Ensure someone has set up your data graph](/docs/unify/data-graph/data-graph/).
- Workspace Owner or Unify Read-only, Engage User, Entities Read-only, and Source Admin [roles in Segment](/docs/segment-app/iam/roles/).
## Setting up Linked Audiences
@@ -35,7 +33,8 @@ To set up your Linked Audience, complete the following steps:
- [Step 1: Build a Linked Audience](#step-1-build-a-linked-audience)
- [Step 2: Activate your Linked Audiences](#step-2-activate-your-linked-audience)
- [Step 3: Send a test event to your destination](#step-3-send-a-test-event-to-your-destination)
-- [Step 4: Enable your Linked Audience](step-4-enable-your-linked-audience)
+- [Step 4: Enable your Linked Audience](#step-4-enable-your-linked-audience)
+- [Step 5: Monitor your Activation](#step-5-monitor-your-activation)
## Step 1: Build a Linked Audience
@@ -139,13 +138,16 @@ To activate your Linked Audience:
### Step 2a: Connecting to a destination
-[Destinations](/docs/connections/destinations/) are the business tools or apps that Segment forwards your data to. Adding a destination allows you to act on your data and learn more about your customers in real time. To fully take advantage of Linked Audiences, you must connect and configure at least one destination.
+[Destinations](/docs/connections/destinations/) are the business tools or apps that Segment forwards your data to. Adding a destination allows you to act on your data and learn more about your customers in real time. To fully take advantage of Linked Audiences, you must connect and configure at least one destination.
+
+> info "Linked Audiences destinations"
+> Linked Audiences only supports [Actions Destinations](/docs/connections/destinations/actions/#available-actions-based-destinations).
**Note:** Ensure your [destination has been enabled](/connections/destinations/catalog/) in Segment before you begin the steps below.
1. Navigate to **Engage > Audiences**.
2. Select the Linked Audience you set up in the previous step.
-3. Select **Add destination**.
+3. Select **Add destination**.
4. Select a destination from the catalog.
5. Click **Configure data to send to destination**.
@@ -159,13 +161,15 @@ Select the Destination Action to call when the event happens, then click **Next*
Configure how and when events are produced with each audience run. Select the entities referenced in the audience builder to act as a trigger for your events.
-Event Selection |Definition |Examples
---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-Profile enters audience | Send an event when a profile matches the audience condition. | Send a congratulatory email when a traveler qualifies for premium status with a mileage program.
Send a discount to all customers with a particular product on their wishlist.
-Profile exits audience | Send an event when a profile no longer matches the audience condition. | Send an email to credit card owners to confirm that their credit cards have been paid in full.
Send a confirmation to a patient when they have completed all their pre-screening forms.
-Entity enters audience | Send an event when an entity condition associated with a profile matches the audience condition. With this event, you must select the entity that triggers Segment to send the event. | Send a reminder to a customer when a credit card associated with their profile has an outstanding balance.
Notify a traveler when a flight associated with their profile is delayed.
Notify a customer when a product associated with their profile's wishlist is back in stock.
-Entity exits audience | Send an event when an entity condition associated with a profile no longer matches the audience condition. You must select the entity that triggers Segment to send the event| Send a confirmation to a customer when a credit card associated with their profile has been paid off.
Send a confirmation to the primary doctor when each of their associated patients completes their annual check up.
-Profile enters or exits audience| Send an event when a profile's audience membership changes. | Update a user profile in a destination with the most recent audience membership.
+| Trigger | Event type | Definition | Examples |
+| -------------------------------- | ---------- | ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Profile enters audience | Track | Send an event when a profile matches the audience condition. | Send a congratulatory email when a traveler qualifies for premium status with a mileage program. Send a discount to all customers with a particular product on their wishlist. |
+| Profile exits audience | Track | Send an event when a profile no longer matches the audience condition. | Send an email to credit card owners to confirm that their credit cards have been paid in full. Send a confirmation to a patient when they have completed all their pre-screening forms. |
+| Entity enters audience | Track | Send an event when an entity condition associated with a profile matches the audience condition. | Send a reminder to a customer when a credit card associated with their profile has an outstanding balance. Notify a traveler when a flight associated with their profile is delayed. Notify a customer when a product associated with their profile's wishlist is back in stock. |
+| Entity exits audience | Track | Send an event when an entity condition associated with a profile no longer matches the audience condition. | Send a confirmation to a customer when a credit card associated with their profile has been paid off. Send a confirmation to the primary doctor when each of their associated patients completes their annual check up. |
+| Profile enters or exits audience | Identify | Send an event when a profile's audience membership changes. | Update a user profile in a destination with the most recent audience membership. |
+
+
### Step 2d: Configure the event
@@ -181,13 +185,11 @@ As you're enriching your events in Linked Audiences, you should view a preview o
![A screenshot of the Add activation page, where you can review your payload data.](/docs/engage/images/linked_audience_payload.png)
-**Important:** It is important to make a copy of the data from your final payload schema; you will need this data later when you set up your destination.
-
#### Map event
-Only required fields are displayed. All optional & pre-filled fields are hidden.
+Only required fields are displayed. All optional & pre-filled fields are hidden, though you can view hidden fields by clicking **Show hidden fields**.
-These fields are pre-filled with properties that will work by default.
+These fields are pre-filled with properties configured by default.
## Step 3: Send a test event to your destination
@@ -197,16 +199,11 @@ Enter the destination User id for the profile you want to use to test the event,
The Event content drop-down shows you a preview of what the data sent to your destination might look like.
-### Step 3a: Configure your multi-channel marketing campaign
-
-If you're using a multi-channel marketing tool, set up your email campaign before continuing. See detailed instructions for [Braze](/docs/engage/audiences/linked-audiences-braze/) or [Iterable](/docs/engage/audiences/linked-audiences-iterable/) for more details.
-
## Step 4: Enable your Linked Audience
-After building your Linked Audience, choose **Save and Enable**. You'll be redirected to the Audience Overview page, where you can view the audience you created. Segment automatically disables your audience so that it doesn't start computing until you're ready. A compute is when Segment runs the audience conditions on your data warehouse and sends events downstream.
+After building your Linked Audience, choose **Save and Enable**. You'll be redirected to the Audience Overview page, where you can view the audience you created. Segment automatically disables your audience so that it doesn't start computing until you're ready. A run is when Segment runs the audience conditions on your data warehouse and sends events downstream.
-To enable your audience:
-Select the **Enabled** toggle, then select **Enable audience**.
+To enable your audience, select the **Enabled** toggle, then select **Enable audience**.
### Run Now
@@ -226,3 +223,19 @@ You can maintain your run schedule at any time from the audience's **Settings**
You can also click **Run Now** on the Audience Overview page at any time (even if the run schedule is **Interval** Overview **Day and time**) to manually trigger a run on your warehouse and send data to enabled destinations.
There may be up to a 5 minute delay from the configured start time for audiences that are configured with the **Interval** and **Day and time** run schedules. For example, if you configured an audience with the **Day and time** compute schedule to run on Mondays at 8am, it can compute as late as Monday at 8:05am. This is to help us better manage our system load.
+
+## Step 5: Monitor your activation
+
+With your Linked Audience activated, follow these steps to monitor your activation:
+
+1. From the Audience Overview page, selected one of your connected destinations.
+2. Under the **Settings** tab, click **Destination delivery**, which then opens the Linked Audiences Delivery Overview.
+
+### Delivery Overview for Linked Audiences
+
+Delivery Overview shows you four steps in your data activation pipeline:
+
+- **Events from Audience**: Events that Segment created for your activation. The number of events for each compute depends on the changes detected in your audience membership.
+- **Filtered at Destination**: The activation pipeline is rich with features that let you control which events make it to the destination. If any events aren't eligible to be sent (for example, due to destination filters, insert function logic, and so on), Segment will show them in Filtered at Destination.
+- **Failed Delivery**: Events that Segment attempted but failed to deliver to your destination. Failed Delivery indicates an issue with the destination, like invalid credentials, rate limits, or other error statuses received during delivery.
+- **Successful Delivery**: Events that Segment successfully delivered to your destination. You'll see these events in your downstream integration.
diff --git a/src/engage/faqs.md b/src/engage/faqs.md
index 0aa2cd7568..d8d2e8b842 100644
--- a/src/engage/faqs.md
+++ b/src/engage/faqs.md
@@ -12,7 +12,7 @@ Yes. You can learn more about the Audience API by visiting the [Segment Public A
## Can I programmatically determine if a user belongs to a particular audience?
-Yes. Eecause Engage creates a trait with the same name as your audience, you can query the Profile API to determine if a user belongs to a particular audience. For example, to determine if the user with an email address of `bob@example.com` is a member of your `high_value_users` audience, you could query the following Profile API URL:
+Yes. Because Engage creates a trait with the same name as your audience, you can query the Profile API to determine if a user belongs to a particular audience. For example, to determine if the user with an email address of `bob@example.com` is a member of your `high_value_users` audience, you could query the following Profile API URL:
```
https://profiles.segment.com/v1/namespaces//collections/users/profiles/email:bob@segment.com/traits?include=high_value_users
@@ -150,4 +150,4 @@ Based on Engage behavior, standard source events such as Page, Track and Identif
## Why can't I connect the audience/computed trait to an existing destination in my workspace?
-Engage will not allow you to connect an audience/computed trait to a destination that is already linked to a [Connections-based source](https://segment.com/docs/connections/sources/). Instead, create a new instance of the destination with the correct Engage space selected as the data source.
\ No newline at end of file
+Engage will not allow you to connect an audience/computed trait to a destination that is already linked to a [Connections-based source](/docs/connections/sources/). Instead, create a new instance of the destination with the correct Engage space selected as the data source.
diff --git a/src/getting-started/use-cases/reference.md b/src/getting-started/use-cases/reference.md
index 02eec6b450..a05736b277 100644
--- a/src/getting-started/use-cases/reference.md
+++ b/src/getting-started/use-cases/reference.md
@@ -278,10 +278,10 @@ This table shows the events and properties Segment recommends you track for the
-| Events | Properties |
-| ------------------- | ---------- |
-| Trial Started | `category` |
-| Subscription Stared | |
+| Events | Properties |
+| -------------------- | ---------- |
+| Trial Started | `category` |
+| Subscription Started | |
And this table shows the source and destination types that Segment recommends you set up for the Acquire paid subscriptions use case:
@@ -303,10 +303,10 @@ This table shows the events and properties Segment recommends you track for the
-| Events | Properties |
-| ------------------- | ---------- |
-| Subscription Stared | |
-| Trial Started | `category` |
+| Events | Properties |
+| -------------------- | ---------- |
+| Subscription Started | |
+| Trial Started | `category` |
And this table shows the source and destination types that Segment recommends you set up for the Convert trials to paid subscriptions use case:
diff --git a/src/privacy/consent-management/configure-consent-management.md b/src/privacy/consent-management/configure-consent-management.md
index 289260b939..f3f13ba274 100644
--- a/src/privacy/consent-management/configure-consent-management.md
+++ b/src/privacy/consent-management/configure-consent-management.md
@@ -47,7 +47,7 @@ Segment provides a OneTrust wrapper for the following 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.
+- **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.
diff --git a/src/unify/data-graph/data-graph.md b/src/unify/data-graph/index.md
similarity index 86%
rename from src/unify/data-graph/data-graph.md
rename to src/unify/data-graph/index.md
index fc16b3d130..f58c23ab3d 100644
--- a/src/unify/data-graph/data-graph.md
+++ b/src/unify/data-graph/index.md
@@ -3,14 +3,12 @@ title: Data Graph
plan: unify
redirect_from:
- '/unify/linked-profiles/data-graph'
+ - '/unify/data-graph/data-graph'
---
-The Data Graph is a semantic layer that unifies all your customer datasets, letting you define and manage relationships between any entity data set in your warehouse (accounts, subscriptions, households, products) and the Segment Profiles you send with [Profiles Sync](/docs/unify/profiles-sync/).
+The Data Graph acts as a semantic layer that allows businesses to define relationships between various entity datasets in the warehouse — such as accounts, subscriptions, households, and products — with the Segment Profile. It makes these relational datasets easily accessible to business teams for targeted and personalized customer engagements.
-By linking these datasets, the Data Graph turns complex relational data into actionable insights, enabling marketers and business stakeholders to create targeted, personalized customer interactions.
-relational data into actionable insights, making it accessible to marketers and business stakeholders
-
-- **[Linked Audiences](/docs/engage/audiences/linked-audiences/)**: Empowers marketers to self-serve and build targetic logic based on any datasets defined in the Data Graph, unlocking new possibilities for hyper-personalized campaigns.
+- **[Linked Audiences](/docs/engage/audiences/linked-audiences/)**: Empowers marketers to effortlessly create targeted audiences by combining behavioral data from the Segment Profile and warehouse entity data within a self-serve, no-code interface. This tool accelerates audience creation, enabling precise targeting, enhanced customer personalization, and optimized marketing spend without the need for constant data team support.
- **[Linked Events](/docs/unify/data-graph/linked-events/)**: Allows data teams to enrich event streams in real time using datasets from data warehouses or lakes, and send these enriched events to any destination. Linked Events is available for both Destination Actions and Functions.
## Prerequisites
@@ -19,17 +17,20 @@ To use the Data Graph, you'll need the following:
- A supported data warehouse with the appropriate Data Graph permissions
- Workspace Owner or Unify Read-only/Admin and Entities Admin permissions
-- For Linked Audiences, set up [Profiles Sync](/docs/unify/profiles-sync/) in a Unify space with ready-to-use [data models and tables](/docs/unify/profiles-sync/tables/) in your warehouse. When setting up selective sync, Segment recommends the following settings for Linked Audiences:
+- For Linked Audiences, set up [Profiles Sync](/docs/unify/profiles-sync/) in a Unify space with ready-to-use [data models and tables](/docs/unify/profiles-sync/tables/) in your warehouse. When setting up selective sync, Segment recommends the following settings:
- Under **Profile materialized tables**, select all the tables (`user_identifier`, `user_traits`, `profile_merges`) for faster and more cost-efficient Linked Audiences computations in your data warehouse.
- Under **Track event tables**, select **Sync all Track Call Tables** to enable filtering on event history for Linked Audiences conditions.
## Step 1: Set up Data Graph permissions in your data warehouse
> warning ""
> Data Graph, Reverse ETL, and Profiles Sync require different warehouse permissions.
+
> info ""
> Data Graph currently only supports workspaces in the United States.
-To get started with the Data Graph, set up the required permissions in your warehouse. Segment supports [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/) and [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/) for both Linked Audiences and Linked Events.
+To get started with the Data Graph, set up the required permissions in your warehouse. Segment supports the following:
+- Linked Audiences: [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/) and [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/)
+- Linked Events: [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/), [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/), [BigQuery](/docs/unify/data-graph/setup-guides/BigQuery-setup/), and [Redshift](/docs/unify/data-graph/setup-guides/redshift-setup/)
To track the data sent to Segment on previous syncs, Segment uses [Reverse ETL](/docs/connections/reverse-etl/) infrastructure to store diffs in tables within a dedicated schema called `_segment_reverse_etl` in your data warehouse. You can choose which database or project in your warehouse this data lives in.
@@ -59,7 +60,7 @@ The Data Graph is a semantic layer that represents a subset of relevant business
**Defining Relationships**
-Similar to the concept of [cardinality in data modeling](en.wikipedia.org/wiki/Cardinality_(data_modeling)){:target="_blank"}, the Data Graph supports 3 types of relationships:
+Similar to the concept of [cardinality in data modeling](https://w.wiki/Ay$u){:target="_blank"}, the Data Graph supports 3 types of relationships:
- **Profile-to-entity relationship:** This is a relationship between your entity table and the Segment Profiles tables, and is the first level of relationship.
- **1:many relationship:** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`.
- **many:many relationship:** For example, a user can have many `carts`, and each `cart` can have many `products`. However, these `products` can also belong to many `carts`.
@@ -110,7 +111,7 @@ data_graph {
# Recommend setting up Profiles Sync materialized views to optimize warehouse compute costs
profile {
profile_folder = "PRODUCTION.SEGMENT"
- type = "segment: materialized"
+ type = "segment:materialized"
# First branch - relate accounts table to the profile
# This is a unique type of relationship between an entity and the profile block
@@ -198,7 +199,7 @@ data_graph {
### 3b: Define the profile
> info ""
-> Segments recommends that you select materialized views under the Profiles Sync Selective Sync settings to optimize warehouse compute costs.
+> Segments recommends that you select materialized views under the Profiles [Selective Sync settings](/docs/unify/profiles-sync/profiles-sync-setup/#step-3-set-up-selective-sync) to optimize warehouse compute costs.
Next, define the profile. This is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, etc. There can only be one profile for a Data Graph.
@@ -227,15 +228,13 @@ data_graph {
### 3c: Define relationships
-Now define your relationships between your entities. The Data Graph supports three types of relationships:
-- Profile:entity relationship. This is the first level of relationships
-- 1:many relationship
-- Many:many relationship
-
-All relationship types require you to define the relationship slug, name, and related entity. Each type of relationship has unique join on conditions.
+Now define your relationships between your entities. Similar to the concept of [cardinality in data modeling](en.wikipedia.org/wiki/Cardinality_(data_modeling)), the Data Graph supports 3 types of relationships below. All relationship types require you to define the relationship slug, name, and related entity. Each type of relationship has unique join on conditions.
+- **[Profile-to-entity relationship](#define-profile-to-entity-relationship):** This is a relationship between your entity table and the Segment Profiles tables, and is the first level of relationship.
+- **[1:many relationship](#define-a-1many-relationship):** For example, an `account` can have many `carts`, but each `cart` can only be associated with one `account`.
+- **[many:many relationship](#define-manymany-relationship):** For example, a user can have many `carts`, and each `cart` can have many `products`. However, these `products` can also belong to many `carts`.
#### Define profile-to-entity relationship
-This is the first level of relationships and a unique type of relationship between Segment profile entity and a related entity.
+This is the first level of relationships and a unique type of relationship between the Segment profile entity and a related entity.
| Parameters | Definition |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -245,13 +244,13 @@ This is the first level of relationships and a unique type of relationship betwe
To define a profile-to-entity relationship, reference your entity table and depending on your table columns, choose to join on one of the following:
-**Option 1 (Most common):** Use the `external_id` block to join the profile entity with an entity table using external IDs from your [Unify ID resolution](/docs/unify/identity-resolution/externalids/) settings. Typically these identifiers are `user_id`, `email`, or `phone` depending on the column in the entity table that you want to join with.
+**Option 1 (Most common) - Join on an external ID:** Use the `external_id` block to join the profile entity with an entity table using external IDs from your [Unify ID resolution](/docs/unify/identity-resolution/externalids/) settings. Typically these identifiers are `user_id`, `email`, or `phone` depending on the column in the entity table that you want to join with.
- `type`: Represents the [external ID type](/docs/unify/identity-resolution/externalids/#default-externalids) (`email`, `phone`, `user_id`) in your id-res settings. Depending on if you are using materialized or unmaterialized profiles, these correspond to different columns in your Profiles Sync warehouse tables:
- [Materialized](/docs/unify/profiles-sync/tables/#the-user_identifiers-table) (Recommended): This corresponds to the `type` column in your Profiles Sync `user_identifiers` table.
- [Unmaterialized](/docs/unify/profiles-sync/tables/#the-external_id_mapping_updates-table): This corresponds to the `external_id_type` column in your Profiles Sync `external_id_mapping_updates` table.
- `join_key`: This is the column on the entity table that you are matching to the external identifier.
-**Option 2:** Use the `traits` block to join the profile entity with an entity table using [Profile Traits](/docs/unify/#enrich-profiles-with-traits).
+**Option 2 - Join on a profile trait:** Use the `traits` block to join the profile entity with an entity table using [Profile Traits](/docs/unify/#enrich-profiles-with-traits).
- `name`: Represents a trait name in your Unify profiles. Depending on if you are using materialized or unmaterialized profiles, these correspond to different columns in your Profiles Sync warehouse tables:
- [Materialized](/docs/unify/profiles-sync/tables/#the-profile_traits-table) (Recommended): The trait name corresponds to a unique value of the `name` column in your Profiles Sync `user_traits` table.
- [Unmaterialized](/docs/unify/profiles-sync/tables/#the-profile_traits_updates-table): This corresponds to a column in the Profile Sync `profile_trait_updates` table.
@@ -339,7 +338,7 @@ data_graph {
For many:many relationships, define the join on between the two entity tables with the `junction_table`.
> warning ""
-> Attributes from a junction table are not referenceable via the Linked Audience Builder. If a marketer would like to filter upon a column on the junction table, you must define the junction as an entity and define a relationship.
+> Attributes from a junction table are not referenceable via the Linked Audience builder. If a marketer would like to filter upon a column on the junction table, you must define the junction as an entity and define a relationship.
| Parameters | Definition |
@@ -352,7 +351,7 @@ For many:many relationships, define the join on between the two entity tables wi
| Parameters | Definition |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `table_ref` | Defines the fully qualified table reference to the join table: `[database name].[schema name].[table name]` Segment flexibly supports tables, views and materialized views |
+| `table_ref` | Defines the fully qualified table reference to the join table: `[database name].[schema name].[table name]`. Segment flexibly supports tables, views and materialized views |
| `primary_key` | The unique identifier for the given table. Must be a column with unique values per row |
| `left_join_on` | Define the relationship between the left entity table and the junction table: `[left entity slug].[column name] = [junction table column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again |
| `right_join_on` | Define the relationship between the junction table and the right entity table: `[junction table column name] = [right entity slug].[column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again |
@@ -403,7 +402,7 @@ To edit your Data Graph:
### View Data Graph data consumers
-A data consumer refers to a Segment feature (like Linked Events, Linked Audiences) referencing datasets, such as entities and/or relationships, from the Data Graph. You can view a list of data consumers in two places:
+A data consumer refers to a Segment feature like Linked Events and Linked Audiences that are referencing datasets, such as entities and/or relationships, from the Data Graph. You can view a list of data consumers in two places:
- Under **Unify > Data Graph**, click the **Data consumers** tab
- Under **Unify > Data Graph > Overview** or the **Data Graph editor > Preview**, click into a node on the Data Graph preview and a side sheet will pop up with the list of data consumers for the respective relationship
@@ -415,4 +414,4 @@ Upon editing and saving changes to your Data Graph, a modal will pop up to warn
### Detect warehouse breaking changes
-Segment has a service that regularly scans and monitors the Data Graph for changes that occur in your warehouse that may break components of the Data Graph, such as when the table being referenced by the Data Graph gets deleted from your warehouse or when the primary key column no longer exists. An alert banner will be displayed on the Data Graph landing page. The banner will be removed once the issues are resolved in your warehouse and/or the Data Graph.
+Segment has a service that regularly scans and monitors the Data Graph for changes that occur in your warehouse that may break components of the Data Graph, such as when the table being referenced by the Data Graph gets deleted from your warehouse or when the primary key column no longer exists. An alert banner will be displayed on the Data Graph landing page. The banner will be removed once the issues are resolved in your warehouse and/or the Data Graph. You will also have the option to trigger a manual sync of your warehouse schema.