diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 6afce35355..86c53e1acf 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-06-11 +# destination categories last updated 2024-06-13 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 1604be5415..ce3e112c93 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-06-11 +# destination data last updated 2024-06-13 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -31684,6 +31684,64 @@ items: actions: [] presets: [] partnerOwned: false +- id: 66048cbafa5a03fc49b153d3 + display_name: FL0 + name: FL0 + slug: fl0 + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/fl0 + previous_names: + - FL0 + website: http://www.fl0.com + status: PUBLIC_BETA + categories: + - Advertising + - Advertising + logo: + url: https://cdn-devcenter.segment.com/d332929c-6597-44ea-943e-32a661d19a7c.svg + mark: + url: https://cdn-devcenter.segment.com/6efd7c4d-48f7-4341-9ad7-e3b8fc4b60f8.svg + methods: + track: false + identify: false + group: false + alias: false + screen: false + page: false + platforms: + browser: true + mobile: true + server: true + warehouse: false + cloudAppObject: false + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + connection_modes: + device: + web: false + mobile: false + server: false + cloud: + web: true + mobile: true + server: true + settings: + - name: apiKey + type: string + defaultValue: '' + description: Your FL0 API key + required: true + label: API Key + actions: [] + presets: [] + partnerOwned: true - id: 626153e34fb8f47a32f8deab display_name: Flagship.io name: Flagship.io @@ -61284,7 +61342,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: ptNGbNYvbrkDxVYR9PMvKd + - id: jx15J7oPdUCkGXNeNNGtib sortOrder: 0 fieldKey: email label: Email @@ -61304,7 +61362,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5rv4YM3MiJYdEMC7YLHeWR + - id: drjy6gJswEBntDQ17AEPrr sortOrder: 1 fieldKey: traits label: Traits @@ -61318,7 +61376,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9eDFSkpsBNm5XacwU1YdXr + - id: h9RfYbzjYsXgje8CfGGUfF sortOrder: 2 fieldKey: sent_at label: Sent At @@ -61332,7 +61390,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7XngHMRYUttGtuQ3XA1yhU + - id: p5vJctET59eFzVxCYmfVcE sortOrder: 3 fieldKey: context label: Context properties @@ -61346,10 +61404,10 @@ items: choices: null dynamic: false allowNull: false - - id: rwMCHDsFfuw2J26YqhnmYJ + - id: 5VEgsQrshTSYr6HcNs9LFc sortOrder: 4 fieldKey: device_ip - label: Context properties + label: Device IP type: STRING description: The device IP collected from the context placeholder: '' @@ -61360,7 +61418,7 @@ items: choices: null dynamic: false allowNull: false - - id: gcgEf7jsUmhCvAMY63ZA8p + - id: jF5CaTV1rqy7gWVWANtjAJ sortOrder: 5 fieldKey: message_id label: MessageId @@ -61382,7 +61440,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: 86PUa4cESNYVK1SVgSEB2L + - id: h8ZXuGzhe5gN3rHvs1491D sortOrder: 0 fieldKey: email label: Email @@ -61402,7 +61460,7 @@ items: choices: null dynamic: false allowNull: false - - id: ikk6tvPBSYcDyvBxURrbH3 + - id: ALiLU2AQfMTGNyShPHhaQ sortOrder: 1 fieldKey: event label: Event Name @@ -61416,7 +61474,7 @@ items: choices: null dynamic: false allowNull: false - - id: mgnF8ByfjeZT3jvQF1iWyw + - id: 52L9g9ccvYajnAv8CR3TSY sortOrder: 2 fieldKey: properties label: Event properties @@ -61430,7 +61488,7 @@ items: choices: null dynamic: false allowNull: false - - id: rND1ZF19xpTmZfveB3qcKa + - id: uY1iTphvevFnFQaSeM7Kth sortOrder: 3 fieldKey: sent_at label: Sent At @@ -61444,7 +61502,7 @@ items: choices: null dynamic: false allowNull: false - - id: pvaR1nUMuh22oyKgu3bhbr + - id: 8j43wUjbTnJAsEqTMYnrzM sortOrder: 4 fieldKey: context label: Context properties @@ -61458,10 +61516,10 @@ items: choices: null dynamic: false allowNull: false - - id: nHdC4VfXDfDyYrUnuwvL1 + - id: 9u9qhV3JbX1maoBq23WMPk sortOrder: 5 fieldKey: traits - label: Context properties + label: Traits type: OBJECT description: Traits inherited from the context object placeholder: '' @@ -61472,10 +61530,10 @@ items: choices: null dynamic: false allowNull: false - - id: hLcKRp4jsmHCCqEcDo6yFJ + - id: budJUASe5j8t2MtRErnuMQ sortOrder: 6 fieldKey: device_ip - label: Context properties + label: Device IP type: STRING description: The device IP collected from the context placeholder: '' @@ -61486,7 +61544,7 @@ items: choices: null dynamic: false allowNull: false - - id: r4PpAdZDAzfiLVQLECbbho + - id: heeanPv7j1yYbYeWbK3kxe sortOrder: 7 fieldKey: message_id label: MessageId @@ -61501,8 +61559,8 @@ items: dynamic: false allowNull: false presets: - - actionId: c85rTqgtyzEgfPBKPNqDa8 - name: Track Calls + - actionId: 66Fs5MBLEsh1ZwXRyGoxff + name: Identify Calls fields: email: '@if': @@ -61512,23 +61570,19 @@ items: '@path': $.traits.email else: '@path': $.email - event: - '@path': $.event - properties: - '@path': $.properties + traits: + '@path': $.traits sent_at: '@path': $.timestamp context: '@path': $.context - traits: - '@path': $.context.traits device_ip: '@path': $.context.ip message_id: '@path': $.messageId - trigger: type = "track" - - actionId: 66Fs5MBLEsh1ZwXRyGoxff - name: Identify Calls + trigger: type = "identify" + - actionId: c85rTqgtyzEgfPBKPNqDa8 + name: Track Calls fields: email: '@if': @@ -61538,17 +61592,21 @@ items: '@path': $.traits.email else: '@path': $.email - traits: - '@path': $.traits + event: + '@path': $.event + properties: + '@path': $.properties sent_at: '@path': $.timestamp context: '@path': $.context + traits: + '@path': $.context.traits device_ip: '@path': $.context.ip message_id: '@path': $.messageId - trigger: type = "identify" + trigger: type = "track" partnerOwned: true - id: 5695db50e954a874ca44ce63 display_name: Kochava diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index bb46c0d845..e2c4e15d7b 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-06-11 +# destination data last updated 2024-06-13 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/regional-supported.yml b/src/_data/catalog/regional-supported.yml index 1fd813a183..be14e00f35 100644 --- a/src/_data/catalog/regional-supported.yml +++ b/src/_data/catalog/regional-supported.yml @@ -209,6 +209,15 @@ sources: - us endpoints: - us + - id: nEjnxv4kbB + display_name: ConfigCat + hidden: false + slug: configcat + url: connections/sources/catalog/cloud-apps/configcat + regions: + - us + endpoints: + - us - id: sTypQz3Fd2 display_name: Customer.io hidden: false diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 0624c1cc40..018e312dea 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-06-11 +# source categories last updated 2024-06-13 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 e2713cae12..ea53ec8545 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-06-11 +# sources last updated 2024-06-13 items: - id: 8HWbgPTt3k display_name: .NET @@ -437,6 +437,24 @@ items: categories: - Personalization - Customer Success + - id: nEjnxv4kbB + display_name: ConfigCat + isCloudEventSource: true + slug: configcat + url: connections/sources/catalog/cloud-apps/configcat + hidden: false + regions: + - us + endpoints: + - us + source_type: cloud-app + description: ConfigCat Feature Flags + logo: + url: >- + https://cdn-devcenter.segment.com/9fd2ff75-8f2f-418c-9fef-f62772c5d793.svg + categories: + - Feature Flagging + - A/B Testing - id: sTypQz3Fd2 display_name: Customer.io isCloudEventSource: true diff --git a/src/connections/destinations/catalog/fl0/index.md b/src/connections/destinations/catalog/fl0/index.md index 4dbead6ed8..f16692bed4 100644 --- a/src/connections/destinations/catalog/fl0/index.md +++ b/src/connections/destinations/catalog/fl0/index.md @@ -2,24 +2,61 @@ title: FL0 Destination id: 66048cbafa5a03fc49b153d3 beta: true -hidden: true --- -{% include content/plan-grid.md name="actions" %} - [FL0](https://fl0.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is the Product Intelligence Platform that converts customer interactions into revenue opportunities. -This destination is maintained by FL0. For any issues with the destination, [contact their Support team](mailto:support@fl0.com). +This destination is maintained by FL0. For any issues with the destination, [contact the FL0 Support team](mailto:support@fl0.com). + ## Getting started 1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank”} search for "FL0". 2. Select FL0 and click **Add Destination** -3. Select an existing source to connect to FL0 (Actions). -4. Go to your [FL0 Organization](https://go.fl0.com){:target="_blank"} +3. Select an existing source to connect to FL0. +4. Go to your [FL0 Organization](https://go.fl0.com){:target="_blank"}. 5. Click on **Connections** in the left-hand menu. 6. Click **Add source** in the top-right of the page and select **Segment**. 7. Copy the **API Key** from the Segment properties. 8. Enter the **API Key** in the FL0 destination settings in Segment. -{% include components/actions-fields.html %} + +## Supported methods + +The FL0 destination supports the following methods, as specified in the [Segment Spec](/docs/connections/spec). + +### Page + +Send [Page](/docs/connections/spec/page) calls to FL0 to measure what pages your users and companies are visiting. For example: + +```js +analytics.page() +``` + +Segment sends Page calls to FL0 as automatically tagged events called `Page View`. + + + +### Identify + +Send [Identify](/docs/connections/spec/identify) calls to notify FL0 of your logged-in users. For example: + +```js +analytics.identify('userId123', { + email: 'john.doe@example.com' +}); +``` + +Segment sends Identify calls to FL0 as an `Identify` event. + + +### Track + +Send [Track](/docs/connections/spec/track) calls to measure custom events that happen within your app. For example: + +```js +analytics.track('Login Button Clicked') +``` + +Segment sends Track calls to FL0 as a tagged event with the same name as the event, for example `Login Button Clicked`. + diff --git a/src/connections/destinations/catalog/freshsales-suite-crm/index.md b/src/connections/destinations/catalog/freshsales-suite-crm/index.md index a8d9e03da4..3d8916680b 100644 --- a/src/connections/destinations/catalog/freshsales-suite-crm/index.md +++ b/src/connections/destinations/catalog/freshsales-suite-crm/index.md @@ -55,7 +55,7 @@ userId is a mandatory field which is used to identify the contact in Freshsales. #### Traits -Traits are pieces of information you know about a user that are included in an identify method. +Traits are pieces of information you know about a user. They are a mandatory part of the [Identify method](/docs/connections/spec/identify/). #### Default Traits diff --git a/src/connections/destinations/catalog/kochava/index.md b/src/connections/destinations/catalog/kochava/index.md index 4317e396b4..6efa954d36 100644 --- a/src/connections/destinations/catalog/kochava/index.md +++ b/src/connections/destinations/catalog/kochava/index.md @@ -34,7 +34,7 @@ Kochava is able to accommodate any post-install track event that is passed into `context.device.type` (has value of 'ios' or 'android'), `context.device.advertising_id` (IDFA on iOS and adID on Android) **and** `context.device.id` are required in all calls to Kochava. -To automatically collect `context.device.advertising_id`, on Android you must include the Google Mobile Ads component of Google Play services as [described here](https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project){:target="_blank"}, and on iOS you must include the iAd framework. +To automatically collect `context.device.advertising_id`, on Android you must include the Google Mobile Ads component of Google Play services as described in the [Google Play services setup documentation](https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project){:target="_blank"}. On iOS, you must include the [AdSupport and Ad Tracking Transparency frameworks](/docs/connections/sources/catalog/libraries/mobile/ios/#ad-tracking-and-idfa). If making calls outside of Segment's iOS or Android library (eg post-install events sent from a server-side library), you'll need to ensure that you collect and send `context.device.type`, `context.device.advertising_id` **and** `context.device.id`. @@ -62,55 +62,7 @@ Analytics.track( To create a Kochava-Certified Postback that will send campaign information to Segment after attributing an `Application Installed` event, follow [Kochava's Postback set up documentation](https://support.kochava.com/campaign-management/create-a-kochava-certified-postback){:target="_blank"}. -### Apple Search Ads -To get iAD attribution data into Kochava, you must include the [analytics-ios-iads-attribution](https://github.com/segmentio/analytics-ios-iads-attribution){:target="_blank"} dependency and version 3.6.0 or higher of the [Analytics SDK](https://github.com/segmentio/analytics-ios){:target="_blank"}. - -To install it, simply add the following line to your Podfile: - -``` -pod "Analytics" -pod "Analytics-iAds-Attribution" -``` -Then import the header and initialize the configuration: - -``` -#import - -// Initialize the configuration as you would normally. -SEGAnalyticsConfiguration *configuration = [SEGAnalyticsConfiguration configurationWithWriteKey:@"YOUR_WRITE_KEY"]; -... - -// Configure the client with the iAD middleware to attach iAd properties. -configuration.middlewares = @[ [SEGADTracker middleware] ]; - -[SEGAnalytics setupWithConfiguration:configuration]; -``` - -When it is able to retrieve iAd information, it will augment all `track` events. The attribution information is transformed to Segment context this way: - -```objc -[analytics track:@"Application Installed", - properties: nil, - options: @{ - @"context" : @{ - @"campaign" : @{ - @"provider" : @"Apple", - @"click_date" : attributionInfo[@"iad-click-date"], - @"conversion_date" : attributionInfo[@"iad-conversion-date"], - @"source" : @"iAd", - @"name" : attributionInfo[@"iad-campaign-name"], - @"content" : attributionInfo[@"iad-keyword"], - @"ad_creative" : attributionInfo[@"iad-org-name"], - @"ad_group" : attributionInfo[@"iad-adgroup-name"], - @"id" : attributionInfo[@"iad-campaign-id"], - @"ad_group_id" : attributionInfo[@"iad-adgroup-id"] - } - } - }]; -``` - -Because this information in passed through the context object, this will not be received by other downstream integrations, unless explicitly mapped. Kochava is currently the only integration which supports Apple Search Ads. {% include content/personas.md %} diff --git a/src/connections/destinations/catalog/marketo-static-lists/index.md b/src/connections/destinations/catalog/marketo-static-lists/index.md index 5b14ad4c70..5888cd85d9 100644 --- a/src/connections/destinations/catalog/marketo-static-lists/index.md +++ b/src/connections/destinations/catalog/marketo-static-lists/index.md @@ -6,9 +6,9 @@ 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. +> This destination has been deprecated. Segment created 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 have been migrated automatically. If your Personas Marketo Static List destination is connected to a Journey, [create a new version of your Journey](/docs/engage/journeys/build-journey/#working-with-a-published-journey) to replace the Personas destination with the new Actions destination. > -> 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. +> Segment disabled all existing Personas Marketo Static List destinations, except those connected to a Journey instance. You can still access your existing configuration, but you will not be able to make changes to it. You will also no longer be able to create new instances of Personas Marketo Static Lists. Please refer to [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). diff --git a/src/connections/destinations/catalog/personas-display-video-360/index.md b/src/connections/destinations/catalog/personas-display-video-360/index.md index 7c71336e53..c203f4f2c2 100644 --- a/src/connections/destinations/catalog/personas-display-video-360/index.md +++ b/src/connections/destinations/catalog/personas-display-video-360/index.md @@ -7,11 +7,11 @@ engage: true --- > warning "Deprecation Notice" -> Due to Google retiring certain APIs on March 6, 2024, Segment is deprecating this destination. In February 2024, Segment will create an instance of the [Display and Video (Actions)](/docs/connections/destinations/catalog/actions-display-video-360/) destination for each version of the Personas Google Display and Video 360 classic destination in your workspace. +> Due to Google retiring certain APIs on March 6, 2024, Segment deprecated this destination. Segment created an instance of the [Display and Video (Actions)](/docs/connections/destinations/catalog/actions-display-video-360/) destination for each properly configured version of the Personas Google Display and Video 360 classic destination in your workspace. > -> Settings and configurations will be migrated automatically, but you must take additional action to ensure the destination is properly functioning. For more information, see [Migrate from Personas Google Display & Video 360 Destination ](/docs/connections/destinations/catalog/actions-display-video-360/#migrate-from-personas-google-display-&-video-360-destination) +> Segment automatically migrated destination settings and configurations, but you must take additional action to ensure your migrated destination functions as intended. For more information, see [Migrate from Personas Google Display & Video 360 Destination ](/docs/connections/destinations/catalog/actions-display-video-360/#migrate-from-personas-google-display-&-video-360-destination) > -> Segment is disabling all existing Personas Display and Video 360 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 Display and Video 360. Please check out [Display and Video (Actions)](/docs/connections/destinations/catalog/actions-display-video-360/) to set up a new instance of Google Display and Video 360. +> Segment disabled all existing Personas Display and Video 360 destinations. You can still access your existing configuration, but do not enable the destination, as it has been deprecated. You will no longer be able to create new instances of Personas Display and Video 360. Check out the [Display and Video (Actions)](/docs/connections/destinations/catalog/actions-display-video-360/) documentation if you want to set up a new instance of Google Display and Video 360. > > For questions or issues contact [friends@segment.com](mailto:friends@segment.com). diff --git a/src/connections/functions/insert-functions.md b/src/connections/functions/insert-functions.md index 82cfe131be..bdc07abaf6 100644 --- a/src/connections/functions/insert-functions.md +++ b/src/connections/functions/insert-functions.md @@ -183,6 +183,17 @@ You can read more about [error handling](#destination-insert-functions-logs-and- A payload must come into the pipeline with the attributes that allow it to match your mapping triggers. You can't use an Insert Function to change the event to match your mapping triggers. If an event comes into an Actions destination and already matches a mapping trigger, that mapping subscription will fire. If a payload doesn't come to the Actions destination matching a mapping trigger, even if an Insert Function is meant to alter the event to allow it to match a trigger, it won't fire that mapping subscription. Segment sees the mapping trigger first in the pipeline, so a payload won't make it to the Insert Function at all if it doesn't come into the pipeline matching a mapping trigger. +Unlike Source Functions and Destination Functions, which return multiple events, an Insert Function only returns one event. When the Insert Function receives an event, it sends the event to be handled by its configured mappings. + +If you would like [multiple mappings triggered by the same event](/docs/connections/destinations/actions/#:~:text=Multiple%20mappings%20triggered,Subscription%20Updated%20event.): +1. Create different types of mappings (Identify, Track, Page, etc) or multiple mappings of the same type. +2. Configure the mapping's [trigger conditions](/docs/connections/destinations/actions/#conditions) to look for that event name/type or other available field within the payload. +3. Configure the mapped fields to send different data. + +You can also configure the Insert Function to add additional data to the event's payload before it's handled by the mappings and configure the mapping's available fields to reference the payload's available fields. + +You may want to consider the [context object's](/docs/connections/spec/common/#context) available fields when adding new data to the event's payload. + ## Create settings and secrets {% include content/functions/settings.md %} diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md index 79edb26b42..f48fca17ce 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md @@ -15,6 +15,9 @@ At a high level, when you set up Snowflake for Reverse ETL, the configured user/ ## Set up guide Follow the instructions below to set up the Segment Snowflake connector. Segment recommends you use the `ACCOUNTADMIN` role to execute all the commands below, and that you create a user that authenticates with an encrypted key pair. +> info "" +> Segment has a Terraform provider, powered by the Public API, that you can use to create a Snowflake Reverse ETL source. See the [segment_source (Resource)](https://registry.terraform.io/providers/segmentio/segment/latest/docs/resources/source){:target="_blank”} documentation for more information. + 1. Log in to your Snowflake account. 2. Navigate to *Worksheets*. 3. Enter and run the code below to create a database. diff --git a/src/connections/sources/catalog/cloud-apps/configcat/index.md b/src/connections/sources/catalog/cloud-apps/configcat/index.md new file mode 100644 index 0000000000..55b3da5cc7 --- /dev/null +++ b/src/connections/sources/catalog/cloud-apps/configcat/index.md @@ -0,0 +1,98 @@ +--- +title: ConfigCat Source +id: nEjnxv4kbB +beta: true +--- + +[ConfigCat](https://configcat.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} is a feature flag and remote configuration service that empowers developers to control and customize the functionality of their applications. With ConfigCat, you can easily toggle features on and off, alter their settings, and roll out updates to specific users or groups. Targeting is supported through attributes, percentage-based rollouts, and segmentation. ConfigCat is available for all major programming languages and frameworks. + +This is an [Event Cloud Source](/docs/sources/#event-cloud-sources) which can not only export data into your Segment warehouse, but can also federate the exported data into your other enabled Segment Destinations. + +This source is maintained by ConfigCat. For any issues with the source, [contact their Support team](mailto:support@configcat.com). + +## Getting started + +1. From your workspace's [Sources catalog page](https://app.segment.com/goto-my-workspace/sources/catalog){:target="_blank”} click **Add Source**. +2. Search for "ConfigCat" in the Sources Catalog, select ConfigCat, and click **Add Source**. +3. On the next screen, give the Source a name. + + - The name is used as a label in the Segment app, and Segment creates a related schema name in your warehouse. The name can be anything, but we recommend using something that reflects the source itself and distinguishes amongst your environments (eg. ConfigCat_Prod, ConfigCat_Staging, ConfigCat_Dev). + +4. Click **Add Source** to save your settings. +5. Copy the Write key from the Segment UI. + +### Sending feature flag change events from ConfigCat to Twilio Segment + +1. Open the [integrations tab](https://app.configcat.com/product/integrations){:target="_blank”} on the ConfigCat Dashboard. +2. Click on Twilio Segment's CONNECT button and set the Twilio Segment Write Key acquired while adding the ConfigCat source in Segment. +3. OPTIONAL - Set the proper server of your Twilio Segment account. +4. You're all set. Go ahead and make some changes on your feature flags then check your events in Twilio Segment. + +### Sending feature flag evaluation analytics from ConfigCat to Twilio Segment + +1. Log in to the ConfigCat Dashboard and copy the SDK Key for your Config in the specific Environment. +2. In your application's code, **Configure SDKs:**: + - **ConfigCat SDK:** Initialize with your ConfigCat SDK key. + - **Segment SDK:** Set up with the Segment Write Key acquired while adding the ConfigCat source in Segment. +3. **Integrate Feature Flag Evaluations:** + - During the initialization of the ConfigCat SDK, subscribe to the `flagEvaluated` hook. + - Send feature flag evaluation data to Segment using the `Feature Flag Evaluated` event name. Include the following parameters: + - `feature_flag_key`: the feature flag's key + - `value`: the evaluated feature flag's value or Variation ID + - `variation_id` (optional): the evaluated feature flag's Variation ID + - `user` (optional): the user object used during feature flag evaluation. + - You can find code samples in the [ConfigCat Segment Source documentation](https://configcat.com/docs/integrations/segment/#analytics){:target="_blank”}. + +## Stream + +ConfigCat uses our stream Source component to send Segment event data. It uses a `track` method to send data to Segment. These events are then available in any destination that accepts events, and available in a schema in your data warehouse, so you can query using SQL. + +In the "Feature Flag Evaluation" event, the default behavior for ConfigCat is to use the user-object's identifier property as the Segment `userId`. If no identifier is present, the event will be sent with a randomly generated `anonymousId`. + +For "Feature Flag Changed" events, the ConfigCat User's ID who made the changes will be sent as the Segment `userId`. + +## Events + +The table below lists events that ConfigCat sends to Segment. These events appear as tables in your warehouse, and as regular events in other Destinations. + +| Event Name | Description | +| ---------------------- | --------------------------------------------------------------------------------------------------- | +| Feature Flag Evaluated | Advanced feature flag evaluation analytics events about your feature flag usages, A/B test results. | +| Feature Flag Changed | Feature flag change events to be able to see the effect of your feature flag changes. | + +## Event Properties + +The tables below list the properties included in the events listed above. + +### `Feature Flag Evaluated` event + +| Property Name | Description | +| ---------------- | ---------------------------------------------------------------- | +| `feature_flag_key` | The feature flag's key | +| `value` | The evaluated feature flag's value or Variation ID | +| `variation_id` | The evaluated feature flag's Variation ID | +| `user` | The user object used during feature flag evaluation | + +### `Feature Flag Changed` event + +| Property Name | Description | +| ----------------- | ---------------------------------------------------------------- | +| `details` | A brief summary of the change | +| `user_email` | The ConfigCat user's email who made the changes | +| `user_full_name` | The ConfigCat user's full name who made the changes | +| `product_id` | The product's ID where the change happened | +| `product_name` | The product's name where the change happened | +| `config_id` | The config's ID where the change happened | +| `config_name` | The config's name where the change happened | +| `environment_id` | The environment's ID where the change happened | +| `environment_name` | The environment's name where the change happened | +| `url` | A direct link to the config/feature flag | +| `user` | The user object used during feature flag evaluation | + +## Adding Destinations + +Now that your Source is set up, you can connect it with Destinations. + +Log into your downstream tools and check to see that your events appear as expected, and that they contain all of the properties you expect. If your events and properties don’t appear, check the [Event Delivery](/docs/connections/event-delivery/) tool, and refer to the Destination docs for each tool for troubleshooting. + +If there are any issues with how the events are arriving to Segment, [contact the ConfigCat support team](mailto:support@configcat.com). diff --git a/src/connections/storage/catalog/snowflake/index.md b/src/connections/storage/catalog/snowflake/index.md index 369b6dda2c..e748aea408 100644 --- a/src/connections/storage/catalog/snowflake/index.md +++ b/src/connections/storage/catalog/snowflake/index.md @@ -9,6 +9,9 @@ redirect_from: [Snowflake](https://docs.snowflake.net/manuals/index.html){:target="_blank"} is a data warehouse, built for the cloud, that delivers performance, simplicity, concurrency and affordability. +> info "" +> Segment has a Terraform provider, powered by the Public API, that you can use to create a Snowflake warehouse. See the [segment_warehouse (Resource)](https://registry.terraform.io/providers/segmentio/segment/latest/docs/resources/warehouse){:target="_blank”} documentation for more information. + ## Getting started There are six steps to get started using Snowflake with Segment. diff --git a/src/connections/test-connections.md b/src/connections/test-connections.md index 0d565f2f02..df043c7756 100644 --- a/src/connections/test-connections.md +++ b/src/connections/test-connections.md @@ -63,3 +63,7 @@ If you experience an error, [let Segment know](mailto:friends@segment.com) and t #### Is this feature available for Data Lakes? The Event Tester is not available for Data Lakes. + +#### Why are my destination filters being ignored? + +Events passed into the Event Tester bypass destination filters. Destination filters are applied to events as they are sent to specific destinations. However, the Event Tester is designed to help you troubleshoot your Sources, their configuration, and their downstream destinations by showing a sample of the data available. It allows you to check that data is being sent, and that it's in the correct format without the filters being applied. This means that when you use the Event Tester, you're seeing the data before any destination filters or other processing rules are applied, providing a clear view of the raw event data as it comes from the source. diff --git a/src/engage/journeys/send-data.md b/src/engage/journeys/send-data.md index 3bb8d7565a..45c6f6af9e 100644 --- a/src/engage/journeys/send-data.md +++ b/src/engage/journeys/send-data.md @@ -18,6 +18,8 @@ Ensure you have connected and enabled destinations in your Space. 3. Click **Connect destinations** to select the destination you'll send the data to. 4. Click **Save**. +To include an advertising destination in a Journey, ensure you have connected and enabled the destination within your Space, then utilize the [Show an Ad](docs/engage/journeys/step-types/#show-an-ad) step. + ## Test event payloads With the Engage event tester, you can send a test event payload to a Destination. As a result, you can confirm that you've correctly configured Journey Audiences before you publish your Journey. diff --git a/src/privacy/consent-management/configure-consent-management.md b/src/privacy/consent-management/configure-consent-management.md index b7703afba3..c62a0c6d27 100644 --- a/src/privacy/consent-management/configure-consent-management.md +++ b/src/privacy/consent-management/configure-consent-management.md @@ -17,6 +17,7 @@ Before you can configure consent in Segment, take the following steps: - **Set up your third-party consent management tool and create consent categories**. Take note of your consent categories and the key or ID associated with each category. - **Know how your company uses each destination**. You need to know which destinations to map to each category. - **Access to your web and mobile libraries**. After you set up consent categories in the Segment app, you need to integrate your CMP and your Segment sources using a wrapper or other solution. +- _For Analytics.js sources only_ : Navigate to your Analytics.js source. Select **Settings > Analytics.js** and enable **Destination Filters**. ## Step 1: Create consent categories in the Segment app @@ -43,7 +44,7 @@ Once you've created consent categories in the Segment app, you need to integrate - If using Unify and Engage, generates the [Segment Consent Preference Updated](/docs/privacy/consent-management/consent-in-unify/#segment-consent-preference-updated-event) event every time a user provides or updates their consent preferences with their anonymousId and userId Segment provides a OneTrust wrapper for the following sources: -- **Analytics.js**: Please follow the instructions from the README in the [@segment/analytics-consent-wrapper-onetrust](https://github.com/segmentio/analytics-next/tree/master/packages/consent/consent-wrapper-onetrust){:target="_blank"} repository. For more information about Segment's Analytics.js OneTrust wrapper, see the [Analytics.js OneTrust Wrapper](/docs/privacy/consent-management/onetrust-wrapper) documentation. +- **Analytics.js**: Please follow the instructions from the README in the [@segment/analytics-consent-wrapper-onetrust](https://github.com/segmentio/analytics-next/tree/master/packages/consent/consent-wrapper-onetrust){:target="_blank"} repository. For more information about Segment's Analytics.js OneTrust wrapper, see the [Analytics.js OneTrust Wrapper](/docs/privacy/consent-management/onetrust-wrapper) documentation. You should also navigate to your Analytics.js source in the Segment app, select **Settings > Analytics.js**, and enable **Destination Filters** before enabling your OneTrust wrapper. - **Kotlin**: Please follow the instructions from the README in the [@segment-integrations/analytics-kotlin-consent](https://github.com/segment-integrations/analytics-kotlin-consent/blob/main/README.md#getting-started){:target="_blank"} repository. - **Swift**: Please follow the instructions from the README in the [@segment-integrations/analytics-swift-consent](https://github.com/segment-integrations/analytics-swift-consent#segment-consent-management){:target="_blank"} repository. @@ -80,4 +81,4 @@ Disabling a consent category means that Segment no longer enforces end user cons 1. From the [Segment homepage](https://app.segment.com/goto-my-workspace/){:target="_blank”}, select the Privacy tab and click **Consent Management**. 2. On the Consent Management page, disable the toggle for the category you'd like to disable. -3. On the "Disable [category-name]?" popup, enter the category name in the Consent category name field and click **Disable category**. \ No newline at end of file +3. On the "Disable [category-name]?" popup, enter the category name in the Consent category name field and click **Disable category**. diff --git a/src/privacy/consent-management/consent-in-segment-connections.md b/src/privacy/consent-management/consent-in-segment-connections.md index d09ebf451c..f36ba748b7 100644 --- a/src/privacy/consent-management/consent-in-segment-connections.md +++ b/src/privacy/consent-management/consent-in-segment-connections.md @@ -20,7 +20,10 @@ If your sources also contain the integrations object, Segment will look at the c ## Consent object -Segment requires every event from all of your sources to include the end user consent preferences, captured by your CMP or your application logic, in the form of the **consent object**. The consent object is a JSON object with the following format: +Segment requires every event from all of your sources to include the end user consent preferences, captured by your CMP or your application logic, in the form of the **consent object**. The consent object is a JSON object nestled inside of the [context object](/docs/connections/spec/common/#context) with the following format: + +> success "" +> The JSON keys in the consent object should represent the `categoryId` for each consent category. ```json { @@ -38,8 +41,6 @@ Segment requires every event from all of your sources to include the end user co ``` - - Events without the consent object will continue to flow to destinations without consent enforcement. ## Reconcile consent conflicts diff --git a/src/unify/Traits/predictions/index.md b/src/unify/Traits/predictions/index.md index 9d49e33f57..372d5a485c 100644 --- a/src/unify/Traits/predictions/index.md +++ b/src/unify/Traits/predictions/index.md @@ -54,6 +54,11 @@ When you build a Custom Predictive Goal, you'll first need to select a cohort, o The target event is the Segment event that you want to predict. In creating a prediction, Segment determines the likelihood of the user performing the target event. Segment lets you include up to two target events and an event property in your prediction. +#### Selecting events (optional) + +Some customers want to specifically include or exclude events that get fed into the model. For example, if you track different events from an EU storefront compared to a US storefront and you only want to make predictions using data from the US, you could unselect the events from the EU space. This step is optional, Segment only recommends using it if you have a clear reason in mind for removing events from becoming a factor in the model. + + #### Data requirements Segment doesn't enforce data requirements for predictions. In machine learning, however, data quality and quantity are critical. Segment recommends that you make predictions for at least 50,000 users and choose a target event that at least 5,000 users have performed in the last 30 days. @@ -71,7 +76,7 @@ If you don’t track `Order Completed`, choose a target event that represents a ### Predicted Lifetime Value -Predicted Lifetime Value predicts a customer's future spend over the next 90 days. To create this prediction, select a purchase event, revenue property, and the currency (which defaults to USD). The following table contains details for each property: +Predicted Lifetime Value predicts a customer's future spend over the next 120 days. To create this prediction, select a purchase event, revenue property, and the currency (which defaults to USD). LTV is only calculated for customers that have performed the selected purchase events 2 or more times. The following table contains details for each property: | Property | Description | | --------------- | -------------------------------------------------------------------------------------------------------------------------- | @@ -87,11 +92,10 @@ To use Likelihood to Churn, you'll need to specify a customer event, a future ti For example, suppose you wanted to predict whether or not a customer would view a page on your site over the next three months. You would select `not perform`, `Page Viewed`, and `at least 1 time within 90 days`. -Segment would then build the prediction from this criteria and create specific percentile cohorts. You can then use these cohorts to target customers with retention flows, promo codes, or one-off email and SMS campaigns. +Churn predictions are only made for eligible customers. In the previous example, only customers that have performed `Page Viewed` in the last 90 days would be eligible to recieve this prediction. The Segment app shows you which customers are eligibile to recieve this prediction. -#### Data requirements +Segment then uses this criteria to build the prediction and create specific percentile cohorts. You can then use these cohorts to target customers with retention flows, promo codes, or one-off email and SMS campaigns. -Predicted LTV has strict data requirements. Segment can only make predictions for customers that have purchased two or more times. Segment also requires a year of purchase data to perform LTV calculations. ## Use cases diff --git a/src/unify/Traits/predictions/using-predictions.md b/src/unify/Traits/predictions/using-predictions.md index e82aada57c..86f007a7db 100644 --- a/src/unify/Traits/predictions/using-predictions.md +++ b/src/unify/Traits/predictions/using-predictions.md @@ -94,7 +94,7 @@ The Prediction Quality Score factors AUC, log loss, and lift quality to determin #### How do you store trait values? -The created trait value represents the user's percentile cohort. This value refreshes every seven days. If you see `0.85` on a user's profile, this means the user is in the 85th percentile, or the top 15% for the prediction. +The created trait value represents the user's percentile cohort. This value will refresh when we re score the customers based on your refresh cadence. If you see `0.85` on a user's profile, this means the user is in the 85th percentile, or the top 15% for the prediction. #### How frequently do you re-train the model? @@ -102,7 +102,7 @@ Segment rebuilds the machine learning model every 30 days. #### How frequently do you update trait values? -Every seven days. +By default, Segment refreshes scores every 7 days. However, you can request that trait values update daily. Reach out to your CSM to determine your eligibility. #### Can I update Predictive Traits and Predictive Audiences? @@ -114,15 +114,15 @@ You get five predictions as part of Engage Foundations or Unify Plus. To purchas Predictive Audiences contribute to the Engage limit of 100 audiences. Whether you create the audience manually or with predictive modeling, the audience counts towards the 100-audience limit. -#### Is Predictions HIPAA-compliant? +#### Is Predictions HIPAA eligible? -No, Predictions isn't HIPAA-compliant. Avoid using Predictions for health and life science applications. +Yes. #### Are there any known Predictions limitations? 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. +- **Predictions will not work as intended if you track more than 5,000 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.