From abef4bdd783a2818b545b01ac388170de96edf41 Mon Sep 17 00:00:00 2001 From: Charly Monedero Date: Mon, 20 Oct 2025 10:27:38 +0200 Subject: [PATCH 1/5] chore: fixes segment serialization batch 4.1 --- .../sources/catalog/libraries/server/node/index.md | 2 +- src/connections/spec/common.md | 2 +- src/engage/audiences/linked-audiences-iterable.md | 1 + src/engage/campaigns/email-campaigns.md | 2 +- src/engage/campaigns/sms-campaigns.md | 2 +- src/engage/content/email/template.md | 8 ++++---- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/connections/sources/catalog/libraries/server/node/index.md b/src/connections/sources/catalog/libraries/server/node/index.md index bd9688d434..a1169fff83 100644 --- a/src/connections/sources/catalog/libraries/server/node/index.md +++ b/src/connections/sources/catalog/libraries/server/node/index.md @@ -404,7 +404,7 @@ const onExit = async () => { ``` ### Collect unflushed events -If you need to preserve all of your events in the instance of a forced timeout, even ones that came in after analytics.flush({ close: true }) was called, you can still collect those events by using: +If you need to preserve all of your events in the instance of a forced timeout, even ones that came in after `analytics.flush({ close: true })` was called, you can still collect those events by using: ```javascript const unflushedEvents = [] diff --git a/src/connections/spec/common.md b/src/connections/spec/common.md index e6d78e55b3..94a4012ae9 100644 --- a/src/connections/spec/common.md +++ b/src/connections/spec/common.md @@ -278,7 +278,7 @@ The `sentAt` timestamp specifies the clock time for the client's device when the **Note**: The `sentAt` timestamp is not useful for any analysis since it's tainted by user's clock skew. -> warning "Segment now adds `sentAt` to a payload when the batch is complete and initially tried to the Segment API for the Swift, Kotlin, and C# mobile libraries" +> warning "Segment now adds sentAt to a payload when the batch is complete and initially tried to the Segment API for the Swift, Kotlin, and C# mobile libraries" > This update changes the value of the Segment-calculated `timestamp` to align closer with the `receivedAt` value rather than the `originalTimestamp` value. For most users who are online when events are sent, this does not significantly impact their data. However, if your application utilizes an offline mode where events are queued up for any period of time, the `timestamp` value for those users now more closely reflects when Segment received the events rather than the time they occurred on the users' devices. diff --git a/src/engage/audiences/linked-audiences-iterable.md b/src/engage/audiences/linked-audiences-iterable.md index 8869cdc7de..ff3a4c05e6 100644 --- a/src/engage/audiences/linked-audiences-iterable.md +++ b/src/engage/audiences/linked-audiences-iterable.md @@ -71,6 +71,7 @@ In Iterable, do the following: ![A screenshot of the test event page](/docs/engage/images/send-test-event.png) If the event is sent successfully to Iterable, you will see a `“message”: “success”` response in Segment. + 2. Open Iterable and check the [Campaign tab in Messaging Insights](https://support.iterable.com/hc/en-us/articles/360052814452-Messaging-Insights#viewing-metrics){:target="_blank"} (Insights > Messaging Insights > Campaigns > _[Your Unique Campaign])_ to confirm that Iterable has sent the message. 3. If your email doesn’t look the way you want it to, adjust the [Handlebars syntax](https://support.iterable.com/hc/en-us/articles/205480365-Personalizing-Templates-with-Handlebars#referencing-user-profile-and-event-fields-with-handlebars){:target="_blank"} in Iterable, and send another test event. See the following [personalization examples](#handlebars-examples-to-use-in-iterable){:target="_blank"} for more specific details. 4. When you’re finished testing your campaign, proceed to [Enable your Linked Audience](/docs/engage/audiences/linked-audiences/#step-4-enable-your-linked-audience). diff --git a/src/engage/campaigns/email-campaigns.md b/src/engage/campaigns/email-campaigns.md index 14085eaa5b..87968baca5 100644 --- a/src/engage/campaigns/email-campaigns.md +++ b/src/engage/campaigns/email-campaigns.md @@ -76,7 +76,7 @@ Follow these steps to test your campaign: 1. In the **Send an email** pane, navigate to Body, then click **Test email**. 2. If your template has profile traits, enter a trait value for the test email. This ensures that your merge tags work as expected. -- To test a default value, leave the profile traits field blank. Default values must be assigned in your merge tags. For example, `loyal customer` would be the default for the following merge tag: {% raw %}```{{profile.traits.first_name | default: "loyal customer"}}```{% endraw %}. + - To test a default value, leave the profile traits field blank. Default values must be assigned in your merge tags. For example, `loyal customer` would be the default for the following merge tag: {% raw %}```{{profile.traits.first_name | default: "loyal customer"}}```{% endraw %}. 3. In the **Recipients** field, enter the email address(es) that will receive your test email. 4. Click **Send test email**. diff --git a/src/engage/campaigns/sms-campaigns.md b/src/engage/campaigns/sms-campaigns.md index f7bc22fa1f..305c18e789 100644 --- a/src/engage/campaigns/sms-campaigns.md +++ b/src/engage/campaigns/sms-campaigns.md @@ -60,7 +60,7 @@ Follow these steps to test your campaign: 1. In the **Send an SMS** pane, click **Test SMS**. 2. If your template has profile traits, enter a trait value for the test SMS. This ensures that your merge tags work as expected. -- To test a default value, leave the profile traits field blank. Default values must be assigned in your merge tags. For example, `loyal customer` would be the default for the following merge tag: {% raw %}```{{profile.traits.first_name | default: "loyal customer"}}```{% endraw %}. + - To test a default value, leave the profile traits field blank. Default values must be assigned in your merge tags. For example, `loyal customer` would be the default for the following merge tag: {% raw %}```{{profile.traits.first_name | default: "loyal customer"}}```{% endraw %}. 3. In the **Recipients** field, enter the phone number(s) that will receive your test SMS. 4. Click **Send test SMS**. diff --git a/src/engage/content/email/template.md b/src/engage/content/email/template.md index 7cc49e9d51..ecd8c3b467 100644 --- a/src/engage/content/email/template.md +++ b/src/engage/content/email/template.md @@ -44,10 +44,10 @@ You can send test emails before you include a template in marketing campaigns. 1. Select the email template you want to test on the Templates screen. 2. From the Template Settings page, click **Test email**. 3. If your template has profile traits, enter a trait value for the test email. This ensures that your merge tags work as expected. -- To test a default value, leave the profile traits field blank. Default values must be assigned in your merge tags. For example, `loyal customer` would be the default for the following merge tag: {% raw %}```{{profile.traits.first_name | default: "loyal customer"}}```{% endraw %}. -- To test traits with arrays, you must input the array in JSON format. For example, `[“item1”, “item2”]` or `[{“itemName”: “shoes”}]`. If you don't use JSON format for arrays in the test message side sheet, your template might not render as expected. + - To test a default value, leave the profile traits field blank. Default values must be assigned in your merge tags. For example, `loyal customer` would be the default for the following merge tag: {% raw %}```{{profile.traits.first_name | default: "loyal customer"}}```{% endraw %}. + - To test traits with arrays, you must input the array in JSON format. For example, `[“item1”, “item2”]` or `[{“itemName”: “shoes”}]`. If you don't use JSON format for arrays in the test message side sheet, your template might not render as expected. 4. Enter recipient email addresses for the test message. -- Profiles that you send test messages to must have a userId in Segment. + - Profiles that you send test messages to must have a userId in Segment. 5. Select **Send test email**. {% comment %} @@ -73,7 +73,7 @@ Engage supports dynamic sending using merge tags. Personalize email content by a As you configure the template, click **Merge Tags** and select the profile traits to include. Engage inserts the merge tags based on cursor placement. > success "" -> - For all merge tags, you must add a `default` value inside a single quote. For example: {% raw %}`{{profile.traits.traits | default: 'Default'}}`{% endraw %} +> - For all merge tags, you must add a `default` value inside a single quote. For example: `{{profile.traits.traits | default: 'Default'}}` > - Only use variable tags in [liquid sytax](https://liquidjs.com/tags/overview.html){:target="blank"}. The following table contains a description and some best practices for all fields in the email template. Asterisks indicate required fields. From 22c6a76c9dfee800b1980723281ecd8ba72215fa Mon Sep 17 00:00:00 2001 From: Charly Monedero Date: Mon, 20 Oct 2025 11:01:57 +0200 Subject: [PATCH 2/5] chore: more fixes --- src/connections/sources/index.md | 8 ++++---- src/connections/storage/catalog/postgres/index.md | 2 +- src/connections/storage/index.md | 4 +--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/connections/sources/index.md b/src/connections/sources/index.md index f928f80328..4a89de83f1 100644 --- a/src/connections/sources/index.md +++ b/src/connections/sources/index.md @@ -30,7 +30,7 @@ analytics.identify('user_123', { email: 'jane.kim@example.com', name: 'Jane Kim' }, -}); +); ``` {% endcodeexampletab %} @@ -49,7 +49,7 @@ analytics.identify('user_123', { {% endcomment %} > info "If you don't see the source you're looking for in the catalog" -> If a tool isn't listed as a supported source in Segment's [catalog](https://segment.com/catalog/){:target='_blank’}, it's not possible to incorporate the integration out-of-the-box within a Segment workspace. As an alternative, you can use the [HTTP API](/docs/connections/sources/catalog/libraries/server/http-api/) source to collect data from the tool's API. You can also use [Functions](/docs/connections/functions/) to send or receive data from other tools. +> If a tool isn't listed as a supported source in Segment's [catalog](https://segment.com/catalog/){:target="_blank"}, it's not possible to incorporate the integration out-of-the-box within a Segment workspace. As an alternative, you can use the [HTTP API](/docs/connections/sources/catalog/libraries/server/http-api/) source to collect data from the tool's API. You can also use [Functions](/docs/connections/functions/) to send or receive data from other tools. ## Types of sources @@ -167,7 +167,7 @@ Cloud app sources empower you to pull together data from all of your different t These Cloud App Sources can export data from its third party tool and import it directly into your Segment warehouse. Make sure you have a Segment warehouse enabled before you enable any of the following sources: {: .columns } -{% capture source-type-list %} {% include content/cloud-source-type-list.md type="object" %} {%endcapture%} +{% capture source-type-list %} {% include content/cloud-source-type-list.md type="object" %} {% endcapture %} {{source-type-list | markdownify}} @@ -176,7 +176,7 @@ These Cloud App Sources can export data from its third party tool and import it These Cloud App Sources can not only export data into your Segment warehouse, but they can **also** federate the exported data into your other enabled Segment integrations: {: .columns } -{% capture source-type-list %} {% include content/cloud-source-type-list.md type="event" %} {%endcapture%} +{% capture source-type-list %} {% include content/cloud-source-type-list.md type="event" %} {% endcapture %} {{source-type-list | markdownify}} ### HTTP diff --git a/src/connections/storage/catalog/postgres/index.md b/src/connections/storage/catalog/postgres/index.md index 4fa146059b..9ddc01c2e9 100644 --- a/src/connections/storage/catalog/postgres/index.md +++ b/src/connections/storage/catalog/postgres/index.md @@ -200,7 +200,7 @@ This error can be caused for a few reasons: - Your warehouse went offline. - There's a setting needed for Segment to connect which hasn't been correctly configured. Refer to the [Warehouse documentation](/docs/connections/storage/warehouses/) to ensure all steps outlined there have been followed. -### Schema does not exist +### Schema `` does not exist The syncs are failing due to a permissions issue. It looks like the user connected does not have permission to create schemas in your warehouse. To resolve these errors Segment recommends connecting to your warehouse using the owner account, or granting permissions to the current account you use to connect to Segment. You can correct these permissions by running the following SQL statement - Replace `user` with the account you use to connect to Segment, and run this statement for each schema in the warehouse. diff --git a/src/connections/storage/index.md b/src/connections/storage/index.md index 1f0f6e9202..faca925d44 100644 --- a/src/connections/storage/index.md +++ b/src/connections/storage/index.md @@ -14,9 +14,7 @@ Segment offers several [Data Storage Destinations](/docs/connections/storage/cat - [Google Cloud Storage](/docs/connections/storage/catalog/google-cloud-storage/) (available to all users) - [Segment Data Lakes](/docs/connections/storage/data-lakes/) (available to Business Tier customers only) - - -{% include components/reference-button.html href="https://segment.com/academy/intro/why-you-should-own-your-data/?referrer=docs" icon="media/academy.svg" title="Analytics Academy: Why you should own your data" description="Although the sharing economy is eroding the idea of “ownership,” when it comes to analytics data, we strongly believe that you should own it." %} +{% include components/reference-button.html href="https://segment.com/academy/intro/why-you-should-own-your-data/?referrer=docs" icon="media/academy.svg" title="Analytics Academy: Why you should own your data" description="Although the sharing economy is eroding the idea of ownership, when it comes to analytics data, we strongly believe that you should own it." %}