diff --git a/README.md b/README.md index 19e1de530e..5cd2f409a3 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,25 @@ This repository contains the documentation website code and source files for htt In this article, find information about: +- Prerequisites - Contributing - A list of READMEs - Code of conduct - License agreement +## Prerequisites +The following are a list of prerequisites you may want to consider downloading and installing to successfully contribute to the Segment docs repo: + +1. Download and install a source code editor like [Visual Studio Code](https://code.visualstudio.com/download). +1. Download and install a package manager such as [Homebrew](https://brew.sh/) to install new software. +1. [Create an account on GitHub](https://docs.github.com/en/get-started/quickstart/creating-an-account-on-github) if you don't have one already, or sign in with your existing GitHub account. +1. Add the GitHub extension to your editor (in VSC: https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-pull-request-github). +1. [Clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) the Segment docs repo. +1. Download and install the latest version of [node.js](https://nodejs.org/en/download). Consider using a version manager such as [ASDF](https://github.com/asdf-vm/asdf) or [nvm-windows](https://docs.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-windows). +1. Install dependencies + `npm i` +1. Install [vale](https://docs.errata.ai/vale/install). An [ASDF plugin](https://github.com/osg/asdf-vale) is also available. + ## Contributing The Segment docs team accepts contributions in the form of issues and pull requests. diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 3a30c14795..9a8be3390a 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-02-15 +# destination categories last updated 2024-02-20 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 c2c6d238f6..8e867748b2 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-02-15 +# destination data last updated 2024-02-20 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -11695,11 +11695,11 @@ items: url: https://cdn-devcenter.segment.com/69b83189-4afd-4ef0-ba8c-a777bb5af7a9.svg methods: track: true - identify: true - group: true - alias: true + identify: false + group: false + alias: false screen: false - page: true + page: false platforms: browser: true mobile: false @@ -11723,17 +11723,21 @@ items: - name: apiKey type: string defaultValue: '' - description: Avo Inspector API Key + description: >- + Avo Inspector API Key can be found in the Inspector setup page on your + source in Avo. required: true - label: API Key + label: Avo Inspector API Key - name: appVersionPropertyName type: string defaultValue: '' description: >- - Optionally set which property represents the app version in your events. - If not set, the app version will be taken from the $.context.app.version + If you send a custom event property on all events that contains the app + version, please enter the name of that property here (e.g. “app_version”). + If you do not have a custom event property for the app version, please + leave this field empty. required: true - label: App Version property + label: App Version Property - name: env type: select defaultValue: prod @@ -11749,7 +11753,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: g4deuN5DQ9KABRHH5op4gN + - id: wq8ZmqL88frGhfzEWNhttL sortOrder: 0 fieldKey: event label: Event Name @@ -11763,7 +11767,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5pBnFXzLxcAzFhX2iYntDm + - id: 4iiRGj4pxVDpX6HxcVuUDR sortOrder: 1 fieldKey: properties label: Properties @@ -11777,7 +11781,7 @@ items: choices: null dynamic: false allowNull: false - - id: bJi5KZnfzYoFrquvCajEF + - id: bgp6EJQD35PDKMVFvjAzvP sortOrder: 2 fieldKey: messageId label: Message ID @@ -11791,7 +11795,7 @@ items: choices: null dynamic: false allowNull: false - - id: oYjuQVddW8AS9fMrAkwNeq + - id: 7RpDBAY6sdp3pZqzJC2kvN sortOrder: 3 fieldKey: createdAt label: Created At @@ -11805,7 +11809,7 @@ items: choices: null dynamic: false allowNull: false - - id: a7CTanNP64UNHB82osVwF3 + - id: ghiPnkyJRu77mtYyB1B19u sortOrder: 4 fieldKey: appVersion label: App Version @@ -11819,7 +11823,7 @@ items: choices: null dynamic: false allowNull: false - - id: mPoHb8QfGatuSkQHsPvGAj + - id: 7a2nYNgu2PbGLEXFLtfaHD sortOrder: 5 fieldKey: appName label: App Name @@ -11833,7 +11837,7 @@ items: choices: null dynamic: false allowNull: false - - id: krreEG3cbQKVXJ8qK5jNo9 + - id: iytHYSo7ZaeECEVkTDwnE5 sortOrder: 6 fieldKey: pageUrl label: Page URL @@ -11847,7 +11851,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3FMnWVSxETAzjcXzir2US1 + - id: 4a3R3xkDTTLqyiJUCfyW8F sortOrder: 7 fieldKey: enable_batching label: Enable Batching? @@ -22251,7 +22255,7 @@ items: required: true label: Account Region - name: apiKey - type: string + type: password defaultValue: '' description: >- Customer.io API key. This can be found on your [API Credentials @@ -22259,7 +22263,7 @@ items: required: true label: API Key - name: siteId - type: string + type: password defaultValue: '' description: >- Customer.io site ID. This can be found on your [API Credentials @@ -22275,7 +22279,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: uBi48hfoQuvfUD3jmLRhpa + - id: qbXDKFBGrLPiKkgJwTGaQG sortOrder: 0 fieldKey: id label: Person ID @@ -22292,19 +22296,19 @@ items: '@path': $.userId else: '@path': $.traits.email - required: true + required: false multiple: false choices: null dynamic: false allowNull: false - - id: bDcLfM9vZDxG1zpPxiJ6J + - id: iWR9BJmPGEdk1pU36RtiQX sortOrder: 1 fieldKey: anonymous_id label: Anonymous ID type: STRING description: >- - An anonymous ID for when no Person ID exists. [Learn - more](https://customer.io/docs/anonymous-events/). + An optional anonymous ID. This is used to tie anonymous events to this + person. [Learn more](https://customer.io/docs/anonymous-events/). placeholder: '' defaultValue: '@path': $.anonymousId @@ -22313,7 +22317,7 @@ items: choices: null dynamic: false allowNull: false - - id: aSVbSGv7rSFtZhPQLxCQS3 + - id: 4CJqUtBYqTYvPjzs1AJuJk sortOrder: 2 fieldKey: email label: Email Address @@ -22327,7 +22331,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7KJsafPiQy8qkw3gwFTBGg + - id: xa9LHoVhUaidrW1ea69QEt sortOrder: 3 fieldKey: created_at label: Created At @@ -22335,13 +22339,19 @@ items: description: A timestamp of when the person was created. placeholder: '' defaultValue: - '@template': '{{traits.created_at}}' + '@if': + exists: + '@path': $.traits.created_at + then: + '@path': $.traits.created_at + else: + '@path': $.traits.createdAt required: false multiple: false choices: null dynamic: false allowNull: false - - id: 9xwkcPkppqJ6iMEkiACFPs + - id: sqGErv2YWEY4jkMsCp8gDY sortOrder: 4 fieldKey: group_id label: Object ID @@ -22357,7 +22367,7 @@ items: choices: null dynamic: false allowNull: false - - id: rNZkoxokcB9YdAe8pHsgUu + - id: wy9r6ouaA5et7L65gAUVRa sortOrder: 5 fieldKey: custom_attributes label: Person Attributes @@ -22373,8 +22383,25 @@ items: choices: null dynamic: false allowNull: false - - id: qfuqajW4vkCA6FEroxsAdR + - id: 241rb2u7QSiKi4uN5dRzd5 sortOrder: 6 + fieldKey: relationship_attributes + label: Relationship Attributes + type: OBJECT + description: >- + Optional attributes for the relationship between the object and the + user. When updating an object, attributes are added or updated, not + removed. + placeholder: '' + defaultValue: + '@path': $.traits.relationshipAttributes + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mv6Rb6o65QWLNgEp3yXFnz + sortOrder: 7 fieldKey: convert_timestamp label: Convert Timestamps type: BOOLEAN @@ -22386,8 +22413,8 @@ items: choices: null dynamic: false allowNull: false - - id: v8VixP2r1f8hPye2jZWpik - sortOrder: 7 + - id: jmmMj5zKBtdPpkuH8ziokQ + sortOrder: 8 fieldKey: object_type_id label: Object Type Id type: STRING @@ -22396,7 +22423,25 @@ items: [Learn more](https://customer.io/docs/object-relationships). placeholder: '' defaultValue: - '@path': $.objectTypeId + '@if': + exists: + '@path': $.traits.object_type_id + then: + '@path': $.traits.object_type_id + else: + '@path': $.traits.objectTypeId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: LLZuN7bUyrMT4GdhqaNds + sortOrder: 9 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false required: false multiple: false choices: null @@ -22408,9 +22453,21 @@ items: description: Track an event for a known or anonymous person. platform: CLOUD hidden: false - defaultTrigger: type = "track" - fields: - - id: mih5TyJX5ahNJNuEp9czQW + defaultTrigger: |2- + + type = "track" + and event != "Application Installed" + and event != "Application Opened" + and event != "Application Uninstalled" + and event != "Relationship Deleted" + and event != "User Deleted" + and event != "User Suppressed" + and event != "User Unsuppressed" + and event != "Group Deleted" + and event != "Report Delivery Event" + + fields: + - id: u4aGSgQ4zpkMh4ztnRr47d sortOrder: 0 fieldKey: id label: Person ID @@ -22426,7 +22483,7 @@ items: choices: null dynamic: false allowNull: false - - id: kLqWYqgK7qyZoZAidCzkkM + - id: 8SU35y38nr3LobjDRMdL6e sortOrder: 1 fieldKey: anonymous_id label: Anonymous ID @@ -22442,7 +22499,7 @@ items: choices: null dynamic: false allowNull: false - - id: im3Vvde3taqVemMn8XPJXw + - id: 36x7nsrbvjZkPy6FBTka4Z sortOrder: 2 fieldKey: name label: Event Name @@ -22456,7 +22513,7 @@ items: choices: null dynamic: false allowNull: false - - id: rNEGnXktKF3nztzQJrHify + - id: dDnhTpaLR53Mn4GgSrghPM sortOrder: 3 fieldKey: event_id label: Event ID @@ -22472,7 +22529,7 @@ items: choices: null dynamic: false allowNull: false - - id: kTRRKToMRPXJ9fC4GR2XB + - id: pBUeyJnpzipx8GK37f2xHY sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -22488,7 +22545,7 @@ items: choices: null dynamic: false allowNull: false - - id: uex8YEzFzzW5SNrwZ9KvxZ + - id: 4mMCpTLrHpJAxazm9J4ddh sortOrder: 5 fieldKey: data label: Event Attributes @@ -22502,7 +22559,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3QsZBxBw2CfnRmCZYhyyj3 + - id: rXoSUoSvoqnZuzS5Ee2pYY sortOrder: 6 fieldKey: convert_timestamp label: Convert Timestamps @@ -22515,17 +22572,27 @@ items: choices: null dynamic: false allowNull: false + - id: pnThATH75yoYmBpvSHJGpv + sortOrder: 7 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false - id: s7FEfD963drbt4mBbnUxfR name: Create or Update Device slug: createUpdateDevice - description: >- - Track an "Application Installed" or "Application Opened" event to create - or update a person's device. + description: Create or update a person's device. platform: CLOUD hidden: false defaultTrigger: type = "track" and event = "Application Installed" fields: - - id: qAHeTk9F1ovNYfg8kE9hGz + - id: kYxaPrFY9vgUjrUXrihSUj sortOrder: 0 fieldKey: person_id label: Person ID @@ -22539,7 +22606,7 @@ items: choices: null dynamic: false allowNull: false - - id: cEWK33PfEnkXWafDKAvu8A + - id: aREcbNjpsWzqvMaeLZ4vok sortOrder: 1 fieldKey: device_id label: Device ID @@ -22553,7 +22620,7 @@ items: choices: null dynamic: false allowNull: false - - id: iE8Db8zm2uWsei48p2f5gA + - id: 76sQ72gpNaN6qXizFge4KW sortOrder: 2 fieldKey: app_version label: App Version @@ -22567,7 +22634,7 @@ items: choices: null dynamic: false allowNull: false - - id: dKDG9R1oFQdpEharQYsWgH + - id: k8vbe7iZubFvvhZqRJBero sortOrder: 3 fieldKey: platform label: Platform @@ -22581,7 +22648,7 @@ items: choices: null dynamic: false allowNull: false - - id: oqCFLX872LuNn7hSkn72MF + - id: 9zmuctuFP7uNHp17YzzStf sortOrder: 4 fieldKey: last_used label: Last Used @@ -22597,8 +22664,24 @@ items: choices: null dynamic: false allowNull: false - - id: H3MUE66bkxNVt8LxFrLtm + - id: 6d3VGDQCkDEUCCbne9Jg4n sortOrder: 5 + fieldKey: attributes + label: Event Attributes + type: OBJECT + description: >- + Optional data that you can reference to segment your audience, like a + person's attributes, but specific to a device. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2NScQXpQz4YaacaiHGKLuB + sortOrder: 6 fieldKey: convert_timestamp label: Convert Timestamps type: BOOLEAN @@ -22610,6 +22693,18 @@ items: choices: null dynamic: false allowNull: false + - id: p93gvhnJ1feVFzbu1vnJ27 + sortOrder: 7 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false - id: bYpBhuXizNTPeBLwoJ1RxZ name: Track Page View slug: trackPageView @@ -22618,7 +22713,7 @@ items: hidden: false defaultTrigger: type = "page" fields: - - id: uPFDP5DaZtjHBBUnQAr2mC + - id: qLiwJTWzLcK4v8Qn5TCZGK sortOrder: 0 fieldKey: id label: Person ID @@ -22634,7 +22729,7 @@ items: choices: null dynamic: false allowNull: false - - id: keHBX19kR1GBdkyoDA7CUA + - id: eR9DStuFw15hzx4HcL6Esn sortOrder: 1 fieldKey: anonymous_id label: Anonymous ID @@ -22650,8 +22745,24 @@ items: choices: null dynamic: false allowNull: false - - id: apisfVcsv4FYLPpsnFksar + - id: 2XQHiqaTKbJHvwzmLD9kRF sortOrder: 2 + fieldKey: event_id + label: Event ID + type: STRING + description: >- + An optional identifier used to deduplicate events. [Learn + more](https://customer.io/docs/api/#operation/track). + placeholder: '' + defaultValue: + '@path': $.messageId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: p4kEzWDJda2ipvkyJMJLkC + sortOrder: 3 fieldKey: url label: Page URL type: STRING @@ -22664,8 +22775,8 @@ items: choices: null dynamic: false allowNull: false - - id: qdJ5P9vCWCAVxBoEqsEDXD - sortOrder: 3 + - id: f54PGKHREyrwKUFxNXX6WE + sortOrder: 4 fieldKey: timestamp label: Timestamp type: STRING @@ -22680,8 +22791,8 @@ items: choices: null dynamic: false allowNull: false - - id: vq35uaUUaYsh4mD3y7gvgk - sortOrder: 4 + - id: kqD8kZfthrFbvXLkV2o6h + sortOrder: 5 fieldKey: data label: Event Attributes type: OBJECT @@ -22694,8 +22805,8 @@ items: choices: null dynamic: false allowNull: false - - id: e7o3L6TLaFr41gM1zy7ncK - sortOrder: 5 + - id: gGm4bcgYBhCCbk2z2FeB9x + sortOrder: 6 fieldKey: convert_timestamp label: Convert Timestamps type: BOOLEAN @@ -22707,15 +22818,27 @@ items: choices: null dynamic: false allowNull: false + - id: 7nCt6Swem99hNWKpAkrD3i + sortOrder: 7 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false - id: kHtCvAgiKSBNGShFzW5Wwo name: Delete Device slug: deleteDevice - description: Track an "Application Uninstalled" event to delete a person's device. + description: Delete a person's device. platform: CLOUD hidden: false defaultTrigger: event = "Application Uninstalled" fields: - - id: 4MjL5KnALnfk6YVuqEC3Li + - id: 6EUNVm626wErrN61uyivuR sortOrder: 0 fieldKey: person_id label: Person ID @@ -22729,7 +22852,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9qrP1C79vDnbtg7UQf24ag + - id: qNaKDCKW8aqFxrYq47q9gU sortOrder: 1 fieldKey: device_id label: Device ID @@ -22743,6 +22866,18 @@ items: choices: null dynamic: false allowNull: false + - id: ak6LySXRS8PPACZr5EYzbk + sortOrder: 2 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false - id: sqJbxd67L97ZpX6N8wphL3 name: Track Screen View slug: trackScreenView @@ -22751,7 +22886,7 @@ items: hidden: false defaultTrigger: type = "screen" fields: - - id: oYRxDpWgf1PQ8BYqPBFRhc + - id: bVuxjjfTHe3DQDSXveGisJ sortOrder: 0 fieldKey: id label: Person ID @@ -22767,7 +22902,7 @@ items: choices: null dynamic: false allowNull: false - - id: tDtTW17T4LY6UT6gSMngoo + - id: exGgETbBz3yFM7RYpXzyB4 sortOrder: 1 fieldKey: anonymous_id label: Anonymous ID @@ -22783,8 +22918,24 @@ items: choices: null dynamic: false allowNull: false - - id: txDxKAfVXMWLBDid4uNPcu + - id: g4D68KHA2oNL73SroVFrHp sortOrder: 2 + fieldKey: event_id + label: Event ID + type: STRING + description: >- + An optional identifier used to deduplicate events. [Learn + more](https://customer.io/docs/api/#operation/track). + placeholder: '' + defaultValue: + '@path': $.messageId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: BmDpQXJWivFetuH2kUGXP + sortOrder: 3 fieldKey: name label: Screen name type: STRING @@ -22797,8 +22948,8 @@ items: choices: null dynamic: false allowNull: false - - id: x346dKeQH49jf1TkXqRe6G - sortOrder: 3 + - id: 8m4Fd4htabEVNYSurWVe1z + sortOrder: 4 fieldKey: timestamp label: Timestamp type: STRING @@ -22813,8 +22964,8 @@ items: choices: null dynamic: false allowNull: false - - id: mgpiFD9ckJVA1Mk6NCUyUd - sortOrder: 4 + - id: q8yigcKmQkaJAakKRBAzYp + sortOrder: 5 fieldKey: data label: Event Attributes type: OBJECT @@ -22827,8 +22978,8 @@ items: choices: null dynamic: false allowNull: false - - id: 3cAqfZpwSZqJC1ronreQ2p - sortOrder: 5 + - id: fzjLHvFaAB4qxcFmviVZUb + sortOrder: 6 fieldKey: convert_timestamp label: Convert Timestamps type: BOOLEAN @@ -22840,6 +22991,18 @@ items: choices: null dynamic: false allowNull: false + - id: jjLAJ2o4jq8jgvDbdhrWV5 + sortOrder: 7 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false - id: tLbwUgCeC2qVhPm8ia7adn name: Create or Update Object slug: createUpdateObject @@ -22848,7 +23011,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: tvC1vPuqW2Lqt4Y2pd6b3B + - id: j7qnnLwWfVfNC3G4SUSNbJ sortOrder: 0 fieldKey: id label: Object ID @@ -22864,7 +23027,7 @@ items: choices: null dynamic: false allowNull: false - - id: eYGvSXyTUjSz8gzWvQ9kXT + - id: tpR5HYsR8Cn3XqCzRNHgVr sortOrder: 1 fieldKey: created_at label: Created At @@ -22872,13 +23035,19 @@ items: description: A timestamp of when the object was created. placeholder: '' defaultValue: - '@template': '{{traits.created_at}}' + '@if': + exists: + '@path': $.traits.created_at + then: + '@path': $.traits.created_at + else: + '@path': $.traits.createdAt required: false multiple: false choices: null dynamic: false allowNull: false - - id: uS1QnsyTniyssKFGmHsxWi + - id: i6RFpcMJB6CmSd3bZobyE5 sortOrder: 2 fieldKey: custom_attributes label: Object Attributes @@ -22888,14 +23057,31 @@ items: are added or updated, not removed. placeholder: '' defaultValue: - '@path': $.traits + '@path': $.traits.objectAttributes required: false multiple: false choices: null dynamic: false allowNull: false - - id: uVzks8rhcQWeWUYcFZo2hB + - id: dDpTdvquPNcCud3HZD53P3 sortOrder: 3 + fieldKey: relationship_attributes + label: Relationship Attributes + type: OBJECT + description: >- + Optional attributes for the relationship between the object and the + user. When updating an relationship, attributes are added or updated, + not removed. + placeholder: '' + defaultValue: + '@path': $.traits.relationshipAttributes + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 5Ai7vnJUe54ykWYKLEAvv4 + sortOrder: 4 fieldKey: user_id label: User ID type: STRING @@ -22910,8 +23096,8 @@ items: choices: null dynamic: false allowNull: false - - id: 8K4kPfkvPVyftrFAzmoNb1 - sortOrder: 4 + - id: fXreNojpgBSohCHsmiPhA7 + sortOrder: 5 fieldKey: anonymous_id label: Anonymous ID type: STRING @@ -22926,8 +23112,8 @@ items: choices: null dynamic: false allowNull: false - - id: r8VbhACf5Q7nxGF1r1c2Ms - sortOrder: 5 + - id: gaVjftCUw7PxeQZ8i7P4bA + sortOrder: 6 fieldKey: object_type_id label: Object Type Id type: STRING @@ -22936,14 +23122,20 @@ items: [Learn more](https://customer.io/docs/object-relationships). placeholder: '' defaultValue: - '@path': $.objectTypeId + '@if': + exists: + '@path': $.traits.object_type_id + then: + '@path': $.traits.object_type_id + else: + '@path': $.traits.objectTypeId required: false multiple: false choices: null dynamic: false allowNull: false - - id: mgnWWNJaWEz54hSJK3wuRQ - sortOrder: 6 + - id: qKQtga1X9JqqwTuUzfqP5p + sortOrder: 7 fieldKey: convert_timestamp label: Convert Timestamps type: BOOLEAN @@ -22955,57 +23147,500 @@ items: choices: null dynamic: false allowNull: false - presets: - - actionId: s7FEfD963drbt4mBbnUxfR - name: Create or Update Device - fields: - person_id: - '@path': $.userId - device_id: - '@path': $.context.device.token - app_version: - '@path': $.context.app.version - platform: - '@path': $.context.device.type - last_used: - '@path': $.timestamp - convert_timestamp: true - trigger: event = "Application Installed" or event = "Application Opened" - - actionId: ni61rg53jNVHceAAKpAMiU - name: Track Event - fields: - id: - '@path': $.userId - anonymous_id: - '@path': $.anonymousId - name: - '@path': $.event - event_id: - '@path': $.messageId - timestamp: - '@path': $.timestamp - data: - '@path': $.properties - convert_timestamp: true - trigger: type = "track" - - actionId: tLbwUgCeC2qVhPm8ia7adn - name: Create or Update Object + - id: Cexcym1XFg7Fnb4yMyH7U + sortOrder: 8 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: vzu3gQU4FWnjjjwLrZ92v + name: Report Delivery Event + slug: reportDeliveryEvent + description: >- + Report delivery metrics for a message sent from the Customer.io Journeys + product. + platform: CLOUD + hidden: false + defaultTrigger: event = "Report Delivery Event" fields: - id: - '@path': $.groupId - created_at: - '@template': '{{traits.created_at}}' - custom_attributes: - '@path': $.traits - user_id: - '@path': $.userId - anonymous_id: - '@path': $.anonymousId - object_type_id: - '@path': $.objectTypeId - convert_timestamp: true - trigger: type = "group" - - actionId: k4Xb8oym74V59L3n6YmkQe + - id: 8HWDSut8YoK5UYgQeNcA5h + sortOrder: 0 + fieldKey: delivery_id + label: Delivery ID + type: STRING + description: >- + The CIO-Delivery-ID from the message that you want to associate the + metric with. + placeholder: '' + defaultValue: + '@path': $.properties.deliveryId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kBFet6D7Bq9WiAyXBAL4FV + sortOrder: 1 + fieldKey: metric + label: Metric + type: STRING + description: >- + The metric you want to report back to Customer.io. Not all metrics are + available for all channels. Please refer to the + [documentation](https://customer.io/docs/api/track/#operation/metrics) + for more information. + placeholder: '' + defaultValue: + '@path': $.properties.metric + required: true + multiple: false + choices: + - label: Delivered + value: delivered + - label: Opened + value: opened + - label: Clicked + value: clicked + - label: Converted + value: converted + - label: Marked as Spam + value: spammed + - label: Bounced + value: bounced + - label: Suppressed + value: dropped + - label: Deferred + value: deferred + dynamic: false + allowNull: false + - id: tnnbyjHoXUVFeYqK6GMAE7 + sortOrder: 2 + fieldKey: recipient + label: Recipient + type: STRING + description: >- + Information about who the message was delivered to. For email, SMS and + mobile push this is the email address, phone number and device token, + respectively. + placeholder: '' + defaultValue: + '@path': $.properties.recipient + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fcjvcwhSQNRtB4hwcoGgGo + sortOrder: 3 + fieldKey: reason + label: Reason + type: STRING + description: >- + For metrics indicating a failure, this field provides information for + the failure. + placeholder: '' + defaultValue: + '@path': $.properties.reason + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tUgDcdhSanEKUHhjdyc2fd + sortOrder: 4 + fieldKey: href + label: Href + type: STRING + description: For click metrics, this is the link that was clicked. + placeholder: '' + defaultValue: + '@path': $.properties.href + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: q5iLVV3hU5yNzLzDHhJYh9 + sortOrder: 5 + fieldKey: action_name + label: Action Name + type: STRING + description: For In-App messages, this is the name of the action that was clicked. + placeholder: '' + defaultValue: + '@path': $.properties.actionName + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fGDdFzZU1mDronzQiLhc98 + sortOrder: 6 + fieldKey: action_value + label: Action Value + type: STRING + description: For In-App messages, this is the value of the action that was clicked. + placeholder: '' + defaultValue: + '@path': $.properties.actionValue + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 7ziW3oiDw2qhjUyLaGztMY + sortOrder: 7 + fieldKey: timestamp + label: Timestamp + type: DATETIME + description: >- + A timestamp of when the metric event took place. Default is when the + event was triggered. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 5JqsUoSdc9Fae4QCG6UZg4 + name: Delete Relationship + slug: deleteRelationship + description: Delete a relationship between a person and an object in Customer.io. + platform: CLOUD + hidden: false + defaultTrigger: event = "Relationship Deleted" + fields: + - id: pVbUjnVomvLxHZ9bcTJbEm + sortOrder: 0 + fieldKey: person_id + label: Person ID + type: STRING + description: The ID of the person that this mobile device belongs to. + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sjunkHeWonMoTbxyBW2KAA + sortOrder: 1 + fieldKey: anonymous_id + label: Anonymous ID + type: STRING + description: >- + An optional anonymous ID. This is used to tie anonymous events to this + person. [Learn more](https://customer.io/docs/anonymous-events/). + placeholder: '' + defaultValue: + '@path': $.anonymousId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fLkk3XcPZdL6SHLScQfSTa + sortOrder: 2 + fieldKey: object_id + label: Object ID + type: STRING + description: An object ID used to identify an object. + placeholder: '' + defaultValue: + '@path': $.context.groupId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: nA8rbvyhmdxRgKRmebF5Qn + sortOrder: 3 + fieldKey: object_type_id + label: Object Type ID + type: STRING + description: An object ID type used to identify the type of object. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.properties.object_type_id + then: + '@path': $.properties.object_type_id + else: + '@path': $.properties.objectTypeId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sNmWgJstu9ropRTkHiVnA1 + sortOrder: 4 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 6pgnWgGgskGB7o13v4o7Hm + name: Unsuppress Person + slug: unsuppressPerson + description: >- + Unsuppress a person in Customer.io. This will allow the person to receive + messages again. + platform: CLOUD + hidden: false + defaultTrigger: event = "User Unsuppressed" + fields: + - id: fpzseynork8mvMjqca3pQr + sortOrder: 0 + fieldKey: person_id + label: Person ID + type: STRING + description: The ID of the person that this mobile device belongs to. + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: i2266zT3BiN2hq9aKnRpj4 + sortOrder: 1 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bconBogANVDXa5VxG7LmgH + name: Merge People + slug: mergePeople + description: Merge two customer profiles together. + platform: CLOUD + hidden: false + defaultTrigger: type = "alias" + fields: + - id: nBJ9DmF6b19YDaA84C1s3w + sortOrder: 0 + fieldKey: primary + label: Primary User + type: STRING + description: >- + The person that you want to remain after the merge, identified by id, + email or cio_id. This person receives information from the secondary + person in the merge. + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fp4beVLoXkp4x3pogAL9TB + sortOrder: 1 + fieldKey: secondary + label: Secondary User + type: STRING + description: >- + The person that you want to delete after the merge, identified by id, + email or cio_id. This person's information is merged into the primary + person's profile and then it is deleted. + placeholder: '' + defaultValue: + '@path': $.previousId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 8f44rpsmQEj1WvhSPP7gwW + sortOrder: 2 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: jmEG6hTDDd5ZW7DXUc7Ekq + name: Delete Object + slug: deleteObject + description: Delete an object in Customer.io. + platform: CLOUD + hidden: false + defaultTrigger: event = "Object Deleted" + fields: + - id: 7rqeUzyLL2EnyZEJXqitQM + sortOrder: 0 + fieldKey: object_id + label: Object ID + type: STRING + description: An object ID used to identify an object. + placeholder: '' + defaultValue: + '@path': $.context.groupId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 7DiQjcbVxauNftkvLJ8FRc + sortOrder: 1 + fieldKey: object_type_id + label: Object Type ID + type: STRING + description: An object ID type used to identify the type of object. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.properties.object_type_id + then: + '@path': $.properties.object_type_id + else: + '@path': $.properties.objectTypeId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qqG1fcZMyVn9oBAd6YALqt + sortOrder: 2 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mPbNVGabvdtVU75g5S7hYQ + name: Suppress Person + slug: suppressPerson + description: >- + Suppress a person in Customer.io. This will prevent the person from + receiving any messages. + platform: CLOUD + hidden: false + defaultTrigger: event = "User Suppressed" + fields: + - id: m2JBarkvedkiNxRM5Z185Z + sortOrder: 0 + fieldKey: person_id + label: Person ID + type: STRING + description: The ID of the person that this mobile device belongs to. + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ttDo7tdbqBD3HYLQwfczob + sortOrder: 1 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rgGAYjgn23L2o4XYLi4tDG + name: Delete Person + slug: deletePerson + description: Delete a person in Customer.io. + platform: CLOUD + hidden: false + defaultTrigger: event = "User Deleted" + fields: + - id: 34H33AiiUgYBLHSMH4KdQ9 + sortOrder: 0 + fieldKey: person_id + label: Person ID + type: STRING + description: The ID of the person that this mobile device belongs to. + placeholder: '' + defaultValue: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bLBhKWP2wU4CkPFiDByiok + sortOrder: 1 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: + - actionId: tLbwUgCeC2qVhPm8ia7adn + name: Create or Update Object + fields: + id: + '@path': $.groupId + created_at: + '@if': + exists: + '@path': $.traits.created_at + then: + '@path': $.traits.created_at + else: + '@path': $.traits.createdAt + custom_attributes: + '@path': $.traits.objectAttributes + relationship_attributes: + '@path': $.traits.relationshipAttributes + user_id: + '@path': $.userId + anonymous_id: + '@path': $.anonymousId + object_type_id: + '@if': + exists: + '@path': $.traits.object_type_id + then: + '@path': $.traits.object_type_id + else: + '@path': $.traits.objectTypeId + convert_timestamp: true + trigger: type = "group" + - actionId: k4Xb8oym74V59L3n6YmkQe name: Create or Update Person fields: id: @@ -23021,38 +23656,78 @@ items: email: '@template': '{{traits.email}}' created_at: - '@template': '{{traits.created_at}}' + '@if': + exists: + '@path': $.traits.created_at + then: + '@path': $.traits.created_at + else: + '@path': $.traits.createdAt group_id: '@path': $.context.groupId custom_attributes: '@path': $.traits + relationship_attributes: + '@path': $.traits.relationshipAttributes convert_timestamp: true object_type_id: - '@path': $.objectTypeId + '@if': + exists: + '@path': $.traits.object_type_id + then: + '@path': $.traits.object_type_id + else: + '@path': $.traits.objectTypeId trigger: type = "identify" - - actionId: sqJbxd67L97ZpX6N8wphL3 - name: Track Screen View + - actionId: ni61rg53jNVHceAAKpAMiU + name: Track Event fields: id: '@path': $.userId anonymous_id: '@path': $.anonymousId name: - '@path': $.name + '@path': $.event + event_id: + '@path': $.messageId timestamp: '@path': $.timestamp data: '@path': $.properties convert_timestamp: true - trigger: type = "screen" - - actionId: kHtCvAgiKSBNGShFzW5Wwo - name: Delete Device - fields: - person_id: - '@path': $.userId - device_id: - '@path': $.context.device.token - trigger: event = "Application Uninstalled" + trigger: |2- + + type = "track" + and event != "Application Installed" + and event != "Application Opened" + and event != "Application Uninstalled" + and event != "Relationship Deleted" + and event != "User Deleted" + and event != "User Suppressed" + and event != "User Unsuppressed" + and event != "Object Deleted" + and event != "Report Delivery Event" + + - actionId: vzu3gQU4FWnjjjwLrZ92v + name: Report Delivery Event + fields: + delivery_id: + '@path': $.properties.deliveryId + metric: + '@path': $.properties.metric + recipient: + '@path': $.properties.recipient + reason: + '@path': $.properties.reason + href: + '@path': $.properties.href + action_name: + '@path': $.properties.actionName + action_value: + '@path': $.properties.actionValue + timestamp: + '@path': $.timestamp + trigger: event = "Report Delivery Event" - actionId: bYpBhuXizNTPeBLwoJ1RxZ name: Track Page View fields: @@ -23060,6 +23735,8 @@ items: '@path': $.userId anonymous_id: '@path': $.anonymousId + event_id: + '@path': $.messageId url: '@path': $.properties.url timestamp: @@ -23068,6 +23745,40 @@ items: '@path': $.properties convert_timestamp: true trigger: type = "page" + - actionId: s7FEfD963drbt4mBbnUxfR + name: Create or Update Device + fields: + person_id: + '@path': $.userId + device_id: + '@path': $.context.device.token + app_version: + '@path': $.context.app.version + platform: + '@path': $.context.device.type + last_used: + '@path': $.timestamp + attributes: + '@path': $.properties + convert_timestamp: true + trigger: event = "Application Installed" or event = "Application Opened" + - actionId: sqJbxd67L97ZpX6N8wphL3 + name: Track Screen View + fields: + id: + '@path': $.userId + anonymous_id: + '@path': $.anonymousId + event_id: + '@path': $.messageId + name: + '@path': $.name + timestamp: + '@path': $.timestamp + data: + '@path': $.properties + convert_timestamp: true + trigger: type = "screen" - id: 5c9ce8b88171a10001f9eefa display_name: CustomerSuccessBox name: CustomerSuccessBox diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 0a3ba2a6b2..c3b5c4485d 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-02-15 +# destination data last updated 2024-02-20 items: - id: 54521fd725e721e32a72eec6 display_name: Intercom diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index afd94f6994..663d9b5f00 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-02-15 +# source categories last updated 2024-02-20 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 8fb47e0839..eaed3bf115 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-02-15 +# sources last updated 2024-02-20 items: - id: 8HWbgPTt3k display_name: .NET diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 2fbc6f945b..535e987834 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -404,6 +404,8 @@ sections: title: Account-level Audiences - path: '/engage/audiences/generative-audiences' title: Generative Audiences + - path: '/engage/audiences/generative-audiences-nutrition-facts' + title: Generative Audiences Nutrition Facts Label - path: '/engage/audiences/organization' title: Organize Audiences diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index f595387070..a2a97fe2f2 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -246,3 +246,13 @@ If no mappings are enabled to trigger on an event that has been received from th ### Multiple mappings triggered by the same event When the same event triggers multiple mappings, a request will be generated for each mapping that's configured to trigger on an event. For example, for the *Subscription Updated* event, if two mappings are enabled and both have conditions defined to trigger on the *Subscription Updated* event, the two requests will be generated and sent to the destination for each *Subscription Updated* event. + +### Oauth "access token expired" message shown in Segment UI +Access Tokens that were generated from initial authorization, for example, when you connect a destination via Oauth, are always short-lived. Commonly, the token remains valid for 30 minutes to 1 hour. When Segment receives 401 error responses from the destination after a token has expired, it will automatically make another request to the destination for a new token and will then retry the event. Therefore, 401 responses are sometimes expected and do not indicate an event failure. There are three event flows when events are received and sent to a destination: + +- through source +- through event tester +- through actions tester in mapping screen + +The underlying systems for these flows have their own copy of the token, which can expire at different points in time. +Threfore, if you see a 401 error in a sample response, it is likely that you’ll also see another request was made after it, to ask the downstream destination for a new token. Then one more request was made to actually send the data in your payload to the downstream destination. diff --git a/src/connections/destinations/catalog/actions-amplitude/index.md b/src/connections/destinations/catalog/actions-amplitude/index.md index cf54f10903..eed70ad6c8 100644 --- a/src/connections/destinations/catalog/actions-amplitude/index.md +++ b/src/connections/destinations/catalog/actions-amplitude/index.md @@ -51,13 +51,17 @@ To manually add the Log Purchases Action: ### Connection Modes for Amplitude (Actions) destination -The Amplitude (actions) destination does not offer a device-mode connection mode. If you're using one of Segment's new libraries ([Analytics.js 2.0](/docs/connections/sources/catalog/libraries/website/javascript/), [Swift](https://github.com/segmentio/analytics-swift){:target="_blank”} or [Kotlin](https://github.com/segmentio/analytics-kotlin){:target="_blank”}) with the Actions-framework version of the destination, you do not need the device-mode connection. +The Amplitude (Actions) destination does not offer a device-mode connection mode. Previous deployments of the Amplitude Segment destination required the device-mode connection to use the `session_id` tracking feature. However, the Amplitude (Actions) destination now includes session ID tracking by default when you use Segment's ([Analytics.js 2.0](/docs/connections/sources/catalog/libraries/website/javascript/) library. +### Track sessions -Most previous deployments of the Amplitude Segment destination used the device-mode connection to use the `session_id` tracking feature. The new Actions-framework Amplitude destination includes session ID tracking by default. When connected to the Analytics.js 2.0 source, Segment automatically loads a plugin on your website for session tracking and enrichment as an alternative to the Amplitude SDK. This means you don't need to bundle any software to run on the user's device, or write any code. It also means that you can use more of the Segment platform features on data going to Amplitude, such as Protocols filtering and transformations, and Profiles Identity Resolution. +Session tracking is available with Segment's new libraries: [Analytics.js 2.0](/docs/connections/sources/catalog/libraries/website/javascript/), [Swift](/docs/connections/sources/catalog/libraries/mobile/apple/) or [Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/). -Session tracking is available with Segment's new libraries: [Analytics.js 2.0](/docs/connections/sources/catalog/libraries/website/javascript/), [Swift](https://github.com/segmentio/analytics-swift){:target="_blank”} or [Kotlin](https://github.com/segmentio/analytics-kotlin){:target="_blank”}. +When connected to the Analytics.js 2.0 source, Segment automatically loads a plugin on your website for session tracking and enrichment as an alternative to the Amplitude SDK. This means you don't need to bundle any software or write any code to run on the user's device, and can use more of the Segment platform features for data going to Amplitude, like [Protocols filtering and transformations](/docs/protocols/) and [Unify Identity Resolution](/unify/identity-resolution/). +If you're using one of Segment's [Swift]((/docs/connections/sources/catalog/libraries/mobile/apple/), [Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/), or [React Native](/docs/connections/sources/catalog/libraries/mobile/react-native/) libraries, you will need to include the Amplitude destination plugin to enable session tracking. + +You can read more about Amplitude's [tracking sessions](https://help.amplitude.com/hc/en-us/articles/115002323627-Track-sessions){:target="_blank”} feature in Amplitude's documentation. ### Device ID Mappings The Amplitude destination requires that each event include either a Device ID or a User ID. If a User ID isn't present, Amplitude uses a Device ID, and vice versa, if a Device ID isn't present, Amplitude uses the User ID. 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 86b70877a8..343f6da4a6 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 @@ -15,6 +15,10 @@ versions: When you have Segment installed, you can use your existing tracking implementation to fulfill your data collection needs with Google Analytics 4. When you enable the Google Analytics 4 Web destination, Segment loads the [gtag.js library](https://support.google.com/analytics/answer/9310895?hl=en#zippy=%2Cin-this-article){:target="_blank"} for you. To avoid duplicate data, remove the native gtag.js script from your page. +> info "Consent Mode" +> Segment is currently building Consent Mode for all affected Google destinations. This will be available before March 6, 2024. + + ## Getting started Before you connect Segment to Google Analytics 4, configure a Google Analytics 4 property in your Analytics account. For more information, see Google's article [Set up Analytics for a website and/or app](https://support.google.com/analytics/answer/9304153){:target='_blank'}. diff --git a/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md b/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md index c5fc08d535..18a3b90ce1 100644 --- a/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md +++ b/src/connections/destinations/catalog/actions-google-enhanced-conversions/index.md @@ -17,6 +17,9 @@ The Google Ads Conversions destination enables you to upload offline conversions 6. On the **Settings** tab, authenticate with Google using OAuth. Click **Connect to Google Ads Conversions**. Follow the prompts to authenticate using OAuth, with a Google account that is a member of your Google Ads account. 7. Follow the steps in the Destinations Actions documentation on [Customizing mappings](/docs/connections/destinations/actions/#customizing-mappings). +> info "Consent Mode" +> Segment is currently building Consent Mode for all affected Google destinations. This will be available before March 6, 2024. + > warning "Upload Enhanced Conversion (Legacy) Action Deprecation" > Google plans to sunset the legacy API, leading to the discontinuation of the Upload Enhanced Conversions (Legacy) Action. New subscriptions using the sunsetting Upload Enhanced Conversion (Legacy) Action are **no longer possible**, but existing subscriptions will remain functional. > diff --git a/src/connections/destinations/catalog/adwords-remarketing-lists/index.md b/src/connections/destinations/catalog/adwords-remarketing-lists/index.md index 6db73ba14f..919217c003 100644 --- a/src/connections/destinations/catalog/adwords-remarketing-lists/index.md +++ b/src/connections/destinations/catalog/adwords-remarketing-lists/index.md @@ -9,6 +9,9 @@ id: 5a6b50f1c900fa00011858fd The Google Ads Remarketing Lists destination is one of Segment's most popular Engage List destinations. It has a variety of use cases related to exclusion, acquisition (using Similar Audience), remarketing, and more. +> info "Consent Mode" +> Segment is currently building Consent Mode for all affected Google destinations. This will be available before March 6, 2024. + This destination can send audiences created in [Engage](/docs/engage/) to Google Ads as a [Customer List](https://support.google.com/google-ads/answer/6276125){:target="_blank"}. Once you set this destination up, Segment sends an initial user list of users to the [Google Ads API](https://developers.google.com/google-ads/api/docs/remarketing/overview){:target="_blank"}. As users move in and out of the audience, Segment automatically updates the list in Google every hour. This allows you to run advertising campaigns without having manually update the list of users to target in your Google Ads campaigns. diff --git a/src/connections/destinations/catalog/avo/images/avo-destination.png b/src/connections/destinations/catalog/avo/images/avo-destination.png index d59a4e984f..7289986883 100644 Binary files a/src/connections/destinations/catalog/avo/images/avo-destination.png and b/src/connections/destinations/catalog/avo/images/avo-destination.png differ diff --git a/src/connections/destinations/catalog/avo/index.md b/src/connections/destinations/catalog/avo/index.md index 18e541beff..fd1a829b53 100644 --- a/src/connections/destinations/catalog/avo/index.md +++ b/src/connections/destinations/catalog/avo/index.md @@ -5,13 +5,13 @@ beta: true redirect_from: "/connections/destinations/catalog/actions-avo/" --- -With [Avo](https://avo.app){:target="\_blank”} Inspector, data quality is no longer a dream, it’s a workflow. +**Avo lets you find, fix, and prevent data quality issues upstream.** World class data and product teams at companies like Fender, IKEA, and Wolt use Avo to guarantee event data quality upstream, so they can focus on building great user experiences. With Avo you get reliable data with less effort, by moving from reactive damage control to proactive data management and addressing your data quality issues at the source, where the data is created. -[Inspector](https://www.avo.app/data-observability){:target="\_blank”} lets you find, triage, fix, and prevent data quality issues in your product analytics. Launch Inspector to discover all your data quality issues and systematically work towards better data, one resolved issue at a time. +With [Avo](https://avo.app){:target="\_blank”} Inspector, data quality is no longer a dream, it’s a workflow. +[Inspector](https://www.avo.app/data-observability){:target="\_blank”} lets you find, triage, fix, and prevent data quality issues in your event based data. Launch Inspector to discover all your data quality issues and systematically work towards better data, one resolved issue at a time. The Avo Inspector destination automatically extracts event schemas from your product events, sending only the signatures from the connected Segment sources to the Inspector API. **Avo Inspector receives no PII data from your source**. - {% include content/plan-grid.md name="actions" %} ## Supported methods @@ -30,7 +30,7 @@ analytics.track("Login", { }); ``` -This Track call is translated into a event signature that is sent to Avo's Inspector API. +This Track call is translated into an event signature that is sent to Avo's Inspector API. ```js { @@ -47,15 +47,15 @@ This Track call is translated into a event signature that is sent to Avo's Inspe 1. From the Segment web app, click **Catalog**, then click **Destinations**. 2. Find the Destinations Actions item in the left navigation, and click it. -3. Select Avo from the list of destinations, then click **Add destination**. -4. Select a source to connect to Avo (Actions) and click **Next**. -5. Enter a name for your Avo (Actions) destination and click **Create destination**. +3. Select [Avo](https://app.segment.com/goto-my-workspace/destinations/catalog/actions-avo){:target="\_blank”} from the list of destinations, then click **Add destination**. +4. Select a source to connect to Avo (Actions) and click **Next**. +5. Enter a name for your Avo (Actions) destination and click **Create destination**. +## Configure Avo -{% include components/actions-fields.html %} +### Get the Avo API key -## Getting Avo API key -Before connecting the segment source to Avo, you will need an API key for your source. +Before connecting the Segment source to Avo, you will need an API key for your source. 1. Create your Avo workspace at avo.app (If you don’t have one already). 2. From the Avo workspace sidebar, select **Sources**. @@ -65,9 +65,27 @@ Before connecting the segment source to Avo, you will need an API key for your s 5. Copy the API Key ![Copy API key](images/api-key.png) -## Destination settings -1. Copy the **API Key** from Avo into the field `API Key` in settings. -2. Select an environment you'd like the data to go to within Avo. It should reflect from what environment the source is receiving data from. (**Production** / **Development** / **Staging**) -3. **(Optional):** If you have an event property describing the app release version of your source you can provide it under App Version. By default the destination attempts to extract your app release version from `{context.app.version}` which defaults to `unversioned` if that does not exist. Having accurate app release versions in Avo Inspector will help you identify which releases an issue is impacting, and monitor for regressions in future releases after you’ve resolved the issue. +### Configure Destination + +#### Avo Inspector API key + +You can copy the API key from your source in Avo. The API key allows Avo to map the events from your Segment source to the Avo source, to accurately compare your source’s event schemas to your Tracking Plan in Avo. + +#### Environment + +Environment describes which app environment the source is sent from, `Development | Staging | Production`. +Avo only generates issues for events in your `Production` environment, but you can see the event shapes for staging and development environments to make sure they are implemented correctly. + +#### App Version Property + +App Version Property is an optional **(but recommended)** field. Having accurate app release versions in Avo Inspector allows you to see how events change across releases. This helps you identify which releases an issue is impacting, and monitor for regressions in future releases after an issue has been resolved. + +Without app versions, the inspector has no way of differentiating between old and new releases, and might surface irrelevant issues based on old releases. Learn more about how Inspector uses releases in [Avo's documentation](https://www.avo.app/docs/inspector/inspector-issues-view#release-and-source-breakdown){:target="\_blank”}. + +For most mobile sources, Avo automatically fetches the app version from Segment Context. If you have an event property describing the app release version of your source (for example, “app_version”) you can provide it under App Version. + +If you are unsure of whether this applies to your source, or if you don’t know which event property to use, you can proceed with setting up the source and add this information later. ![Select a source](images/avo-destination.png) + +{% include components/actions-fields.html %} diff --git a/src/connections/destinations/catalog/google-ads-classic/index.md b/src/connections/destinations/catalog/google-ads-classic/index.md index 3e010a32ca..e4dcf73489 100644 --- a/src/connections/destinations/catalog/google-ads-classic/index.md +++ b/src/connections/destinations/catalog/google-ads-classic/index.md @@ -14,6 +14,9 @@ id: 54521fd525e721e32a72ee92 With Segment, you can use your events to fire a Google Ads conversion pixel from your website **in client-side JavaScript.** You can also trigger Google Ads (Classic) conversion from your mobile app using the **Server to Server** destination, so you don't need to include the SDK in your app. The server to server connection requires mobile device specific details to forward the events to Google Ads (Classic). Google Ads (Classic) **does not work with any server-side libraries**. Make sure when you're setting up your Google Ads (Classic) conversions that you choose the appropriate tracking method. +> info "Consent Mode" +> Segment is currently building Consent Mode for all affected Google destinations. This will be available before March 6, 2024. + ### Configure the Google Ads (Classic) destination 1. From the Segment Destinations Catalog find and select Google Ads (Classic). diff --git a/src/connections/destinations/catalog/google-ads-gtag/index.md b/src/connections/destinations/catalog/google-ads-gtag/index.md index db76677af5..64cad7f78e 100644 --- a/src/connections/destinations/catalog/google-ads-gtag/index.md +++ b/src/connections/destinations/catalog/google-ads-gtag/index.md @@ -28,6 +28,10 @@ You can use this destination to map your `.page()` calls to **Page Load Conversi 5. On the destination Settings tab, enter the **Conversion ID** from your Google Ads (Gtag) account. 6. Select the 'Click Conversion' setting. Enter the name of the event as it appears in the [`track`](/docs/connections/spec/track) call and map it to your Google Ads (Gtag) conversion label. +> info "Consent Mode" +> Segment is currently building Consent Mode for all affected Google destinations. This will be available before March 6, 2024. + + ## Page If you want to map all your unnamed `.page()` calls to a default Page Load Conversion, you can enter the Conversion ID in **Settings > Default Page Conversion**. However, if you created specific Page Load Conversions in Google Ads that you'd like to map your named `.page()` calls in Segment, you can map the events in **Settings > Page Load Conversions**. diff --git a/src/connections/destinations/catalog/google-tag-manager/index.md b/src/connections/destinations/catalog/google-tag-manager/index.md index 7e2d31622d..d56280cc6a 100644 --- a/src/connections/destinations/catalog/google-tag-manager/index.md +++ b/src/connections/destinations/catalog/google-tag-manager/index.md @@ -17,6 +17,9 @@ id: 54521fd625e721e32a72eeb9 3. In your Segment UI's destination settings, enter your Container ID (note: it should start with "GTM-"). You can find this in the Admin section of your [GTM dashboard](https://tagmanager.google.com/#/admin/){:target="_blank"}. 4. GTM loads on any pages where your Segment snippet is initialized and `analytics.page` is called in client-side JavaScript. Once you've turned on GTM through Segment, you can use Segment `track` events to populate the GTM `dataLayer`, and remove the GTML snippet from your page. +> info "Consent Mode" +> Segment is currently building Consent Mode for all affected Google destinations. This will be available before March 6, 2024. For Google Tag Manager, please note that consent mode settings need to be managed directly [within your GTM account](https://support.google.com/tagmanager/answer/10718549?hl=en#tag-settings){:target="_blank"}. There's no direct update from Segment for the GTM destination regarding consent mode, as it's managed within GTM tags themselves. + > info "" > Segment recommends that you load GTM through Segment rather than loading Segment inside of GTM. When you load Segment through GTM, it limits Segment's ability to help troubleshoot. diff --git a/src/connections/sources/catalog/libraries/server/csharp/index.md b/src/connections/sources/catalog/libraries/server/csharp/index.md index 1cf3a5f818..f034bf4982 100644 --- a/src/connections/sources/catalog/libraries/server/csharp/index.md +++ b/src/connections/sources/catalog/libraries/server/csharp/index.md @@ -1,7 +1,7 @@ --- title: Analytics-CSharp (C#) strat: csharp -support_type: maintenance +support_type: flagship id: redirect_from: - '/connections/sources/catalog/libraries/mobile/unity' diff --git a/src/connections/sources/catalog/libraries/server/kotlin/index.md b/src/connections/sources/catalog/libraries/server/kotlin/index.md index e09ec1a26e..17d1a036c4 100644 --- a/src/connections/sources/catalog/libraries/server/kotlin/index.md +++ b/src/connections/sources/catalog/libraries/server/kotlin/index.md @@ -3,6 +3,7 @@ title: Analytics for Kotlin (Server) redirect_from: - '/connections/sources/catalog/cloud-apps/kotlin/' id: yMu7LRR59b +support_type: flagship --- With Analytics-Kotlin, you can send data using Kotlin applications to any analytics or marketing tool without having to learn, test, or implement a new API every time. Analytics-Kotlin enables you to process and track the history of a payload, while Segment controls the API and prevents unintended operations. diff --git a/src/connections/sources/catalog/libraries/website/shopify/index.md b/src/connections/sources/catalog/libraries/website/shopify/index.md index 65561e9d8b..8cd3904946 100644 --- a/src/connections/sources/catalog/libraries/website/shopify/index.md +++ b/src/connections/sources/catalog/libraries/website/shopify/index.md @@ -1,7 +1,7 @@ --- title: Shopify redirect_from: -id: +id: pL0LSh5JRA hidden: true --- diff --git a/src/engage/audiences/generative-audiences-nutrition-facts.md b/src/engage/audiences/generative-audiences-nutrition-facts.md new file mode 100644 index 0000000000..026f46f4f1 --- /dev/null +++ b/src/engage/audiences/generative-audiences-nutrition-facts.md @@ -0,0 +1,9 @@ +--- +title: Generative Audiences Nutrition Facts Label +--- + +Twilio’s [AI Nutrition Facts](https://nutrition-facts.ai/){:target="_blank"} provide an overview of the AI feature you’re using, so you can better understand how the AI is working with your data. Twilio outlines AI qualities in Generative Audiences in the Nutrition Facts label below. For more information, including the AI Nutrition Facts label glossary, refer to the [AI Nutrition Facts](https://nutrition-facts.ai/){:target="_blank"} page. + +![The Generative Audiences Nutrition Facts label](/docs/engage/images/generative-audiences-nutrition-facts.png) + + \ No newline at end of file diff --git a/src/engage/audiences/generative-audiences.md b/src/engage/audiences/generative-audiences.md index cb221b934f..d9f1382d4d 100644 --- a/src/engage/audiences/generative-audiences.md +++ b/src/engage/audiences/generative-audiences.md @@ -11,6 +11,8 @@ With Generative Audiences, part of Segment's CustomerAI, use generative AI to cr Describe your desired audience based on events performed, profile traits, or existing audiences in your workspace. Based on your prompt, Segment builds the audience with generative AI. +For more details on AI usage and data, see [Generative Audiences Nutrition Facts Label](/docs/engage/audiences/generative-audiences-nutrition-facts/). + In this article, you'll learn how to use Generative Audiences along with some best practices. ## Create an audience with Generative Audiences diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index e77d5ecec9..e47d8264b6 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -23,6 +23,9 @@ You can build an Audience from existing events, traits, computed traits, or othe > - **Include Anonymous Users** not selected: `user_id`, `email`, `android.idfa`, or `ios.idfa` > - **Include Anonymous Users** selected: `user_id`, `email`, `android.idfa`, `ios.idfa`, or `anonymous_id` +> warning "" +> Editing an audience before the initial backfill is complete can create technical errors. + ### Events You can build an Audience from any events that are connected to Engage, including [Track](/docs/connections/spec/track), [Page](/docs/connections/spec/page), and [Screen](/docs/connections/spec/screen) calls. You can use the `property` button to refine the audience on specific event properties, as well. diff --git a/src/engage/images/generative-audiences-nutrition-facts.png b/src/engage/images/generative-audiences-nutrition-facts.png new file mode 100644 index 0000000000..1b51101834 Binary files /dev/null and b/src/engage/images/generative-audiences-nutrition-facts.png differ