diff --git a/src/connections/destinations/add-destination.md b/src/connections/destinations/add-destination.md index a28a475d20..33c5eb68e9 100644 --- a/src/connections/destinations/add-destination.md +++ b/src/connections/destinations/add-destination.md @@ -92,7 +92,7 @@ Each destination can also have destination settings. These control how Segment t ## Connecting one source to multiple instances of a destination -> note "" +> success "" > Multiple-destination support is available for all Segment customers on all plan tiers. Segment allows you to connect a source to multiple instances of a destination. You can use this to set up a single Segment source that sends data into different instances of your analytics and other tools. diff --git a/src/connections/destinations/catalog/actions-google-analytics-4-web/index.md b/src/connections/destinations/catalog/actions-google-analytics-4-web/index.md index 23b8248854..117c5e6ed7 100644 --- a/src/connections/destinations/catalog/actions-google-analytics-4-web/index.md +++ b/src/connections/destinations/catalog/actions-google-analytics-4-web/index.md @@ -162,7 +162,7 @@ For event data to be sent downstream to Google Analytics: Google has introduced a feature for collecting [user-provided data](https://support.google.com/analytics/answer/14077171?hl=en&utm_id=ad){:target="_blank"}, which Segment doesn't support. If you’ve enabled this feature in your Google Analytics 4 account, it is irreversible and may cause issues with receiving data. If everything else is set up correctly but data is still not appearing, check if this feature is enabled. If it is, you’ll need to create a new GA4 space to resolve the issue. - > note "If you toggled Page Views in your Settings to “On”, the page_view event automatically sends when the Set Configuration Mapping is triggered" + > info "If you toggled Page Views in your Settings to “On”, the page_view event automatically sends when the Set Configuration Mapping is triggered" > If you need to override this setting for your particular use case, see [Can I override my send_page_view selection that I declared in Settings?](#can-i-override-my-send_page_view-selection-that-i-declared-in-settings) If no events are flowing to your GA4 instance, use one of the Debugging Tools to check the sequence of GA4 events. diff --git a/src/connections/destinations/catalog/actions-hubspot-cloud/index.md b/src/connections/destinations/catalog/actions-hubspot-cloud/index.md index ddc67e808c..8a2bfffc3a 100644 --- a/src/connections/destinations/catalog/actions-hubspot-cloud/index.md +++ b/src/connections/destinations/catalog/actions-hubspot-cloud/index.md @@ -35,9 +35,9 @@ HubSpot Cloud Mode (Actions) provides the following benefits over the classic Hu - **Sandbox support**. Test with a HubSpot sandbox account before implementing in your main production account to feel confident in your configuration. - **Support for custom behavioral events**. Send [custom behavioral events](https://developers.hubspot.com/docs/api/analytics/events){:target="_blank"} and event properties to HubSpot. - **Create records in custom objects**. Use your Segment events to create records in any standard or custom object in your HubSpot account. - -> note "" -> A HubSpot Enterprise Marketing Hub account is required to send Custom Behavioral Events. + + > info "" + > A HubSpot Enterprise Marketing Hub account is required to send Custom Behavioral Events. ## Getting started diff --git a/src/connections/destinations/catalog/actions-hubspot-web/index.md b/src/connections/destinations/catalog/actions-hubspot-web/index.md index eca750f76f..3e9c67239a 100644 --- a/src/connections/destinations/catalog/actions-hubspot-web/index.md +++ b/src/connections/destinations/catalog/actions-hubspot-web/index.md @@ -40,7 +40,4 @@ HubSpot Web (Actions) provides the following benefits over the classic HubSpot d ## FAQ & Troubleshooting ### Why aren't my custom behavioral events appearing in HubSpot? -HubSpot has several limits for custom behavioral events, including a limit on the number of event properties per event. Each event can contain data for up to 50 properties. If this limit is exceeded, HubSpot will truncate to only update 50 properties per event completion. See [HubSpot documentation](https://knowledge.hubspot.com/analytics-tools/create-custom-behavioral-events#define-the-api-call){:target="_blank"} for other limits. - -> note "" -> A HubSpot Enterprise Marketing Hub account is required to send Custom Behavioral Events. \ No newline at end of file +You must have a HubSpot Enterprise Marketing Hub account to send custom behavioral events. If you have a HubSpot Enterprise Marketing Hub account and are still missing events, you might have exceeded the limit on the number of event properties per event. Each event can contain data for up to 50 properties. If this limit is exceeded, HubSpot will truncate to only update 50 properties per event completion. See [HubSpot documentation](https://knowledge.hubspot.com/analytics-tools/create-custom-behavioral-events#define-the-api-call){:target="_blank"} for other limits. \ No newline at end of file diff --git a/src/connections/destinations/catalog/adobe-analytics/best-practices.md b/src/connections/destinations/catalog/adobe-analytics/best-practices.md index 138082951b..4ec309f144 100644 --- a/src/connections/destinations/catalog/adobe-analytics/best-practices.md +++ b/src/connections/destinations/catalog/adobe-analytics/best-practices.md @@ -80,10 +80,7 @@ To pass in a custom LinkName to Adobe Analytics, pass it as a string in the `int } ``` -If you don't specify a custom linkName in the integration specific object in the payload, Segment defaults to mapping `linkName` to the value from `(context.page.url)`. If no URL is present, Segment sets `linkName` to `No linkName provided`. - -> note "" -> **Note**: If you enable the `useLegacyLinkName` setting in the UI, Segment prepends `Link Name -` to the value you specified in the integration-specific object. +If you don't specify a custom linkName in the integration specific object in the payload, Segment defaults to mapping `linkName` to the value from `(context.page.url)`. If no URL is present, Segment sets `linkName` to `No linkName provided`. If you enable the `useLegacyLinkName` setting in the UI, Segment prepends `Link Name -` to the value you specified in the integration-specific object. ### Setting the event LinkURL diff --git a/src/connections/destinations/catalog/adobe-analytics/identity.md b/src/connections/destinations/catalog/adobe-analytics/identity.md index de50eb1142..9be6f2f59d 100644 --- a/src/connections/destinations/catalog/adobe-analytics/identity.md +++ b/src/connections/destinations/catalog/adobe-analytics/identity.md @@ -42,12 +42,9 @@ This may be acceptable if your organization can handle slightly inflated user co Segment recommends that you accept the slightly inflated user count, and use the Segment `userId` as the `visitorId`. Yes, you'll have two user profiles if you have any anonymous client side events, but you can always set up custom `eVars` to connect the few anonymous events to the correct user. -If you're using the Experience Cloud ID, you should accept this and use the Segment `userId`, and include a `marketingCloudVisitorId` in `context["Adobe Analytics"].marketingCloudVisitorId`. Segment sends both the `userId` (or `anonymousId`, if the call is anonymous) in the `` tag and the Experience Cloud ID in the `` tag, and Adobe resolves the users from there. +If you're using the Experience Cloud ID, you should accept this and use the Segment `userId`, and include a `marketingCloudVisitorId` in `context["Adobe Analytics"].marketingCloudVisitorId`. Segment sends both the `userId` (or `anonymousId`, if the call is anonymous) in the `` tag and the Experience Cloud ID in the `` tag, and Adobe resolves the users from there. If you use the destination-specific `integration` object to pass the `visitorId` in your Segment `page` or `track` events, then the `visitorId` persists on Page or Track calls that occur after an Identify call. You can use this to override the Segment setting the `visitorId` variable to your `userId` after an `identify` call. -> note "" -> **Note**: If you use the destination-specific `integration` object to pass the `visitorId` in your Segment `page` or `track` events, then the `visitorId` persists on Page or Track calls that occur after an Identify call. You can use this to override the Segment setting the `visitorId` variable to your `userId` after an `identify` call. - -We know this is daunting territory, so don't hesitate to [contact us directly for guidance](https://segment.com/help/contact/){:target="_blank”}. +If you experience issues with visitor counts when using Cloud Mode, [contact Segment support directly for guidance](https://segment.com/help/contact/){:target="_blank”}. ## No Fallbacks for VisitorId Setting - Cloud Mode Only diff --git a/src/connections/destinations/catalog/adobe-analytics/settings.md b/src/connections/destinations/catalog/adobe-analytics/settings.md index 1edcd1a18e..3d73d65ca8 100644 --- a/src/connections/destinations/catalog/adobe-analytics/settings.md +++ b/src/connections/destinations/catalog/adobe-analytics/settings.md @@ -358,8 +358,10 @@ The Segment Adobe Analytics Merchandising setting runs as follows: If you don't include a value, Segment sends the event without one, and Adobe understands this as an increment of `1`. If you configure a value and the value is not present on the `track` or `page` call, Segment does not send the event to Adobe. - Map of product eVars to set on the products string. This is only supported at the product level, as expected by Adobe Analytics. -> note "" -> **Note**: Some events in the Ecommerce spec do not use the "products" array and product information is located in the top level property object, for example the [Product Added Spec](/docs/connections/spec/ecommerce/v2/#product-added). Make sure you specify `properties.key` as the Segment key in the mapping when adding an eVar for **Product Added**, **Product Removed**, and **Product Viewed**. +> info "Product Added, Product Removed, and Product Viewed events do not use the "products" array" +> Product Added, Product Removed, and Product Viewed events store product information in the top level property object rather than in the "products" array. When adding an eVar to these events, specify `properties.key` as the Segment key in the mapping. +> +> For more information, see the [Product Added Spec](/docs/connections/spec/ecommerce/v2/#product-added). Let's take the following example: @@ -565,10 +567,7 @@ This option allows you to associate specific Adobe events with individual Segmen ### IMS Region -This option allows you to associate events with IMS Regions. - -> note "" -> **Note**: If you specify this you must also define a `Marketing Cloud Visitor Id`. +This option allows you to associate events with IMS Regions. If you specify an IMS region, you must also define a `Marketing Cloud Visitor Id`. ```javascript analytics.track({ diff --git a/src/connections/destinations/catalog/adwords-remarketing-lists/index.md b/src/connections/destinations/catalog/adwords-remarketing-lists/index.md index c50a590b0c..df58d41e28 100644 --- a/src/connections/destinations/catalog/adwords-remarketing-lists/index.md +++ b/src/connections/destinations/catalog/adwords-remarketing-lists/index.md @@ -52,8 +52,8 @@ Create an audience of users that signed up, purchased a product, or otherwise pe You can use Engage to create a detailed profile of your most loyal customers (sometimes called a “seed audience”) and then send this list of customers to Google. In Google, you can then use Google's [Similar Audience](https://support.google.com/google-ads/answer/7151628?hl=en-AU){:target="_blank”} features to find similar users to target. For example, you might want to create a group of high-value users who have spent a certain amount of money on your product, and then use Similar Audiences to find users who might also spend that much. -> note "" -> A “seed audience” must have at least 100 members for Google's Similar Audience feature to function. +> warning "" +> A “seed audience” must have at least 100 members. ### Remarketing audiences diff --git a/src/connections/destinations/catalog/amazon-lambda/index.md b/src/connections/destinations/catalog/amazon-lambda/index.md index 1b325282e9..2e0867bc6c 100644 --- a/src/connections/destinations/catalog/amazon-lambda/index.md +++ b/src/connections/destinations/catalog/amazon-lambda/index.md @@ -108,10 +108,7 @@ Using the examples provided, your Segment Lambda destination settings will look To create an IAM policy: 1. Sign in to the [Identity and Access Management (IAM) console](https://console.aws.amazon.com/iam/){:target="_blank"}. 2. Follow these instructions to [Create an IAM policy](http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html){:target="_blank"} to allow Segment permission to invoke your Lambda function. -3. Select the **Create Policy from JSON** option and use the following template policy in the **Policy Document** field. Be sure to change the `{region}`, `{account-id}` and `{function-names}` with the applicable values. An example of a Lambda ARN is: `arn:aws:lambda:us-west-2:355207333203:function:``my-example-function`. - -> note "" -> **NOTE:** You can put in a placeholder ARN for now, as you will need to come back to this step to update the ARN of your Lambda once you create that. +3. Select the **Create Policy from JSON** option and use the following template policy in the **Policy Document** field. Be sure to change the `{region}`, `{account-id}` and `{function-names}` with the applicable values. An example of a Lambda ARN is: `arn:aws:lambda:us-west-2:355207333203:function:``my-example-function`. You can put in a placeholder ARN for now, as you will need to come back to this step to update the ARN of your Lambda once you create that. ```json { @@ -148,8 +145,8 @@ To create an IAM role: 7. Copy and paste the following code into your trust relationship. You should replace `` with either the Source ID of the attached Segment source (the default) or the External ID set in your AWS Lambda destination settings. * `arn:aws:iam::595280932656:role/customer-lambda-prod-destination-access` refers to Segment's AWS Account, and is what allows Segment's Destination to access the role to invoke your Lambda. -> note "" -> **Note**: Source ID can be found by navigating to **Settings > API Keys** from your Segment source homepage. +> info "" +> You can find your Source ID by navigating to **Settings > API Keys** from your Segment source homepage. ```json { diff --git a/src/connections/destinations/catalog/amazon-personalize/index.md b/src/connections/destinations/catalog/amazon-personalize/index.md index d128f02fbe..0b05df2b07 100644 --- a/src/connections/destinations/catalog/amazon-personalize/index.md +++ b/src/connections/destinations/catalog/amazon-personalize/index.md @@ -642,10 +642,7 @@ Segment will need to be able to call ("invoke") your Lambda in order to process To create an IAM policy: 1. Sign in to the [Identity and Access Management (IAM) console](https://console.aws.amazon.com/iam/){:target="_blank"} and follow these instructions to [Create an IAM policy](http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html){:target="_blank"} to allow Segment permission to invoke your Lambda function. -2. Select **Create Policy from JSON** and use the following template policy in the `Policy Document` field. Be sure to change the `{region}`, `{account-id}` and `{function-names}` with the applicable values. Here's example of a Lambda ARN `arn:aws:lambda:us-west-2:355207333203:function:``my-example-function`. - -> note "" -> **NOTE:** You can put in a placeholder ARN for now, as you will need to come back to this step to update with the ARN of your Lambda once that's been created. +2. Select **Create Policy from JSON** and use the following template policy in the `Policy Document` field. Be sure to change the `{region}`, `{account-id}` and `{function-names}` with the applicable values. Here's an example of a Lambda ARN `arn:aws:lambda:us-west-2:355207333203:function:``my-example-function`. You can put in a placeholder ARN for now, as you will need to come back to this step to update with the ARN of your Lambda once that's been created. ```json { @@ -679,8 +676,8 @@ To create an IAM role: 6. Copy and paste the following into your trust relationship. You should replace `` with either the Source ID of the attached Segment source (the default) or the custom external ID you set in your Amazon Lambda destination settings. -> note "" -> **NOTE:** Your Source ID can be found by navigating to **Settings > API Keys** from your Segment source homepage. +> info "" +> You can find your Source ID by navigating to **Settings > API Keys** from your Segment source homepage. > > For security purposes, Segment will set your Workspace ID as your External ID. If you are currently using an External ID different from your Workspace ID, reach out to Segment support so they can change it and make your account more secure. diff --git a/src/connections/destinations/catalog/amplitude/index.md b/src/connections/destinations/catalog/amplitude/index.md index bba0db7899..4ac02da755 100644 --- a/src/connections/destinations/catalog/amplitude/index.md +++ b/src/connections/destinations/catalog/amplitude/index.md @@ -15,7 +15,7 @@ Segment's Amplitude destination code is open source and available on GitHub. You In addition to Segment's Amplitude documentation, Amplitude provides a [Segment integration guide](https://docs.developers.amplitude.com/data/sources/segment/){:target="_blank"}, as well. -> note "" +> info "Secret key required for GDPR deletions" > To delete users based on GDPR regulations, you must include a secret key in the **Secret Key** setting of every Amplitude destination. You can find your Secret Key on the [General Settings](https://help.amplitude.com/hc/en-us/articles/235649848-Settings#general){:target="_blank"} of your Amplitude project. @@ -447,8 +447,8 @@ By default, Segment does **NOT** send Alias events to Amplitude. To forward Alia Once enabled, Segment forwards Alias events from Segment's servers only. This means that Alias events reach Amplitude only when you're sending events from the client and have set your Amplitude instance's connection mode to "Cloud Mode", or are sending Alias events from a Segment server-side library (such as Node). -> note "" -> To use Alias, you must have the Amplitude Portfolio add-on enabled. +> warning "Alias requires the Amplitude Porfolio add-on" +> To use the Alias method, you must have the [Amplitude Portfolio](https://amplitude.com/docs/admin/account-management/portfolio){:target="_blank"} add-on. For more information, see the [Segment Spec page for the Alias method](/docs/connections/spec/alias/). diff --git a/src/connections/destinations/catalog/braze/index.md b/src/connections/destinations/catalog/braze/index.md index d8cfe84dbe..26e732cf26 100644 --- a/src/connections/destinations/catalog/braze/index.md +++ b/src/connections/destinations/catalog/braze/index.md @@ -203,19 +203,14 @@ analytics.track('Purchased Item', { name: 'bag' }) ``` -When you `track` an event, Segment sends that event to Braze as a custom event. - -> note "" -> Braze requires that you include a `userId` or `braze_id` for all calls made in cloud-mode. Segment sends a `braze_id` if `userId` is missing. When you use a device-mode connection, Braze automatically tracks anonymous activity using the `braze_id` if a `userId` is missing. - -> note "" -> Segment removes the following custom properties reserved by Braze when sending data in Cloud mode: -> -> - `time` -> - `quantity` -> - `event_name` -> - `price` -> - `currency` +When you `track` an event, Segment sends that event to Braze as a custom event. If you're sending Track events in Cloud Mode, Braze requires that you include a `userId` or `braze_id`. Segment sends a `braze_id` if `userId` is missing. When you use a device-mode connection, Braze automatically tracks anonymous activity using the `braze_id` if a `userId` is missing. + +Segment removes the following custom properties reserved by Braze when sending data in Cloud mode: +- `time` +- `quantity` +- `event_name` +- `price` +- `currency` ### Order Completed diff --git a/src/connections/destinations/catalog/clevertap/index.md b/src/connections/destinations/catalog/clevertap/index.md index 40b58a769c..d1421d676e 100644 --- a/src/connections/destinations/catalog/clevertap/index.md +++ b/src/connections/destinations/catalog/clevertap/index.md @@ -46,10 +46,9 @@ When you send an Alias call to CleverTap, CleverTap updates the user's profile w ## Track -When you `track` an event, Segment sends that event to CleverTap as a custom event. Note that CleverTap does not support arrays or nested objects for custom track event properties. +When you `track` an event, Segment sends that event to CleverTap as a custom event. CleverTap requires Identify traits like `userId` or `email` to record and associate the Track event. Without these traits, the Track event does not appear in CleverTap. -> note "" -> CleverTap requires `identify` traits such as `userId` or `email` to record and associate the Track event. Without these traits, the Track event does not appear in CleverTap. +CleverTap does not support arrays or nested objects for custom Track event properties. The default logic for the cloud mode connection to CleverTap will lower case and snake_case any event properties passed from Segment's servers to CleverTap. The device mode connection will not lower case or snake_case any event properties passed directly to CleverTap from the client. diff --git a/src/connections/destinations/catalog/courier/index.md b/src/connections/destinations/catalog/courier/index.md index 8050399910..8d10e5e619 100644 --- a/src/connections/destinations/catalog/courier/index.md +++ b/src/connections/destinations/catalog/courier/index.md @@ -94,8 +94,7 @@ analytics.track('Login Button Clicked', { }) ``` -> note "Note:" -> Courier does not send notifications until you publish a Notification Template and map incoming Segment Track events to that published Notification Template. If you send data to Courier before you complete those steps, incoming events are marked with a status of `Unmapped`. +Courier does not send notifications until you publish a Notification Template and map incoming Segment Track events to that published Notification Template. If you send data to Courier before you complete those steps, incoming events are marked with a status of `Unmapped`. ### Mapping Inbound Events to Notification Templates diff --git a/src/connections/destinations/catalog/crazy-egg/index.md b/src/connections/destinations/catalog/crazy-egg/index.md index 3ead934257..a0ab52d1de 100644 --- a/src/connections/destinations/catalog/crazy-egg/index.md +++ b/src/connections/destinations/catalog/crazy-egg/index.md @@ -19,8 +19,8 @@ Your changes appear in the Segment CDN in about 45 minutes, and then Analytics.j You can navigate to the [Crazy Egg Dashboard](https://app.crazyegg.com/v2/dashboard){:target="_blank"} to track the data. -> note "" -> **Note**: It may take up to 24-48 hours for initial data to show up. +> success "" +> It may take up to 24-48 hours for Segment data to appear in Crazy Egg. diff --git a/src/connections/destinations/catalog/customer-io/index.md b/src/connections/destinations/catalog/customer-io/index.md index 83a9388f70..9ee51e686b 100644 --- a/src/connections/destinations/catalog/customer-io/index.md +++ b/src/connections/destinations/catalog/customer-io/index.md @@ -281,7 +281,7 @@ You can send computed traits and audiences generated using [Engage](/docs/engage For user-property destinations, an [identify](/docs/connections/spec/identify/) call sends to the destination for each user that's added and removed. The property name is the snake_cased version of the audience name, with a true/false value to indicate membership. For example, when a user first completes an order in the last 30 days, Engage sends an Identify call with the property `order_completed_last_30days: true`. When the user no longer satisfies this condition (for example, it's been more than 30 days since their last order), Engage sets that value to `false`. -> note "" +> success "" > Customer.io requires you to pass an identifier value (ID or email, depending on your workspace settings), when you sync Audiences or Computed Traits. When you first create an audience, Engage sends an Identify call for every user in that audience. Later audience syncs only send updates for users whose membership has changed since the last sync. diff --git a/src/connections/destinations/catalog/enjoyhq/index.md b/src/connections/destinations/catalog/enjoyhq/index.md index 9e543a0d67..c13ff454af 100644 --- a/src/connections/destinations/catalog/enjoyhq/index.md +++ b/src/connections/destinations/catalog/enjoyhq/index.md @@ -8,8 +8,8 @@ id: 5fb411aeff3f6d1023f2ae8d This destination is maintained by EnjoyHQ. For any issues with the destination, [contact the EnjoyHQ support team](mailto:support@getenjoyhq.com). -> note "Note:" -> The EnjoyHQ Destination is currently in beta, which means that they are still actively developing the destination. To join their beta program, or if you have any feedback to help improve the EnjoyHQ Destination and its documentation, [contact the EnjoyHQ support team](mailto:support@getenjoyhq.com)! +> info "The EnjoyHQ destination is currently in beta" +> The EnjoyHQ Destination is currently in beta, which means that they are still actively developing the destination. To join their beta program, or if you have any feedback to help improve the EnjoyHQ Destination and its documentation, [contact the EnjoyHQ support team](mailto:support@getenjoyhq.com). ## Getting Started @@ -43,5 +43,5 @@ Segment sends Identify calls to EnjoyHQ as an `identify` event. These events can You can find profiles connected to at least one document in the **People tab** using the global search. You can also find any profile (connected or not) when you [associate a customer with a piece of feedback](https://documentation.getenjoyhq.com/article/v9liiusghf-customer-profiles#assigning_customers_to_documents){:target="_blank”}. -> note "Note:" +> warning "Identify calls require an email field" > The EnjoyHQ destination only accepts Identify calls if they contain a correctly formed email address in the "email" field. Otherwise, the event is ignored and is not forwarded to EnjoyHQ. diff --git a/src/connections/destinations/catalog/firebase/index.md b/src/connections/destinations/catalog/firebase/index.md index c386ea84cc..3c4d7f201b 100644 --- a/src/connections/destinations/catalog/firebase/index.md +++ b/src/connections/destinations/catalog/firebase/index.md @@ -41,8 +41,8 @@ buildscript { apply plugin: 'com.google.gms.google-services' ``` -> note "" -> **Note:** The Firebase SDK requires android resources which are available on `aar` packages. Use the `aar` package when adding the Segment-Firebase SDK. +> warning "Use the `aar` package when adding the Segment-Firebase SDK" +> The Firebase SDK requires Android resources which are available on `aar` packages.
  1. diff --git a/src/connections/destinations/catalog/gainsight-px/index.md b/src/connections/destinations/catalog/gainsight-px/index.md index 685977e9d5..dfa47b194e 100644 --- a/src/connections/destinations/catalog/gainsight-px/index.md +++ b/src/connections/destinations/catalog/gainsight-px/index.md @@ -23,10 +23,10 @@ Our Gainsight PX destination code is open sourced on GitHub, feel free to check Your changes appear in the Segment CDN in about 45 minutes, and then Analytics.js starts asynchronously loading the Gainsight PX snippet on your page, and sending data. -> note "" -> **Note**: If you use this integration, you should remove the Gainsight PX native tag code from your page, since Segment loads it for you. +> success "" +> Remove the Gainsight PX native tag code from your page after setting up your Gainsight destination, as Segment loads Gainsight PX for you. -Don't miss the [Segment Connector](https://support.gainsight.com/Gainsight_NXT/Connectors/Connectors/Sightline_Integrations/Usage_Data_Connectors/Segment_Connector){:target="_blank"} page in Gainsight PX documentation! +Don't miss the [Segment Connector](https://support.gainsight.com/Gainsight_NXT/Connectors/Connectors/Sightline_Integrations/Usage_Data_Connectors/Segment_Connector){:target="_blank"} page in Gainsight PX documentation. ## Identify If you're not familiar with the Segment Specs, take a look to understand what the [Identify method](/docs/connections/spec/identify/) does. diff --git a/src/connections/destinations/catalog/google-ads-gtag/index.md b/src/connections/destinations/catalog/google-ads-gtag/index.md index 56b0ed8dd1..3ce0ef820d 100644 --- a/src/connections/destinations/catalog/google-ads-gtag/index.md +++ b/src/connections/destinations/catalog/google-ads-gtag/index.md @@ -95,8 +95,8 @@ analytics.page({}, { }); ``` -> note "" -> **NOTE:** The `'Google Adwords New'` is case sensitive. Segment prefers you to use `order_id` rather than `transaction_id` to stay more consistent with the [ecommerce spec](/docs/connections/spec/ecommerce/v2). However, Segment will send it as `transaction_id` in the request itself to satisfy Google's specifications. +> info "Formatting integration-specific options" +> The property `'Google Adwords New'` is case sensitive. Segment prefers you use `order_id` rather than `transaction_id` to stay more consistent with the [Ecommerce spec](/docs/connections/spec/ecommerce/v2). However, Segment sends `transaction_id` in the request itself to satisfy Google's specifications. ## Track diff --git a/src/connections/destinations/catalog/gtag/index.md b/src/connections/destinations/catalog/gtag/index.md index 06137030a8..2048ae6193 100644 --- a/src/connections/destinations/catalog/gtag/index.md +++ b/src/connections/destinations/catalog/gtag/index.md @@ -4,7 +4,7 @@ hidden: true strat: google --- -> note "" +> info "" > The Gtag Destination is in a closed Early Access Preview. To join the preview, contact [Segment Support](https://segment.com/help/contact/){:target="_blank"} or your CSM. The use is governed by [(1) Segment First Access](https://segment.com/legal/first-access-beta-preview/){:target="_blank"} and Beta Terms and Conditions and [(2) Segment Acceptable Use Policy](https://segment.com/legal/acceptable-use-policy/){:target='_blank'}. @@ -101,13 +101,13 @@ To configure a custom dimension: ![A screenshot of the Google Custom Dimensions page, with Gender mapped to index 1 and User Type mapped to dimension 2.](images/ga-dimension.png) -> note "" -> **Note:** You can map traits and properties to one Custom Dimension in Google Analytics. +> success "" +> You can map traits and properties to one Custom Dimension in Google Analytics. After you map your dimensions, Segment checks the user traits and properties in [Identify](/docs/connections/spec/identify), [Track](/docs/connections/spec/track) and [Page](/docs/connections/spec/page) calls to see if you defined them as a dimension. If you have defined them in your mapping, Segment sends that dimension to Google Analytics. -> note "" -> **Note:** Segment sends traits in [Identify](/docs/connections/spec/identify) calls that map to Custom Dimensions in Google Analytics when the next [Track](/docs/connections/spec/track) or [Page call](/docs/connections/spec/page) call triggers from the browser. +> success "" +> Segment sends traits in [Identify](/docs/connections/spec/identify) calls that map to Custom Dimensions in Google Analytics when the next [Track](/docs/connections/spec/track) or [Page](/docs/connections/spec/page) call triggers from the browser. Continuing the example above, you can set the **Gender** trait with the value of **Male**, which maps to `dimension 1`. Segment passes this value to Google Analytics with **Viewed History** [Track](/docs/connections/spec/track) calls. @@ -260,8 +260,14 @@ Then you'll instrument your checkout flow with `Viewed Checkout Step` and `Compl }); ``` -> note "" -> ***Note**: `shippingMethod` and `paymentMethod` are semantic properties so if you want to send that information, please do so in this exact spelling! + You can have any number of steps in the checkout funnel as you'd like. The 4 steps above serve as an example. You'll still need to track the `Order Completed` event per the standard [Ecommerce tracking API](/docs/connections/spec/ecommerce/v2/) after you've tracked the checkout steps. @@ -432,8 +438,8 @@ analytics.ready(function(){ }) ``` -> note "" -> **Important**: Keep in mind you will need to do the data translation/properties mapping inside this `.on()` function before you send the event to Google Analytics. See the [destination code](https://github.com/segment-integrations/analytics.js-integration-google-analytics/blob/master/lib/index.js#L161-L207){:target="_blank"} for more information. +> info "" +> The data translation/properties mapping must be set up in the `.on()` function before you send the event to Google Analytics. See the [destination code](https://github.com/segment-integrations/analytics.js-integration-google-analytics/blob/master/lib/index.js#L161-L207){:target="_blank"} for more information. To do this server side, you can create a separate [source](/docs/connections/sources/) in Segment, and within this source enter your Google Analytics credentials for the second tracker. @@ -506,8 +512,8 @@ If you'd like to integrate with Google Analytics' [Optimize plugin](https://supp You may want to deploy Google's [anti-flickering snippet](https://support.google.com/optimize/answer/7100284){:target="_blank"} to prevent the page from flashing / flickering when the A/B test loads, as recommended by Google. You must add this code manually, since it needs to load synchronously. -> note "" -> Include the Optimize container ID in this snippet. +> success "" +> Include the Optimize container ID in the anti-flickering snippet. ## Troubleshooting diff --git a/src/connections/destinations/catalog/inkit/index.md b/src/connections/destinations/catalog/inkit/index.md index bdad4feab3..523eb4deba 100644 --- a/src/connections/destinations/catalog/inkit/index.md +++ b/src/connections/destinations/catalog/inkit/index.md @@ -8,8 +8,7 @@ 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. -> note "" -> Inkit maintains this destination. For any issues with the destination, [email the Inkit support team](mailto:support@inkit.com). +Inkit maintains this destination. For any issues with the destination, [email the Inkit support team](mailto:support@inkit.com). ## Getting Started @@ -51,12 +50,9 @@ For example, you might send a letter in which you need to include the recipient' ## Identify -If you aren't familiar with the Segment Spec, see the [Identify method documentation](/docs/connections/spec/identify/) to learn about what it does. An example call with Inkit would look like: - - -> note " " -> All address elements should be satisfied within the Segment's user identity, with the (exception of address_line_2 which is a custom entry). +If you aren't familiar with the Segment Spec, see the [Identify method documentation](/docs/connections/spec/identify/) to learn about what it does. +An example call with Inkit would look like: Expected Requirements: @@ -108,4 +104,4 @@ All other fields are then added to the user's profile as custom fields within In Segment sends Identify calls to Inkit as an `identify` event. -SELECT COUNT(*) FROM destination_config WHERE destination_id = '54521fd525e721e32a72ee8f' AND enabled = 1 AND id IN (SELECT config_id FROM destination_config_options_2 WHERE option_name = 'canOmitAppsFlyerId' AND value = 'false') +SELECT COUNT(*) FROM destination_config WHERE destination_id = '54521fd525e721e32a72ee8f' AND enabled = 1 AND id IN (SELECT config_id FROM destination_config_options_2 WHERE option_name = 'canOmitAppsFlyerId' AND value = 'false') \ No newline at end of file diff --git a/src/connections/destinations/catalog/launchdarkly-events/index.md b/src/connections/destinations/catalog/launchdarkly-events/index.md index f63775f8b7..e2c1bb067f 100644 --- a/src/connections/destinations/catalog/launchdarkly-events/index.md +++ b/src/connections/destinations/catalog/launchdarkly-events/index.md @@ -52,8 +52,8 @@ LaunchDarkly ingests that call as: } ``` -> note "" -> **Note**: The LaunchDarkly Metric must be actively recording and have a Feature Flag attached for Segment events to appear in your LaunchDarkly Project. +> warning "" +> The LaunchDarkly Metric must be actively recording and have a Feature Flag attached for Segment events to appear in your LaunchDarkly Project. Segment sends Track calls to LaunchDarkly as a `track` event. It appears on your [Debugger page](https://app.launchdarkly.com/default/production/debugger/goals){:target="_blank"}. diff --git a/src/connections/destinations/catalog/moengage/index.md b/src/connections/destinations/catalog/moengage/index.md index f67549c4ae..a999d033f4 100644 --- a/src/connections/destinations/catalog/moengage/index.md +++ b/src/connections/destinations/catalog/moengage/index.md @@ -487,8 +487,8 @@ For HTTPS Web Push to work, you need to host two files in the `root` directory o * `manifest.json` * `serviceworker.js` -> note "" -> **Note**: Please make sure the name of the serviceworker file is `serviceworker.js`. Please contact MoEngage support at support@moengage.com if you wish to have some other name for the serviceworker file. +> info "Serviceworker file naming convention" +> The name of the serviceworker file must be `serviceworker.js`. Please contact MoEngage support at support@moengage.com if you want to give your serviceworker file a different name. #### 2.b Add link to manifest in HTML (HTTPS) Add the following line in the tag of your page. @@ -534,8 +534,8 @@ If your website supports the ability for a user to logout and login with a new i ### Test Mode and Debugging While updating the MoEngage settings on the Segment Dashboard, you can enable the logging functionality of the MoEngage SDK to see the SDK logs on the browser console. Just set `Enable Debug Logging` to `On` and the SDK loads in debug mode. -> note "" -> **Note**: When you enable debug mode, the events and attributes of the users send to the `TEST` environment of your MoEngage App. +> success "" +> When you enable debug mode, Segment sends the events and user attributes to the `TEST` environment of your MoEngage App. ## MoEngage Web SDK Features For information about optional features, see the documentation below: diff --git a/src/connections/destinations/catalog/optimizely-full-stack/index.md b/src/connections/destinations/catalog/optimizely-full-stack/index.md index d1d7c2a8df..83ce88bc18 100644 --- a/src/connections/destinations/catalog/optimizely-full-stack/index.md +++ b/src/connections/destinations/catalog/optimizely-full-stack/index.md @@ -36,8 +36,8 @@ This requires that customers include a native Optimizely implementation before t 3. Create a native Optimizely instance in your server environment so you can access Optimizely decisioning methods like `activate`, `isFeatureEnabled`. 4. Finally, define any [`events`](https://docs.developers.optimizely.com/full-stack/docs/create-events){:target="_blank"} and [`attributes`](https://docs.developers.optimizely.com/full-stack/docs/define-attributes){:target="_blank"} in your Optimizely dashboard, and to associate `metrics` with the appropriate Optimizely Experiments. Segment maps `track` event names to Optimizely `eventName` - the `eventName` corresponds to an experiment `metric`. In addition, Segment maps `track` event `context.traits` to Optimizely `attributes`. -> note "" -> **Note:** If you are using Optimizely SDKs v1.x or v2.x: if a visitor has any `activate` or `isFeatureEnabled` calls, their `attributes` object for these calls must match the `attributes` object passed to any `track` calls for that user id so that it can be correctly attributed on the Optimizely results page. +> warning "Optimizely SDKs v1.x or v2.x require matching `attributes` objects for correct attribution" +> If you use Optimizely SDKs v1.x or v2.x and use any `activate` or `isFeatureEnabled` calls, the `attributes` object for each user must match the `attributes` object passed to any `track` calls for that user id so that it can be correctly attributed on the Optimizely results page. If you are using Optimizely SDKs v3+, [Easy Event Tracking](https://blog.optimizely.com/2019/02/26/introducing-easy-event-tracking-the-easier-way-to-understand-and-optimize-the-customer-journey/){:target="_blank"} is enabled by default for decision events. Set up does not require maintaining the attributes of a user as long as the user id stays the same between Optimizely `activate` and `isFeatureEnabled` calls and Segment `track` calls to have Optimizely `metrics` populated in the Optimizely results page. If you would like to segment your Optimizely results by user `attribute`, then make sure the `attributes` passed in for the `activate` and `isFeatureEnabled` calls match the `attributes` passed in for the `track` calls for that user id. @@ -59,8 +59,8 @@ Segment also handles the following mapping: `revenue` values should be passed as a Segment `property`. The value should be an integer and represent the value in cents, so, for example, $1 should be represented by `100`. -> note "" -> **Note**: [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"} in Optimizely, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page, however they are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). +> info "Custom Event Tags are not displayed on the Optimizely results page" +> Optimizely's [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"}, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page. However, these tags are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). Segment defaults to identifying users with their `anonymousId`. Enabling the "Use User ID" setting in your Segment settings means that only `track` events triggered by identified users are passed downstream to Optimizely. You may optionally fall back to `anonymousId` when `userId` is unavailable by setting `fallbackToAnonymousId` to `true`. @@ -78,8 +78,8 @@ Segment's server-side integration with Optimizely Full Stack does not support no When implementing Optimizely Full Stack using cloud-mode, Segment will map `track` events to Optimizely `track` events on our servers and deliver the data to your Optimizely project as usual. -> note "" -> **Note:** If you are using Optimizely SDKs v1.x or v2.x: if a visitor has any `activate` or `isFeatureEnabled` calls, the `attributes` object for these calls must match the `attributes` object passed to any `track` calls for that user id so that it can be correctly attributed on the Optimizely results page. +> warning "Optimizely SDKs v1.x or v2.x require matching `attributes` objects for correct attribution" +> If you use Optimizely SDKs v1.x or v2.x and use any `activate` or `isFeatureEnabled` calls, the `attributes` object for each user must match the `attributes` object passed to any `track` calls for that user id so that it can be correctly attributed on the Optimizely results page. If you are using Optimizely SDKs v3+, [Easy Event Tracking](https://blog.optimizely.com/2019/02/26/introducing-easy-event-tracking-the-easier-way-to-understand-and-optimize-the-customer-journey/){:target="_blank"} is enabled by default for decision events. Set up does not require maintaining the attributes of a user as long as the user id stays the same between Optimizely `activate` and `isFeatureEnabled` calls and Segment `track` calls to have Optimizely `metrics` populated in the Optimizely results page. If you would like to segment your Optimizely results by user `attribute`, then make sure the `attributes` passed in for the `activate` and `isFeatureEnabled` calls match the `attributes` passed in for the `track` calls for that user id. @@ -98,8 +98,8 @@ Segment also handles the following mapping: `revenue` values should be passed as a Segment `property`. The value should be an integer and represent the value in cents, so, for example, $1 should be represented by `100`. -> note "" -> **Note:** [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"} in Optimizely, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page, however they are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). +> info "Custom Event Tags are not displayed on the Optimizely results page" +> Optimizely's [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"}, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page. However, these tags are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). Segment defaults to identifying users with their `anonymousId`. Enabling "Use User ID" setting in your Segment dashboard means that only `track` events triggered by identified users are passed downstream to Optimizely. You may optionally fall back to `anonymousId` when `userId` is unavailable by setting `fallbackToAnonymousId` to `true`. @@ -126,8 +126,8 @@ If you want to use Optimizely's [notification listeners](https://docs.developers When implementing Optimizely using cloud-mode, Segment will map `track` events to Optimizely `track` events on our servers and deliver the data to your Optimizely project as usual. -> note "" -> **Note:** If you are using Optimizely SDKs v1.x or v2.x: if a visitor has any `activate` or `isFeatureEnabled` calls, their `attributes` object for these calls must match the `attributes` object passed to any `track` calls for that user id so that it can be correctly attributed on the Optimizely results page. +> warning "Optimizely SDKs v1.x or v2.x require matching `attributes` objects for correct attribution" +> If you use Optimizely SDKs v1.x or v2.x and use any `activate` or `isFeatureEnabled` calls, the `attributes` object for each user must match the `attributes` object passed to any Track calls for that user id so that it can be correctly attributed on the Optimizely results page. If you are using Optimizely SDKs v3+, [Easy Event Tracking](https://blog.optimizely.com/2019/02/26/introducing-easy-event-tracking-the-easier-way-to-understand-and-optimize-the-customer-journey/){:target="_blank"} is enabled by default for decision events. Set up does not require maintaining the attributes of a user as long as the user id stays the same between Optimizely `activate` and `isFeatureEnabled` calls and Segment `track` calls to have Optimizely `metrics` populated in the Optimizely results page. If you would like to segment your Optimizely results by user `attribute`, then make sure the `attributes` passed in for the `activate` and `isFeatureEnabled` calls match the `attributes` passed in for the `track` calls for that user id. @@ -146,8 +146,8 @@ Segment also handles the following mapping: `revenue` values should be passed as a Segment `property`. The value should be an integer and represent the value in cents, so, for example, $1 should be represented by `100`. -> note "" -> **Note:** [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"} in Optimizely, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page, however they are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). +> info "Custom Event Tags are not displayed on the Optimizely results page" +> Optimizely's [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"}, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page. However, these tags are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). Segment defaults to identifying users with their `anonymousId`. Enabling "Use User ID" setting in your Segment dashboard means that only `track` events triggered by identified users are passed downstream to Optimizely. You may optionally fall back to `anonymousId` when `userId` is unavailable by setting `fallbackToAnonymousId` to `true`. diff --git a/src/connections/destinations/catalog/optimizely-web/index.md b/src/connections/destinations/catalog/optimizely-web/index.md index be975ab0f2..db6ffc7eef 100644 --- a/src/connections/destinations/catalog/optimizely-web/index.md +++ b/src/connections/destinations/catalog/optimizely-web/index.md @@ -59,8 +59,8 @@ Segment also handles the following mapping: `revenue` values should be passed as a Segment `property`. The value should be an integer and represent the value in cents, so, for example, $1 should be represented by `100`. -> note "" -> **Note:** [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"} in Optimizely, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page, however, they are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. +> info "Custom Event Tags are not displayed on the Optimizely results page" +> Optimizely's [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"}, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page. However, these tags are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). ### Page @@ -71,8 +71,8 @@ Segment maps `page` calls to its own `track` events. For example, invoking `anal Upon activation of an Optimizely experiment, an “Experiment Viewed” Track event is sent to Segment. The event includes Optimizely experiment metadata which is sent whenever the Optimizely [`campaignDecided` listener](https://docs.developers.optimizely.com/web/docs/add-listener#section-campaign-decided){:target="_blank"} is activated. -> note "" -> **Note:** When an Optimizely Web experiment is activated, Optimizely automatically sends an "Experiment Viewed" `track` event to Segment. This makes the Optimizely Web integration act as both a Destination and a Source, because the `track` calls enrich and send Experiment Decisions and Exposure event data to Segment, which can be used by other platforms. +> info "Activating a Web experiment sends 'Experiment Viewed' Track events to Segment" +> When you activate an Optimizely Web experiment, Optimizely automatically sends an "Experiment Viewed" Track event to Segment. This makes the Optimizely Web integration act as both a Destination and a Source, because the Track calls enrich and send Experiment Decisions and Exposure event data to Segment, which you can then send to other platforms. #### Standard or Redirect Experiments @@ -149,8 +149,8 @@ If you're sending your experiment data to Google Analytics in the form of `track 5. Now, paste your Segment snippet below the Optimizely implementation on every page where you'd like to include Segment's JavaScript. Or, if you've implemented Optimizely in a separate file, ensure Segment loads only after Optimizely has been initialized. 6. Finally, define any [`events`](https://docs.developers.optimizely.com/full-stack/docs/create-events){:target="_blank"} and [`attributes`](https://docs.developers.optimizely.com/full-stack/docs/define-attributes){:target="_blank"} in your Optimizely dashboard, and to associate `metrics` with the appropriate Optimizely Experiments. Segment maps `track` event names to Optimizely `eventName` - the `eventName` corresponds to an experiment `metric`. -> note "" -> **Note:** If you are using Optimizely SDKs v1.x or v2.x: if a visitor has any `activate` or `isFeatureEnabled` calls, their `attributes` object for these calls must match the `attributes` object passed to any `track` calls for that user id so that it can be correctly attributed on the Optimizely results page. +> warning "Optimizely SDKs v1.x or v2.x require matching `attributes` objects for correct attribution" +> If you use Optimizely SDKs v1.x or v2.x and use any `activate` or `isFeatureEnabled` calls, the `attributes` object for each user must match the `attributes` object passed to any Track calls for that user id so that it can be correctly attributed on the Optimizely results page. If you are using Optimizely SDKs v3+ or the React SDK, [Easy Event Tracking](https://blog.optimizely.com/2019/02/26/introducing-easy-event-tracking-the-easier-way-to-understand-and-optimize-the-customer-journey/){:target="_blank"} is enabled by default for decision events. Set up does not require maintaining the attributes of a user as long as the user id stays the same between Optimizely `activate` and `isFeatureEnabled` calls and Segment `track` calls to have Optimizely `metrics` populated in the Optimizely results page. If you would like to segment your Optimizely results by user `attribute`, then make sure the `attributes` passed in for the `activate` and `isFeatureEnabled` calls match the `attributes` passed in for the `track` calls for that user id. diff --git a/src/connections/destinations/catalog/pardot/index.md b/src/connections/destinations/catalog/pardot/index.md index 9ca9969c71..d65ae94332 100644 --- a/src/connections/destinations/catalog/pardot/index.md +++ b/src/connections/destinations/catalog/pardot/index.md @@ -67,7 +67,7 @@ You can provide custom fields, but they won't be updated or visible until you cr ### Version 4 -> note "" +> info "" > The Segment integration with v4 of the Pardot API is currently in beta, and is only available in cloud-mode. If you are using version 4, the functionaly is the same as version 3 except you will need to provide some kind of identifier to Segment that we can use to correctly handle either the creation of a new prospect *or* the update of an existing one. There are two options for this. diff --git a/src/connections/destinations/catalog/profitwell/index.md b/src/connections/destinations/catalog/profitwell/index.md index 057a9d80c6..75c4e5e4ae 100644 --- a/src/connections/destinations/catalog/profitwell/index.md +++ b/src/connections/destinations/catalog/profitwell/index.md @@ -27,9 +27,9 @@ analytics.identify('userId123', { }); ``` -Identify calls will start the ProfitWell service using the customer's email to track them. If no email is provided it will start the service anonymously. +Identify calls will start the ProfitWell service using the customer's email to track them. If no email is provided, it will start the service anonymously. -[Customers](https://www2.profitwell.com/app/customers){:target="_blank"} need to be created first within ProfitWell in order for the indentify calls to trigger their engagements. +[Customers](https://www2.profitwell.com/app/customers){:target="_blank"} need to be created first within ProfitWell in order for the Identify calls to trigger their engagements. -> note "" -> **Note**: The data doesn't sync into the ProfitWell UI in real time. It can take up to 24 hours to reflect. +> success "" +> Segment doesn't sync data into ProfitWell in real time. User data can take up to 24 hours to appear in ProfitWell. diff --git a/src/connections/destinations/catalog/recombee-ai/index.md b/src/connections/destinations/catalog/recombee-ai/index.md index e2a0959c3c..14ce02b490 100644 --- a/src/connections/destinations/catalog/recombee-ai/index.md +++ b/src/connections/destinations/catalog/recombee-ai/index.md @@ -12,6 +12,13 @@ versions: --- [Recombee](https://recombee.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is a Recommender as a Service that can use your data to provide the most accurate recommendations of content or products for your users. +Use this Segment destination to send your interaction data (views, purchases, plays, and so on) to Recombee. + +This destination is maintained by Recombee. For any issues with the destination, [contact the Recombee Support team](mailto:support@recombee.com). + +> info "" +> The Recombee Destination is currently in beta, which means that the Recombee team is still actively developing the destination. If you have any feedback to help improve the Recombee Destination and its documentation, [contact the Recombee support team](mailto:support@recombee.com). +>>>>>>> Stashed changes Use this Segment destination to send your interaction data, like views, purchases, or plays, to Recombee. diff --git a/src/connections/destinations/catalog/regal/index.md b/src/connections/destinations/catalog/regal/index.md index 2d1d360ea6..1461ce4f48 100644 --- a/src/connections/destinations/catalog/regal/index.md +++ b/src/connections/destinations/catalog/regal/index.md @@ -10,11 +10,8 @@ redirect_from: '/connections/destinations/catalog/regal-voice' Regal.io maintains this destination. For any issues with the destination, contact their [Regal.io support team](mailto:support@regal.io). -> note "" -> Regal.io is available in the U.S only. - -> note "" -> The Regal.io Destination is in beta, which means that they are still actively developing the destination. To join the beta program, or if you have any feedback to help improve the Regal.io Destination and its documentation, [contact the Regal.io support team](mailto:support@regal.io). +> info "The Regal.io Destination is in beta" +> The Regal.io team is still actively developing this destination. Regal.io is available in the U.S only. To join the beta program, or if you have any feedback to help improve the Regal.io Destination and its documentation, [contact the Regal.io support team](mailto:support@regal.io). diff --git a/src/connections/destinations/catalog/sailthru-v2/index.md b/src/connections/destinations/catalog/sailthru-v2/index.md index b95e57d18f..06cd3bf8f4 100644 --- a/src/connections/destinations/catalog/sailthru-v2/index.md +++ b/src/connections/destinations/catalog/sailthru-v2/index.md @@ -71,18 +71,18 @@ analytics.identify("assigned-userId", { ); ``` -> note "" -> **NOTE:** Sailthru searches for the email address in the `identify` call under `context.traits` if it isn't provided at the top-level. +> success "" +> Sailthru searches for the email address in the Identify call's `context.traits` field if it isn't provided at the top-level. ### Track Send [Track](/docs/connections/spec/track) calls to: -* record purchases via “Order Completed” events -* record abandoned carts via “Product Added” and “Product Removed” events -* subscribe users via “Subscribed” events -* trigger Lifecycle Optimizer journeys with all other events -* delete users via “User Deleted” events +* Record purchases using “Order Completed” events +* Record abandoned carts using “Product Added” and “Product Removed” events +* Track subscription information with “Subscribed” events +* Trigger Lifecycle Optimizer journeys with all other events +* Delete users through “User Deleted” events Sailthru automatically creates and maps custom fields from Segment. diff --git a/src/connections/destinations/catalog/salesforce-marketing-cloud/index.md b/src/connections/destinations/catalog/salesforce-marketing-cloud/index.md index 542adc7e84..86687ba425 100644 --- a/src/connections/destinations/catalog/salesforce-marketing-cloud/index.md +++ b/src/connections/destinations/catalog/salesforce-marketing-cloud/index.md @@ -85,13 +85,10 @@ If possible, you should enable batching for your SFMC destination before you sen ## Set up to send Identify calls to SFMC -To use the Journey Builder to send campaigns to your users, you need to have data about those users in SFMC. The most common way to send data to SFMC is to send Segment [Identify](/docs/connections/spec/identify/) calls to an SFMC Data Extension which you specify. When you call `identify`, Segment creates a Salesforce Marketing Cloud Contact, and upserts (updates) the user's `traits` in the Data Extension. +To use the Journey Builder to send campaigns to your users, you need to have data about those users in SFMC. The most common way to send data to SFMC is to send Segment [Identify](/docs/connections/spec/identify/) calls to an SFMC Data Extension which you specify. When you call `identify`, Segment creates a Salesforce Marketing Cloud Contact, and upserts (updates) the user's `traits` in the Data Extension. During this set up process, you will create one Data Extension for Identify calls ("the Identify Data Extension"), and one for each unique Track call ("the Track Data Extensions"). -> note "" -> **Note**: By default, `identify` events create or update contacts in SFMC. To prevent Identify calls from creating or updating a Contact when they update a Data Extension, enable the "Do Not Create or Update Contacts" option in the Destination Settings. - -> info "" -> During this set up process, you will create one Data Extension for Identify calls ("the Identify Data Extension"), and one for each unique Track call ("the Track Data Extensions"). +> info "Identify events create or update contacts in SFMC by default" +> To prevent Identify calls from creating or updating a Contact when they update a Data Extension, enable the "Do Not Create or Update Contacts" option in the Destination Settings. ### Create a Data Extension in SFMC to store Identify calls You must create a Data Extension in SFMC to store the Identify calls coming from Segment. For each trait you want to send to SFMC, you must manually create an attribute on the Data Extension in SFMC. When you create a Data Extension in SFMC, you can set up as many (or as few) attributes as you need. diff --git a/src/connections/destinations/catalog/talonone/index.md b/src/connections/destinations/catalog/talonone/index.md index 50fae53a79..1b6f0cf1e8 100644 --- a/src/connections/destinations/catalog/talonone/index.md +++ b/src/connections/destinations/catalog/talonone/index.md @@ -39,8 +39,9 @@ analytics.identify('userId123', { Identify calls are sent to Talon.One as an identify event. The `userId` has a 1-1 mapping to Talon.One's `integrationId`. The `traits` in Segment are mapped with Talon.One's Customer's `custom attributes`. -> note "Note:" -> This app only supports logged in users. +> info "" +> Talon.One only supports logged in users. + ## Custom Attributes @@ -74,13 +75,13 @@ becomes `address_city`. ## Audience & Computed Traits -`Computed traits` and `audiences` data can be communicated to the Talon.One destination as a customer's `custom attribute`. . +`Computed traits` and `audiences` data can be communicated to the Talon.One destination as a customer's `custom attribute`. An **identify** call is sent to the destination for each user being added and removed from an Audience. The trait name is the snake_cased version of the audience name you provide, with a boolean (`true`/`false`) value. For example, when a user first completes an order which falls in a time window of the last 30 days, an identify call is sent to Talon.One with the trait `order_completed_last_30days: true`. When this user no longer satisfies this condition, the value is updated to `false` and automatically transmitted to Talon.One. -> note "Note:" -> Similar to `traits/custom traits`, `audiences` and `computed traits` need to be added as `custom attributes` on the Talon.One Campaign Manager. Although unlike `traits/custom traits`, they do not have to be added to the `custom attributes` of this destination application. +> info "You must add audiences and computed traits as Custom Attributes in Talon.One's Campaign Manager" +> Like `traits/custom traits`, `audiences` and `computed traits` need to be added as `custom attributes` on the Talon.One Campaign Manager. You do not have to add these traits to the `custom attributes` setting in Segment. When the audience is first created, an identify call is sent for every user in the audience. Subsequent syncs only send updates for those users which were added or removed since the last sync. diff --git a/src/connections/destinations/catalog/twitter-ads/index.md b/src/connections/destinations/catalog/twitter-ads/index.md index 5ad1d1ec47..80ff56c526 100644 --- a/src/connections/destinations/catalog/twitter-ads/index.md +++ b/src/connections/destinations/catalog/twitter-ads/index.md @@ -156,10 +156,7 @@ The following table show how the properties of Segment events would map to Twitt - While `properties.status` is not spec'd by Segment, you can still send that property through and we will map it to Twitter's `status` parameter, which is an optional free text field representing the state of the conversion event (eg. 'completed', 'in review', 'processed', etc.) - `value`, `currency`, `order_id` and `num_items` will not be mapped for any pre-purchase tags because it will attribute revenue, which is undesired behavior for ecommerce/retail businesses. -The following code snippets represent the code we would fire under the hood on your webpage given an example Segment event. - -> note "" -> The following assumes that the setting for* **Product Identifier** *is `product ID` (it can also be SKU). +The following code snippets represent the code Twitter would fire under the hood on your webpage given an example Segment event, and assumes that the setting for* **Product Identifier** *is `product ID` (it can also be SKU): **Order Completed** -> **Purchase** diff --git a/src/connections/destinations/catalog/wootric-by-inmoment/index.md b/src/connections/destinations/catalog/wootric-by-inmoment/index.md index 7395dba9c2..83bead337b 100644 --- a/src/connections/destinations/catalog/wootric-by-inmoment/index.md +++ b/src/connections/destinations/catalog/wootric-by-inmoment/index.md @@ -57,8 +57,9 @@ When you call Identify, the user's information is passed to InMoment to check el ## Track When you call Track, the user's information is passed along with the event name to InMoment to check eligibility during survey responses. -> note "" -> **Note**: this only works if you enable Targeted Sampling in your InMoment account. The event name must be exactly the same as the one used in the Track call. + +> warning "Named Track calls require you to enable Targeted Sampling in your InMoment Account" +> After enabling the Targeted Sampling feature in your InMoment account, you must ensure your InMoment event names are exactly the same as the one used in the Track call. ## Page diff --git a/src/connections/destinations/catalog/zendesk/index.md b/src/connections/destinations/catalog/zendesk/index.md index a58197186c..ab8ff17b96 100644 --- a/src/connections/destinations/catalog/zendesk/index.md +++ b/src/connections/destinations/catalog/zendesk/index.md @@ -97,8 +97,8 @@ Here's an example: } ``` -> note "" -> **Note**: When a request is made, Zendesk schedules a job to unassign all working tickets currently assigned to the user and organization combination. The `organization_id` of the unassigned tickets is set to `null`. +> info "" +> **Note**: When a request is made to remove a user from an organization, Zendesk schedules a job to unassign all working tickets currently assigned to the user and organization combination. The `organization_id` of the unassigned tickets is set to `null`. ### Zendesk Verification Email at User Creation diff --git a/src/connections/destinations/index.md b/src/connections/destinations/index.md index 37bc1759b7..04c8485b98 100644 --- a/src/connections/destinations/index.md +++ b/src/connections/destinations/index.md @@ -132,7 +132,8 @@ To add a Destination: 8. Configure the settings and enable your destination on the destination settings page. [Learn more](/docs/connections/destinations/add-destination/) about what adding a destination entails. -> note "Disabled destinations do not receive data" + +> warning "Disabled destinations do not receive data" > If you haven't enabled your destination for the first time after you created it or if you actively disable a destination, Segment prevents any data from reaching the destination. Business Tier customers can request [a Replay](/docs/guides/what-is-replay/), which resends data from the time the destination was disabled to the time it was re-enabled. Replays can also send data to currently disabled destinations. > > Some destinations are not compatible with Replays after a certain period of time, for example, 14 days. Check with Segment’s support team [friends@segment.com](mailto:friends@segment.com) to confirm that your intended destination allows historical timestamps. diff --git a/src/connections/functions/destination-functions.md b/src/connections/functions/destination-functions.md index 0efa9fc2fa..ae56dfd98f 100644 --- a/src/connections/functions/destination-functions.md +++ b/src/connections/functions/destination-functions.md @@ -16,8 +16,8 @@ All functions are scoped to your workspace, so members of other workspaces can't ![An illustrative graphic showing information flowing from the Segment app, into code, and then into Slack](images/destination_functions_overview.png) -> note "" -> Destination functions doesn't accept data from [Object Cloud sources](/docs/connections/sources/#object-cloud-sources). Destination functions don't support [IP Allowlisting](/docs/connections/destinations/#ip-allowlisting). +> warning "" +> Destination functions don't accept data from [Object Cloud sources](/docs/connections/sources/#object-cloud-sources) or support [IP Allowlisting](/docs/connections/destinations/#ip-allowlisting). ## Create a destination function diff --git a/src/connections/functions/environment.md b/src/connections/functions/environment.md index 4501b28cbb..c64591c48a 100644 --- a/src/connections/functions/environment.md +++ b/src/connections/functions/environment.md @@ -7,7 +7,7 @@ Segment Functions create reusable code that can be run in your Segment workspace When you create a function, write code for it, and save it, the function appears in the Catalog in your workspace _only_. You can then deploy that function in your workspace just as you would a conventional source or destination. -> note "" +> info "" > Access to Functions is controlled by specific [access management roles](#functions-permissions). You may need additional access to create and deploy functions. @@ -50,7 +50,7 @@ Once the payload you want to test is ready, click **Run**. ## Deploying source functions -> note "" +> info "" > You must be a **Workspace Owner** or **Source Admin** to connect an instance of your function in your workspace. 1. From the [Functions tab](https://app.segment.com/goto-my-workspace/functions/catalog){:target="_blank"}, locate the source function you want to deploy. diff --git a/src/connections/functions/source-functions.md b/src/connections/functions/source-functions.md index d9513df49d..43ca32fc88 100644 --- a/src/connections/functions/source-functions.md +++ b/src/connections/functions/source-functions.md @@ -390,7 +390,7 @@ If you are a **Workspace Owner** or **Functions Admin**, you can manage your sou ### Connecting source functions -> note "" +> info "" > You must be a **Workspace Owner** or **Source Admin** to connect an instance of your function in your workspace. From the [Functions tab](https://app.segment.com/goto-my-workspace/functions/catalog){:target="_blank"}, click **Connect Source** and follow the prompts to set it up in your workspace. diff --git a/src/connections/functions/usage.md b/src/connections/functions/usage.md index 28b5e22c7b..3d3b2f98a9 100644 --- a/src/connections/functions/usage.md +++ b/src/connections/functions/usage.md @@ -31,8 +31,8 @@ Another way to provide a rough estimate is to use an expected source function ti - A source function receiving 1M requests and taking an average of 100 milliseconds will use 27.8 hours of execution time: `1,000,000 events * 100ms = 100,000,000ms = 28 hours` - A destination function receiving 1B requests and taking an average of 200 milliseconds will use 55,556 hours: `1,000,000,000 * 200ms = 200,000,000,000ms = 55,556 hours` -> note "" -> **Note:** Test runs are generally slower than the time it takes a function to run once it's deployed. For more accurate estimates, base your estimates on sending data into a production function, and not on timing the test runs. +> info "Test runs are generally slower than the time it takes a function to run once it's deployed" +> For more accurate estimates, base your estimates on sending data into a production function, and not on timing the test runs. You can (and should!) use [Destination Filters](/docs/connections/destinations/destination-filters/) to reduce the volume of events reaching your function. Filtering events with a Destination Filter prevents the Function from being invoked for that event entirely. diff --git a/src/connections/sources/about-cloud-sources.md b/src/connections/sources/about-cloud-sources.md index fbc375c085..0406fa47fc 100644 --- a/src/connections/sources/about-cloud-sources.md +++ b/src/connections/sources/about-cloud-sources.md @@ -17,8 +17,8 @@ Event Cloud Sources can export their data both into Segment warehouses, and into Object Cloud App Sources can export data and import it directly into a Segment warehouse. You *must* have a Segment warehouse enabled before you enable these. From the warehouse, you can analyze your data with SQL, use [Reverse ETL](/docs/connections/reverse-etl) to extract data, or use Engage SQL Traits to build audiences. Some examples of Object Cloud sources are Salesforce (account information), Zendesk (support cases), and Stripe (payments information). -> note "" -> In the app, data from website, mobile, and server sources can go to a warehouse **or** to destinations. Object Cloud-App Source data can **only** go to Warehouses. +> info "" +> You can send data from website, mobile, and server sources to a warehouse **or** to destinations. You can only send object cloud app source data to warehouses. ## How do cloud sources work? @@ -86,7 +86,7 @@ Sometimes, when the sync job fails due to an unhandled error or is mysteriously In general, we've focused on pulling all of the collections directly related to the customer experience. We do not automatically pull all collections available from a partner API, since many of them aren't relevant to the customer journey. You can see a list of the collections we pull in the docs [for each cloud source](/docs/connections/sources/catalog/#cloud-apps). Each collection reflects a table in your database. -[Contact Segment Product Support](https://segment.com/help/contact) if you need additional data collected, or to change the schema to do the analysis you want. We'd love to know what analysis you're trying to run, what additional data you need, and we'll share with the product team to evaluate. +[Contact Segment Product Support](https://segment.com/help/contact){:target="_blank”}  if you need additional data collected, or to change the schema to do the analysis you want. We'd love to know what analysis you're trying to run, what additional data you need, and we'll share with the product team to evaluate. ### What questions can you answer with data from cloud, web, and mobile sources combined in a single warehouse? @@ -103,8 +103,8 @@ Generally, you need intermediate- to advanced SQL experience to explore and anal -**Joining IDs** As you start to get into joining across different types of sources, you'll need a way to join user IDs. This [help article](/docs/guides/how-to-guides/join-user-profiles/) explains how to do this in detail. +**Joining IDs**:  As you start to get into joining across different types of sources, you'll need a way to join user IDs. This [help article](/docs/guides/how-to-guides/join-user-profiles/) explains how to do this in detail. -**Partner Dashboards** Our BI partners at Mode, Looker, BIME, Periscope, and Chartio have created out of the box dashboards that work on top of our source schemas. +**Partner Dashboards**: Segment's BI partners at Mode, Looker, BIME, Periscope, and Chartio have created out of the box dashboards that work on top of our source schemas. diff --git a/src/connections/sources/catalog/cloud-apps/google-ads/index.md b/src/connections/sources/catalog/cloud-apps/google-ads/index.md index 13ac2a9e65..d8210b2b6a 100644 --- a/src/connections/sources/catalog/cloud-apps/google-ads/index.md +++ b/src/connections/sources/catalog/cloud-apps/google-ads/index.md @@ -141,7 +141,7 @@ Currency values in Google Ads are in micros, or one millionth of the smallest un ### Ads -> note "Returning removed ads" +> info "Returning removed ads" > As of April 2022, the Google Ads source uses the Google Ads API, which returns ads with a status of `REMOVED`. Prior to April 2022, `REMOVED` ads were not returned by the default AdWords API. diff --git a/src/connections/sources/catalog/cloud-apps/looker/index.md b/src/connections/sources/catalog/cloud-apps/looker/index.md index da8d338909..503630706f 100644 --- a/src/connections/sources/catalog/cloud-apps/looker/index.md +++ b/src/connections/sources/catalog/cloud-apps/looker/index.md @@ -15,14 +15,14 @@ From Segment's end, you will need to create a Looker source, and copy your write ### Defining Looks -Using this Source, Looker sends Look (query) results into Segment as `identify` calls. Any user trait that you include as a column in your Look will be included as a user trait on these identify call. +Using this Source, Looker sends Look (query) results into Segment as Identify calls. Any user trait that you include as a column in your Look will be included as a user trait on these Identify calls. -> note "" -> **NOTE:** Segment doesn't support arrays. Segment supports properties that are strings or numbers. +> warning "" +> Segment supports properties that are strings or numbers. Segment doesn't support arrays. -When you set up your Look and generate new user traits (column names), avoid using trait names that may already exist in your marketing tools. If you create a new user trait in Looker (e.g. "churn risk") and that trait already exists in your tools, syncing the user profile to the downstream tool overrides the existing trait value with the new one. +When you set up your Look and generate new user traits (column names), avoid using trait names that may already exist in your marketing tools. If you create a new user trait in Looker (for example, "churn risk") and that trait already exists in your tools, syncing the user profile to the downstream tool overrides the existing trait value with the new one. -Below is an example of a cohort of users in Looker who have been active on toastmates.com (example website) at least once in the last 30 days. +Below is an example of a cohort of users in Looker who have been active on toastmates.com (example website) at least once in the last 30 days. ![looker-screenshot](images/9c12ebdd99f19383111aceabc0ab5de9.png) diff --git a/src/connections/sources/catalog/cloud-apps/sendgrid/index.md b/src/connections/sources/catalog/cloud-apps/sendgrid/index.md index 8bfe7d91df..532df940eb 100644 --- a/src/connections/sources/catalog/cloud-apps/sendgrid/index.md +++ b/src/connections/sources/catalog/cloud-apps/sendgrid/index.md @@ -54,8 +54,8 @@ The source syncs and warehouse syncs are independent processes. Source runs pull The SendGrid source's streaming component listens in real time for inbound webhooks from SendGrid's Event Notifications. The source batches these events for upload on your next warehouse flush. **These events only append to your warehouse.** -> note "" -> **NOTE:** If you don't use SendGrid's marketing features, this will be the only data that Segment receives from SendGrid. There isn't a way to retrieve email event history from SendGrid, so you will only have access to data that Segment collected after you successfully enable this component of the source destination. +> info "" +> If you don't use SendGrid's marketing features, this will be the only data that Segment receives from SendGrid. There isn't a way to retrieve email event history from SendGrid, so you will only have access to data that Segment collected after you successfully enabled this integration. ## Collections diff --git a/src/connections/sources/catalog/cloud-apps/zendesk/index.md b/src/connections/sources/catalog/cloud-apps/zendesk/index.md index 5d55d57de4..337485e51b 100644 --- a/src/connections/sources/catalog/cloud-apps/zendesk/index.md +++ b/src/connections/sources/catalog/cloud-apps/zendesk/index.md @@ -69,7 +69,7 @@ Collections are the groupings of resources Segment pulls from your source. In your warehouse, each collection gets its own table. Find below a list of the properties Segment automatically fetches for each collection. -> note "Standard properties" +> info "This list only includes standard properties" > The list in this document includes the standard properties only, but doesn't include _your_ custom fields. (Don't worry, they'll be there in your warehouse.) ### groups diff --git a/src/connections/sources/catalog/libraries/mobile/android/index.md b/src/connections/sources/catalog/libraries/mobile/android/index.md index 80bff29ade..818392abc1 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/index.md +++ b/src/connections/sources/catalog/libraries/mobile/android/index.md @@ -216,8 +216,8 @@ The Segment API calls include: ### Identify -> note "" -> **Good to know**: For any of the different methods described in this doc, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this doc, you can replace the properties and traits in the code samples with variables that represent the data collected. Identify calls let you tie a user to their actions, and record traits about them. It includes a unique User ID and any optional traits you know about them. diff --git a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md index 0632742fa9..f26b9eccbc 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md +++ b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md @@ -77,10 +77,10 @@ Ensure that the necessary permissions are declared in your application's `Androi ## Step 5. Identify Users -> note "" -> **Good to know**: For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. -The `identify` method is one of our core API methods. It's how you tie one of your users and their actions to a recognizable userId. It also lets you record traits about the user, like their email, name, account type, etc. You can read more about it in the [identify reference](/docs/connections/sources/catalog/libraries/mobile/android#identify). +The Identify call is one of Segment's core API methods. It's how you tie one of your users and their actions to a recognizable `userId`. It also lets you record traits about the user, like their email, name, and account type. You can read more about it in the [Identify reference](/docs/connections/sources/catalog/libraries/mobile/android#identify). When and where you call `identify` depends on how your users are authenticated, but doing it in the `onCreate` method of your [Application](http://developer.android.com/reference/android/app/Application.html) class would be most common, as long as you know who your user is. If your user is still anonymous, you should skip this part and we'll attribute the subsequent events to an `anonymousId` instead. diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/optimizely-full-stack-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/optimizely-full-stack-swift.md index c460876e2b..b7bb6086c3 100644 --- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/optimizely-full-stack-swift.md +++ b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/optimizely-full-stack-swift.md @@ -76,8 +76,8 @@ Segment also handles the following mapping: `revenue` values should be passed as a Segment `property`. The value should be an integer and represent the value in cents, so, for example, $1 should be represented by `100`. -> note "" -> **Note:** [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank”} in Optimizely, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page, however they are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank”} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). +> info "Custom Event Tags are not displayed on the Optimizely results page" +> Optimizely's [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"}, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page. However, these tags are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). Segment defaults to identifying users with their `anonymousId`. Enabling "Use User ID" setting in your Segment dashboard means that only `track` events triggered by identified users are passed downstream to Optimizely. You may optionally fall back to `anonymousId` when `userId` is unavailable by setting `fallbackToAnonymousId` to `true`. diff --git a/src/connections/sources/catalog/libraries/mobile/ios/index.md b/src/connections/sources/catalog/libraries/mobile/ios/index.md index 594934ad2f..2d224e2cb4 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/index.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/index.md @@ -10,12 +10,12 @@ With Analytics-iOS, you can send your data to analytics or marketing tool, witho

    -> note "" -> **Note:** Segment does not currently support tracking of watchkit extensions for the Apple Watch. [Email us](https://segment.com/requests/integrations/) if you're interested in a Watchkit SDK. For now we recommend tracking watch interactions using the iPhone app code. +> info "Watchkit extensions currently unsupported" +> Segment does not currently support tracking of watchkit extensions for the Apple Watch. [Email Segment](https://segment.com/requests/integrations/){:target="_blank”}. if you're interested in a Watchkit SDK. For now Segment recommends tracking watch interactions using the iPhone app code. > info "Analytics-Swift" -> The [Analytics-Swift](/docs/connections/sources/catalog/libraries/mobile/swift/) library is in General Availability. If you'd like to migrate to Analytics-Swift, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/swift/migration/). Segment's future development efforts concentrate on the new Analytics-Kotlin SDK, and will only ship security updates for the Analytics-Android SDK. +> The [Analytics-Swift](/docs/connections/sources/catalog/libraries/mobile/swift/){:target="_blank”}. library is in General Availability. If you'd like to migrate to Analytics-Swift, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/swift/migration/){:target="_blank”}.. Segment's future development efforts concentrate on the new Analytics-Kotlin SDK, and will only ship security updates for the Analytics-Android SDK. ## Analytics-iOS and Unique Identifiers @@ -23,7 +23,7 @@ One of the most important parts of any analytics platform is the ability to cons Naturally the Analytics SDK needs a unique ID for each user. To protect end-users' privacy, Apple places restrictions on how these IDs can be generated and used. This section explains Apple's policies, and how Segment generates IDs in compliance with these policies. -Before iOS 5 developers had access to `uniqueIdentifier`, which was a hardware-specific serial number that was consistent across different apps, vendors and installs. Starting with iOS 5, however, [Apple deprecated access to this identifier](https://developer.apple.com/news/?id=3212013a). In iOS 6 Apple introduced the `identifierForVendor` which protects end-users from cross-app identification. In iOS 7 Apple [restricted access to the device's MAC address](http://techcrunch.com/2013/06/14/ios-7-eliminates-mac-address-as-tracking-option-signaling-final-push-towards-apples-own-ad-identifier-technology/), which many developers used as a workaround to get a similar device-specific serial number to replace `uniqueIdentifier`. +Before iOS 5 developers had access to `uniqueIdentifier`, which was a hardware-specific serial number that was consistent across different apps, vendors and installs. Starting with iOS 5, however, [Apple deprecated access to this identifier](https://developer.apple.com/news/?id=3212013a){:target="_blank”}.. In iOS 6 Apple introduced the `identifierForVendor` which protects end-users from cross-app identification. In iOS 7 Apple [restricted access to the device's MAC address](http://techcrunch.com/2013/06/14/ios-7-eliminates-mac-address-as-tracking-option-signaling-final-push-towards-apples-own-ad-identifier-technology/){:target="_blank”}., which many developers used as a workaround to get a similar device-specific serial number to replace `uniqueIdentifier`. Segment's iOS library supports iOS 7+ by generating a UUID and storing it on disk. This complies with Apple's required privacy policies, maintains compatibility, and also enables correct tracking in situations where multiple people use the same device, since the UUID can be regenerated. @@ -86,8 +86,8 @@ configuration.recordScreenViews = YES; // Enable this to record screen views aut {% endcodeexampletab %} {% endcodeexample %} -> note "" -> **Note:** Automatically tracking lifecycle events (`Application Opened`, `Application Installed`, `Application Updated`) and screen views is optional using initialization config parameters, but highly recommended to hit the ground running with core events! See [below](/docs/connections/sources/catalog/libraries/mobile/ios/quickstart/#step-4-track-actions) for more info! +> info "Lifecycle event tracking optional, but recommended" +> Automatically tracking lifecycle events (`Application Opened`, `Application Installed`, `Application Updated`) and screen views is optional using initialization config parameters, but highly recommended to hit the ground running with core events. See [below](/docs/connections/sources/catalog/libraries/mobile/ios/quickstart/#step-4-track-actions) for more info. And of course, import the SDK in the files that you use it with: {% codeexample %} @@ -222,12 +222,12 @@ configuration.trackDeepLinks = YES; {% endcodeexampletab %} {% endcodeexample %} -> note "" -> **Note:** You still need to call the `continueUserActivity` and `openURL` methods on the analytics client. +> info "" +> Even with `trackDeepLinks` set to `YES`, you still must call the `continueUserActivity` and `openURL` methods on the analytics client. ### Flushing -You can set the number of events that should queue before flushing. Setting this to `1` will send events as they come in (i.e. not send batched events) and will use more battery. `20` by default. +You can set the number of events that should queue before flushing. Setting this to `1` will send events as they come in (for example, not send batched events) and will use more battery. `20` by default. {% codeexample %} {% codeexampletab Swift %} @@ -268,8 +268,8 @@ Analytics.shared().flush() Now that the Segment SDK and any accompanying packaged SDKs are installed, you're ready to collect some data! -> note "" -> **Good to know**: For any of the methods described in this doc, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the methods described in this doc, you can replace the properties and traits in the code samples with variables that represent the data collected. ### Identify @@ -278,8 +278,8 @@ Segment's Identify method lets you tie a user to their actions and record traits Segment recommends that you call Identify once when you first create the user's account, and only call it again later when they update their traits or you change them. -> note "" -> **Note:** Segment automatically assigns an `anonymousId` to users before you identify them. The `userId` is what connects anonymous activities across devices (for example, iPhone and iPad). +> success "" +> Segment automatically assigns an `anonymousId` to users before you identify them. The `userId` is what connects anonymous activities across devices (for example, iPhone and iPad). Example `identify` call: @@ -672,8 +672,8 @@ Analytics.shared().track("Product Rated", properties: nil, options: ["integratio Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example "AdLearn Open Platform", "awe.sm", "MailChimp", etc.). -> note "" -> **Note:** Business level customers can filter track calls from the Segment App from the source schema page. Segment recommends that you use this method when possible, because simpler, and can be updated without any code changes in your app. +> success "" +> Business Tier customers can filter Track calls from the Segment App from the source schema page. Segment recommends that you use this method when possible, because it is simpler and can be updated without making any code changes in your app. ### Disabled destinations in the debugger @@ -835,8 +835,8 @@ configuration.enableAdvertisingTracking = YES; The same value for IDFA will used across all (device and cloud-mode) integrations. -> note "" -> **Note:** analytics-ios can continue to collect events without the IDFA until user is prompted and only upon user consent the `advertisingId` field is added to the event payload +> success "" +> Analytics-iOS can continue to collect events without the IDFA until a user is prompted and only upon user consent the `advertisingId` field is added to the event payload. Ad-tracking affects two keys under the `context` object of every event: diff --git a/src/connections/sources/catalog/libraries/mobile/ios/ios14-guide.md b/src/connections/sources/catalog/libraries/mobile/ios/ios14-guide.md index 17fc6fa15d..78ce64d22a 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/ios14-guide.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/ios14-guide.md @@ -4,10 +4,7 @@ strat: ios --- > warning "" -> **Note:** You should update your `analytics-ios` and device-mode destinations to adapt to iOS 14 changes explained in this guide. - -> note "" -> For information about iOS 14.5, see [What's new in iOS 14.5](#whats-new-with-ios-145) below. +> You should update your `analytics-ios` and device-mode destinations to adapt to iOS 14 changes explained in this guide. For information about iOS 14.5, see [What's new in iOS 14.5](#whats-new-with-ios-145) below. In June 2020, Apple made several privacy-related announcements at WWDC20 about its upcoming iOS 14 release, including [changes to the collection and use of Identifier for Advertising (IDFA)](https://developer.apple.com/app-store/user-privacy-and-data-use/). These changes require developers to ask for user consent *before* collecting IDFA to track users across multiple applications. diff --git a/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md b/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md index f976bd00e1..6ff95a8a3f 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md @@ -8,8 +8,8 @@ This tutorial gets you started sending data from your iOS app to Segment. When y If you want to dive deeper at any point, check out the [iOS Library Reference](/docs/connections/sources/catalog/libraries/mobile/ios/). -> note "" -> **Note:** Segment does not support tracking watchkit extensions for the Apple watch. [Contact us](https://segment.com/help/contact) if you're interested in a watchkit SDK. For now we recommend tracking watch interactions using the native iPhone app code. +> info "Watchkit extensions currently unsupported" +> Segment does not currently support tracking of watchkit extensions for the Apple Watch. [Email Segment](https://segment.com/requests/integrations/){:target="_blank”}. if you're interested in a Watchkit SDK. For now, Segment recommends tracking watch interactions using the iPhone app code. ## Step 1: Create a Source in the Segment app @@ -98,8 +98,8 @@ Now that the SDK is installed and set up, you're ready to start making calls. ## Step 3: Identify Users -> note "" -> **Good to know**: For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. The `identify` method informs Segment who the current user is. It takes a unique User ID, and any optional traits you know about them. You can read more about it in the [identify reference](/docs/connections/sources/catalog/libraries/mobile/ios#identify). @@ -194,8 +194,8 @@ Once you've added a few `track` calls, **you're set up!** You successfully instr By default, Segment sends (“flushes”) events from the iOS library in batches of `20`, however this is configurable. You can set the `flushAt` value to change the batch size, or you can set it to `1` to disable batching completely. -> note "" -> **Note**: When you disable batching, Segment sends events as they occur. This increases battery use. +> warning "" +> If you disable batching, Segment sends events as they occur. This increases battery use. {% codeexample %} {% codeexampletab Swift %} diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/braze-kotlin-android.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/braze-kotlin-android.md index c0f32ec09b..ba971afc04 100644 --- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/braze-kotlin-android.md +++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/braze-kotlin-android.md @@ -98,7 +98,7 @@ analytics.track("View Product", buildJsonObject { ``` When you `track` an event, Segment sends that event to Braze as a custom event. -> note "" +> success "" > Braze requires that you include a `userId` or `braze_id` for all calls made in cloud-mode. Segment sends a `braze_id` if `userId` is missing. When you use a device-mode connection, Braze automatically tracks anonymous activity using the `braze_id` if a `userId` is missing. ### Order Completed diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/optimizely-full-stack-android-kotlin.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/optimizely-full-stack-android-kotlin.md index d7c47a56f3..25c066e214 100644 --- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/optimizely-full-stack-android-kotlin.md +++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins/optimizely-full-stack-android-kotlin.md @@ -67,8 +67,8 @@ Segment also handles the following mapping: `revenue` values should be passed as a Segment `property`. The value should be an integer and represent the value in cents, so, for example, $1 should be represented by `100`. -> note "" -> **Note:** [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags) in Optimizely, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page, however they are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export) report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). +> info "Custom Event Tags are not displayed on the Optimizely results page" +> Optimizely's [Custom Event Tags](https://docs.developers.optimizely.com/full-stack/docs/include-event-tags){:target="_blank"}, which include all Event Tags except `revenue` and `value`, are not displayed on the Optimizely results page. However, these tags are available in a [Data Export](https://docs.developers.optimizely.com/web/docs/data-export){:target="_blank"} report. Event Tags can be strings, integers, floating point numbers, or boolean values. Optimizely rejects events with any other data types (for example, arrays). Segment defaults to identifying users with their `anonymousId`. Enabling "Use User ID" setting in your Segment dashboard means that only `track` events triggered by identified users are passed downstream to Optimizely. You may optionally fall back to `anonymousId` when `userId` is unavailable by setting `fallbackToAnonymousId` to `true`. diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/classic.md b/src/connections/sources/catalog/libraries/mobile/react-native/classic.md index 83a37127ec..9163de9620 100644 --- a/src/connections/sources/catalog/libraries/mobile/react-native/classic.md +++ b/src/connections/sources/catalog/libraries/mobile/react-native/classic.md @@ -196,8 +196,8 @@ Segment recommends that you make an Identify call when the user first creates an Analytics-React-Native works on its own background thread, so it never blocks the main thread for the UI or a calling thread. -> note "" -> **Note**: Segment automatically assigns an `anonymousId` to users before you identify them. The `userId` is what connects anonymous activities across devices. +> success "" +> Segment automatically assigns an `anonymousId` to users before you identify them. The `userId` is what connects anonymous activities across devices. The example Identify call below identifies a user by their unique User ID (the one you know them by in your database), and labels them with a `name` and `email` traits. diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/braze-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/braze-react-native.md index 73f54d7549..2870b31d72 100644 --- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/braze-react-native.md +++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/braze-react-native.md @@ -150,19 +150,13 @@ track('View Product', { }); ``` -When you `track` an event, Segment sends that event to Braze as a custom event. - -> note "" -> Braze requires that you include a `userId` or `braze_id` for all calls made in cloud mode. Segment sends a `braze_id` if `userId` is missing. When you use a device-mode connection, Braze automatically tracks anonymous activity using the `braze_id` if a `userId` is missing. - -> note "" -> Segment removes the following custom properties reserved by Braze: -> -> - `time` -> - `quantity` -> - `event_name` -> - `price` -> - `currency` +When you `track` an event, Segment sends that event to Braze as a custom event. If you're sending Track events in Cloud Mode, Braze requires that you include a `userId` or `braze_id`. Segment sends a `braze_id` if `userId` is missing. When you use a device-mode connection, Braze automatically tracks anonymous activity using the `braze_id` if a `userId` is missing. +Segment removes the following custom properties reserved by Braze when sending data in Cloud mode: +- `time` +- `quantity` +- `event_name` +- `price` +- `currency` ### Order Completed diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/clevertap-react-native.md b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/clevertap-react-native.md index 2d0f5f78e6..a3bfdb7be3 100644 --- a/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/clevertap-react-native.md +++ b/src/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/clevertap-react-native.md @@ -69,8 +69,8 @@ All other traits will be sent to CleverTap as custom attributes. The default log When you `track` an event, Segment sends that event to CleverTap as a custom event. Note that CleverTap does not support arrays or nested objects for custom track event properties. -> note "" -> CleverTap requires `identify` traits such as `userId` or `email` to record and associate the Track event. Without these traits, the Track event does not appear in CleverTap. +> warning "" +> CleverTap requires `identify` traits like `userId` or `email` to record and associate the Track event. Without these traits, the Track event does not appear in CleverTap. The device mode connection will not lower case or snake_case any event properties passed directly to CleverTap from the client. diff --git a/src/connections/sources/catalog/libraries/server/go/index.md b/src/connections/sources/catalog/libraries/server/go/index.md index e6fe6f457a..9a05cea02e 100644 --- a/src/connections/sources/catalog/libraries/server/go/index.md +++ b/src/connections/sources/catalog/libraries/server/go/index.md @@ -54,8 +54,8 @@ client, err := analytics.NewWithConfig(writeKey, analytics.Config{ ``` ## Identify -> note "" -> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. Identify lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them. diff --git a/src/connections/sources/catalog/libraries/server/go/quickstart.md b/src/connections/sources/catalog/libraries/server/go/quickstart.md index cf322d5ccb..40e21b7821 100644 --- a/src/connections/sources/catalog/libraries/server/go/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/go/quickstart.md @@ -48,8 +48,8 @@ That will create a `client` that you can use to send data to Segment for your so ## Step 3: Identify Users -> note "" -> **Good to know**: For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. The `identify` method is how you tell Segment who the current user is. It includes a unique User ID and any optional traits you know about them. You can read more about it in the [identify reference](/docs/connections/sources/catalog/libraries/server/go#identify). diff --git a/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md b/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md index 2980e88e51..5b0c54db1d 100644 --- a/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/go/v2/quickstart.md @@ -45,8 +45,8 @@ That will create a `client` that you can use to send data to Segment for your so ## Step 3: Identify Users -> note "" -> **Good to know**: For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. The `identify` method is how you tell Segment who the current user is. It includes a unique User ID and any optional traits you know about them. You can read more about it in the [identify reference](/docs/connections/sources/catalog/libraries/server/go#identify). diff --git a/src/connections/sources/catalog/libraries/server/java/quickstart.md b/src/connections/sources/catalog/libraries/server/java/quickstart.md index 97666556f2..0b23329169 100644 --- a/src/connections/sources/catalog/libraries/server/java/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/java/quickstart.md @@ -63,8 +63,8 @@ The following examples use [Guava's](https://github.com/google/guava) immutable ## Step 4: Identify Users -> note "" -> **Good to know**: For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. The `identify` message is how you tell Segment who the current user is. It includes a unique User ID and any optional traits you know about them. You can read more about it in the [identify reference](/docs/connections/sources/catalog/libraries/server/java#identify). diff --git a/src/connections/sources/catalog/libraries/server/net/index.md b/src/connections/sources/catalog/libraries/server/net/index.md index 2e166c0889..bead3e9e5a 100644 --- a/src/connections/sources/catalog/libraries/server/net/index.md +++ b/src/connections/sources/catalog/libraries/server/net/index.md @@ -89,8 +89,8 @@ The default initialization settings are production-ready and queue messages on a ## Identify -> note "" -> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. If you're not familiar with the Segment Specs, take a look to understand what the [Identify](/docs/connections/spec/identify/) method does. diff --git a/src/connections/sources/catalog/libraries/server/net/quickstart.md b/src/connections/sources/catalog/libraries/server/net/quickstart.md index 6a22e85a26..b90cc059c2 100644 --- a/src/connections/sources/catalog/libraries/server/net/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/net/quickstart.md @@ -83,8 +83,8 @@ Our example ASP.NET site has a login and a register page. You'll want to identif To identify newly registered users, we'll use the `identify` and `track` call in the [Register.aspx.cs](https://github.com/segmentio/asp.net-example/blob/master/Account/Register.aspx.cs#L18-L24) controller. -> note "" -> **Good to know**: For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. ```csharp Analytics.Client.Identify(user.Id, new Segment.Model.Traits diff --git a/src/connections/sources/catalog/libraries/server/node/classic.md b/src/connections/sources/catalog/libraries/server/node/classic.md index c00ca3d4e0..0c95f32c61 100644 --- a/src/connections/sources/catalog/libraries/server/node/classic.md +++ b/src/connections/sources/catalog/libraries/server/node/classic.md @@ -49,8 +49,8 @@ var analytics = new Analytics('YOUR_WRITE_KEY', { ## Identify -> note "" -> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. `identify` lets you tie a user to their actions and record traits about them. It includes a unique User ID and/or anonymous ID, and any optional traits you know about them. diff --git a/src/connections/sources/catalog/libraries/server/php/index.md b/src/connections/sources/catalog/libraries/server/php/index.md index 81a8741646..6baa10f62a 100644 --- a/src/connections/sources/catalog/libraries/server/php/index.md +++ b/src/connections/sources/catalog/libraries/server/php/index.md @@ -49,8 +49,8 @@ The default PHP consumer is the [lib-curl consumer](#lib-curl-consumer). If this ## Identify -> note "" -> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. Identify calls let you tie a user to their actions, and record traits about them. It includes a unique User ID and any optional traits you know about them. diff --git a/src/connections/sources/catalog/libraries/server/php/quickstart.md b/src/connections/sources/catalog/libraries/server/php/quickstart.md index ee880b6d23..b0192feed5 100644 --- a/src/connections/sources/catalog/libraries/server/php/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/php/quickstart.md @@ -51,15 +51,13 @@ Replace `YOUR_WRITE_KEY` with the actual **Write Key**, which you can find in Se You only need to call `init` once when your php file is requested. All of your files then have access to the same `Analytics` client. -> note "" -> **Note**: The default PHP consumer is the [libcurl consumer](/docs/connections/sources/catalog/libraries/server/php/#lib-curl-consumer). If this is not working well for you, or if you have a high-volume project, you might try one of Segment's other consumers like the [fork-curl consumer](/docs/connections/sources/catalog/libraries/server/php/#fork-curl-consumer). - -All set? Nice, the library's fully installed! We're now primed and ready to start recording our first analytics calls about our users. +> info "PHP consumers" +> The default PHP consumer is the [libcurl consumer](/docs/connections/sources/catalog/libraries/server/php/#lib-curl-consumer). If this is not working well for you, or if you have a high-volume project, you might try one of Segment's other consumers like the [fork-curl consumer](/docs/connections/sources/catalog/libraries/server/php/#fork-curl-consumer). ## Step 3: Identify Users -> note "" -> **Good to know**: For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. The [Identify method](/docs/connections/spec/identify) is how you tell Segment who the current user is. It includes a unique User ID and any optional traits that you might know about them. diff --git a/src/connections/sources/catalog/libraries/server/pixel-tracking-api/index.md b/src/connections/sources/catalog/libraries/server/pixel-tracking-api/index.md index bc366fc073..198a166ca9 100644 --- a/src/connections/sources/catalog/libraries/server/pixel-tracking-api/index.md +++ b/src/connections/sources/catalog/libraries/server/pixel-tracking-api/index.md @@ -12,7 +12,7 @@ Follow Segment's [HTTP Tracking API](/docs/connections/sources/catalog/libraries https://api.segment.io/v1/pixel/?data= ``` -> note "" +> info "base64 encoding optional" > The base64 encoding is optional, however it prevents special character interpretation or muxing by browsers, or other tools that might interpret URLs. For example, the URL `https://www.example.com/` might be altered to `http%3A%2F%2Fwww.example.com` when appended to another URL, but the base64 version, `aHR0cHM6Ly93d3cuZXhhbXBsZS5jb20`, remains unchanged. #### Pixel Routes diff --git a/src/connections/sources/catalog/libraries/server/python/index.md b/src/connections/sources/catalog/libraries/server/python/index.md index 8e7b9590af..172475732f 100644 --- a/src/connections/sources/catalog/libraries/server/python/index.md +++ b/src/connections/sources/catalog/libraries/server/python/index.md @@ -61,8 +61,8 @@ analytics.send = False ## Identify -> note "" -> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. The Identify method lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about them. diff --git a/src/connections/sources/catalog/libraries/server/python/quickstart.md b/src/connections/sources/catalog/libraries/server/python/quickstart.md index 66ef7f2a28..87b2a45367 100644 --- a/src/connections/sources/catalog/libraries/server/python/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/python/quickstart.md @@ -47,8 +47,8 @@ Once you've got that, you're ready to... ## Step 3: Identify Users -> note "" -> **Good to know**: For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. The `identify` method is how you tell Segment who the current user is. It includes a unique User ID and any optional traits you know about them. You can read more about it in the [identify reference](/docs/connections/sources/catalog/libraries/server/python#identify). diff --git a/src/connections/sources/catalog/libraries/server/ruby/index.md b/src/connections/sources/catalog/libraries/server/ruby/index.md index 8e442fa0b2..d625c20dca 100644 --- a/src/connections/sources/catalog/libraries/server/ruby/index.md +++ b/src/connections/sources/catalog/libraries/server/ruby/index.md @@ -50,8 +50,8 @@ If you're using Rails, you can stick that initialization logic in `config/initia ## Identify -> note "" -> **Good to know**: For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. The Identify method is how you associate your users and their actions to a recognizable `userId` and `traits`. You can [find details on the identify method payload in the Spec](/docs/connections/spec/identify/). diff --git a/src/connections/sources/catalog/libraries/server/ruby/quickstart.md b/src/connections/sources/catalog/libraries/server/ruby/quickstart.md index 801720f7a2..857de7f583 100644 --- a/src/connections/sources/catalog/libraries/server/ruby/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/ruby/quickstart.md @@ -56,8 +56,8 @@ Once you've installed the gem, you're ready to... ## Step 3: Identify Users -> note "" -> **Good to know**: For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. +> success "" +> For any of the different methods described in this quickstart, you can replace the properties and traits in the code samples with variables that represent the data collected. The `identify` method is how you tell Segment who the current user is. It includes a unique User ID and any optional traits you know about them. You can read more about it in the [identify reference](/docs/connections/sources/catalog/libraries/server/ruby#identify). diff --git a/src/connections/sources/catalog/libraries/website/javascript/identity.md b/src/connections/sources/catalog/libraries/website/javascript/identity.md index 8f1caef6ec..6c475819ee 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/identity.md +++ b/src/connections/sources/catalog/libraries/website/javascript/identity.md @@ -132,14 +132,14 @@ analytics.track('Email Clicked', { Traits are individual pieces of information that you know about a user or a group, and which can change over time. -The `options` dictionary contains a sub-dictionary called `context` which automatically captures data depending on the event- and source-type. See the [Context documentation](https://segment.com/docs/connections/spec/common/#context) to learn more. +The `options` dictionary contains a sub-dictionary called `context` which automatically captures data depending on the event- and source-type. See the [Context documentation](/docs/connections/spec/common/#context) to learn more. The `context` object contains an optional `traits` dictionary that contains traits about the current user. You can use this to store information about a user that you got from previous Identify calls, and that you want to add to Track or Page events. The information you pass in `context.traits` _does not_ appear in your downstream tools (such as Salesforce, Mixpanel, or Google Analytics); however, this data _does_ appear in your [warehouses and storage destinations](/docs/connections/storage/). -> note "" -> The `options` object described in the previous section behaves differently from the `options.context.traits` object discussed here. The `traits` object described here does not cause `anonymousId` to persist across different calls. +> success "" +> The `traits` object in `options.context.traits` does not cause `anonymousId` to persist across different calls. Consider this Identify event: diff --git a/src/connections/sources/catalog/libraries/website/javascript/index.md b/src/connections/sources/catalog/libraries/website/javascript/index.md index 1efb9ee9fa..ceb0222f42 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/index.md +++ b/src/connections/sources/catalog/libraries/website/javascript/index.md @@ -45,14 +45,14 @@ The basic tracking methods below serve as the building blocks of your Segment tr These methods correspond with those used in the [Segment Spec](/docs/connections/spec/). The documentation on this page explains how to use these methods in Analytics.js. -> note "Good to know" +> success "" > For any of the methods described in this page, you can replace the properties in the code samples with variables that represent the data collected. ### Identify Use the `identify` method to link your users and their actions, to a recognizable `userId` and `traits`. You can see [an `identify` example in the Quickstart guide](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-3-identify-users) or [find details on the identify method payload](/docs/connections/spec/identify/). -> note "`identify` and anonymous visitors" +> info "Identify calls and anonymous visitors" > Segment recommends _against_ using `identify` for anonymous visitors to your site. Analytics.js automatically retrieves an `anonymousId` from `localStorage` or assigns one for new visitors, and then attaches it to all `page` and `track` events both before and after an `identify`. The Identify method follows the format below: @@ -430,7 +430,7 @@ analytics.on('track', (event, properties, options) => { This method emits events _before_ they are processed by the Segment integration, and may not include some of the normalization Segment performs on the client before sending the data to the Segment servers. -> note "Note" +> info "" > Page event properties are stored in the `options` object. diff --git a/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md b/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md index 132b90bf90..1fec536c79 100644 --- a/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md +++ b/src/connections/sources/catalog/libraries/website/plugins/youtube/index.md @@ -13,7 +13,7 @@ The Segment YouTube Plugin uses the following Google APIs: To begin, create a new project in the Google Developer Console, then create a new API key in that project. You can read more about this process in the YouTube documentation on [registering an application](https://developers.google.com/youtube/registering_an_application){:target="_blank”}. -> note "Secure your API keys" +> warning "Secure your API keys" > You can [secure your API keys](https://cloud.google.com/docs/authentication/api-keys#securing){:target="_blank”} by adding API key restrictions, deleting unused API keys, and periodically rotating your keys. ## Getting Started diff --git a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md index d8e1479bab..9e03c63d35 100644 --- a/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md +++ b/src/connections/sources/catalog/libraries/website/shopify-littledata/index.md @@ -70,8 +70,8 @@ Below is a table of events that **Shopify by Littledata** sends to Segment throu | Registration Viewed | A user has viewed the /account/register page | | Thank you Page Viewed | A user has viewed the thank you page after completing an order\* | -> note "" -> \*This is less reliable than the de-duplicated `Order Completed` event sent from the Littledata servers, but you can use it in device-mode destinations to trigger a conversion. The `payment_method` and `shipping_method` properties are not available with this event. +> warning " " +> These events are less reliable than the de-duplicated `Order Completed` event sent from the Littledata servers, but you can use this destination in device-mode destinations to trigger a conversion. The `payment_method` and `shipping_method` properties are not available with these event. You can _opt out_ of device-mode pageviews or events by setting `disableClientSideEvents: true` or `disablePageviews: true` in the `LittledataLayer` settings. @@ -205,7 +205,8 @@ The list below outlines the properties included in most events. See the 'Track ( | `total` | The total value of the order. | Float | | `userId` | Chosen user identifier, defaulting to Shopify Customer ID | String | -> note "" \*`revenue` is available only with the Order Completed event, and only if the store opts in through the Littledata application. Revenue is a reserved property in many Segment destinations. Opting in overrides the `total` property sent to Google Analytics. +> info "The `revenue` property is available only with the Order Completed event" +> The `revenue` property is only available with the Order Completed event and requires you to opt in through the Littledata application. Revenue is a reserved property in many Segment destinations. Opting in overrides the `total` property sent to Google Analytics. ## Product properties diff --git a/src/connections/sources/visual-tagger.md b/src/connections/sources/visual-tagger.md index 0981f65c78..9f78a60537 100644 --- a/src/connections/sources/visual-tagger.md +++ b/src/connections/sources/visual-tagger.md @@ -26,8 +26,8 @@ Visual Tagger is a tool that enables you to collect data about what your custome The Visual Tagger has two main views: the **Visual Tagger Home** and the **Event Editor**, which shows your website in an iframe. -> note "" -> **Note**: The website you're tagging must include the Segment analytics.js snippet before you can use the Visual Tagger. +> info "Analytics.js snippet required for the Visual Tagger" +> The website you're tagging must include the Segment analytics.js snippet before you can use the Visual Tagger. ## Setting up Visual Tagger diff --git a/src/connections/storage/catalog/aws-s3/index.md b/src/connections/storage/catalog/aws-s3/index.md index 8e9d708a2b..e79b16e872 100644 --- a/src/connections/storage/catalog/aws-s3/index.md +++ b/src/connections/storage/catalog/aws-s3/index.md @@ -430,7 +430,7 @@ curl -vvv --location --request PATCH https://api.segmentapis.com/destinations/$D ## Test your migrated source You can validate that you configured your migrated source correctly on the AWS S3 destination page in the Segment app. -> note "Source editing permissions required" +> warning "Source editing permissions required" > In-app source validation is restricted to users with source editing permissions (for example, users with Workspace Owner, Source Admin, or Workspace Admin roles). For more information about roles in the Segment app, see the [Roles documentation](/docs/segment-app/iam/roles/). To verify that you migrated your source correctly: diff --git a/src/connections/storage/catalog/bigquery/index.md b/src/connections/storage/catalog/bigquery/index.md index 84ff49f81c..132c3739da 100644 --- a/src/connections/storage/catalog/bigquery/index.md +++ b/src/connections/storage/catalog/bigquery/index.md @@ -30,7 +30,7 @@ To create a project and enable BigQuery: - If you have an existing project, [enable the BigQuery API](https://cloud.google.com/bigquery/quickstart-web-ui){:target="_blank"}. Once you've done so, you should see BigQuery in the "Resources" section of Cloud Platform. 3. Copy the project ID. You'll need it when you create a warehouse source in the Segment app. -> note "Enable billing" +> info "Enable billing" > When you create your project, you must [enable billing](https://support.google.com/cloud/answer/6293499#enable-billing){:target="_blank"} so Segment can write into the cluster. ### Create a service account for Segment @@ -155,7 +155,7 @@ Therefore, Segment recommends you query a specific view whenever possible to avo duplicate events and historical objects. It's important to note that BigQuery views aren't cached. -> note "Understanding BigQuery views" +> info "Understanding BigQuery views" > BigQuery's views are logical views, not materialized views, which means that the query that defines the view is re-executed every time the view is queried. Queries are billed according to the total amount of data in all table fields referenced directly or indirectly by the top-level query. To save money, you can query the view and set a [destination diff --git a/src/connections/storage/catalog/data-lakes/index.md b/src/connections/storage/catalog/data-lakes/index.md index 988e99ce7d..9d96da8d11 100644 --- a/src/connections/storage/catalog/data-lakes/index.md +++ b/src/connections/storage/catalog/data-lakes/index.md @@ -11,7 +11,7 @@ Segment supports two type of data-lakes: - [AWS Data Lakes](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes) - [Segment Data Lakes (Azure)](/docs/connections/storage/catalog/data-lakes/#set-up-segment-data-lakes-azure) -> note "Lake Formation" +> success "" > You can also set up your Segment Data Lakes using [Lake Formation](/docs/connections/storage/data-lakes/lake-formation/), a fully managed service built on top of the AWS Glue Data Catalog. ## Set up Segment Data Lakes (AWS) @@ -167,7 +167,7 @@ Before you can configure your Azure resources, you must complete the following p ### Step 4 - Set up Databricks -> note "Databricks pricing tier" +> info "Databricks pricing tier" > If you create a Databricks instance only for Segment Data Lakes (Azure) usage, only the standard pricing tier is required. However, if you use your Databricks instance for other applications, you may require premium pricing. 1. From the [home page of your Azure portal](https://portal.azure.com/#home){:target="_blank”}, select **Create a resource**. @@ -346,7 +346,7 @@ After you set up the necessary resources in Azure, the next step is to set up th Instead of manually configuring your Data Lake, you can create it using the script in the [`terraform-segment-data-lakes`](https://github.com/segmentio/terraform-segment-data-lakes){:target="_blank”} GitHub repository. -> note " " +> warning "" > This script requires Terraform versions 0.12+. Before you can run the Terraform script, create a Databricks workspace in the Azure UI using the instructions in [Step 4 - Set up Databricks](#step-4---set-up-databricks). Note the **Workspace URL**, as you will need it to run the script. diff --git a/src/connections/storage/data-lakes/data-lakes-manual-setup.md b/src/connections/storage/data-lakes/data-lakes-manual-setup.md index 2cedd1e4d1..67ea63c3bc 100644 --- a/src/connections/storage/data-lakes/data-lakes-manual-setup.md +++ b/src/connections/storage/data-lakes/data-lakes-manual-setup.md @@ -79,7 +79,7 @@ Segment requires access to an EMR cluster to perform necessary data processing. 14. Expand the EC2 security groups section and select the appropriate security groups for the Master and Core & Task types. 15. Select **Create cluster**. -> note "" +> info "" > If you update the EMR cluster of existing Data Lakes instance, take note of the EMR cluster ID on the confirmation page. ## Step 3 - Create an Access Management role and policy @@ -119,7 +119,7 @@ Attach the following trust relationship document to the role to create a `segmen } ``` -> note "" +> info "" > Replace the `ExternalID` list with the Segment `WorkspaceID` that contains the sources to sync to the Data Lake. ### IAM policy @@ -210,7 +210,7 @@ Add a policy to the role created above to give Segment access to the relevant Gl } ``` -> note "" +> warning "" > The policy above grants full access to Athena, but the individual Glue and S3 policies determine which table is queried. Segment queries for debugging purposes, and notifies you before running any queries. ## Debugging diff --git a/src/connections/storage/data-lakes/lake-formation.md b/src/connections/storage/data-lakes/lake-formation.md index 7c5d4b12fc..e084c29f3d 100644 --- a/src/connections/storage/data-lakes/lake-formation.md +++ b/src/connections/storage/data-lakes/lake-formation.md @@ -46,7 +46,7 @@ To verify that you've configured Lake Formation, open the [AWS Lake Formation se ### Configure Lake Formation using IAM policies -> note "Granting Super permission to IAM roles" +> info "Granting Super permission to IAM roles" > If you manually configured your database, assign the `EMR_EC2_DefaultRole` Super permissions in step 8. If you configured your database using Terraform, assign the `segment_emr_instance_profile` Super permissions in step 8. #### Existing databases diff --git a/src/connections/storage/warehouses/health.md b/src/connections/storage/warehouses/health.md index 8146d9feaf..4ee5f317e4 100644 --- a/src/connections/storage/warehouses/health.md +++ b/src/connections/storage/warehouses/health.md @@ -11,8 +11,8 @@ You can use this feature to answer questions such as: - *Anomaly detection* - How much data is being synced on a daily basis? Have there been anomalous spikes or dips that may indicate sudden changes in event volume, sync failures, or something else? - *Data composition* - Which sources are contributing the most (or least) amount of data in my warehouse? Which collections make up the majority of data within a source? -> note "" -> **Note**: Warehouse Health is available for all Warehouse customers. +> success "" +> Warehouse Health is available for all Warehouse customers. The Warehouse Health dashboards are available at both the [warehouse level](#warehouse-dashboards), and at the [warehouse-source connection level](#warehouse-source-dashboards), explained below. diff --git a/src/connections/storage/warehouses/redshift-useful-sql.md b/src/connections/storage/warehouses/redshift-useful-sql.md index c11116058f..ac8e2dd8f6 100644 --- a/src/connections/storage/warehouses/redshift-useful-sql.md +++ b/src/connections/storage/warehouses/redshift-useful-sql.md @@ -19,7 +19,7 @@ You can use SQL queries for the following tasks: - [Historical Traits](#historical-traits-1) - [Converting the Groups Table into an Organizations Table](#converting-the-groups-table-into-an-organizations-table) -> note " " +> success " " > If you're looking for SQL queries for warehouses other than Redshift, check out some of Segment's [Analyzing with SQL guides](/docs/connections/storage/warehouses#analyzing-with-sql). ## Tracking events diff --git a/src/connections/storage/warehouses/schema.md b/src/connections/storage/warehouses/schema.md index 4c35f49b72..1531d7221d 100644 --- a/src/connections/storage/warehouses/schema.md +++ b/src/connections/storage/warehouses/schema.md @@ -5,8 +5,9 @@ title: Warehouse Schemas A **schema** describes the way that the data in a warehouse is organized. Segment stores data in relational schemas, which organize data into the following template: `..`, for example `segment_engineering.tracks.user_id`, where source refers to the source or project name (segment_engineering), collection refers to the event (tracks), and the property refers to the data being collected (user_id). All schemas convert collection and property names from `CamelCase` to `snake_case` using the [go-snakecase](https://github.com/segmentio/go-snakecase) package. -> note "Warehouse column creation" -> **Note:** Segment creates tables for each of your custom events in your warehouse, with columns for each event's custom properties. Segment does not allow unbounded `event` or `property` spaces in your data. Instead of recording events like "Ordered Product 15", use a single property of "Product Number" or similar. +> info "Warehouse column creation" +> Segment creates tables for each of your custom events in your warehouse, with columns for each event's custom properties. Segment does not allow unbounded `event` or `property` spaces in your data. Instead of recording events like "Ordered Product 15", use a single property of "Product Number" or similar. +> > Segment creates and populates a column only when it receives a non-null value from the source. ### How warehouse tables handle nested objects and arrays diff --git a/src/connections/storage/warehouses/warehouse-syncs.md b/src/connections/storage/warehouses/warehouse-syncs.md index 9c9de8df68..33d3a64f13 100644 --- a/src/connections/storage/warehouses/warehouse-syncs.md +++ b/src/connections/storage/warehouses/warehouse-syncs.md @@ -23,8 +23,8 @@ Your plan determines how frequently data is synced to your warehouse. *If you're a Business plan member and would like to adjust your sync frequency, you can do so using the Selective Sync feature. To enable Selective Sync, please go to **Warehouse** > **Settings** > **Sync Schedule**. -> note "Why can't I sync more than 24 times per day?" -> We do not set syncs to happen more than once per hour (24 times per day). The warehouse product is not designed for real-time data, so more frequent syncs would not necessarily be helpful. +> info "Why can't I sync more than 24 times per day?" +> Segment does not set syncs to happen more than once per hour (24 times per day). The warehouse product is not designed for real-time data, so more frequent syncs would not necessarily be helpful. ## Sync History You can use the Sync History page to see the status and history of data updates in your warehouse. The Sync History page is available for every source connected to each warehouse. This page helps you answer questions like, “Has the data from a specific source been updated recently?” “Did a sync completely fail, or only partially fail?” and “Why wasn't this sync successful?” @@ -61,8 +61,8 @@ Warehouse Selective Sync allows you to manage the data that you send to your war With Selective Sync, you can customize which collections and properties from a source are sent to each warehouse. This helps you control the data that is sent to each warehouse, allowing you to sync different sets of data from the same source to different warehouses. -> note "" -> **NOTE:** This feature only affects [warehouses](/docs/connections/storage/warehouses/), and doesn't prevent data from going to any other [destinations](/docs/connections/destinations/). +> info "" +> This feature only affects [warehouses](/docs/connections/storage/warehouses/), and doesn't prevent data from going to any other [destinations](/docs/connections/destinations/). When you disable a source, collection or property, Segment no longer syncs data from that source. Segment won't delete any historical data from your warehouse. When you re-enable a source, Segment syncs all events since the last sync. This doesn't apply when a collection or property is re-enabled. Only new data generated after re-enabling a collection or property will sync to your warehouse. diff --git a/src/engage/content/email/template.md b/src/engage/content/email/template.md index fbe4e116d3..f7baf74d1c 100644 --- a/src/engage/content/email/template.md +++ b/src/engage/content/email/template.md @@ -29,7 +29,7 @@ To configure an email template, click **Create Template**. 1. Select **Email**, and click **Configure**. -> note "" +> info "" > You must first connect a [SendGrid subuser account](https://docs.sendgrid.com/ui/account-and-settings/subusers#create-a-subuser){:target="blank"} to your Segment space to build email templates in Engage. Visit the [onboarding steps](/docs/engage/onboarding/) for more information. 2. Configure the email template. diff --git a/src/engage/journeys/step-types.md b/src/engage/journeys/step-types.md index 588432fc09..9c950924f3 100644 --- a/src/engage/journeys/step-types.md +++ b/src/engage/journeys/step-types.md @@ -111,7 +111,7 @@ The **Send an email**, **Send an SMS**, and **Send a WhatsApp** steps are only a Use Twilio Engage to send email as a step in a Journey. -> note "" +> info "" > To send email in Engage, you must connect a [SendGrid subuser account](https://docs.sendgrid.com/ui/account-and-settings/subusers#create-a-subuser){:target="blank"} to your Segment space. Visit the [onboarding steps](/docs/engage/onboarding/) for more information. 1. From the **Add step** window, **Send an email**. @@ -132,7 +132,7 @@ Use Twilio Engage to send email as a step in a Journey. Use Twilio Engage to send an SMS message as a step in a Journey. -> note "" +> info "" > To send SMS in Engage, you must connect a Twilio messaging service to your Segment workspace. Visit the [onboarding steps](/docs/engage/onboarding/) for more information. 1. From the **Add step** window, click **Send an SMS**. diff --git a/src/getting-started/02-simple-install.md b/src/getting-started/02-simple-install.md index bb23f6898a..c4bf93f93e 100644 --- a/src/getting-started/02-simple-install.md +++ b/src/getting-started/02-simple-install.md @@ -70,12 +70,10 @@ Click a tab below to see the tutorial content for the specific library you chose ### Step 1: Copy the Snippet
    -Navigate **Connections > Sources > JavaScript** in the Segment app and copy the snippet from the JavaScript Source overview page and paste it into the `` tag of your site. +Navigate to **Connections > Sources > JavaScript** in the Segment app, copy the snippet from the JavaScript Source overview page, and paste it into the `` tag of your site.

    That snippet loads Analytics.js onto the page _asynchronously_, so it won't affect your page load speed. Once the snippet runs on your site, you can turn on destinations from the destinations page in your workspace and data starts loading on your site automatically.

    -> note "" -> **Note:** If you only want the most basic Google Analytics setup you can stop reading right now. You're done! Just toggle on Google Analytics from the Segment App. > info "" > The Segment snippet version history available on [GitHub](https://github.com/segmentio/snippet/blob/master/History.md){:target="_blank"}. Segment recommends that you use the latest snippet version whenever possible. @@ -85,8 +83,8 @@ That snippet loads Analytics.js onto the page _asynchronously_, so it won't affe
    The `identify` method is how you tell Segment who the current user is. It includes a unique User ID and any optional traits you know about them. You can read more about it in the [identify method reference](/docs/connections/sources/catalog/libraries/website/javascript#identify).

    -> note "" -> **Note:** You don't need to call `identify` for anonymous visitors to your site. Segment automatically assigns them an `anonymousId`, so just calling `page` and `track` works just fine without `identify`. +> info "You don't need to call `identify` for anonymous visitors to your site" +> Segment automatically assigns them an `anonymousId`, so just calling `page` and `track` works just fine without `identify`.

    Here's an example of what a basic call to `identify` might look like: @@ -114,8 +112,8 @@ analytics.identify(' {{user.id}} ', {
    With that call in your page footer, you successfully identify every user that visits your site.

    -> note "" -> **Note:** If you only want to use a basic CRM set up, you can stop here. Just enable Salesforce, Intercom, or any other CRM system from your Segment workspace, and Segment starts sending all of your user data to it. +> success "" +> You've completed a basic CRM set up. Return to the Segment app to enable Salesforce, Intercom, or your CRM system of choice and Segment starts sending all of your user data to it.
    ### Step 3: Track Actions @@ -209,8 +207,8 @@ Here's an example of what a basic call to `identify` might look like:
    This call identifies Michael by his unique User ID (`f4ca124298`, which is the one you know him by in your database) and labels him with `name` and `email` traits.

    -> note "" -> **Note:** When you put that code in your iOS app, you need to replace those hard-coded trait values with the variables that represent the details of the currently logged-in user. +> info "" +> When you put the above code in your iOS app, you would replace those hard-coded trait values with variables that represent the details of the user that's currently signed in.

    ### Step 3: Track Actions
    @@ -288,8 +286,8 @@ Segment::init("YOUR_WRITE_KEY"); You only need to call `init` once when your php file is requested. All of your files then have access to the same `Analytics` client. -> note "" -> **Note:** The default PHP consumer is the [libcurl consumer](/docs/connections/sources/catalog/libraries/server/php/#lib-curl-consumer). If this is not working well for you, or if you have a high-volume project, you might try one of Segment's other consumers like the [fork-curl consumer](/docs/connections/sources/catalog/libraries/server/php/#fork-curl-consumer). +> info "" +> Segment's default PHP consumer is the [libcurl consumer](/docs/connections/sources/catalog/libraries/server/php/#lib-curl-consumer). If this is not working well for you or if you have a high-volume project, you might try one of Segment's other consumers like the [fork-curl consumer](/docs/connections/sources/catalog/libraries/server/php/#fork-curl-consumer).
    ### Step 2: Identify Users @@ -310,8 +308,8 @@ Segment::identify(array(
    This identifies Michael by his unique User ID (in this case, `f4ca124298`, which is what you know him by in your database) and labels him with `name` and `email` traits. -> note "" -> **Note:** When you actually put that code on your site, you need to replace those hard-coded trait values with the variables that represent the details of the currently logged-in user. The easiest way in PHP is to keep a `$user` variable in memory. +> info "" +> When you actually put that code on your site, you need to replace those hard-coded trait values with the variables that represent the details of the currently logged-in user. The easiest way in PHP is to keep a `$user` variable in memory. ```php Segment::identify(array( diff --git a/src/getting-started/04-full-install.md b/src/getting-started/04-full-install.md index 0b97dcd906..d537dea6f0 100644 --- a/src/getting-started/04-full-install.md +++ b/src/getting-started/04-full-install.md @@ -173,8 +173,8 @@ Segment automatically calls a Page event whenever a web page loads. This might b If the presentation of user interface components don't substantially change the user's context (for example, if a menu is displayed, search results are sorted/filtered, or an information panel is displayed on the exiting UI) **measure the event with a Track call, not a Page call.** -> note "" -> **Note**: When you trigger a Page call manually, make sure the call happens _after_ the UI element is successfully displayed, not when it is called. It shouldn't be called as part of the click event that initiates it. +> info "" +> When you manually trigger a Page call, make sure the call happens _after_ the UI element is successfully displayed, not when it is called. It shouldn't be called as part of the click event that initiates it. For more info on Page calls, review [Page spec](/docs/connections/spec/page/) and [Analytics.js docs](/docs/connections/sources/catalog/libraries/website/javascript/#page). diff --git a/src/getting-started/05-data-to-destinations.md b/src/getting-started/05-data-to-destinations.md index 628a68f35e..4ae35c7b93 100644 --- a/src/getting-started/05-data-to-destinations.md +++ b/src/getting-started/05-data-to-destinations.md @@ -45,10 +45,10 @@ We also feel that it's really important to have a data warehouse, so you can get Warehouses are a special type of destination which receive streaming data from your Segment sources, and store it in a table [schema based on your Segment calls](/docs/connections/storage/warehouses/schema/). This allows you to do a lot of interesting analytics work to answer your own questions about what your users are doing and why. -> note "" -> All customers can connect a data warehouse to Segment. Free and Team customers can connect one, while Business customers can connect as many as needed. +> success "" +> All customers can connect a data warehouse to Segment. Free and Team customers can connect one warehouse, while Business customers can connect as many as needed. -You should spend a bit of time [considering the benefits and tradeoffs of the warehouse options](https://segment.com/academy/choosing-stack/how-to-choose-the-right-data-warehouse/), and then choose one from our [warehouse catalog](/docs/connections/storage/catalog/). +You should spend a bit of time [considering the benefits and tradeoffs of the warehouse options](https://segment.com/academy/choosing-stack/how-to-choose-the-right-data-warehouse/), and then choose one from Segment's [warehouse catalog](/docs/connections/storage/catalog/). When you choose a warehouse, you can then use the steps in the documentation to connect it. This may require that you create a new dedicated user (or "service user") to allow Segment to access the database. diff --git a/src/getting-started/whats-next.md b/src/getting-started/whats-next.md index bcb007eb9d..1a421246fe 100644 --- a/src/getting-started/whats-next.md +++ b/src/getting-started/whats-next.md @@ -49,8 +49,8 @@ Still hungry for more? Check out our list of [other Segment Resources](https://s If you're experiencing problems, have questions about implementing Segment, or want to report a bug, you can fill out our [support contact form here](https://segment.com/help/contact/) and our Product Support Engineers will get back to you. -> note "" -> You need a Segment.com account in order to file a support request. Don't worry! You can always sign up for a free workspace if you don't already have one. +> info "" +> You need a Segment account in order to file a support request. If you don't already have a Segment account, you can sign up for a free workspace. {% include components/reference-button.html href="/getting-started/" newtab="false" icon="symbols/arrow-left.svg" title="Back to the index" description="Back to the Getting Started index" variant="related" %} diff --git a/src/guides/intro-admin.md b/src/guides/intro-admin.md index 9689ffa059..e310684bab 100644 --- a/src/guides/intro-admin.md +++ b/src/guides/intro-admin.md @@ -22,9 +22,6 @@ You don't have to be a developer to be a Workspace administrator for an organiza However, many Workspace admins are also involved in the Segment implementation process as there are usually some tasks that must be performed in the Workspace to complete an implementation. If you think you might develop a Segment implementation or help out other developers, first read [Segment for developers](/docs/guides/intro-impl/). -> note "" -> **Note**: Workspace roles are only available to Business Tier customers. If you're on a Free or Team plan, all workspace members are granted workspace administrator access. - In addition, Workspace administrators set up and maintain the organization's [workspace settings](https://app.segment.com/goto-my-workspace/settings/), which include: - Billing information and billing contacts - Incident contacts - the people who get notified in the event of an outage or incident diff --git a/src/help/index.md b/src/help/index.md index 5d7aad12ca..a79c36657f 100644 --- a/src/help/index.md +++ b/src/help/index.md @@ -9,7 +9,7 @@ hidden: true Email support is available for all [Segment support plans](https://segment.com/support-plans/). If you're experiencing problems, have questions about implementing Segment, or want to report a bug, you can fill out the [support contact form](https://segment.com/help/contact/) and the Success Engineering team will get back to you. -> note "" +> info "" > You need a Segment account to file a support request. If you don't have one, sign up for a free workspace and then send your request. ### Segment Support Business Hours diff --git a/src/partners/conceptual-model.md b/src/partners/conceptual-model.md index 5e787113e0..e498a2f8b3 100644 --- a/src/partners/conceptual-model.md +++ b/src/partners/conceptual-model.md @@ -66,8 +66,8 @@ Mobile plugins are loaded into: - [Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins) - [React Native](/docs/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/) -> note "" -> **Note:** The [Swift](/docs/connections/sources/catalog/libraries/mobile/apple/destination-plugins/), [Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins) and [React Native](/docs/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/) libraries were all built with the plugin architecture in mind. This makes adding custom destinations far simpler than the older mobile libraries. +> info "Mobile plugin architecture" +> The [Swift](/docs/connections/sources/catalog/libraries/mobile/apple/destination-plugins/), [Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/destination-plugins) and [React Native](/docs/connections/sources/catalog/libraries/mobile/react-native/destination-plugins/) libraries were all built with the plugin architecture in mind. This makes adding custom destinations far simpler than the older mobile libraries. ## Streams diff --git a/src/partners/subscriptions/index.md b/src/partners/subscriptions/index.md index 13932dcfaa..7f589372cf 100644 --- a/src/partners/subscriptions/index.md +++ b/src/partners/subscriptions/index.md @@ -24,7 +24,7 @@ Review the steps outlined in the [Developer Center Overview](/docs/partners). Th ## Build & Test -> note "" -> **NOTE:** On July 31, 2021 support for building Subscription Functions was removed from Developer Center. You may continue building [Subscription Webhooks](/docs/partners/subscriptions/build-webhook) in place of Subscription Functions. Work has begun on Developer Center 2.0 which will offer a more holistic approach to building on Segment. If you're interested in joining the beta in the coming months, please fill out [this form](https://airtable.com/shrvZzQ6NTTwsc6rQ){:target="_blank"}! +> info "Subscription Functions removed from Developer Center on July 31, 2021" +> On July 31, 2021, support for building Subscription Functions was removed from Developer Center. You may continue building [Subscription Webhooks](/docs/partners/subscriptions/build-webhook) in place of Subscription Functions. Work has begun on Developer Center 2.0 which will offer a more holistic approach to building on Segment. If you're interested in joining the beta in the coming months, please fill out [this form](https://airtable.com/shrvZzQ6NTTwsc6rQ){:target="_blank"}. [Subscription Webhooks](/docs/partners/subscriptions/build-webhook) allow you to build a new HTTP service that receives Webhook POSTs from Segment. Read more in-depth technical details about building webhooks in the [Subscription Webhooks](/docs/partners/subscriptions/build-webhook) docs. diff --git a/src/privacy/account-deletion.md b/src/privacy/account-deletion.md index f963e3eb09..7c82570b85 100644 --- a/src/privacy/account-deletion.md +++ b/src/privacy/account-deletion.md @@ -15,7 +15,7 @@ To delete the data for an entire source, email the Customer Success team [(frien **Due to the way Segment stores data internally, source-level deletions can only be scoped to one day in granularity. Deletion requests for smaller time frames are not supported.* -> note "Deleting source data" +> info "Deleting source data" > When Segment deletes your data for a particular source, the deletion is not forwarded to sources or data storage providers associated with your account: your data is only removed from Segment's S3 archive buckets. To remove your data from external sources, reach out to the individual source about their deletion practices. ## Delete the data from a Unify space diff --git a/src/privacy/complying-with-the-gdpr.md b/src/privacy/complying-with-the-gdpr.md index ddae30de40..d91cc69b53 100644 --- a/src/privacy/complying-with-the-gdpr.md +++ b/src/privacy/complying-with-the-gdpr.md @@ -63,5 +63,5 @@ Segment offers a Data Protection Addendum (DPA) and Standard Contractual (SCCs) Segment offers a Data Protection Addendum (DPA) and Standard Contractual Clauses (SCCs) as a means of meeting the regulatory contractual requirements of GDPR in its role as processor and also to address international data transfers. -> note "" -> **Note on Schrems II**: Despite the CJEU’s July 2020 ruling invalidating Privacy Shield as a means of validly transferring data to the USA from the EU, these developments are not expected to disrupt Segment’s ability to provide services to its EU customers as the European Court of Justice has reaffirmed that the Standard Contractual Clauses (SCC) remain valid as a method of transfer. Segment's standard Data Protection Addendum includes a provision whereby should Privacy Shield ever be invalidated (as is the case now) then the SCCs will automatically apply. +> info "Schrems II" +> Despite the CJEU’s July 2020 ruling invalidating Privacy Shield as a means of validly transferring data to the USA from the EU, these developments are not expected to disrupt Segment’s ability to provide services to its EU customers as the European Court of Justice has reaffirmed that the Standard Contractual Clauses (SCC) remain valid as a method of transfer. Segment's standard Data Protection Addendum includes a provision whereby should Privacy Shield ever be invalidated (as is the case now) then the SCCs will automatically apply. diff --git a/src/protocols/apis-and-extensions/typewriter-v7.md b/src/protocols/apis-and-extensions/typewriter-v7.md index 7c9a96c505..2e6a45ed06 100644 --- a/src/protocols/apis-and-extensions/typewriter-v7.md +++ b/src/protocols/apis-and-extensions/typewriter-v7.md @@ -38,8 +38,8 @@ To get started using Typewriter with iOS: 2. Install `analytics-ios` in your app. You just need to complete [`Step 1: Install the SDK`](/docs/connections/sources/catalog/libraries/mobile/ios/quickstart/#step-2-install-the-sdk) from the [`analytics-ios` Quickstart Guide](/docs/connections/sources/catalog/libraries/mobile/ios/quickstart). 3. Run `npx typewriter@7 init` to use the Typewriter quickstart wizard that generates a [`typewriter.yml`](#configuration-reference) configuration along with your first Typewriter client. When you run the command, it creates a `typewriter.yml` file in your repo. For more information on the format of this file, see the [Typewriter Configuration Reference](#configuration-reference). -> note "" -> Run `npx typewriter` to regenerate your Typewriter client. You need to do this each time you update your Tracking Plan. +> info "Regenerate your Typewriter client" +> Run `npx typewriter` to regenerate your Typewriter client. You must do this each time you update your Tracking Plan. You can now import your new Typewriter client into your project using XCode. If you place your generated files into a folder in your project, import the project as a group not a folder reference. @@ -86,8 +86,8 @@ To get started using Typewriter with Android: 2. Install `analytics-android` in your app, and configure the singleton analytics instance by following the first three steps in in the [Android Quickstart](/docs/connections/sources/catalog/libraries/mobile/android/quickstart/#step-2-install-the-library). 3. Run `npx typewriter@7 init` to use the Typewriter quickstart wizard that generates a [`typewriter.yml`](#configuration-reference) configuration along with your first Typewriter client. When you run the command, it creates a `typewriter.yml` file in your repo. For more information on the format of this file, see the [Typewriter Configuration Reference](#configuration-reference). -> note "" -> You can regenerate your Typewriter client by running `npx typewriter`. You need to do this each time you update your Tracking Plan. +> info "Regenerate your Typewriter client" +> Run `npx typewriter` to regenerate your Typewriter client. You must do this each time you update your Tracking Plan. You can now use your Typewriter client in your Android Java application: diff --git a/src/protocols/apis-and-extensions/typewriter.md b/src/protocols/apis-and-extensions/typewriter.md index d2899545f8..aee51d95d9 100644 --- a/src/protocols/apis-and-extensions/typewriter.md +++ b/src/protocols/apis-and-extensions/typewriter.md @@ -506,7 +506,7 @@ $ npx typewriter development # To build a production client: $ npx typewriter production ``` -> note "" +> info "Run-time validation support" > Not all languages support run-time validation. Currently, `analytics.js` and `analytics-node` support it using [AJV](https://github.com/epoberezkin/ajv){:target="_blank”} (both for JavaScript and TypeScript projects) while `analytics-ios` and `analytics-android` do not yet support run-time validation. Typewriter also doesn't support run-time validation using Common JSON Schema. For languages that don't support run-time validation, the development and production clients are identical. Segment recommends you to use a development build when testing your application locally, or when running tests. Segment generally recommends _against_ using a development build in production, since this includes a full copy of your Tracking Plan which can increase the size of the application. diff --git a/src/protocols/enforce/forward-blocked-events.md b/src/protocols/enforce/forward-blocked-events.md index c87235999f..2a0486c507 100644 --- a/src/protocols/enforce/forward-blocked-events.md +++ b/src/protocols/enforce/forward-blocked-events.md @@ -11,8 +11,5 @@ Since forwarding happens server to server, Segment recommends creating a [HTTP T ![A screenshot of the blocked events and traits section on the Schema Configuration settings page](../images/blocked_event_forwarding.png) -> note "" -> Only blocked events are forwarded to the source. Events with omitted traits are not forwarded. Instead, Segment inserts a `context.protocols` object into the event payload which contains the omitted properties or traits. - -> note "" -> Billing Note: Events forwarded to another Source count towards to your MTU counts. Blocking and discarding events does not contribute to your MTU counts. +> info "Blocked events and MTUs" +> Only blocked events are forwarded to the source, and count toward your MTU limits. Events with omitted traits are not forwarded, and do not contribute to your MTU counts. Instead, Segment inserts a `context.protocols` object into the event payload which contains the omitted properties or traits. diff --git a/src/protocols/tracking-plan/libraries.md b/src/protocols/tracking-plan/libraries.md index e7f65c34a2..206d4d02a8 100644 --- a/src/protocols/tracking-plan/libraries.md +++ b/src/protocols/tracking-plan/libraries.md @@ -5,8 +5,8 @@ plan: protocols Tracking Plan Libraries make it easy to scale Tracking Plan creation within your workspace. You can create libraries for track events or track event properties. Editing Tracking Plan Libraries is identical to [editing Tracking Plans](/docs/protocols/tracking-plan/create/). -> note "" -> **Note**: Segment does support advanced JSON schema implementations and identify/group trait libraries. +> info "" +> Segment does support advanced JSON schema implementations and Identify/Group trait libraries. Once created, you can import event or property Libraries into a Tracking Plan using a simple wizard flow. diff --git a/src/protocols/transform/index.md b/src/protocols/transform/index.md index b4cd7046dd..78ef6b289e 100644 --- a/src/protocols/transform/index.md +++ b/src/protocols/transform/index.md @@ -41,9 +41,11 @@ Transformations can be enabled and disabled directly from the list view using th Transformations can be deleted and edited by clicking on the overflow menu. When editing a Transformation, only the resulting event or property names, and Transformation name can be edited. If you want to select a different event or source, create a separate Transformation rule. -> note "Transformations created using the Public API" +> info "Transformations created using the Public API" > On the Transformations page in the Segment app, you can view and rename transformations that you created with the Public API. In some cases, you can edit these transformations in the UI. + + ## Create a Transformation To create a Transformation, navigate to the Transformations tab in Protocols and click **New Transformation** in the top right. A three-step wizard guides you through creating a transformation. diff --git a/src/protocols/validate/forward-violations.md b/src/protocols/validate/forward-violations.md index 2f1161009d..591ecff8dd 100644 --- a/src/protocols/validate/forward-violations.md +++ b/src/protocols/validate/forward-violations.md @@ -48,8 +48,8 @@ Violations are sent to the selected Source as `analytics.track()` calls. The cal } ``` -> note "" -> Billing Note: Enabling Violation forwarding generates one (1) additional MTU in your workspace, total. If you are on an API billing plan, you are charged for the increased API volume generated by the forwarded violations. +> info "" +> Enabling Violation forwarding generates 1 additional MTU in your workspace. If you are on an API billing plan, you are charged for the increased API volume generated by the forwarded violations. -> note "" -> Schema and debugger Note:`Violation Generated` events do not appear in the source's Schema tab. They do appear as Violation Generated events in the [debugger](/docs/connections/sources/debugger/). +> warning "`Violation Generated` events" +> `Violation Generated` events do not appear in the source's Schema tab, but they do appear as Violation Generated events in the [debugger](/docs/connections/sources/debugger/). diff --git a/src/segment-app/iam/labels.md b/src/segment-app/iam/labels.md index 3a6669ef60..c985e267ac 100644 --- a/src/segment-app/iam/labels.md +++ b/src/segment-app/iam/labels.md @@ -31,8 +31,8 @@ Permissions can then be assigned to users in Access Management by label, on the ## Custom labels -> info "" -> All Segment workspaces can create up to 5 custom labels. Additional label types (in addition to environment labels) are available to Segment Business Tier accounts. +> success "" +> All Segment workspaces can create up to 5 custom labels. Additional label types (including environment labels) are available to Segment Business Tier accounts. To create additional custom labels, a Workspace Owner can create new key types in the Manage Labels screen. The Workspace Owner can customize any combination of labels to mirror how resources should be partitioned in their organization. diff --git a/src/segment-app/iam/sso.md b/src/segment-app/iam/sso.md index 4b58dec194..639f6f51b8 100644 --- a/src/segment-app/iam/sso.md +++ b/src/segment-app/iam/sso.md @@ -95,7 +95,7 @@ In order to enable this, you'll need to verify your domain with Segment. To do t Enter your domain and click "Add Domain." When you click verify, you're given two options to verify your domain, either using a meta tag to add to your `/index.html` at the root, or a DNS text record that you can add through your DNS provider. After you do so and click verify, you can move to the next step. -> note "" +> warning "" > Domain tokens expire 14 days after they are verified. ## Configuring SSO to access multiple workspaces diff --git a/src/unify/identity-resolution/externalids.md b/src/unify/identity-resolution/externalids.md index c9aaa4a760..a977bbff84 100644 --- a/src/unify/identity-resolution/externalids.md +++ b/src/unify/identity-resolution/externalids.md @@ -5,8 +5,8 @@ redirect_from: - '/personas/identity-resolution/externalids' --- -> note "" -> The steps in this guide pertain to spaces created before September 27th, 2020. For spaces created after September 27th, 2020, please refer to the [Identity onboarding guide](/docs/unify/identity-resolution/identity-resolution-onboarding/). +> info "The steps in this guide pertain to spaces created before September 27th, 2020" +> For spaces created after September 27th, 2020, please refer to the [Identity onboarding guide](/docs/unify/identity-resolution/identity-resolution-onboarding/). ## Default externalIDs @@ -32,8 +32,8 @@ Segment automatically promotes the following traits and IDs in track and identif | ios.idfa | context.device.advertisingId when context.device.type = 'ios' | | ios.push_token | context.device.token when context.device.type = 'ios' | -> note "" -> The Google clientID(ga_clientid) is a unique value created for each browser-device pair and will exist for 2 years if the cookie is not cleared. The analytics.reset() call should be triggered from Segment end when the user logs off. This call will clear the cookies and local Storage created by Segment. It doesn’t clear data from other integrated tools. So on the next login, the user will be assigned with a new unique anonymous_id, but the same ga_clientid will remain if this cookie is not cleared. Hence, the profiles with different anonymous_id but with same ga_clientid will get merged. +> info "" +> The Google clientID (ga_clientid) is a unique value created for each browser-device pair and will exist for 2 years if the cookie is not cleared. The analytics.reset() call should be triggered from Segment end when the user logs off. This call will clear the cookies and local Storage created by Segment. It doesn’t clear data from other integrated tools. So on the next login, the user will be assigned with a new unique anonymous_id, but the same ga_clientid will remain if this cookie is not cleared. Hence, the profiles with different anonymous_id but with same ga_clientid will get merged. ## Custom externalIDs diff --git a/src/unify/identity-resolution/space-setup.md b/src/unify/identity-resolution/space-setup.md index d5fd41b54e..6b9460c176 100644 --- a/src/unify/identity-resolution/space-setup.md +++ b/src/unify/identity-resolution/space-setup.md @@ -18,8 +18,8 @@ If you haven't already, Segment highly recommends labeling all your sources with [](images/connection-policy.png) -> note "" -> **Note:** The Identity Resolution table can only be edited by workspace owners and users with the Identity Admin role. +> info "" +> The Identity Resolution table can only be edited by Workspace Owners and users with the Identity Admin role. ## Step four: Connect sources and create test audiences diff --git a/src/unify/profile-api.md b/src/unify/profile-api.md index 0b950d8ba4..3b46def8b5 100644 --- a/src/unify/profile-api.md +++ b/src/unify/profile-api.md @@ -248,7 +248,7 @@ Date: Mon, 01 Jul 2013 17:27:06 GMT Status: 200 OK Request-Id: 1111-2222-3333-4444 ``` -> note "" +> info "" > If you need to contact Segment regarding a specific API request, please capture and provide the `Request-Id`. diff --git a/src/utils/formatguide.md b/src/utils/formatguide.md index ddcbda604d..74573d9fc8 100644 --- a/src/utils/formatguide.md +++ b/src/utils/formatguide.md @@ -239,11 +239,8 @@ console.log('example'); ## Notes -> note "" -> **NOTE:** Our [browser and mobile libraries](https://segment.com) **automatically** use Anonymous IDs under the covers to keep track of users as they navigate around your website or app, so you don't need to worry about them when using those libraries. - -> note "Server-side tracking" -> Server-side data management is when tag sends data into your web server, then your web server passes that data to the destination system/server. [Find out more](https://segment.com) +> note "Note deprecated" +> Please use an info message instead for information that is useful, but doesn't require immediate action. ---