From f1af0b26966454d2ec583ac94789b77ee341ffec Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Thu, 31 Jul 2025 16:30:49 +0530 Subject: [PATCH 01/12] changed doc info --- .../catalog/actions-singlestore/index.md | 65 +++++++++++++------ 1 file changed, 45 insertions(+), 20 deletions(-) diff --git a/src/connections/destinations/catalog/actions-singlestore/index.md b/src/connections/destinations/catalog/actions-singlestore/index.md index bf2600daab..612e16eafb 100644 --- a/src/connections/destinations/catalog/actions-singlestore/index.md +++ b/src/connections/destinations/catalog/actions-singlestore/index.md @@ -27,37 +27,62 @@ This destination is maintained by SingleStore. For any issues with the destinati {% include components/actions-fields.html %} ### Finding your SingleStore connection settings -To find your SingleStore connection settings, head to the [SingleStore Portal](https://portal.singlestore.com){:target="_blank”} and complete the following steps: -1. Select **Deployments**. -2. Choose your Workspace and Database within the list of Deployments -3. From the Connect dropdown, select **Connect to your own app**. SingleStore will display the the key settings you need to connect your SingleStore database to Segment. +To connect Segment to SingleStore, use the SingleStore Data API (typically on port 443). Follow these steps to enable and locate your Data API connection settings: + +1. Head to the [SingleStore Portal](https://portal.singlestore.com){:target="_blank"}. +2. Select **Deployments**. +3. Choose your Workspace and Database within the list of Deployments +4. From the Connect dropdown, select **Connect to your own app**. SingleStore will display the the key settings you need to connect your SingleStore database to Segment. + +**Note:** +- The Data API is enabled by default for all SingleStore Cloud workspaces. +- Segment always uses the Data API (typically on port 443). +- If you are using a self-hosted or development SingleStore deployment (such as the SingleStore-dev image), the Data API may run on a different port. Refer to your deployment’s documentation or settings to confirm the correct port. + +For more details, see the [SingleStore Data API documentation](https://docs.singlestore.com/cloud/reference/data-api/){:target="_blank"}. ## Database structure -Segment creates a table called `segment_raw_data` and writes data to your SingleStore database using the following schema: +Segment writes data to your specified table in SingleStore (by default, this is `segment_data`) using the following schema: | Column | Type | Description | | -------- | ------ | ----------- | -| `message` | JSON (utf8_bin) | The entire message received from Segment, in JSON format | -| `timestamp` | datetime | The timestamp of when the event was generated | -| `event` | VARCHAR(255) | The event name (for Track events) | -| `messageId` | VARCHAR(255) | The unique identifier of the event to ensure there is no duplication | -| `type` | VARCHAR(255) | The type of the event (for example, Identify, Track, Page, Group) | - - -### Accessing nested data -To query specific data from the Segment event within SingleStore, you can de-reference the JSON pointer within the message column. For example: +| `messageId` | TEXT | A unique identifier for the event to ensure there is no duplication. | +| `timestamp` | Datetime(6) | The timestamp of when the event was generated | +| `type` | TEXT | The type of the event (e.g., "track", "identify", "page", "screen", "group", "alias"). | +| `event` | TEXT | The name of the event. Only required for "track" events. | +| `name` | TEXT | The name of the page or screen. | +| `properties` | JSON | The properties of the track, page or screen event. | +| `userId` | TEXT | The user ID associated with the event. | +| `anonymousId` | TEXT | The anonymous ID associated with the event. | +| `groupId` | TEXT | The group ID associated with the event. | +| `traits` | JSON | The traits of the user associated with the event. | +| `context` | JSON | The context of the event. Contains user environment information. | + + +### Accessing data +To query specific data from the Segment event within SingleStore, you can select columns directly. For example, to retrieve the `properties` object: ```sql -SELECT message::properties FROM segment_raw_data; +SELECT properties FROM your_table_name; ``` -This query retrieves the properties object from the JSON message, allowing you to work with nested event data. +This query retrieves the `properties` object from the specified table, allowing you to work with event data. ## Troubleshooting +> **Note:** +> The SingleStore Data API has a limit of 1MB per request. If a batch of events sent by Segment exceeds this limit, you may see an error similar to: +> +> ``` +> Error reading request body: http: request body too large +> ``` +> +> If you encounter this error, reduce the batch size in your Segment destination settings. + + ### Connection Errors If you're unable to connect to the SingleStore database: -* Verify that the Host and Port are correct. +* Verify that the credentials are correct. * Ensure that your SingleStore database is accessible from Segment’s servers. * Check firewall settings and network configurations. @@ -67,7 +92,7 @@ If you encounter authentication errors when Segment attempts to connect: * Ensure that the user has the necessary permissions to write to the database. ### Data Not Appearing in SingleStore -If events are not recorded in the `segment_raw_data` table: +If events are not recorded in the specified table: * Verify that your sources are correctly sending data to Segment. * Check the event types to ensure they are supported. * Review your SingleStore database logs for any errors. @@ -75,7 +100,7 @@ If events are not recorded in the `segment_raw_data` table: ## Frequently Asked Questions ### Can I customize the schema used in SingleStore? -By default, the mappings store the complete raw Segment events in the `segment_raw_data` table. If you prefer, within the mapping, you can choose to selectively include or exclude specific fields to be sent and written into SingleStore. +By default, the mapping stores all fields from the Segment event in separate columns in the `segment_data` table. If you prefer, you can customize the mapping to selectively include or exclude specific fields to be sent and written into SingleStore. ### How does SingleStore handle data types from Segment? @@ -83,4 +108,4 @@ All event data is stored natively as JSON in the message column. This allows for ### Is the data ingestion process real-time? -Yes, Segment forwards data to SingleStore in real-time, enabling immediate analysis and action on your customer data. Generally data is available in the SingleStore database within a few seconds of Segment sending the event. \ No newline at end of file +Yes, Segment forwards data to SingleStore in near real-time, enabling immediate analysis and action on your customer data. Generally, data is available in the SingleStore database within approximately 30 seconds of Segment sending the event. \ No newline at end of file From 31067309e5946f96961c80751e828ab5c53c6d94 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 13 Aug 2025 23:07:36 +0530 Subject: [PATCH 02/12] Access nested data --- .../destinations/catalog/actions-singlestore/index.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/connections/destinations/catalog/actions-singlestore/index.md b/src/connections/destinations/catalog/actions-singlestore/index.md index 612e16eafb..144df0bae7 100644 --- a/src/connections/destinations/catalog/actions-singlestore/index.md +++ b/src/connections/destinations/catalog/actions-singlestore/index.md @@ -59,14 +59,15 @@ Segment writes data to your specified table in SingleStore (by default, this is | `context` | JSON | The context of the event. Contains user environment information. | -### Accessing data -To query specific data from the Segment event within SingleStore, you can select columns directly. For example, to retrieve the `properties` object: +### Accessing nested data +To query nested information from the `traits`, `context`, or `properties` JSON columns, use the `::` operator to access nested properties within the JSON column. For example: +To extract a property1 from the `properties` column: ```sql -SELECT properties FROM your_table_name; +SELECT properties::property1 AS property_1 FROM ; ``` -This query retrieves the `properties` object from the specified table, allowing you to work with event data. +This query allows you to extract specific nested properties from the JSON column for analysis. ## Troubleshooting From 91e697a555343f94827c6ae62afe4fa42c60089e Mon Sep 17 00:00:00 2001 From: Ayush Goyal Date: Thu, 14 Aug 2025 19:51:23 -0400 Subject: [PATCH 03/12] Create Clay destination docs --- .../catalog/actions-clay/index.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/connections/destinations/catalog/actions-clay/index.md diff --git a/src/connections/destinations/catalog/actions-clay/index.md b/src/connections/destinations/catalog/actions-clay/index.md new file mode 100644 index 0000000000..82abb4a1fd --- /dev/null +++ b/src/connections/destinations/catalog/actions-clay/index.md @@ -0,0 +1,21 @@ +--- +title: Clay Destination +--- + +{% include content/plan-grid.md name="actions" %} + +Use website visitor tracking in [Clay](https://clay.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="\_blank"} to identify and understand companies visiting your website, track their engagement patterns, and turn anonymous traffic into actionable leads. + +This destination is maintained by Clay. For any issues with the destination, [contact their Support team](mailto:support@clay.com). + +## Getting started + +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="\_blank"} search for "Clay". +2. Select Clay and click **Add Destination**. +3. Select an existing Source to connect to Clay (Actions). +4. Go to your [Clay dashboard](https://app.clay.com){:target="\_blank"}, and click on **Settings** in the top right corner. +5. Navigate to **Website tracking** and select your website connection. +6. Choose **Segment**, and then copy your **Connection key** and **Secret key**. +7. Enter these keys in the Clay destination settings in Segment. + +{% include components/actions-fields.html %} From e1b07a06553c15ef930323963b7e03a56d51c079 Mon Sep 17 00:00:00 2001 From: Ayush Goyal Date: Fri, 15 Aug 2025 11:11:03 -0400 Subject: [PATCH 04/12] Update copy --- .../destinations/catalog/actions-clay/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/connections/destinations/catalog/actions-clay/index.md b/src/connections/destinations/catalog/actions-clay/index.md index 82abb4a1fd..3b66da1956 100644 --- a/src/connections/destinations/catalog/actions-clay/index.md +++ b/src/connections/destinations/catalog/actions-clay/index.md @@ -6,16 +6,16 @@ title: Clay Destination Use website visitor tracking in [Clay](https://clay.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="\_blank"} to identify and understand companies visiting your website, track their engagement patterns, and turn anonymous traffic into actionable leads. -This destination is maintained by Clay. For any issues with the destination, [contact their Support team](mailto:support@clay.com). +This destination is maintained by Clay. For any issues with the destination, [contact the Clay Support team](mailto:support@clay.com). ## Getting started 1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="\_blank"} search for "Clay". 2. Select Clay and click **Add Destination**. 3. Select an existing Source to connect to Clay (Actions). -4. Go to your [Clay dashboard](https://app.clay.com){:target="\_blank"}, and click on **Settings** in the top right corner. +4. Open your [Clay dashboard](https://app.clay.com){:target="\_blank"}, and select **Settings**. 5. Navigate to **Website tracking** and select your website connection. -6. Choose **Segment**, and then copy your **Connection key** and **Secret key**. -7. Enter these keys in the Clay destination settings in Segment. +6. Select **Segment**, and then copy your **Connection key** and **Secret key**. +7. Return to the Segment app and enter these keys in your Clay destination settings page. {% include components/actions-fields.html %} From 3e8103aa98e63b8778558f27908c8581bf90fd25 Mon Sep 17 00:00:00 2001 From: Jason Sooter <7215306+JasonSooter@users.noreply.github.com> Date: Fri, 15 Aug 2025 12:36:15 -0600 Subject: [PATCH 05/12] remove segment api limitation --- src/connections/destinations/actions.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 8132257e7c..feccbedfaa 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -32,7 +32,6 @@ Destination Actions are available to all customers on all Segment plans. You do - You can use the [Event Tester](/docs/connections/test-connections) with Destination Actions. Event delivery metrics are collected and available in the destination information pages. - If you are using [Protocols](/docs/protocols/), Destination Actions actions are applied **after** [schema filters](/docs/protocols/enforce/schema-configuration/) and [transformations](/docs/protocols/transform/). - If you are using [Destination Filters](/docs/connections/destinations/destination-filters/), Actions are applied after the filters. They are not applied to data that is filtered out. -- Destination Actions can't be accessed or modified using the Segment APIs. ## Components of a Destination Action From 0d759d707e6cf608feac3a246a13469f9febe45e Mon Sep 17 00:00:00 2001 From: sade-wusi Date: Tue, 19 Aug 2025 17:15:40 +0100 Subject: [PATCH 06/12] Updated AI nutrition labels to include new models --- src/_includes/content/functions-copilot-nutrition-facts.html | 2 +- src/_includes/content/suggested-mappings-nutrition-facts.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_includes/content/functions-copilot-nutrition-facts.html b/src/_includes/content/functions-copilot-nutrition-facts.html index d4bd50431a..bd6e983606 100644 --- a/src/_includes/content/functions-copilot-nutrition-facts.html +++ b/src/_includes/content/functions-copilot-nutrition-facts.html @@ -85,7 +85,7 @@

Base Model - OpenAI - GPT-4

+ Claude Haiku

diff --git a/src/_includes/content/suggested-mappings-nutrition-facts.html b/src/_includes/content/suggested-mappings-nutrition-facts.html index a4544c975a..69ac2efa34 100644 --- a/src/_includes/content/suggested-mappings-nutrition-facts.html +++ b/src/_includes/content/suggested-mappings-nutrition-facts.html @@ -85,7 +85,7 @@

Base Model - OpenAI - GPT-3.5

+ Claude Sonnet

From 7c1d50d74b952dfeda97f222b08ac7a571c0eef9 Mon Sep 17 00:00:00 2001 From: Sharon Adewusi Date: Tue, 19 Aug 2025 17:18:56 +0100 Subject: [PATCH 07/12] [netlify-build] --- src/_includes/content/suggested-mappings-nutrition-facts.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/_includes/content/suggested-mappings-nutrition-facts.html b/src/_includes/content/suggested-mappings-nutrition-facts.html index 69ac2efa34..c1bf4cde1b 100644 --- a/src/_includes/content/suggested-mappings-nutrition-facts.html +++ b/src/_includes/content/suggested-mappings-nutrition-facts.html @@ -141,4 +141,5 @@ - \ No newline at end of file + + From eb4b5eac0f0a759fd271362d5d3475ae7658ec12 Mon Sep 17 00:00:00 2001 From: Ayush Goyal Date: Tue, 19 Aug 2025 13:26:42 -0400 Subject: [PATCH 08/12] Add id and beta --- src/connections/destinations/catalog/actions-clay/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/connections/destinations/catalog/actions-clay/index.md b/src/connections/destinations/catalog/actions-clay/index.md index 3b66da1956..798d28924b 100644 --- a/src/connections/destinations/catalog/actions-clay/index.md +++ b/src/connections/destinations/catalog/actions-clay/index.md @@ -1,5 +1,7 @@ --- title: Clay Destination +id: 6888c9ea14d648263fff811d +beta: true --- {% include content/plan-grid.md name="actions" %} From a2a15e89268be3bd7e239d33f3aa1454c68cfa75 Mon Sep 17 00:00:00 2001 From: Parth Sharma Date: Wed, 20 Aug 2025 14:22:42 +0530 Subject: [PATCH 09/12] asked changes --- .../catalog/actions-singlestore/index.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/connections/destinations/catalog/actions-singlestore/index.md b/src/connections/destinations/catalog/actions-singlestore/index.md index 144df0bae7..7e68dbab67 100644 --- a/src/connections/destinations/catalog/actions-singlestore/index.md +++ b/src/connections/destinations/catalog/actions-singlestore/index.md @@ -27,19 +27,19 @@ This destination is maintained by SingleStore. For any issues with the destinati {% include components/actions-fields.html %} ### Finding your SingleStore connection settings -To connect Segment to SingleStore, use the SingleStore Data API (typically on port 443). Follow these steps to enable and locate your Data API connection settings: +To connect Segment to SingleStore, use the SingleStore Data API (typically on port `443`). Follow these steps to enable and locate your Data API connection settings: 1. Head to the [SingleStore Portal](https://portal.singlestore.com){:target="_blank"}. 2. Select **Deployments**. -3. Choose your Workspace and Database within the list of Deployments -4. From the Connect dropdown, select **Connect to your own app**. SingleStore will display the the key settings you need to connect your SingleStore database to Segment. +3. Choose your **Workspace** and **Database** within the list of deployments. +4. From the **Connect** dropdown, select **Connect to your own app**. SingleStore will display the the key settings you need to connect your SingleStore database to Segment. -**Note:** +**Note**: - The Data API is enabled by default for all SingleStore Cloud workspaces. -- Segment always uses the Data API (typically on port 443). -- If you are using a self-hosted or development SingleStore deployment (such as the SingleStore-dev image), the Data API may run on a different port. Refer to your deployment’s documentation or settings to confirm the correct port. +- Segment always uses the Data API (typically on port `443`). +- If you use a self-hosted or development SingleStore deployment (such as the SingleStore-dev image), the Data API may run on a different port. Refer to your deployment’s documentation or settings to confirm the correct port. -For more details, see the [SingleStore Data API documentation](https://docs.singlestore.com/cloud/reference/data-api/){:target="_blank"}. +For more information, see the [SingleStore Data API documentation](https://docs.singlestore.com/cloud/reference/data-api/){:target="_blank"}. ## Database structure Segment writes data to your specified table in SingleStore (by default, this is `segment_data`) using the following schema: @@ -48,10 +48,10 @@ Segment writes data to your specified table in SingleStore (by default, this is | -------- | ------ | ----------- | | `messageId` | TEXT | A unique identifier for the event to ensure there is no duplication. | | `timestamp` | Datetime(6) | The timestamp of when the event was generated | -| `type` | TEXT | The type of the event (e.g., "track", "identify", "page", "screen", "group", "alias"). | -| `event` | TEXT | The name of the event. Only required for "track" events. | +| `type` | TEXT | The type of the event (for example, Track, Identify, Page, Screen, Group, or Alias). | +| `event` | TEXT | The name of the event. Only required for Track events. | | `name` | TEXT | The name of the page or screen. | -| `properties` | JSON | The properties of the track, page or screen event. | +| `properties` | JSON | The properties of the Track, Page or Screen event. | | `userId` | TEXT | The user ID associated with the event. | | `anonymousId` | TEXT | The anonymous ID associated with the event. | | `groupId` | TEXT | The group ID associated with the event. | @@ -71,7 +71,7 @@ This query allows you to extract specific nested properties from the JSON column ## Troubleshooting -> **Note:** +> info "Request size limit" > The SingleStore Data API has a limit of 1MB per request. If a batch of events sent by Segment exceeds this limit, you may see an error similar to: > > ``` @@ -81,7 +81,7 @@ This query allows you to extract specific nested properties from the JSON column > If you encounter this error, reduce the batch size in your Segment destination settings. -### Connection Errors +### Connection errors If you're unable to connect to the SingleStore database: * Verify that the credentials are correct. * Ensure that your SingleStore database is accessible from Segment’s servers. @@ -92,20 +92,20 @@ If you encounter authentication errors when Segment attempts to connect: * Confirm that the Username and Password are correct. * Ensure that the user has the necessary permissions to write to the database. -### Data Not Appearing in SingleStore +### Data not appearing in SingleStore If events are not recorded in the specified table: * Verify that your sources are correctly sending data to Segment. * Check the event types to ensure they are supported. * Review your SingleStore database logs for any errors. -## Frequently Asked Questions +## Frequently asked questions ### Can I customize the schema used in SingleStore? By default, the mapping stores all fields from the Segment event in separate columns in the `segment_data` table. If you prefer, you can customize the mapping to selectively include or exclude specific fields to be sent and written into SingleStore. ### How does SingleStore handle data types from Segment? -All event data is stored natively as JSON in the message column. This allows for flexible schema management and easy access to nested properties using SQL queries. SingleStore's ability to dynamically and quickly parse the JSON allows all types of complex events to be queried or used in notebooks. +Event data is stored as JSON in the message column. This allows for flexible schema management and easy access to nested properties using SQL queries. SingleStore's ability to dynamically and quickly parse the JSON allows all types of complex events to be queried or used in notebooks. ### Is the data ingestion process real-time? From 053450f5f6761ec4c71c1ff39ceb4a88f8372923 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Wed, 20 Aug 2025 14:53:21 -0400 Subject: [PATCH 10/12] nudge --- src/connections/destinations/catalog/actions-nudge/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/connections/destinations/catalog/actions-nudge/index.md b/src/connections/destinations/catalog/actions-nudge/index.md index 554e7b1978..98f33cf101 100644 --- a/src/connections/destinations/catalog/actions-nudge/index.md +++ b/src/connections/destinations/catalog/actions-nudge/index.md @@ -1,9 +1,7 @@ --- title: Nudge (Actions) Destination id: 6863e71f2a1e1ddc4b4612bf -private: true beta: true -hidden: true --- {% include content/plan-grid.md name="actions" %} From d43ca7e6c784bd02bfa51fab5561377f9bbf1d11 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 21 Aug 2025 12:18:40 -0400 Subject: [PATCH 11/12] update top-level domain --- src/_data/nav.yml | 2 +- src/_includes/content/mobile-cmodes.md | 2 +- src/connections/destinations/actions.md | 2 +- src/connections/destinations/catalog/amazon-lambda/index.md | 4 +--- .../destinations/catalog/amazon-personalize/index.md | 2 +- src/connections/destinations/catalog/amplitude/index.md | 2 +- src/connections/destinations/catalog/kustomer/index.md | 6 +++--- src/connections/destinations/catalog/richpanel/index.md | 2 +- src/connections/destinations/index.md | 2 +- src/connections/reverse-etl/index.md | 4 ++-- src/connections/reverse-etl/setup.md | 2 +- .../sources/catalog/libraries/mobile/apple/index.md | 3 +-- .../catalog/libraries/mobile/kotlin-android/index.md | 3 +-- .../sources/catalog/libraries/website/javascript/index.md | 2 +- src/connections/spec/native-mobile-spec.md | 4 ++-- src/connections/storage/data-lakes/index.md | 2 -- src/connections/storage/warehouses/redshift-useful-sql.md | 4 ++-- src/getting-started/03-planning-full-install.md | 6 +++--- src/guides/how-to-guides/cross-channel-tracking.md | 3 --- src/partners/faqs.md | 6 +++--- src/privacy/complying-with-the-gdpr.md | 2 +- src/privacy/hipaa-eligible-segment.md | 2 +- src/protocols/tracking-plan/best-practices.md | 4 ++-- src/unify/Traits/sql-traits.md | 2 -- 24 files changed, 31 insertions(+), 42 deletions(-) diff --git a/src/_data/nav.yml b/src/_data/nav.yml index 72a30dcaaa..a7d40b1d2b 100644 --- a/src/_data/nav.yml +++ b/src/_data/nav.yml @@ -36,7 +36,7 @@ sections: section: - path: "https://segment.com/jobs/" title: Careers - - path: "https://segment.com/blog/" + - path: "https://twilio.com/blog/" title: Blog - path: "https://segment.com/press/" title: Press diff --git a/src/_includes/content/mobile-cmodes.md b/src/_includes/content/mobile-cmodes.md index 75398e6e5a..64d7959daf 100644 --- a/src/_includes/content/mobile-cmodes.md +++ b/src/_includes/content/mobile-cmodes.md @@ -1,4 +1,4 @@ -Segment defaults to using cloud-based [connection mode](/docs/connections/destinations/#connection-modes) ("cloud-mode") for any destination connected to a mobile source, because this can help [decrease the size of your final app package](https://segment.com/blog/mobile-app-size-effect-on-downloads/). When you use cloud-mode, Segment sends messages to the Segment servers, and then translates and forwards that data on to the downstream tools. This way, you only package the Segment mobile library with your app. +Segment defaults to using cloud-based [connection mode](/docs/connections/destinations/#connection-modes) ("cloud-mode") for any destination connected to a mobile source, because this can help decrease the size of your final app package. When you use cloud-mode, Segment sends messages to the Segment servers, and then translates and forwards that data on to the downstream tools. This way, you only package the Segment mobile library with your app. However, many destination tools that specifically deal with mobile interactions require that you use a device-based connection mode ("device-mode") so that they can collect information directly on the mobile device. (You can check the full list of destinations and [which connection modes they support](/docs/connections/destinations/cmodes-compare/).) diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index 8132257e7c..b75544e04c 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -202,7 +202,7 @@ Segment offers suggested mappings that automatically propose relevant destinatio To use Suggested Mappings, a user with the [Workspace Owner role](/docs/segment-app/iam/roles/) must first accept the Customer AI Terms and Conditions. Ensure that you review the suggested mappings for accuracy before finalizing them as the suggestions are not guaranteed to be 100% accurate. -For more information, see [Segment's Suggested Mappings blogpost](https://segment.com/blog/ai-assisted-magical-mappings/){:target="_blank”} and the [Suggested Mappings Nutrition Label](/docs/connections/reverse-etl/suggested-mappings-nutrition-facts). +For more information, see [Segment's Suggested Mappings blog post](https://www.twilio.com/en-us/blog/developers/best-practices/ai-assisted-magical-mappings){:target="_blank”} and the [Suggested Mappings Nutrition Label](/docs/connections/reverse-etl/suggested-mappings-nutrition-facts). ## Static values Segment supports 4 static value types in Destination Actions mappings: `string`, `boolean`, `number`, and `null`. diff --git a/src/connections/destinations/catalog/amazon-lambda/index.md b/src/connections/destinations/catalog/amazon-lambda/index.md index 2e0867bc6c..2c0f10e62c 100644 --- a/src/connections/destinations/catalog/amazon-lambda/index.md +++ b/src/connections/destinations/catalog/amazon-lambda/index.md @@ -10,8 +10,6 @@ Segment makes it easy to send your data to AWS Lambda (and lots of other destina With Lambda, you can run code for any type of application or backend service - all with zero administration. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability. You can set up your code to automatically trigger from other AWS services or call it directly from any web or mobile app. -[Read more about AWS Lambda on the Segment blog](https://segment.com/blog/unleashing-the-power-of-raw-data-with-amazon-lambda/){:target="_blank"}. - ## Getting started @@ -187,7 +185,7 @@ This setting controls the [Log Type](https://docs.aws.amazon.com/lambda/latest/d **My Lambda <> Segment connection is timing out, what do I do?** -Due to how the event delivery system, [Centrifuge](https://segment.com/blog/introducing-centrifuge/){:target="_blank”}, works, your Lambda can't take more than 5 seconds to run per message. If you're consistently running into timeout issues, you should consult the [AWS Lambda docs](https://docs.aws.amazon.com/lambda/index.html#lang/en_us){:target="_blank”}, as well as docs for your language of choice, for tips on optimizing performance. +Due to how the event delivery system, [Centrifuge](https://www.twilio.com/en-us/blog/archive/2018/introducing-centrifuge){:target="_blank”}, works, your Lambda can't take more than 5 seconds to run per message. If you're consistently running into timeout issues, you should consult the [AWS Lambda docs](https://docs.aws.amazon.com/lambda/index.html#lang/en_us){:target="_blank”}, as well as docs for your language of choice, for tips on optimizing performance. **Handling Common Errors** You can find delivery logs in Destination > [Event Delivery](/docs/connections/event-delivery/). diff --git a/src/connections/destinations/catalog/amazon-personalize/index.md b/src/connections/destinations/catalog/amazon-personalize/index.md index 0b05df2b07..6d5ef52718 100644 --- a/src/connections/destinations/catalog/amazon-personalize/index.md +++ b/src/connections/destinations/catalog/amazon-personalize/index.md @@ -1006,4 +1006,4 @@ This setting controls the [Log Type](https://docs.aws.amazon.com/lambda/latest/d **My Lambda <> Segment connection is timing out, what do I do?** -Due to how Segment's event delivery system, [Centrifuge](https://segment.com/blog/introducing-centrifuge/){:target="_blank”}, works, your Lambda can't take more than five seconds to run per message. If you're consistently running into timeout issues, you should consult the [AWS Lambda docs](https://docs.aws.amazon.com/lambda/index.html#lang/en_us){:target="_blank”}, as well as docs for your language of choice, for tips on optimizing performance. +Due to how Segment's event delivery system, [Centrifuge](https://www.twilio.com/en-us/blog/archive/2018/introducing-centrifuge){:target="_blank”}, works, your Lambda can't take more than five seconds to run per message. If you're consistently running into timeout issues, you should consult the [AWS Lambda docs](https://docs.aws.amazon.com/lambda/index.html#lang/en_us){:target="_blank”}, as well as docs for your language of choice, for tips on optimizing performance. diff --git a/src/connections/destinations/catalog/amplitude/index.md b/src/connections/destinations/catalog/amplitude/index.md index 4ac02da755..82eb623bfe 100644 --- a/src/connections/destinations/catalog/amplitude/index.md +++ b/src/connections/destinations/catalog/amplitude/index.md @@ -504,7 +504,7 @@ analytics.alias({ ### sessionId -[Segment doesn't have a concept for a session](https://segment.com/blog/facts-vs-stories-why-segment-has-no-sessions-api/){:target="_blank"}. +[Segment doesn't have a concept for a session](https://www.twilio.com/en-us/blog/developers/best-practices/facts-vs-stories-why-segment-has-no-sessions-api){:target="_blank"}. Device-mode calls to Amplitude include session information because Segment bundles Amplitude's SDK. To set up the same `sessionId` for cloud-mode calls to Amplitude, you must explicitly set the [`session_id`](https://developers.amplitude.com/docs/http-api-v2#optional-keyst){:target="_blank"} as an integration-specific option, as in the example below. diff --git a/src/connections/destinations/catalog/kustomer/index.md b/src/connections/destinations/catalog/kustomer/index.md index a9e5b6ebe8..fc8bc24bd2 100644 --- a/src/connections/destinations/catalog/kustomer/index.md +++ b/src/connections/destinations/catalog/kustomer/index.md @@ -32,7 +32,7 @@ analytics.page('Pricing', { }); ``` -Page calls will sent as a `tracking event` to Kustomer on the timeline of the customer who was tracked. If the `kustomer_session_id` is included, it will cluster this tracking event into a single "session" on the customer's timeline. If no `kustomer_session_id` is supplied, we will automatically generate session IDs based on time between tracking events. (Read why Segment doesn't have session tracking [on the Segment blog](https://segment.com/blog/facts-vs-stories-why-segment-has-no-sessions-api/){:target="_blank”}). +Page calls will sent as a `tracking event` to Kustomer on the timeline of the customer who was tracked. If the `kustomer_session_id` is included, it will cluster this tracking event into a single "session" on the customer's timeline. If no `kustomer_session_id` is supplied, we will automatically generate session IDs based on time between tracking events. (Read why Segment doesn't have session tracking [on the Segment blog](https://www.twilio.com/en-us/blog/developers/best-practices/facts-vs-stories-why-segment-has-no-sessions-api){:target="_blank”}). ## Screen @@ -44,7 +44,7 @@ If you're not familiar with the Segment Specs, take a look to understand what th properties:@{ @"kustomer_session_id": @"abc123" }]; ``` -Screen calls will sent as a `tracking event` to Kustomer on the timeline of the customer who was tracked. If the `kustomer_session_id` is included, it will cluster this tracking event into a single "session" on the customer's timeline. If no `kustomer_session_id` is supplied, we will automatically generate session IDs based on time between tracking events. (Read why Segment doesn't have session tracking [on the Segment blog](https://segment.com/blog/facts-vs-stories-why-segment-has-no-sessions-api/){:target="_blank”}). +Screen calls will sent as a `tracking event` to Kustomer on the timeline of the customer who was tracked. If the `kustomer_session_id` is included, it will cluster this tracking event into a single "session" on the customer's timeline. If no `kustomer_session_id` is supplied, we will automatically generate session IDs based on time between tracking events. (Read why Segment doesn't have session tracking [on the Segment blog](https://www.twilio.com/en-us/blog/developers/best-practices/facts-vs-stories-why-segment-has-no-sessions-api){:target="_blank”}.) ## Identify @@ -78,7 +78,7 @@ analytics.track("Registered", { }); ``` -Track calls send as a `tracking event` to Kustomer on the timeline of the customer who was tracked. If the `kustomer_session_id` is included, it clusters this tracking event into a single "session" on the customer's timeline. If no `kustomer_session_id` is supplied, Segment automatically generates session IDs based on time between tracking events. See why [Segment doesn't have session tracking](https://segment.com/blog/facts-vs-stories-why-segment-has-no-sessions-api/){:target="_blank”}. +Track calls send as a `tracking event` to Kustomer on the timeline of the customer who was tracked. If the `kustomer_session_id` is included, it clusters this tracking event into a single "session" on the customer's timeline. If no `kustomer_session_id` is supplied, Segment automatically generates session IDs based on time between tracking events. See why [Segment doesn't have session tracking](https://www.twilio.com/en-us/blog/developers/best-practices/facts-vs-stories-why-segment-has-no-sessions-api){:target="_blank”}. ## Engage limitation diff --git a/src/connections/destinations/catalog/richpanel/index.md b/src/connections/destinations/catalog/richpanel/index.md index ee9fe41406..f228976b01 100644 --- a/src/connections/destinations/catalog/richpanel/index.md +++ b/src/connections/destinations/catalog/richpanel/index.md @@ -57,7 +57,7 @@ analytics.page('Pricing', { Page calls are sent as a tracking event to Richpanel on the timeline of the customer who was tracked. If the `richpanel_session_id` is included, it clusters this tracking event into a single “session” on the customer's timeline. -If no `richpanel_session_id` is supplied, Richpanel will automatically generate sessionIDs based on time between tracking events. (Read why [Segment doesn't have session tracking](https://segment.com/blog/facts-vs-stories-why-segment-has-no-sessions-api/){:target="_blank"} for more details). `page` calls can only update `email` traits, not create them. +If no `richpanel_session_id` is supplied, Richpanel will automatically generate sessionIDs based on time between tracking events. (Read why [Segment doesn't have session tracking](https://www.twilio.com/en-us/blog/developers/best-practices/facts-vs-stories-why-segment-has-no-sessions-api){:target="_blank"} for more details). `page` calls can only update `email` traits, not create them. ## Track diff --git a/src/connections/destinations/index.md b/src/connections/destinations/index.md index 88d784be3d..e955162943 100644 --- a/src/connections/destinations/index.md +++ b/src/connections/destinations/index.md @@ -70,7 +70,7 @@ For example, a web-chat destination must be loaded to connect to the service and #### Mobile source connection modes -By default, destinations configured on a mobile source send their data directly to the Segment servers, then translate it and use Cloud-mode to forward it to destinations. *Cloud-mode* means that Segment sends the data directly from the Segment servers, to their servers. This means you don't need to package third-party SDKs for destinations that can accept cloud-mode data. Some primarily web-based destinations also allow cloud-mode, which can help reduce app size, and improve load time and performance. You can read more about the [effects of mobile app size on downloads in Segment's blog](https://segment.com/blog/mobile-app-size-effect-on-downloads/). +By default, destinations configured on a mobile source send their data directly to the Segment servers, then translate it and use Cloud-mode to forward it to destinations. *Cloud-mode* means that Segment sends the data directly from the Segment servers, to their servers. This means you don't need to package third-party SDKs for destinations that can accept cloud-mode data. Some primarily web-based destinations also allow cloud-mode, which can help reduce app size, and improve load time and performance. Before you turn on or opt-in for cloud-mode for a mobile source, consider if your destinations have features that require interactions on the device or require device-specific data (see the examples above). For example, if you use cloud-mode for Mixpanel, you'll get your data on reporting and people, but won't be able to use their features for in-app surveys or auto-tracking. These can be really valuable, but might not be a priority for your team. diff --git a/src/connections/reverse-etl/index.md b/src/connections/reverse-etl/index.md index 8c3ba4250e..1dcd3480a4 100644 --- a/src/connections/reverse-etl/index.md +++ b/src/connections/reverse-etl/index.md @@ -70,8 +70,8 @@ Learn more about the system that powers Reverse ETL, supported destinations, and {% include components/reference-button.html icon="guides.svg" - href="https://segment.com/blog/reverse-etl/" - title="What is Reverse ETL? A complete guide" + href="https://www.twilio.com/en-us/blog/activate-data-with-api-managed-reverse-etl" + title="Activate Data with API-managed Reverse ETL" description="In this blog from Segment, learn how Reverse ETL helps businesses activate their data to drive better decision-making and greater operational efficiency." %} diff --git a/src/connections/reverse-etl/setup.md b/src/connections/reverse-etl/setup.md index 4172e6e281..909ed855c4 100644 --- a/src/connections/reverse-etl/setup.md +++ b/src/connections/reverse-etl/setup.md @@ -218,7 +218,7 @@ To edit your model: > info "" > Suggested mappings is fully available for RETL mappings. -Segment offers suggested mappings that automatically propose relevant destination fields for model columns and payload elements. For example, if your model includes a column or payload field named `transaction_amount`, the feature might suggest mapping it to a destination field like `Amount` or `TransactionValue`. This automation, powered by intelligent autocompletion, matches and identifies near-matching field names to streamline the mappings setup process. For more information, see [Segment's suggested mappings blog post](https://segment.com/blog/ai-assisted-magical-mappings/){:target="_blank”} and the [Suggested Mappings Nutrition Facts Label](/docs/connections/reverse-etl/suggested-mappings-nutrition-facts). +Segment offers suggested mappings that automatically propose relevant destination fields for model columns and payload elements. For example, if your model includes a column or payload field named `transaction_amount`, the feature might suggest mapping it to a destination field like `Amount` or `TransactionValue`. This automation, powered by intelligent autocompletion, matches and identifies near-matching field names to streamline the mappings setup process. For more information, see [Segment's suggested mappings blog post](https://www.twilio.com/en-us/blog/developers/best-practices/ai-assisted-magical-mappings){:target="_blank”} and the [Suggested Mappings Nutrition Facts Label](/docs/connections/reverse-etl/suggested-mappings-nutrition-facts). > warning "" > Review the suggested mappings for accuracy before finalizing them, as Segment can't guarantee all of the suggested mappings are accurate. diff --git a/src/connections/sources/catalog/libraries/mobile/apple/index.md b/src/connections/sources/catalog/libraries/mobile/apple/index.md index 6a65cb84b5..d94f599408 100644 --- a/src/connections/sources/catalog/libraries/mobile/apple/index.md +++ b/src/connections/sources/catalog/libraries/mobile/apple/index.md @@ -21,8 +21,7 @@ With Analytics-Swift, you can send data from iOS, tvOS, iPadOS, WatchOS, macOS a Analytics-Swift provides several key benefits including improvements in stability, performance, and developer experience when compared to Analytics iOS (Classic). ### Performance -Analytics-Swift offers improved performance when compared to Analytics iOS. For a more detailed overview, you can reference the [blog post](https://segment.com/blog/sdk-performance-improvements/). - +Analytics-Swift offers improved performance when compared to Analytics iOS: - Faster event processing and delivery - Significantly lower CPU usage - Small memory & disk usage footprint diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/index.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/index.md index 26250f0621..f746f0aa5f 100644 --- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/index.md +++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/index.md @@ -27,8 +27,7 @@ Analytics Kotlin uses thread-safety strategies to isolate Plugins, Device-Mode D ### Performance -Analytics Kotlin is a huge leap forward in terms of performance when compared to Analytics Android (Classic). For a more detailed overview, you can reference our [blog post](https://segment.com/blog/sdk-performance-improvements/). - +Analytics Kotlin is a leap forward in terms of performance when compared to Analytics Android (Classic): - Faster event processing and delivery - Significantly lower CPU usage - Small memory & disk usage footprint diff --git a/src/connections/sources/catalog/libraries/website/javascript/index.md b/src/connections/sources/catalog/libraries/website/javascript/index.md index 4b2d71fd77..5f907dd5cd 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/index.md +++ b/src/connections/sources/catalog/libraries/website/javascript/index.md @@ -989,7 +989,7 @@ To minimize client-side data loss, Segment provides a few workarounds. However, - Create a [custom proxy](/docs/connections/sources/catalog/libraries/website/javascript/custom-proxy/). This changes the URL that Segment loads from (cdn.segment.com) and the outgoing requests generated when events are triggered (api.segment.io). -- Consider implementing the [Segment Edge SDK](https://segment.com/blog/twilio-segment-edge-sdk/){:target="_blank”}. The Segment Edge SDK uses Cloudflare Workers to facilitate first-party data collection and real-time user profiling for app personalization. It integrates Segment's library into web apps, manages user identity using HTTPOnly cookies, and employs an internal router for efficient data processing and user experience customization. This innovative approach simplifies tracking and personalization for Segment customers. More information is available in the [Edge SDK README](https://github.com/segmentio/analytics-edge/blob/main/packages/edge-sdk/README.md){:target="_blank”}. +- Consider implementing the Segment Edge SDK. The Segment Edge SDK uses Cloudflare Workers to facilitate first-party data collection and real-time user profiling for app personalization. It integrates Segment's library into web apps, manages user identity using HTTPOnly cookies, and employs an internal router for efficient data processing and user experience customization. This innovative approach simplifies tracking and personalization for Segment customers. More information is available in the [Edge SDK README](https://github.com/segmentio/analytics-edge/blob/main/packages/edge-sdk/README.md){:target="_blank”}. * Consider using one of Segment’s [server-side libraries](/docs/connections/sources/#server). Using a server-side library eliminates concerns about tracking blockers and privacy browsers that can prevent Segment from loading. This option may require additional code to track actions like a Page call, as you now need to manually pass contextual information that would have been automatically collected by Analytics.js, like `url`, `path`, and `referrer`. Note that some destinations are device-mode only. diff --git a/src/connections/spec/native-mobile-spec.md b/src/connections/spec/native-mobile-spec.md index f2b50a3d4f..322a06ef07 100644 --- a/src/connections/spec/native-mobile-spec.md +++ b/src/connections/spec/native-mobile-spec.md @@ -2,9 +2,9 @@ title: What is the native mobile spec? --- -The [Native Mobile Spec](https://segment.com/docs/connections/spec/mobile) is a common blueprint for the mobile user lifecycle. The Spec outlines the most important events for mobile apps to be tracking and automatically collects many of these events with the Segment Android and iOS SDKs. +The [Native Mobile Spec](/docs/connections/spec/mobile) is a common blueprint for the mobile user lifecycle. The Spec outlines the most important events for mobile apps to be tracking and automatically collects many of these events with the Segment Android and iOS SDKs. -This article outlines common questions about our Native Mobile Spec. To learn what the benefits are of the feature, check out our [blog](https://segment.com/blog/native-mobile-spec). For technical set up and documentation, see our [spec docs](https://segment.com/docs/connections/spec/mobile). +This article outlines common questions about our Native Mobile Spec. For technical set up and documentation, see Segment's [Mobile Spec docs](/docs/connections/spec/mobile). ### How does the Native Mobile Spec help me? diff --git a/src/connections/storage/data-lakes/index.md b/src/connections/storage/data-lakes/index.md index 620d6d71e8..c791455bbc 100644 --- a/src/connections/storage/data-lakes/index.md +++ b/src/connections/storage/data-lakes/index.md @@ -24,8 +24,6 @@ Segment Data Lakes sends Segment data to a cloud data store, AWS S3, in a format > warning "Segment Data Lakes deletion policies" > Segment Data Lakes (AWS) does not support Segment's [user deletion and suppression](/docs/privacy/user-deletion-and-suppression/) capabilities, as you retain your data in systems that you manage. -To learn more about Segment Data Lakes, check out the Segment blog post [Introducing Segment Data Lakes](https://segment.com/blog/introducing-segment-data-lakes/){:target="_blank"}. - ## How Data Lakes work Segment supports Data Lakes hosted on Amazon Web Services (AWS). Each cloud provider has a similar system for managing data, but offer different query engines, post-processing systems, and analytics options. diff --git a/src/connections/storage/warehouses/redshift-useful-sql.md b/src/connections/storage/warehouses/redshift-useful-sql.md index ac8e2dd8f6..19d7d7630e 100644 --- a/src/connections/storage/warehouses/redshift-useful-sql.md +++ b/src/connections/storage/warehouses/redshift-useful-sql.md @@ -105,10 +105,10 @@ Segment's API does not impose any restrictions on your data with regard to user Sessions aren't fundamental facts about the user experience. They're stories Segment builds around the data to understand how customers actually use the product in their day-to-day lives. And since Segment's API is about collecting raw, factual data, there's no API for collecting sessions. Segment leaves session interpretation to SQL partners, which let you design how you measure sessions based on how customers use your product. -For more on why Segment doesn't collect session data at the API level, [check out a blog post here](https://segment.com/blog/facts-vs-stories-why-segment-has-no-sessions-api/){:target="_blank"}. +For more on why Segment doesn't collect session data at the API level, check out Twilio's [Facts vs. Stories: Why Segment has no Sessions API](https://www.twilio.com/en-us/blog/developers/best-practices/facts-vs-stories-why-segment-has-no-sessions-api){:target="_blank"} blog. ### How to define user sessions using SQL -Each of Segment's SQL partners allow you to define sessions based on your specific business needs. With [Looker](https://looker.com){:target="_blank"}, for example, you can take advantage of their persistent derived tables and LookML modeling language to layer sessionization on top of your Segment SQL data. Segment recommends [checking out Looker's approach here](https://segment.com/blog/using-sql-to-define-measure-and-analyze-user-sessions/). +Each of Segment's SQL partners allow you to define sessions based on your specific business needs. With [Looker](https://looker.com){:target="_blank"}, for example, you can take advantage of their persistent derived tables and LookML modeling language to layer sessionization on top of your Segment SQL data. To define sessions with raw SQL, a great query and explanation comes from [Mode Analytics](https://mode.com). diff --git a/src/getting-started/03-planning-full-install.md b/src/getting-started/03-planning-full-install.md index 1c04a2576e..d1a8b14cb1 100644 --- a/src/getting-started/03-planning-full-install.md +++ b/src/getting-started/03-planning-full-install.md @@ -71,7 +71,7 @@ If your organization sells a product or services to other businesses, you might #### Ecommerce Spec -If your organization sells products online, the E-commerce Spec covers the customer's journey as they browse your store, click on promotions, view products, add those products to a cart, and complete a purchase. It also provides recommendations about off-page interactions, including interactions with email promotions, coupons, and other systems. You can read more about [why companies need an Ecommerce Spec](https://segment.com/blog/2014-08-28-ecommerce-analytics-story/), read more about [Ecommerce tracking plans](/docs/connections/spec/ecommerce-tracking-plan/), and dive directly into our [Ecommerce Spec](/docs/connections/spec/ecommerce/v2/). +If your organization sells products online, the E-commerce Spec covers the customer's journey as they browse your store, click on promotions, view products, add those products to a cart, and complete a purchase. It also provides recommendations about off-page interactions, including interactions with email promotions, coupons, and other systems. You can read more about [Twilio's retail solutions](https://www.twilio.com/en-us/solutions/retail){:target="_blank”}, read more about [Ecommerce tracking plans](/docs/connections/spec/ecommerce-tracking-plan/), and dive directly into our [Ecommerce Spec](/docs/connections/spec/ecommerce/v2/). #### Mobile Spec @@ -106,7 +106,7 @@ Got all that? Great. You're now ready to develop a Tracking Plan. ## Develop a tracking plan -A [tracking plan](https://segment.com/blog/what-is-a-tracking-plan/){:target="_blank"} clarifies what events to track, where those events live in the code base, and why you're tracking those events (from a business perspective). **A good tracking plan represents the single source of truth about what data you collect, and why.** +A [tracking plan](https://www.twilio.com/en-us/blog/insights/what-is-a-tracking-plan){:target="_blank"} clarifies what events to track, where those events live in the code base, and why you're tracking those events (from a business perspective). **A good tracking plan represents the single source of truth about what data you collect, and why.** Your tracking plan is probably maintained in a spreadsheet (unless you use Segment's tracking-plan tool, [Protocols](/docs/protocols/)), and serves as a project management tool to get your organization in agreement about what data to use to make decisions. A tracking plan helps build a shared understanding of the data among marketers, product managers, engineers, analysts, and any other data users. @@ -164,7 +164,7 @@ An online community, on the other hand, has an entirely different set of actions - **Content Produced** - **Content Curated** -With these actions tracked, the community can develop metrics around engagement, and understand how users move towards their ultimate conversion events. You can read more in [this article from the online community GrowthHackers](https://segment.com/blog/growthhackers-community-metrics/){:target="_blank"} about the events they track and why. +With these actions tracked, the community can develop metrics around engagement, and understand how users move towards their ultimate conversion events. ### Define your Track event properties diff --git a/src/guides/how-to-guides/cross-channel-tracking.md b/src/guides/how-to-guides/cross-channel-tracking.md index 1710577cf0..11dbab703b 100644 --- a/src/guides/how-to-guides/cross-channel-tracking.md +++ b/src/guides/how-to-guides/cross-channel-tracking.md @@ -217,9 +217,6 @@ For Facebook advertisers, [Facebook Offline Conversions](https://www.facebook.co * Enable and configure [Segment's Facebook Offline Conversions destination](/docs/connections/destinations/catalog/facebook-offline-conversions/), which automates attributing offline events to your Facebook ads in real-time - -[Learn more about the benefits of Segment's Facebook Offline Conversions destination](https://segment.com/blog/facebook-offline-conversions-integration/){:target="_blank"}. - Most other advertising networks provide some functionality of manually uploading offline data to match with their online advertising data. Here is a short list of other services: * [Google Adwords](https://adwords.google.com/home/){:target="_blank"} provides the functionality to [attribute offline conversions to your ads](https://support.google.com/adwords/answer/2998031?hl=en){:target="_blank"}. diff --git a/src/partners/faqs.md b/src/partners/faqs.md index c28f688ae7..b642385080 100644 --- a/src/partners/faqs.md +++ b/src/partners/faqs.md @@ -22,13 +22,13 @@ For unknown users, Segment will handle generating a unique `anonymousId` using o Segment handles cacheing these values on our mobile SDKs and client-side analytics.js library and sending the values on subsequent calls. Our server-side libraries rely on the customer creating either the `anonymousId` or `userId` and passing this in on each call. -Read more about unique IDs on Segment's blog: [A brief history of the UUID](https://segment.com/blog/a-brief-history-of-the-uuid/){:target="_blank”}. +Read more about unique IDs on Twilio's blog: [A brief history of the UUID](https://www.twilio.com/en-us/blog/developers/a-brief-history-of-the-uuid){:target="_blank”}. ### Do you have semantic events? Yes! -To start, a Segment customer will track their user actions using our `track` method. Segment has [industry specs](https://segment.com/docs/connections/spec/semantic/) to define semantic naming to follow, so when sending events in for a particular event flow, such as Ecommerce, Live Chat, Video and Email events, Segment can translate these semantic event names into other downstream tools. +To start, a Segment customer will track their user actions using our `track` method. Segment has [industry specs](/docs/connections/spec/semantic/) to define semantic naming to follow, so when sending events in for a particular event flow, such as Ecommerce, Live Chat, Video and Email events, Segment can translate these semantic event names into other downstream tools. It is essential that the destination follows the relevant industry specs when translating a Segment event into how the destination tool understands the event. That way, customers can enable any new integration and specced events, such as "Order Completed", and it will automatically work with the new downstream destination. @@ -44,7 +44,7 @@ Segment maintains a sliding window of all `messageId`s received for each source, Segment guarantees this window to be at least 24 hours of messages (meaning any message sent twice within 24 hours will be de-duped), but in practice, this window is significantly larger(currently sitting at around 170 days). -You can read more on the Segment blog: [Delivering billions of messages exactly once](https://segment.com/blog/exactly-once-delivery/){:target="_blank”}. +You can read more on Twilio's blog: [Delivering billions of messages exactly once](https://www.twilio.com/en-us/blog/insights/exactly-once-deliveryhttps://www.twilio.com/en-us/blog/insights/exactly-once-delivery){:target="_blank”}. ### What is a replay? diff --git a/src/privacy/complying-with-the-gdpr.md b/src/privacy/complying-with-the-gdpr.md index d91cc69b53..284852a928 100644 --- a/src/privacy/complying-with-the-gdpr.md +++ b/src/privacy/complying-with-the-gdpr.md @@ -13,7 +13,7 @@ Specifically, here is how Segment supports its customers: * New product capabilities to help you be compliant when users request you delete or suppress their data. -Check out Segment's [GDPR blog post](https://segment.com/blog/segment-and-the-gdpr){:target="_blank"} to learn about Segment's plan for GDPR readiness. +Check out Twilio's [GDPR blog post](https://www.twilio.com/en-us/blog/insights/compliance/recent-gdpr-changes-your-business-needs-to-know-about){:target="_blank"} to learn about recent changes to the GDPR and how Segment is responding. ## How does the GDPR impact your business? diff --git a/src/privacy/hipaa-eligible-segment.md b/src/privacy/hipaa-eligible-segment.md index 1e8a62b456..def08ae967 100644 --- a/src/privacy/hipaa-eligible-segment.md +++ b/src/privacy/hipaa-eligible-segment.md @@ -3,7 +3,7 @@ title: HIPAA Eligible Segment plan: hipaa-eligible --- -Segment is a HIPAA eligible platform, and meets the data privacy and security requirements of healthcare customers and their stakeholders. For more information about Segment becoming HIPAA eligible, see the [announcement blog post](http://segment.com/blog/segment-for-healthcare){:target="_blank"}. +Segment is a HIPAA eligible platform, and meets the data privacy and security requirements of healthcare customers and their stakeholders. For more information about Segment becoming HIPAA eligible, see Twilio's [Leverage real-time data to deliver personalized care to patients, at scale, and uncover critical moments in the care journey](https://www.twilio.com/en-us/blog/insights/segment-for-healthcare){:target="_blank"}. ## Business Associate Addendum diff --git a/src/protocols/tracking-plan/best-practices.md b/src/protocols/tracking-plan/best-practices.md index 0d2b1c8a85..0ec32feb1f 100644 --- a/src/protocols/tracking-plan/best-practices.md +++ b/src/protocols/tracking-plan/best-practices.md @@ -56,7 +56,7 @@ Regardless of your approach, keep the following tips in mind: ## Create a tracking plan -A [tracking plan](https://segment.com/blog/what-is-a-tracking-plan/){:target="_blank”} clarifies what events to track, where those events live in the code base, and why those events are necessary from a business perspective. Prior to Protocols, tracking plans typically lived in a spreadsheet. The tracking plan served as a project management tool to align an entire organization around data as the basis on which to make decisions. The tracking plan helps marketers, product managers, engineers, and analysts get on the same page. +A [tracking plan](https://www.twilio.com/en-us/blog/insights/what-is-a-tracking-plan){:target="_blank”} clarifies what events to track, where those events live in the code base, and why those events are necessary from a business perspective. Prior to Protocols, tracking plans typically lived in a spreadsheet. The tracking plan served as a project management tool to align an entire organization around data as the basis on which to make decisions. The tracking plan helps marketers, product managers, engineers, and analysts get on the same page. The tracking plan has been so instrumental in helping organizations reclaim their own data efforts that Segment invested years of product development to create [Protocols](/docs/protocols/). Whatever tool you choose to build your tracking plan, make sure that it represents a single source of truth for your data collection efforts. @@ -113,7 +113,7 @@ For a community, on the other hand, an entirely different set of actions indicat - **Content Produced** - **Content Curated** -With this, they're able to measure key metrics around engagement and understand how users are moving towards their ultimate conversion event: curation content for others. For more information, check out [this article](https://segment.com/blog/growthhackers-community-metrics/){:target="_blank"} from GrowthHackers about the events they track and why. +With this, they're able to measure key metrics around engagement and understand how users are moving towards their ultimate conversion event: curation content for others. ## Define your Track event properties diff --git a/src/unify/Traits/sql-traits.md b/src/unify/Traits/sql-traits.md index 7fbfac86ba..f23d94b39b 100644 --- a/src/unify/Traits/sql-traits.md +++ b/src/unify/Traits/sql-traits.md @@ -22,8 +22,6 @@ This unlocks some interesting possibilities to help you meet your business goals - To predict a customer's lifetime value (LTV), generate a complex query based on demographic and customer data in your warehouse. You can then use that information in an Engage audience to send personalized offers or recommend specific products. - To inform your outreach efforts, use complex queries to build churn or product adoption models. -Check out Segment's [SQL Traits blog post](https://segment.com/blog/sql-traits){:target="_blank"} for more customer case studies. - > info "" > To view SQL Traits in a user profile, you must have [PII access](/docs/segment-app/iam/roles/#pii-access). Without this access, Segment redacts all SQL traits in a profile. From e74b0cc59a838fc8f09ae53684ea0633c5f64b7d Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 21 Aug 2025 12:23:05 -0400 Subject: [PATCH 12/12] catalog --- src/_data/catalog/destination_categories.yml | 2 +- src/_data/catalog/destinations.yml | 229 +++++++++++++++++- src/_data/catalog/destinations_private.yml | 2 +- src/_data/catalog/slugs.yml | 3 +- src/_data/catalog/source_categories.yml | 2 +- src/_data/catalog/sources.yml | 4 +- .../catalog/nudge-actions/index.md | 5 + 7 files changed, 240 insertions(+), 7 deletions(-) create mode 100644 src/connections/destinations/catalog/nudge-actions/index.md diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 4b286f7fb3..8186fd3e58 100644 --- a/src/_data/catalog/destination_categories.yml +++ b/src/_data/catalog/destination_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination categories last updated 2025-08-14 +# destination categories last updated 2025-08-21 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 7331650c1e..823b06a6ea 100644 --- a/src/_data/catalog/destinations.yml +++ b/src/_data/catalog/destinations.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2025-08-14 +# destination data last updated 2025-08-21 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -94483,6 +94483,233 @@ items: actions: [] presets: [] partnerOwned: true +- id: 6863e71f2a1e1ddc4b4612bf + display_name: Nudge (Actions) + name: Nudge (Actions) + slug: actions-nudge + hidden: true + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/actions-nudge + previous_names: + - Nudge (Actions) + website: https://www.nudgenow.com/ + status: PUBLIC_BETA + categories: + - Personalization + - Marketing Automation + logo: + url: https://cdn-devcenter.segment.com/4c55af2e-93cc-4228-acd8-73d19980b392.svg + mark: + url: https://cdn-devcenter.segment.com/caa34359-1b3f-43b3-82f2-80a12366dad2.svg + methods: + track: true + identify: true + group: true + alias: true + screen: false + page: true + platforms: + browser: true + mobile: false + server: true + warehouse: false + cloudAppObject: false + linkedAudiences: true + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + connection_modes: + device: + web: false + mobile: false + server: false + cloud: + web: true + mobile: false + server: true + settings: + - name: apikey + type: string + defaultValue: '' + description: Private Backend API Key + required: true + label: API Key + actions: + - id: mJriqCZY3rHocE9C1m5NMr + name: Identify User + slug: identifyUser + description: Identify a user in Nudge + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" + fields: + - id: qFFMS1suVaCF38hTvWmQTF + sortOrder: 0 + fieldKey: ext_id + label: User ID + type: STRING + description: The ID of the user performing the action. + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dYkUr84wgG9csKgsXMrv4V + sortOrder: 1 + fieldKey: name + label: User Name + type: STRING + description: The name of the user + placeholder: '' + defaultValue: + '@path': $.traits.name + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 58fjVPXAvQwXQsLhvosBfP + sortOrder: 2 + fieldKey: phone + label: Phone Number + type: STRING + description: The phone number of the user + placeholder: '' + defaultValue: + '@path': $.traits.phone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kzEywV4JWaVyhmmvEdcX1k + sortOrder: 3 + fieldKey: email + label: Email + type: STRING + description: The email of the user. + placeholder: '' + defaultValue: + '@path': $.traits.email + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: pTC6hsGtTgRq5yieZfxwdA + sortOrder: 4 + fieldKey: tz + label: Timezone + type: STRING + description: The timezone of the user. + placeholder: '' + defaultValue: + '@path': $.context.timezone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: pTJnHtz5sVLYLEP9ftBFBq + sortOrder: 5 + fieldKey: props + label: Properties + type: OBJECT + description: Properties for the user + placeholder: '' + defaultValue: + '@path': $.traits + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: wZWyi9STizgLxN31tSnSM5 + name: Track Event + slug: trackEvent + description: Send an event to Nudge + platform: CLOUD + hidden: false + defaultTrigger: type = "track" + fields: + - id: xhkZiq7zR4wzxF82nNMiWT + sortOrder: 0 + fieldKey: name + label: Event Name + type: STRING + description: The name of the action being performed. + placeholder: '' + defaultValue: + '@path': $.event + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fyFhbuy1AgpM7Z9sX23JRh + sortOrder: 1 + fieldKey: ext_id + label: User ID + type: STRING + description: The ID of the user performing the action. + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 3Wf2gDnLRQL1i7voPPH38g + sortOrder: 2 + fieldKey: occurred_at + label: Event Timestamp + type: DATETIME + description: The time at which the event occurred + placeholder: '' + defaultValue: + '@path': $.timestamp + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: iPZum6WNjuuN69TQbCWmqT + sortOrder: 3 + fieldKey: props + label: Properties + type: OBJECT + description: Properties of the event + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 49RXas9Shnz5mZjjFCpksj + sortOrder: 4 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: [] + partnerOwned: true - id: 54be95b4db31d978f14a7e0f display_name: Nudgespot name: Nudgespot diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index a2ca2cacf2..48548abac9 100644 --- a/src/_data/catalog/destinations_private.yml +++ b/src/_data/catalog/destinations_private.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2025-08-14 +# destination data last updated 2025-08-21 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/slugs.yml b/src/_data/catalog/slugs.yml index 2edea25473..a2986e3d36 100644 --- a/src/_data/catalog/slugs.yml +++ b/src/_data/catalog/slugs.yml @@ -329,4 +329,5 @@ destinations: override: "actions-ortto" - original: "aampe-actions" override: "actions-aampe" - + - original: "nudge-actions" + override: "actions-nudge" diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index fa238ca0d4..f4dbe5c183 100644 --- a/src/_data/catalog/source_categories.yml +++ b/src/_data/catalog/source_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# source categories last updated 2025-08-14 +# source categories last updated 2025-08-21 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 d794611833..972dcc56ee 100644 --- a/src/_data/catalog/sources.yml +++ b/src/_data/catalog/sources.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# sources last updated 2025-08-14 +# sources last updated 2025-08-21 items: - id: 8HWbgPTt3k display_name: .NET @@ -2551,7 +2551,7 @@ items: url: >- https://cdn-devcenter.segment.com/74267292-206c-47a3-927e-f0874c792038.svg categories: - - Email Marketing + - Marketing Automation status: PUBLIC partnerOwned: false - id: wFC7PGNwGR diff --git a/src/connections/destinations/catalog/nudge-actions/index.md b/src/connections/destinations/catalog/nudge-actions/index.md new file mode 100644 index 0000000000..0e8a97c7a9 --- /dev/null +++ b/src/connections/destinations/catalog/nudge-actions/index.md @@ -0,0 +1,5 @@ +--- +title: 'Nudge (Actions) Destination' +hidden: true +id: 6863e71f2a1e1ddc4b4612bf +published: false