diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index a0e5a091cb..daf95dc710 100644 --- a/src/_data/catalog/destination_categories.yml +++ b/src/_data/catalog/destination_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination categories last updated 2024-04-09 +# destination categories last updated 2024-04-11 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml index 3bbc134dbc..49e71d4979 100644 --- a/src/_data/catalog/destinations.yml +++ b/src/_data/catalog/destinations.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-04-09 +# destination data last updated 2024-04-11 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -60819,47 +60819,42 @@ items: actions: [] presets: [] partnerOwned: false -- id: 5b73515e6170785a5e62978c - display_name: Marketo Static Lists - name: Marketo Static Lists - slug: marketo-static-lists +- id: 65302a514ce4a2f0f14cd426 + display_name: Marketo Static Lists (Actions) + name: Marketo Static Lists (Actions) + slug: marketo-static-lists-actions hidden: false endpoints: - US regions: - us-west-2 - eu-west-1 - url: connections/destinations/catalog/marketo-static-lists + url: connections/destinations/catalog/marketo-static-lists-actions previous_names: - - Marketo Static Lists - website: https://www.marketo.com/ - status: PUBLIC - categories: - - Email Marketing + - Marketo Static Lists (Actions) + website: http://www.segment.com + status: PUBLIC_BETA + categories: [] logo: - url: https://d3hotuclm6if1r.cloudfront.net/logos/marketo-default.svg + url: https://cdn-devcenter.segment.com/baea98c1-5b3c-4b60-99aa-a40f22095f7b.svg mark: - url: https://cdn.filepicker.io/api/file/vu6U5mVXQmqafnoyD7Sw + url: https://cdn-devcenter.segment.com/4778ef4e-ad0d-45dd-b67c-b1146ce2fd3d.svg methods: track: true identify: true - group: false - alias: false + group: true + alias: true screen: false - page: false + page: true platforms: browser: true mobile: false server: true - warehouse: false + warehouse: true cloudAppObject: false - components: - - code: >- - https://github.com/segmentio/integrations/tree/master/integrations/marketo-static-lists - owner: SEGMENT - type: SERVER + components: [] browserUnbundlingSupported: false - browserUnbundlingPublic: true + browserUnbundlingPublic: false replay: false connection_modes: device: @@ -60868,36 +60863,319 @@ items: server: false cloud: web: true - mobile: true + mobile: false server: true settings: - - name: clientId + - name: api_endpoint + type: string + defaultValue: '' + description: >- + Your Marketo REST API Endpoint in this format: + https://``.mktorest.com. + required: true + label: API Endpoint + - name: client_id type: string defaultValue: '' description: Your Marketo REST API Client ID. required: true label: Client ID - - name: clientSecret - type: string + - name: client_secret + type: password defaultValue: '' description: Your Marketo REST API Client Secret. required: true label: Client Secret - - name: endpoint - type: string - defaultValue: '' - description: >- - Your Marketo REST API Endpoint in this format: - `https://``.mktorest.com` - required: true - label: Endpoint - - name: folder + - name: folder_name type: string defaultValue: '' description: Name of the folder in which to create static lists. required: true - label: Folder - actions: [] + label: Folder Name + actions: + - id: w2oUurSgDAvQbMH3VYCgw2 + name: Remove From List + slug: removeFromList + description: Remove users from a list in Marketo. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Exited" + fields: + - id: fuiZXWYZ12VYpACB9RDmHF + sortOrder: 0 + fieldKey: external_id + label: External ID + type: STRING + description: The ID of the Static List that users will be synced to. + placeholder: '' + defaultValue: + '@path': $.context.personas.external_audience_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: vcyGyLTXS1zRnE63iQhrkP + sortOrder: 1 + fieldKey: lookup_field + label: Lookup Field + type: STRING + description: >- + The lead field to use for deduplication and filtering. This field must + be apart of the Lead Info Fields below. + placeholder: '' + defaultValue: email + required: true + multiple: false + choices: + - label: Email + value: email + - label: Id + value: id + - label: Cookies + value: cookies + - label: Twitter ID + value: twitterId + - label: Facebook ID + value: facebookId + - label: LinkedIn ID + value: linkedinId + - label: Salesforce Account ID + value: sfdcAccountId + - label: Salesforce Contact ID + value: sfdcContactId + - label: Salesforce Lead ID + value: sfdcLeadId + - label: Salesforce Opportunity ID + value: sfdcOpptyId + dynamic: false + allowNull: false + - id: eUHuumcHP3xqJaxM6ego5y + sortOrder: 2 + fieldKey: field_value + label: Field Value + type: STRING + description: The value cooresponding to the lookup field. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qCnTLrzSc14yxjer8ULMfQ + sortOrder: 3 + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: Enable batching of requests. + placeholder: '' + defaultValue: true + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tenRZwZvnGw1cVAiAM44gq + sortOrder: 4 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 300000 + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: vkPw8H3ghD3WqLfvuHLzYS + sortOrder: 5 + fieldKey: event_name + label: Event Name + type: STRING + description: The name of the current Segment event. + placeholder: '' + defaultValue: + '@path': $.event + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: xpW9JpwKUg8XsiuTJEDq6a + name: Add to List + slug: addToList + description: Add users from an Engage Audience to a list in Marketo. + platform: CLOUD + hidden: false + defaultTrigger: event = "Audience Entered" + fields: + - id: jeiaVqF2AKzY9Dts1mLRsR + sortOrder: 0 + fieldKey: external_id + label: External ID + type: STRING + description: The ID of the Static List that users will be synced to. + placeholder: '' + defaultValue: + '@path': $.context.personas.external_audience_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 3AWcyCBcgBUAU2d9JvSjx7 + sortOrder: 1 + fieldKey: lookup_field + label: Lookup Field + type: STRING + description: >- + The lead field to use for deduplication and filtering. This field must + be apart of the Lead Info Fields below. + placeholder: '' + defaultValue: email + required: true + multiple: false + choices: + - label: Email + value: email + - label: Id + value: id + - label: Cookies + value: cookies + - label: Twitter ID + value: twitterId + - label: Facebook ID + value: facebookId + - label: LinkedIn ID + value: linkedinId + - label: Salesforce Account ID + value: sfdcAccountId + - label: Salesforce Contact ID + value: sfdcContactId + - label: Salesforce Lead ID + value: sfdcLeadId + - label: Salesforce Opportunity ID + value: sfdcOpptyId + dynamic: false + allowNull: false + - id: ggtY2ix5YENexVPf2Eaor2 + sortOrder: 2 + fieldKey: data + label: Lead Info Fields + type: OBJECT + description: >- + The fields that contain data about the lead, such as Email, Last Name, + etc. On the left-hand side, input the field name exactly how it appears + in Marketo. On the right-hand side, map the Segment field that contains + the corresponding value. + placeholder: '' + defaultValue: + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2QwRikXc88QqkzC18JVkiF + sortOrder: 3 + fieldKey: enable_batching + label: Enable Batching + type: BOOLEAN + description: Enable batching of requests. + placeholder: '' + defaultValue: true + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: myNDmw289BbWwu2Gu34orN + sortOrder: 4 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 300000 + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kTxCGZuaQN435cxG5swzoL + sortOrder: 5 + fieldKey: event_name + label: Event Name + type: STRING + description: The name of the current Segment event. + placeholder: '' + defaultValue: + '@path': $.event + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: xqm5XEoEF82ZjosMTCC9o4 + sortOrder: 6 + fieldKey: list_id + label: Existing List ID + type: STRING + description: >- + The ID of the Marketo Static List that users will be synced to. If + defined, we will not create a new list. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qiTdgj2qFT5B5eEy2uit2R + sortOrder: 7 + fieldKey: list_name + label: List Name + type: STRING + description: The name of the Marketo Static List that you would like to create. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2cMXrYx2mZDuUDHzf6zCty + sortOrder: 8 + fieldKey: retlOnMappingSave + label: Connect to a static list in Marketo + type: OBJECT + description: >- + When saving this mapping, we will create a static list in Marketo using + the fields you provided. + defaultValue: null + required: false + multiple: false + choices: null + dynamic: false + allowNull: false presets: [] partnerOwned: false - id: 58f8f55a70a3e552b955a444 diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index b5d5d1c42b..401eea006a 100644 --- a/src/_data/catalog/destinations_private.yml +++ b/src/_data/catalog/destinations_private.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2024-04-09 +# destination data last updated 2024-04-11 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index d162750108..d164c6b63f 100644 --- a/src/_data/catalog/source_categories.yml +++ b/src/_data/catalog/source_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# source categories last updated 2024-04-09 +# source categories last updated 2024-04-11 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/sources.yml b/src/_data/catalog/sources.yml index eb46e6cbec..e4ee09b118 100644 --- a/src/_data/catalog/sources.yml +++ b/src/_data/catalog/sources.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# sources last updated 2024-04-09 +# sources last updated 2024-04-11 items: - id: 8HWbgPTt3k display_name: .NET diff --git a/src/connections/alerting.md b/src/connections/alerting.md index fe5e7b152c..987ca4d1f2 100644 --- a/src/connections/alerting.md +++ b/src/connections/alerting.md @@ -12,7 +12,7 @@ On the Alerts tab, you can create alerts and view all active alerts for this con ## Source volume alerts -You can create an alert that notifies you when the volume of events received by your source in the last 24 hours changes beyond a percentage you set. For example, if you set a change percentage of 4%, Segment notifies you when your source ingests less than 96% or more than 104% of the typical event volume. +You can create an alert that notifies you when the volume of events received by your source in the last 24 hours changes beyond a percentage you set. For example, if you set a change percentage of 4%, Segment notifies you if your source ingests less than 96% or more than 104% of the event volume over the previous 24 hour period. To receive a source volume alert in a Slack channel, you must first create a Slack webhook. For more information about Slack webhooks, see the [Sending messages using incoming webhooks](https://api.slack.com/messaging/webhooks){:target="_blank”} documentation. diff --git a/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md b/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md index 9b809ce6ee..73f6c999ee 100644 --- a/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-facebook-conversions-api/index.md @@ -169,7 +169,11 @@ Segment creates a SHA-256 hash of the following fields before sending to Faceboo If you use Facebook Pixel, the Pixel library also hashes the External ID. This means External IDs will match across Facebook Pixel and Facebook Conversions API if they use the External ID for [deduplication](https://developers.facebook.com/docs/marketing-api/conversions-api/deduplicate-pixel-and-server-events/#fbp-or-external-id){:target="_blank"}. -### User Data Formatting +### Double hashing PII data + +If you hash data before sending it to Segment, and then Segment applies its hashing, this could result in double hashing. Double hashing might make the data unusable for matching purposes on platforms like Facebook, which rely on specific hashing algorithms (like SHA-256) applied to the original PII to match users. If your data involves a lot of PII and PHI, Segment recommendeds that you send this data to Segment in its original, non-hashed format. You can then rely on Segment's privacy tools and destination-specific configurations to ensure that data is hashed appropriately when sent to destinations that require hashed PII. This approach helps maintain the integrity and usability of the data while ensuring privacy and compliance. + +### User data formatting Segment applies formatting to User Data Parameters as follows: 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 b7d51dc162..45391296ed 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 @@ -34,7 +34,7 @@ To connect the Google Analytics 4 Web destination: After you've set up and enabled the Set Configuration Mapping, enable at least one event in your **Mappings** tab. From there, view your events and parameters using the Google [Realtime](https://support.google.com/analytics/answer/9271392){:target="_blank"} or[DebugView](https://support.google.com/analytics/answer/7201382){:target="_blank"} reports. These two reports show you the events users trigger on your website as they occur. The DebugView report requires additional configuration before you can use it. Additional tools for debugging are to view all your Google enabled tracking via https://tagassistant.google.com(https://tagassistant.google.com){:target=”_blank”} or in your browser’s Dev Tools, view GA4 collect requests by filtering by /collect. -Google Analytics automatically populates some events and parameters. For example, there are [Automatically Collected] (https://support.google.com/analytics/answer/9234069){:target=”_blank”} events collected by triggering the Set Configuration Mapping. Calling gtag(‘config’) and enabling [Enhanced Measurement events](https://support.google.com/analytics/answer/9216061){:target=”_blank”}, which are controlled by toggling “on” in your GA4 Admin panel, use event listeners to send events. All events tracked via GA4 Web populate some commonly used parameters like `page_location` without additional configuration. Review the [Google Analytics event parameters](https://support.google.com/analytics/table/13594742){:target=”_blank” documentation for more information. +Google Analytics automatically populates some events and parameters. For example, there are [Automatically Collected](https://support.google.com/analytics/answer/9234069){:target=”_blank”} events collected by triggering the Set Configuration Mapping. Calling gtag(‘config’) and enabling [Enhanced Measurement events](https://support.google.com/analytics/answer/9216061){:target=”_blank”}, which are controlled by toggling “on” in your GA4 Admin panel, use event listeners to send events. All events tracked via GA4 Web populate some commonly used parameters like `page_location` without additional configuration. Review the [Google Analytics event parameters](https://support.google.com/analytics/table/13594742){:target=”_blank” documentation for more information. ### Recommended events @@ -206,4 +206,4 @@ Yes. In the Set Configuration Mapping, click Show All Fields and scroll to Send ### Differences between the Google Analytics 4 Cloud and Google Analytics 4 Web destinations -Segment's [Google Analytics 4 Cloud](/docs/connections/destinations/catalog/actions-google-analytics-4/) server-side destination uses Google's Measurement Protocol API to send event data server to server, whereas Segment's [Google Analytics 4 Web](/docs/connections/destinations/catalog/actions-google-analytics-4-web/) device-mode destination loads the gtag.js library client-side and uses Segment's event data to map to gtag.js events directly. Each destination has its own advantages and disadvantages. Your choice between the two depends on your specific use case, technical expertise, and the platforms from which you want to track data. \ No newline at end of file +Segment's [Google Analytics 4 Cloud](/docs/connections/destinations/catalog/actions-google-analytics-4/) server-side destination uses Google's Measurement Protocol API to send event data server to server, whereas Segment's [Google Analytics 4 Web](/docs/connections/destinations/catalog/actions-google-analytics-4-web/) device-mode destination loads the gtag.js library client-side and uses Segment's event data to map to gtag.js events directly. Each destination has its own advantages and disadvantages. Your choice between the two depends on your specific use case, technical expertise, and the platforms from which you want to track data. diff --git a/src/connections/destinations/catalog/actions-marketo-static-lists/index.md b/src/connections/destinations/catalog/actions-marketo-static-lists/index.md new file mode 100644 index 0000000000..b85e0ba9a2 --- /dev/null +++ b/src/connections/destinations/catalog/actions-marketo-static-lists/index.md @@ -0,0 +1,97 @@ +--- +title: Marketo Static Lists (Actions) Destination +hide-boilerplate: true +strat: adobe +id: 65302a514ce4a2f0f14cd426 +--- +> info "Marketo Static Lists vs Marketo Static Lists (Actions) Destinations" + +Marketo Static Lists (Actions) is a rebuild of the classic destination that provides the following benefits: + +- **Streamlined setup process** - Marketo Static Lists (Actions) has a streamlined default setup process, making it faster to get started in a way that "just works". +- **More control** - Actions-based destinations allow you to define the mapping between the data Segment receives from your sources, and the data Segment sends to Marketo. +- **Default property mappings** - Default mappings from the Segment like event, timestamp, and more allows data to be mapped correctly without any setup required. + +## Overview + +The Marketo Static Lists (Actions) destination lets you sync users into Marketo as a **List**, allowing you to run email campaigns in Marketo without having to manually find and upload a refreshed csv of users. This documentation explains how to set up Marketo in Segment, and what to expect in your Marketo UI. + +## Details + +- **Supports Engage**: Yes +- **Supports RETL**: Yes +- **Engage Destination type**: List +- **Must create audience_name field before Engage can update those values?**: No. You don't need to create the _list_ in Marketo, however you do need to create the folder Segment will create the list in. +- **Audience appears as**: A list in the folder you created, in the Marketo Lead Database under Group Lists. +- **Destination rate limit**: 100 calls per 20 seconds, which is shared among all third-party API services +- **Lookback window allowed**: Yes +- **Client or Server-Side Connection**: Server-side + +{% include content/sync-frequency-note.md %} + +## Configuring Marketo Static Lists + +> success "Good to know:" +> To set up Marketo, you need Marketo administrator access. If you don't have that access, work with the administrator for your organization. + +### Step 1: Create an API-Only Marketo user + +In this step, you'll create an API-Only Marketo user with both Access API and Lead Database access. + +1. You can use an existing role with these permissions, or create a new role that has both Access API and Access Lead Database permissions. (Do this in Marketo by going to **Admin**→ **Users & Roles** → **Roles**). +2. Go to **Admin** → **Users & Roles** → **Users** → **Invite New User** and create a new **API Only user** with the role that has both Access API and Lead Database permissions. **Be sure to check the API Only box.** + +### Step 2: Create a Marketo Launchpoint Service + +1. Go to **Admin** → **Integration** → **LaunchPoint** → **New** +2. Create a new service. In the Service field, select `Custom`, and in the **API Only User** field, select the user you created in step 1. +3. Write down the **Client Id** and **Client Secret** for this service, as you will need it when configuring the destination settings. + +### Step 3: Create a Marketo Lead Database folder and get your Marketo Endpoint + +1. Go to your Marketo Lead Database, and create a new folder under Group Lists. After connecting, each Engage audience shows up as a list in this folder. + +2. Before you continue to the next step, in Marketo, go to **Admin → Web Services**, and copy or write down the REST API Endpoint. **Be sure to copy the REST endpoint and not the SOAP endpoint.** You'll need that in the next step. + +> warning "Warning:" +> Do not create a list in the folder for the audience. Segment creates the list for you! + +### Using Marketo Static Lists (Actions) destination with Engage + +1. From your Segment workspace, go to **Engage → Engage Settings → Destinations → Add Destination**, and then Search for Marketo Static Lists (Actions). +2. In the destination settings, enter the **Client Id**, **Client Secret**, **Endpoint**, and **Folder Name** from the LaunchPoint service and folder you created in Steps 2 and 3. For **Endpoint**, note the Endpoint from Step 3 above. +3. Select the toggle to enable the Marketo Static Lists (Actions) destination. +4. Navigate to the **Mappings** tab, click **Add Mapping**, and select **Add to List**. +6. Click **Save**, and make sure to enable the mapping. +7. On the **Mappings** tab, click **Add Mapping**, and select **Remove from List**. +8. Click **Save**, and make sure you enable the mapping. +9. Navigate to the Engage Audiences tab, and create a new audience. +10. Give your audience a name, some event and trait criteria, then click **Preview**. +11. Select **Marketo Static Lists** as a destination for the Audience. +12. In the settings that appear in the side panel, toggle the **Send Track** option on, and don't change the **Audience Entered/Audience Exited** event names. +13. Click **Save Settings**. + +### Using Marketo Static Lists (Actions) destination with RETL + +1. Navigate to your data warehouse, and add Marketo Static Lists (Actions) as a destination. +2. From your model, click **Add Mapping**, and select your Marketo Marketo Static Lists (Actions) destination, and the **Add to List** Action. +3. If you already have a list created in Marketo, fill in the List ID field. If you want Segment to create a list in Marketo, fill in the List name field. +4. Finish setting up the rest of the action. +5. Click **Save Mapping**. + +When you save the mapping, a list is created in Marketo. You can update the list the mapping syncs to at any time. + +> info "" +> Only users with an email address appear in the list in Marketo. Users with multiple email addresses as external ids appear in the list once for each email address. + +You can view the audience in Marketo by going to **Lead Database→ Group Lists→Name of folder you created in Step 3 → Audience name** + +## Troubleshooting + +#### Not seeing an audience in Marketo? +Check that you followed all of the set up steps. Wait six or more hours after setup for your audience to start appearing in Marketo. Check that you didn't create a list in the folder for the audience - Segment creates the list for you, and an existing one can conflict. Check that the audience members you expect have an email address on their profile. + +#### Audience size is smaller than expected +Only users in the audience who also have an email address are uploaded to the list. You may need to adjust your query to filter out users without an email so you can get a better estimate of how many users will appear on the list. In the example below, we added an AND condition where users have a Custom trait of `email` which `exists`. + +If a user has multiple email addresses, each address appears once in the Marketo list. diff --git a/src/connections/destinations/catalog/actions-mixpanel/index.md b/src/connections/destinations/catalog/actions-mixpanel/index.md index 794585b627..790c7073ca 100644 --- a/src/connections/destinations/catalog/actions-mixpanel/index.md +++ b/src/connections/destinations/catalog/actions-mixpanel/index.md @@ -140,3 +140,7 @@ analytics.track('Example Event', { custom_group_key : 'group1' }); ### Failed events due to timestamp If your integration is correct and you are still seeing failed events, review and verify that you are sending all date properties as UTC time format, due to Mixpanel timestamp format requirements. + +### Why is Boardman, Oregon appearing in my users' profile location field? + +If you are seeing traffic from Boardman or see Segment as the browser, you might be sending server side calls to your Mixpanel (Actions) destination. To correctly populate your users' profile location field, manually pass the IP information in the context object from the server. diff --git a/src/connections/destinations/catalog/gainsight-px/index.md b/src/connections/destinations/catalog/gainsight-px/index.md index 66fc91f7d1..685977e9d5 100644 --- a/src/connections/destinations/catalog/gainsight-px/index.md +++ b/src/connections/destinations/catalog/gainsight-px/index.md @@ -26,7 +26,7 @@ Your changes appear in the Segment CDN in about 45 minutes, and then Analytics.j > 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. -Don't miss out the [The Configuration Checklist - Segment.com](https://www.gainsight.com/product-experience/){:target="_blank"} in Gainsight PX! +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/marketo-static-lists/index.md b/src/connections/destinations/catalog/marketo-static-lists/index.md index 420a002100..00d25762ef 100644 --- a/src/connections/destinations/catalog/marketo-static-lists/index.md +++ b/src/connections/destinations/catalog/marketo-static-lists/index.md @@ -4,6 +4,14 @@ hide-boilerplate: true strat: adobe id: 5b73515e6170785a5e62978c --- + +> warning "Deprecation Notice" +> Segment is deprecating this destination. Segment will create an instance of the [Marketo Static Lists (Actions)](/docs/connections/destinations/catalog/actions-marketo-static-lists/) destination for each properly configured version of the Personas Marketo Static Lists classic destination in your workspace. Settings and configurations will be migrated automatically. +> +> We are disabling all existing Personas Marketo Static List destinations. You can still access your existing configuration, but please refrain from enabling the destination, as it is set to be deprecated. You will no longer be able to create new instances of Personas Marketo Static Lists. Please check out [Marketo Static Lists (Actions)](/docs/connections/destinations/catalog/actions-marketo-static-lists/) to set up a new instance of Marketo Static Lists. +> +> For questions or issues contact [friends@segment.com](mailto:friends@segment.com). + > info "Marketo vs Marketo Static Lists Destinations" > This page is about the **Marketo Static Lists** destination developed specifically for use with Engage. Marketo has strict API usage limits on the [main Marketo destination](/docs/connections/destinations/catalog/marketo-v2/), so although the main destination can receive events from Engage, use the Marketo *Static Lists* destination with Engage instead. diff --git a/src/connections/functions/insert-functions.md b/src/connections/functions/insert-functions.md index a825194866..c82cda282f 100644 --- a/src/connections/functions/insert-functions.md +++ b/src/connections/functions/insert-functions.md @@ -472,9 +472,9 @@ No, specifying an endpoint is not always required for insert functions. If your However, if your function aims to enrich event data by fetching additional information from an external service, then you must specify the endpoint. This would be the URL of the external service's API where the enriched or captured data is sent. -##### Can I create a device-mode destination? +##### Can I use Insert Functions with Device Mode destinations? -No, destination insert functions are currently available as cloud-mode destinations only. Segment is in the early phases of exploration and discovery for supporting customer "web plugins" for custom device-mode destinations and other use cases, but this is unsupported today. +No, Destination Insert Functions are currently available for use with Cloud Mode (server-side) destinations only. Segment is in the early phases of exploration and discovery for supporting customer web plugins for custom Device Mode destinations and other use cases, but this is unsupported today. ##### Can I connect an insert function to multiple destinations? @@ -484,9 +484,9 @@ Yes, an insert function can be connected to multiple destinations. Yes, you can have both destination filters and destination insert functions in the same connection. -##### Are insert functions invoked before or after destination filters are applied? +##### Are insert functions invoked before or after Destination Filters are applied? -Segment's data pipeline applies destination filters before invoking insert functions. +Segment's data pipeline applies Destination Filters before invoking Insert Functions. ##### Why am I receiving a 500 Internal Error when saving the same of the destination insert function? 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 9306e44a93..c460876e2b 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 @@ -3,12 +3,12 @@ title: Analytics Swift Optimizely Full Stack Plugin strat: swift --- -Add OptimizelyFullStack session tracking support to your applications via this plugin for [Analytics-Swift](https://github.com/segmentio/analytics-swift) +Add OptimizelyFullStack session tracking support to your applications using this plugin for [Analytics-Swift](https://github.com/segmentio/analytics-swift) > warning "" -> This plugin simply adds session data for OptimizelyFullStack, and events are sent via Cloud Mode. +> This plugin simply adds session data for OptimizelyFullStack, and events are sent using Cloud Mode. -## Getting Started +## Getting started 1. In your Segment source dashboard, enable the "Optimizely Full Stack" destination (*not the "Optimizely Web" destination*). 2. Include your Optimizely project's `datafile` URL in your Segment settings. @@ -18,14 +18,16 @@ Add OptimizelyFullStack session tracking support to your applications via this p ## Adding the dependency -### via Xcode -In the Xcode `File` menu, click `Add Packages`. You'll see a dialog where you can search for Swift packages. In the search field, enter the URL to this repo. +### Using Xcode +In the Xcode `File` menu, click `Add Packages`. You'll see a dialog where you can search for Swift packages. In the search field, enter the URL to this repo: +``` https://github.com/segment-integrations/analytics-swift-integration-optimizely-full-stack +``` You'll then have the option to pin to a version, or specific branch, as well as which project in your workspace to add it to. Once you've made your selections, click the `Add Package` button. -### via Package.swift +### Using Package.swift Open your Package.swift file and add the following do your the `dependencies` section: @@ -55,9 +57,10 @@ let analytics = Analytics(configuration: Configuration(writeKey: "")) ``` -Please Note : Here "optimizelyKey" you can get from Optimizely Dashboard Settings. You can use development or production SDK key respectively. +> info "" +> Generate your `optimizelyKey` from the Optimizely Dashboard Settings. You can use a development or production SDK key. -Your events will now be given OptimizelyFullStack session data and start flowing to OptimizelyFullStack via Cloud Mode. +Your events will now be given OptimizelyFullStack session data and start flowing to OptimizelyFullStack in Cloud Mode. ### Track @@ -74,7 +77,7 @@ 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). +> **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). 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`. @@ -84,14 +87,14 @@ Invoking a Segment `identify` event sets Segment `traits` as Optimizely `attribu ### Notification Listeners -Notification listeners are not available for Segment `track` events when implementing Optimizely using Segment using cloud-mode. [Notification listeners](https://docs.developers.optimizely.com/full-stack/docs/notification-listeners) are still available with any native call invoked from your Optimizely client instance. +Notification listeners are not available for Segment `track` events when implementing Optimizely using Segment using cloud-mode. [Notification listeners](https://docs.developers.optimizely.com/full-stack/docs/notification-listeners){:target="_blank”} are still available with any native call invoked from your Optimizely client instance. ## Engage Follow these instructions on how to set up Engage and Optimizely: -* [Using Segment Personas and Optimizely Full Stack for Omnichannel Experiments](https://www.optimizely.com/insights/blog/segment-personas-optimizely-full-stack-omnichannel-experiments/){:target="_blank"} +[Using Segment Personas and Optimizely Full Stack for Omnichannel Experiments](https://www.optimizely.com/insights/blog/segment-personas-optimizely-full-stack-omnichannel-experiments/){:target="_blank"} ## GDPR Support -Segment supports deleting/suppressing users in Optimizely using the [Segment app](/docs/privacy/user-deletion-and-suppression/). In order to do this however, you will need to create a [Personal Access Token](https://developers.optimizely.com/x/authentication/personal-token/) in Optimizely and provide it as the value of the Access Token setting. +Segment supports deleting/suppressing users in Optimizely using the [Segment app](/docs/privacy/user-deletion-and-suppression/). In order to do this however, you will need to create a [Personal Access Token](https://developers.optimizely.com/x/authentication/personal-token/){:target="_blank”} in Optimizely and provide it as the value of the Access Token setting. diff --git a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/quantcast-swift.md b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/quantcast-swift.md index f7a94c9e38..4caad7a323 100644 --- a/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/quantcast-swift.md +++ b/src/connections/sources/catalog/libraries/mobile/apple/destination-plugins/quantcast-swift.md @@ -1,18 +1,20 @@ --- -title: Analytics Swift Optimizely Full Stack Plugin +title: Analytics Swift Quantcast Plugin strat: swift --- ## Adding the dependency -### via Xcode -In the Xcode `File` menu, click `Add Packages`. You'll see a dialog where you can search for Swift packages. In the search field, enter the URL to this repo. +### Using Xcode +In the Xcode `File` menu, click `Add Packages`. You'll see a dialog where you can search for Swift packages. In the search field, enter the URL to the following repo: +``` https://github.com/segment-integrations/analytics-swift-integration-quantcast +``` You'll then have the option to pin to a version, or specific branch, as well as which project in your workspace to add it to. Once you've made your selections, click the `Add Package` button. -### via Package.swift +### Using Package.swift Open your Package.swift file and add the following do your the `dependencies` section: @@ -42,4 +44,4 @@ let analytics = Analytics(configuration: Configuration(writeKey: " info "Segment doesn't have an ungroup call" +> If you're using a device-mode destination that has a method for ungrouping users, you can invoke it directly on the client side [using Segment's ready() method](/docs/connections/sources/catalog/libraries/website/javascript/#ready). +> +> For cloud-mode destinations, you can [create a Destination Function](/docs/connections/functions/destination-functions/) to ungroup users. + + Here's the payload of a typical Group call, with most [common fields](/docs/connections/spec/common/) removed: ```json diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index c7b65c395b..eb20b27c4c 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -64,7 +64,7 @@ You can use the following time comparison operators in your audience definition: - `after next` Only ISO timestamps can be used with these operators. Additionally, these time comparison operators exclusively apply to custom traits. -If the timestamp is not a valid ISO timestamp (for example, a trailing `Z` is missing), Segment won't process the audience in real-time. Learn more about [real-time compute compared to batch](#real-time-compute-compared-to-batch). +If the timestamp is not a valid ISO timestamp (for example, a trailing `Z` is missing), Segment won't process the audience in real-time. Learn more about [real-time compute compared to batch](/docs/engage/audiences/#real-time-compute-compared-to-batch). ### Funnel Audiences diff --git a/src/guides/intro-impl.md b/src/guides/intro-impl.md index 6cd8257bed..19d039f682 100644 --- a/src/guides/intro-impl.md +++ b/src/guides/intro-impl.md @@ -105,8 +105,5 @@ If you're seeing errors thrown by your destinations, you might have an implement ## Segment Terraform Provider -> info "" -> Segment Terraform is currently in the pilot phase and is governed by Segment’s [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. - Segment has a [Terraform](https://www.terraform.io/){:target="_blank"} provider, powered by the Public API, that you can use to manage Segment resources, automate cloud deployments, and change control. Take a look at the [Segment provider documentation](https://registry.terraform.io/providers/segmentio/segment/latest/docs){:target="_blank"} on Terraform to see what's supported. diff --git a/src/privacy/consent-management/consent-in-unify.md b/src/privacy/consent-management/consent-in-unify.md index 6ec7b835e9..c4999da1e1 100644 --- a/src/privacy/consent-management/consent-in-unify.md +++ b/src/privacy/consent-management/consent-in-unify.md @@ -48,3 +48,12 @@ If you use Protocols, the Segment app automatically adds the Segment Consent Pre > Segment has standardized a series of reserved event names that have special semantic meaning and maps these events to tools that support them. > > See the [Semantic Events](/docs/connections/spec/semantic/) docs for more details. + +### Sharing consent with Actions destinations + +In addition to enforcing consent in Connections, you may want these preferences to flow to each destination so your destinations can be aware when an end-user revokes their consent. You can use the [Destination Actions framework](/docs/connections/destinations/destination-actions) to edit the destination's mapping and copy the consent preferences from the Segment Consent Preference Updated event to a destination-specified consent field. + +If you use Destination Actions to send consent information to your destinations, the Segment Consent Preference Updated event should **only** include information about a user's consent preferences because this event is sent regardless of an end-user's consent preferences. + +> info "Sharing consent with Classic Destinations is not available" +> Segment only supports sharing consent with Actions Destinations. \ No newline at end of file diff --git a/src/unify/Traits/predictions/index.md b/src/unify/Traits/predictions/index.md index beaab0add7..c6bb761321 100644 --- a/src/unify/Traits/predictions/index.md +++ b/src/unify/Traits/predictions/index.md @@ -5,7 +5,7 @@ redirect_from: - "/engage/audiences/predictive-traits" --- -Predictions, Segment's artificial intelligence and machine learning feature, lets you predict the likelihood that users will perform any event tracked in Segment. +Predictions, Segment's artificial intelligence and machine learning feature, lets you predict the likelihood that users will perform any event tracked in Segment. With Predictions, you can identify users with, for example, a high propensity to purchase, refer a friend, or use a promo code. Predictions also lets you predict a user's lifetime value (LTV). diff --git a/src/unify/Traits/predictions/using-predictions.md b/src/unify/Traits/predictions/using-predictions.md index a92a52a75f..e82aada57c 100644 --- a/src/unify/Traits/predictions/using-predictions.md +++ b/src/unify/Traits/predictions/using-predictions.md @@ -104,6 +104,10 @@ Segment rebuilds the machine learning model every 30 days. Every seven days. +#### Can I update Predictive Traits and Predictive Audiences? + +Predictive Traits can't be updated, but Predictive Audiences can. To modify a Predictive Trait, you'll need to recreate it. + #### How many predictions can I have? You get five predictions as part of Engage Foundations or Unify Plus. To purchase more predictions, reach out to your CSM. @@ -120,3 +124,5 @@ Yes. Keep the following in mind when you work with Predictions: - **Predictions made for more than 100 million users will fail.** Segment recommends making predictions only for non-anonymous users, or, as an alternative, use the Starting Cohort to narrow down the audience for which you want to make a prediction. - **Predictions may not work as intended if you track more than a thousand unique events in your workspace.** If this applies to your use case, [contact Segment Support](https://segment.com/help/contact/){:target="_blank"} for help with removing unused events, which will allow you to create predictions. +- **Prediction is failing with error "We weren't able to create this prediction because your requested prediction event is not being tracked anymore. Please choose a different prediction event and try again."** Predictions are computed based on the available data and the conditions specified for the trait. A gap in tracking events for seven continuous days could potentially affect the computation of the prediction. +Nevertheless, once data tracking resumes and there is enough data, the prediction should be recomputed.