diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 8186fd3e58..d88a8a7fa1 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 2025-08-21 +# destination categories last updated 2025-08-28 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 823b06a6ea..7bbcbddb67 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 2025-08-21 +# destination data last updated 2025-08-28 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -6190,7 +6190,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Order Completed" fields: - - id: bzPDcwFKachfkx3rSDQR4X + - id: 4ZnhFx5fFUfaD575Xvrxma sortOrder: 0 fieldKey: eventSubtype label: Event Subtype @@ -6207,7 +6207,7 @@ items: value: addToCart dynamic: false allowNull: false - - id: oi7UAXBM9m22uBxzHj6ZtU + - id: iK5Xgf9JWB14aWnF97qipJ sortOrder: 1 fieldKey: products label: Product Details @@ -6235,7 +6235,7 @@ items: choices: null dynamic: false allowNull: false - - id: 97cVdQq1euH9xy7CBxBFnt + - id: j48bBwJhNgnMeXR7G9VETx sortOrder: 2 fieldKey: index label: Index @@ -6249,7 +6249,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8zHC4XKT6zw1fSEVNCkpXx + - id: vDgJ7rFwPb3YYGuVGjPwYH sortOrder: 3 fieldKey: queryID label: Query ID @@ -6269,28 +6269,44 @@ items: choices: null dynamic: false allowNull: false - - id: ue7YzadGXzJeh4ehdM3WCk + - id: 2Jv73gRwu9uKfCkmUvXtpx sortOrder: 4 fieldKey: userToken label: User Token type: STRING - description: The ID associated with the user. + description: >- + The ID associated with the user. If a user is authenticated, this should + be set to the same value as the Authenticated User Token placeholder: '' defaultValue: '@if': exists: - '@path': $.userId + '@path': $.anonymousId then: - '@path': $.userId - else: '@path': $.anonymousId + else: + '@path': $.userId required: true multiple: false choices: null dynamic: false allowNull: false - - id: h9Z14o4tJtwWSijrZHUKEX + - id: EQZSbYtcUgFZUW9MrTC1t sortOrder: 5 + fieldKey: authenticatedUserToken + label: Authenticated User Token + type: STRING + description: The authenticated ID associated with the user. + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: nojCWunTbdEdQpq3F7nze4 + sortOrder: 6 fieldKey: timestamp label: Timestamp type: STRING @@ -6303,8 +6319,8 @@ items: choices: null dynamic: false allowNull: false - - id: 27h7UbwYBziAv55r7BkqVq - sortOrder: 6 + - id: 2mc1AfZWEEWQZy7YNvaVe4 + sortOrder: 7 fieldKey: value label: Value type: NUMBER @@ -6317,8 +6333,8 @@ items: choices: null dynamic: false allowNull: false - - id: hNuSorFNTweWTihYZJpApn - sortOrder: 7 + - id: cmxnciX5MK217Qir9svwsT + sortOrder: 8 fieldKey: currency label: Currency type: STRING @@ -6333,8 +6349,8 @@ items: choices: null dynamic: false allowNull: false - - id: i2QrLsoBAwJdZmyJioFtpK - sortOrder: 8 + - id: xh3V6ZDL1JXXKmDwuUVio + sortOrder: 9 fieldKey: extraProperties label: Extra Properties type: OBJECT @@ -6349,8 +6365,8 @@ items: choices: null dynamic: false allowNull: false - - id: cLo6E8qcNBWbtyqQAitdz2 - sortOrder: 9 + - id: nioEPZDw6rLdaTFEGCrbwU + sortOrder: 10 fieldKey: eventName label: Event Name type: STRING @@ -6362,8 +6378,8 @@ items: choices: null dynamic: false allowNull: false - - id: 3jgcs9xg89MqesYUtgLue2 - sortOrder: 10 + - id: 5mDYJnd7dVf9BgwmdLk74X + sortOrder: 11 fieldKey: eventType label: Event Type type: STRING @@ -6386,18 +6402,18 @@ items: slug: productViewedEvents description: >- Product view events act as a positive signal for associated record objects - — the associated Product ID. Query ID is optional and indicates that the - view events is the result of a search query. + — the associated Product ID. Query ID is optional and indicates that the + view event is the result of a search query. platform: CLOUD hidden: false defaultTrigger: type = "track" and event = "Product Viewed" fields: - - id: kBPaEg6EPdnmtzYsTupfZr + - id: ho7r6SB4mbC4VjqoBZpWkj sortOrder: 0 fieldKey: objectID label: Product ID type: STRING - description: Product ID of the clicked item. + description: Product ID of the viewed item. placeholder: '' defaultValue: '@path': $.properties.product_id @@ -6406,7 +6422,7 @@ items: choices: null dynamic: false allowNull: false - - id: uLVFmBiX7RrJgCa7wNRcyQ + - id: 7KJx9LZr2GvR6noH2dnpxb sortOrder: 1 fieldKey: index label: Index @@ -6420,7 +6436,7 @@ items: choices: null dynamic: false allowNull: false - - id: tnVBeTQnKAV4vTSJTs91Qn + - id: 2pZx3vbGL8iSEx3QGddC77 sortOrder: 2 fieldKey: queryID label: Query ID @@ -6440,28 +6456,44 @@ items: choices: null dynamic: false allowNull: false - - id: wZ3jvuLQnN2dVs4sVShBNo + - id: 6WDoQyGyAiUhDBJAZbq6JV sortOrder: 3 fieldKey: userToken label: User Token type: STRING - description: The ID associated with the user. + description: >- + The ID associated with the user. If a user is authenticated, this should + be set to the same value as the Authenticated User Token placeholder: '' defaultValue: '@if': exists: - '@path': $.userId + '@path': $.anonymousId then: - '@path': $.userId - else: '@path': $.anonymousId + else: + '@path': $.userId required: true multiple: false choices: null dynamic: false allowNull: false - - id: j19bZs6RrEFxHDLZThr31C + - id: 73xs8X22GWvVkPerCqXXGL sortOrder: 4 + fieldKey: authenticatedUserToken + label: Authenticated User Token + type: STRING + description: The authenticated ID associated with the user. + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ot3W2bCNiXWGZ6XKbj4K3Y + sortOrder: 5 fieldKey: timestamp label: Timestamp type: STRING @@ -6474,8 +6506,8 @@ items: choices: null dynamic: false allowNull: false - - id: eBpLKV7MGxZ7DYenVQFTKz - sortOrder: 5 + - id: 84vhwxApGdV1myXgJmpH3F + sortOrder: 6 fieldKey: extraProperties label: Extra Properties type: OBJECT @@ -6490,8 +6522,8 @@ items: choices: null dynamic: false allowNull: false - - id: oj4J9zP5sQ4sFQQL4syinC - sortOrder: 6 + - id: uzJPLbkwc8GbUanun6gyCZ + sortOrder: 7 fieldKey: eventName label: Event Name type: STRING @@ -6505,8 +6537,8 @@ items: choices: null dynamic: false allowNull: false - - id: 3oJL4pbiUzCXyZ9iTQUAzb - sortOrder: 7 + - id: 6Lj3KpCpPVtkukVQVmj4So + sortOrder: 8 fieldKey: eventType label: Event Type type: STRING @@ -6534,7 +6566,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Clicked" fields: - - id: 6YQw3RMv6kYGb4figikT71 + - id: u8axMMMzhpBNnKGXideNXm sortOrder: 0 fieldKey: objectID label: Product ID @@ -6550,7 +6582,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4jQBych2ueuNKAi5E2La56 + - id: 8XNUP1Nhfr4sGk6bCjfL2C sortOrder: 1 fieldKey: index label: Index @@ -6564,7 +6596,7 @@ items: choices: null dynamic: false allowNull: false - - id: htzkQqY5Uph1JVem4j51px + - id: vEt5pyN5TP31B71cQag4Sk sortOrder: 2 fieldKey: queryID label: Query ID @@ -6584,7 +6616,7 @@ items: choices: null dynamic: false allowNull: false - - id: gy2vySb7QycbC4LZ9MSFvy + - id: 83YXwFsAcX7EzwuQ3JR4bf sortOrder: 3 fieldKey: position label: Position @@ -6598,28 +6630,44 @@ items: choices: null dynamic: false allowNull: false - - id: uqWsGp6kZPvWMU9CQ7BFgg + - id: koPiu8L2BnpQmFoMXExnE4 sortOrder: 4 fieldKey: userToken label: User Token type: STRING - description: The ID associated with the user. + description: >- + The ID associated with the user. If a user is authenticated, this should + be set to the same value as the Authenticated User Token placeholder: '' defaultValue: '@if': exists: - '@path': $.userId + '@path': $.anonymousId then: - '@path': $.userId - else: '@path': $.anonymousId + else: + '@path': $.userId required: true multiple: false choices: null dynamic: false allowNull: false - - id: cfNrCrUkHAvMsCCN7LueqU + - id: h1jxPSuzFHnKw9dU41JPUg sortOrder: 5 + fieldKey: authenticatedUserToken + label: Authenticated User Token + type: STRING + description: The authenticated ID associated with the user. + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bY6bPZiYnH7tKdbqvcNzCK + sortOrder: 6 fieldKey: timestamp label: Timestamp type: STRING @@ -6632,8 +6680,8 @@ items: choices: null dynamic: false allowNull: false - - id: kG3GmRo7pCVjCCmHZRjFeA - sortOrder: 6 + - id: kmqyZrTCn9jBkQKf8QKuoa + sortOrder: 7 fieldKey: extraProperties label: Extra Properties type: OBJECT @@ -6648,8 +6696,8 @@ items: choices: null dynamic: false allowNull: false - - id: oqvq1M17zZzV5zeRTiv1G1 - sortOrder: 7 + - id: mULsJ82jecKZy1swEPKgd + sortOrder: 8 fieldKey: eventName label: Event Name type: STRING @@ -6663,8 +6711,8 @@ items: choices: null dynamic: false allowNull: false - - id: qfoQBYmM87Rraj6sRkXiE8 - sortOrder: 8 + - id: vbTXAjjTw4xUSxhR39wv1L + sortOrder: 9 fieldKey: eventType label: Event Type type: STRING @@ -6690,7 +6738,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product List Filtered" fields: - - id: wBhy3BLj2GZioNeA7nGX7T + - id: o1qHwSbdkKoU4tTrAt3z1o sortOrder: 0 fieldKey: filters label: Filters @@ -6712,7 +6760,7 @@ items: choices: null dynamic: false allowNull: false - - id: cdLZgYVZfvRZjHqvwHWrNd + - id: uVfqpo6oMxTWgHdEfVwytG sortOrder: 1 fieldKey: index label: Index @@ -6726,7 +6774,7 @@ items: choices: null dynamic: false allowNull: false - - id: tcBcsVgS3uz9EAXwwPmfDw + - id: mpuW3QbMcY9h4YFPb341BG sortOrder: 2 fieldKey: queryID label: Query ID @@ -6746,28 +6794,44 @@ items: choices: null dynamic: false allowNull: false - - id: uco5QWszWopGfGWdPS8Fj3 + - id: hoBtbYuFfXbDy8RrkqDdba sortOrder: 3 fieldKey: userToken label: User Token type: STRING - description: The ID associated with the user. + description: >- + The ID associated with the user. If a user is authenticated, this should + be set to the same value as the Authenticated User Token placeholder: '' defaultValue: '@if': exists: - '@path': $.userId + '@path': $.anonymousId then: - '@path': $.userId - else: '@path': $.anonymousId + else: + '@path': $.userId required: true multiple: false choices: null dynamic: false allowNull: false - - id: nkPn7t5FJRzkLJQdKYBHCj + - id: vw3QquBAVzaUz6xKhn6wMa sortOrder: 4 + fieldKey: authenticatedUserToken + label: Authenticated User Token + type: STRING + description: The authenticated ID associated with the user. + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rkWgF8dK2TYzTW5PPdf6MY + sortOrder: 5 fieldKey: timestamp label: Timestamp type: STRING @@ -6780,8 +6844,8 @@ items: choices: null dynamic: false allowNull: false - - id: v9ka7FqZXtiCME7QtFAqsq - sortOrder: 5 + - id: aPkrp2eWbYfin1S5nUMcU6 + sortOrder: 6 fieldKey: extraProperties label: Extra Properties type: OBJECT @@ -6796,8 +6860,8 @@ items: choices: null dynamic: false allowNull: false - - id: bJuE2GvAw8FfgQ5PY7FS5o - sortOrder: 6 + - id: ioNyXvBaT1FxTZNdDmuCJC + sortOrder: 7 fieldKey: eventName label: Event Name type: STRING @@ -6811,8 +6875,8 @@ items: choices: null dynamic: false allowNull: false - - id: 3assDR2KSKnAQrGjQ39Pvh - sortOrder: 7 + - id: bSQGWArKmu2pRTXDDzoNTq + sortOrder: 8 fieldKey: eventType label: Event Type type: STRING @@ -6842,7 +6906,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Added" fields: - - id: k8ChFgusnwjkvRNmHiWVtx + - id: 7iZgazsNJPrnDkyZiouFyY sortOrder: 0 fieldKey: product label: Product ID @@ -6858,7 +6922,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8fApLYemLJfTkkNx5XTydm + - id: teBAX6GzJSv8vTXVtWMZ8X sortOrder: 1 fieldKey: index label: Index @@ -6872,7 +6936,7 @@ items: choices: null dynamic: false allowNull: false - - id: bGwhTz3JsscNZtnAqy7yU8 + - id: b6vttf29YQWSp1a5TorVwh sortOrder: 2 fieldKey: queryID label: Query ID @@ -6892,7 +6956,7 @@ items: choices: null dynamic: false allowNull: false - - id: hYo2PDRg33itLQZFskNWZn + - id: uqz25Ht7weBpQRbugyosJ8 sortOrder: 3 fieldKey: userToken label: User Token @@ -6912,7 +6976,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7aGbKTfjfJtaRwNR4fczE1 + - id: krW9NKJfAQmeLB4wGi3MNZ sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -6926,7 +6990,7 @@ items: choices: null dynamic: false allowNull: false - - id: qfZrHXESR69peBrqEtpsci + - id: dA1VVjgXJqLFQKLFysbWjT sortOrder: 5 fieldKey: extraProperties label: Extra Properties @@ -6942,7 +7006,7 @@ items: choices: null dynamic: false allowNull: false - - id: tSXZbMv3ixmEZYXRTx9jZw + - id: sAJr1p4nYdvukUCJGZRoLM sortOrder: 6 fieldKey: eventName label: Event Name @@ -6955,7 +7019,7 @@ items: choices: null dynamic: false allowNull: false - - id: jWbAM4fsyHif2ZfLPoPn1p + - id: ieiXfbBkkyAtqAawzvbjK8 sortOrder: 7 fieldKey: eventType label: Event Type @@ -6984,7 +7048,177 @@ items: type = "track" or type = "identify" or type = "page" or type = "group" or type = "alias" fields: [] + - id: 75gDnmTweWdRQAPuy3kzVB + name: Product List Viewed Events + slug: productListViewedEvents + description: >- + Product list viewed events act as a positive signal for associated record + objects — the associated Product IDs. Query ID is optional and indicates + that the view events are the result of a search query. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event = "Product List Viewed" + fields: + - id: sfN2PiemkLw6CanqJ2wejj + sortOrder: 0 + fieldKey: products + label: Product Details + type: OBJECT + description: >- + The viewed products. Populates the ObjectIDs field in the Algolia + Insights API. Each object must contain a product_id field. + placeholder: '' + defaultValue: + '@arrayPath': + - $.properties.products + - product_id: + '@path': $.product_id + required: true + multiple: true + choices: null + dynamic: false + allowNull: false + - id: 4UdtczThWLUPWAmCyoa71X + sortOrder: 1 + fieldKey: index + label: Index + type: STRING + description: Name of the targeted search index. + placeholder: '' + defaultValue: + '@path': $.properties.search_index + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: uCfAHYjhMs1iNFkaqxW4p7 + sortOrder: 2 + fieldKey: queryID + label: Query ID + type: STRING + description: Query ID of the list on which the items were viewed. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.properties.query_id + then: + '@path': $.properties.query_id + else: + '@path': $.integrations.Algolia Insights (Actions).query_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fNB2ZTQH3UJmEWHdnyPiYw + sortOrder: 3 + fieldKey: userToken + label: User Token + type: STRING + description: >- + The ID associated with the user. If a user is authenticated, this should + be set to the same value as the Authenticated User Token + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.anonymousId + then: + '@path': $.anonymousId + else: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 8NyCirC8v1yh4pg9K7aQ9n + sortOrder: 4 + fieldKey: authenticatedUserToken + label: Authenticated User Token + type: STRING + description: The authenticated ID associated with the user. + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: v9UAxetm5z1nGBKth9vha + sortOrder: 5 + fieldKey: timestamp + label: Timestamp + type: STRING + description: The timestamp of the event. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: cxpE7Hi7j3rHsJ1rdWY9iJ + sortOrder: 6 + fieldKey: extraProperties + label: Extra Properties + type: OBJECT + description: >- + Additional fields for this event. This field may be useful for Algolia + Insights fields which are not mapped in Segment. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: te68KeoyD6UB3XmQ5ESzbD + sortOrder: 7 + fieldKey: eventName + label: Event Name + type: STRING + description: >- + The name of the event to be send to Algolia. Defaults to 'Product List + Viewed' + placeholder: '' + defaultValue: Product List Viewed + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: cD2y7QKYeZmDiLREJCTJ69 + sortOrder: 8 + fieldKey: eventType + label: Event Type + type: STRING + description: The type of event to send to Algolia. Defaults to 'view' + placeholder: '' + defaultValue: view + required: false + multiple: false + choices: + - label: view + value: view + - label: conversion + value: conversion + - label: click + value: click + dynamic: false + allowNull: false presets: + - actionId: pMj2PGgP2c3hHzLMae4iBb + name: Algolia Plugin + fields: {} + trigger: >- + type = "track" or type = "identify" or type = "group" or type = "page" or + type = "alias" - actionId: 2KEUSgKKYG2W82DdaBGsF4 name: Send purchase events to Algolia fields: @@ -7015,11 +7249,13 @@ items: userToken: '@if': exists: - '@path': $.userId + '@path': $.anonymousId then: - '@path': $.userId - else: '@path': $.anonymousId + else: + '@path': $.userId + authenticatedUserToken: + '@path': $.userId timestamp: '@path': $.timestamp value: @@ -7031,6 +7267,41 @@ items: eventName: Conversion Event eventType: conversion trigger: type = "track" and event = "Order Completed" + - actionId: 75gDnmTweWdRQAPuy3kzVB + name: Send product list viewed events to Algolia + fields: + products: + '@arrayPath': + - $.properties.products + - product_id: + '@path': $.product_id + index: + '@path': $.properties.search_index + queryID: + '@if': + exists: + '@path': $.properties.query_id + then: + '@path': $.properties.query_id + else: + '@path': $.integrations.Algolia Insights (Actions).query_id + userToken: + '@if': + exists: + '@path': $.anonymousId + then: + '@path': $.anonymousId + else: + '@path': $.userId + authenticatedUserToken: + '@path': $.userId + timestamp: + '@path': $.timestamp + extraProperties: + '@path': $.properties + eventName: Product List Viewed + eventType: view + trigger: type = "track" and event = "Product List Viewed" - actionId: etbKXm8QsQyQAo83znMszn name: Send product clicked events to Algolia fields: @@ -7051,11 +7322,13 @@ items: userToken: '@if': exists: - '@path': $.userId + '@path': $.anonymousId then: - '@path': $.userId - else: '@path': $.anonymousId + else: + '@path': $.userId + authenticatedUserToken: + '@path': $.userId timestamp: '@path': $.timestamp extraProperties: @@ -7081,11 +7354,13 @@ items: userToken: '@if': exists: - '@path': $.userId + '@path': $.anonymousId then: - '@path': $.userId - else: '@path': $.anonymousId + else: + '@path': $.userId + authenticatedUserToken: + '@path': $.userId timestamp: '@path': $.timestamp extraProperties: @@ -7116,11 +7391,13 @@ items: userToken: '@if': exists: - '@path': $.userId + '@path': $.anonymousId then: - '@path': $.userId - else: '@path': $.anonymousId + else: + '@path': $.userId + authenticatedUserToken: + '@path': $.userId timestamp: '@path': $.timestamp extraProperties: @@ -7158,11 +7435,13 @@ items: userToken: '@if': exists: - '@path': $.userId + '@path': $.anonymousId then: - '@path': $.userId - else: '@path': $.anonymousId + else: + '@path': $.userId + authenticatedUserToken: + '@path': $.userId timestamp: '@path': $.timestamp value: @@ -7174,12 +7453,6 @@ items: eventName: Conversion Event eventType: conversion trigger: type = "track" and event = "Product Added" - - actionId: pMj2PGgP2c3hHzLMae4iBb - name: Algolia Plugin - fields: {} - trigger: >- - type = "track" or type = "identify" or type = "group" or type = "page" or - type = "alias" partnerOwned: true - id: 66543798b2fb3cb3e9ff992c display_name: Amazon Ads DSP and AMC @@ -22127,6 +22400,228 @@ items: actions: [] presets: [] partnerOwned: false +- id: 6891fb45c0068b7fad1e80a5 + display_name: Batch (Actions) + name: Batch (Actions) + slug: batch-actions + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/batch-actions + previous_names: + - Batch (Actions) + website: http://www.segment.com + status: PUBLIC_BETA + categories: + - CRM + logo: + url: https://cdn-devcenter.segment.com/a6bfb97c-8e56-48cc-9c1f-3009e815e9a4.svg + mark: + url: https://cdn-devcenter.segment.com/8157e37e-b676-413f-9eaf-76e70ad981ae.svg + methods: + track: true + identify: true + group: true + alias: true + screen: false + page: true + platforms: + browser: true + mobile: false + server: true + warehouse: true + cloudAppObject: false + linkedAudiences: true + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + connection_modes: + device: + web: false + mobile: false + server: false + cloud: + web: true + mobile: false + server: true + settings: + - name: apiToken + type: password + defaultValue: '' + description: Token used to authorize sending data to the Destination platform + required: true + label: REST API Key + - name: projectKey + type: string + defaultValue: '' + description: >- + The unique project key identifying your project in the Destination + platform + required: true + label: Project Key + actions: + - id: 9KtmDfFDELBYa5xraQt3ED + name: Update User Profile + slug: updateProfile + description: Sends user events or creates and updates user profiles in Batch. + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" or type = "track" + fields: + - id: 2NpCNYMPAWmxZTSv8UXB9o + sortOrder: 0 + fieldKey: identifiers + label: Identifiers + type: OBJECT + description: User identifiers + placeholder: '' + defaultValue: + custom_id: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: x8236vKSTToH7PFdkrChUG + sortOrder: 3 + fieldKey: profileAttributes + label: Profile attributes + type: OBJECT + description: >- + Attributes for the user profile. Batch can accept up to 50 attributes + per user. + placeholder: '' + defaultValue: + language: + '@path': $.context.locale + email_address: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.traits.email + phone_number: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.traits.phone + email_marketing: + '@if': + exists: + '@path': $.context.traits.email_marketing + then: + '@path': $.context.traits.email_marketing + else: + '@path': $.traits.email_marketing + sms_marketing: + '@if': + exists: + '@path': $.context.traits.sms_marketing + then: + '@path': $.context.traits.sms_marketing + else: + '@path': $.traits.sms_marketing + timezone: + '@path': $.context.timezone + region: + '@path': $.context.locale + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: vf4JJzXjNK3JNodUpndHjv + sortOrder: 4 + fieldKey: eventName + label: Event Name + type: STRING + description: The name of the event. + placeholder: '' + defaultValue: + '@path': $.event + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: g5L3xmbGRgWkSR38Vxjn87 + sortOrder: 5 + fieldKey: eventAttributes + label: Event Attributes + type: OBJECT + description: An object containining the event's attributes + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: + - actionId: 9KtmDfFDELBYa5xraQt3ED + name: Update Profile + fields: + identifiers: + custom_id: + '@path': $.userId + enable_batching: true + batch_size: 200 + profileAttributes: + language: + '@path': $.context.locale + email_address: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.traits.email + phone_number: + '@if': + exists: + '@path': $.context.traits.phone + then: + '@path': $.context.traits.phone + else: + '@path': $.traits.phone + email_marketing: + '@if': + exists: + '@path': $.context.traits.email_marketing + then: + '@path': $.context.traits.email_marketing + else: + '@path': $.traits.email_marketing + sms_marketing: + '@if': + exists: + '@path': $.context.traits.sms_marketing + then: + '@path': $.context.traits.sms_marketing + else: + '@path': $.traits.sms_marketing + timezone: + '@path': $.context.timezone + region: + '@path': $.context.locale + eventName: + '@path': $.event + eventAttributes: + '@path': $.properties + trigger: type = "identify" or type = "track" + partnerOwned: true - id: 5d2d8f56f159f30001b3c3a9 display_name: Beamer name: Beamer @@ -34081,9 +34576,9 @@ items: - Email Marketing - SMS & Push Notifications logo: - url: https://cdn.filepicker.io/api/file/GyZ581zaSTmv9T1ivLE0 + url: https://cdn-devcenter.segment.com/bce5a23d-6fed-4180-a1a9-a2fcf91168fb.svg mark: - url: https://cdn.filepicker.io/api/file/w8zEnnazRwaPhGG4lLux + url: https://cdn-devcenter.segment.com/8984113c-b9f1-45c6-b3c3-6062b7cb5a6f.svg methods: track: true identify: true @@ -34175,9 +34670,9 @@ items: categories: - Email Marketing logo: - url: https://cdn.filepicker.io/api/file/GyZ581zaSTmv9T1ivLE0 + url: https://cdn-devcenter.segment.com/d43129fb-a9c3-4317-bcba-eaeaf4637e78.svg mark: - url: https://cdn.filepicker.io/api/file/w8zEnnazRwaPhGG4lLux + url: https://cdn-devcenter.segment.com/219023bf-49ba-41fb-8703-153fbd041e00.svg methods: track: true identify: true @@ -94487,7 +94982,7 @@ items: display_name: Nudge (Actions) name: Nudge (Actions) slug: actions-nudge - hidden: true + hidden: false endpoints: - US regions: @@ -97378,6 +97873,229 @@ items: '@path': $.properties trigger: type = "track" partnerOwned: true +- id: 686799c65fcebef2a98c8141 + display_name: Ortto (Audiences) + name: Ortto (Audiences) + slug: ortto-audiences + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/ortto-audiences + previous_names: + - Ortto (Audiences) + website: https://ortto.com/ + status: PUBLIC_BETA + categories: + - Marketing Automation + - Email Marketing + logo: + url: https://cdn-devcenter.segment.com/99a99cd8-e7ee-4a03-a036-c452f16d88b9.svg + mark: + url: https://cdn-devcenter.segment.com/2a40c644-7a81-4bd6-b8ac-81b000bb8008.svg + methods: + track: true + identify: true + group: true + alias: true + screen: false + page: true + platforms: + browser: true + mobile: false + server: true + warehouse: false + cloudAppObject: false + linkedAudiences: false + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + connection_modes: + device: + web: false + mobile: false + server: false + cloud: + web: true + mobile: false + server: true + settings: + - name: api_key + type: password + defaultValue: '' + description: Ortto API key + required: true + label: API Key + actions: + - id: cvxDHPVFdG8iRw8Wiks5Ls + name: Sync Audience + slug: syncAudience + description: Sync contacts to Ortto + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" or type = "track" + fields: + - id: ctwX5y5FwiVtfJwLpj6Ehw + sortOrder: 1 + fieldKey: computation_key + label: Audience Computation Key + type: STRING + description: >- + The name of a boolean trait/property in Segment that indicates a user's + membership in a specific audience. This name matches Segment's friendly + name for the audience exactly. + placeholder: '' + defaultValue: + '@path': $.context.personas.computation_key + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sbJssgaNFdLHtTYRc1J1Dv + sortOrder: 2 + fieldKey: external_audience_id + label: Ortto Audience ID + type: STRING + description: >- + Unique Audience Identifier returned by the createAudience() function + call. + placeholder: '' + defaultValue: + '@path': $.context.personas.external_audience_id + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: false + - id: 3afrHi9z5KoxXiSM14NfQG + sortOrder: 3 + fieldKey: message_id + label: Message ID + type: STRING + description: Message ID + placeholder: '' + defaultValue: + '@path': $.messageId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2h4peivm86hGdZzdFG4bMk + sortOrder: 4 + fieldKey: enable_batching + label: Batch data + type: BOOLEAN + description: >- + When enabled, events will be sent to Ortto in batches for improved + efficiency. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mEZiQsGdWyZAfojiYPXkUy + sortOrder: 6 + fieldKey: user_id + label: User ID + type: STRING + description: The unique user identifier + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: bccAemmEERFNYH1e1EwNyw + sortOrder: 7 + fieldKey: anonymous_id + label: Anonymous ID + type: STRING + description: Anonymous user identifier + placeholder: '' + defaultValue: + '@path': $.anonymousId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dfkH7PVbj9YseGiwSdZiKu + sortOrder: 8 + fieldKey: ip + label: IP Address + type: STRING + description: The contact's IP address + placeholder: 180.1.12.125 + defaultValue: + '@if': + exists: + '@path': $.traits.ip + then: + '@path': $.traits.ip + else: + '@path': $.properties.ip + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: nNeeARHg8ZB4qxoXpPH6St + sortOrder: 9 + fieldKey: location + label: Location + type: OBJECT + description: The contact's location. Will take priority over the IP address. + placeholder: '' + defaultValue: + country: + '@if': + exists: + '@path': $.traits.country + then: + '@path': $.traits.country + else: + '@path': $.properties.country + state: + '@if': + exists: + '@path': $.traits.state + then: + '@path': $.traits.state + else: + '@path': $.properties.state + city: + '@if': + exists: + '@path': $.traits.city + then: + '@path': $.traits.city + else: + '@path': $.properties.city + post_code: + '@if': + exists: + '@path': $.traits.postal_code + then: + '@path': $.traits.postal_code + else: + '@path': $.properties.postal_code + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + presets: [] + partnerOwned: true - id: 62df16e45ba0058c864a75d1 display_name: Pardot (Actions) name: Pardot (Actions) @@ -122400,20 +123118,21 @@ items: presets: [] partnerOwned: true - id: 65c36c1e127fb2c8188a414c - display_name: StackAdapt - name: StackAdapt - slug: actions-stackadapt-cloud + display_name: 'StackAdapt Events & Conversions ' + name: 'StackAdapt Events & Conversions ' + slug: stackadapt-events-conversions- hidden: false endpoints: - US regions: - us-west-2 - eu-west-1 - url: connections/destinations/catalog/actions-stackadapt-cloud + url: connections/destinations/catalog/stackadapt-events-conversions- previous_names: - StackAdapt Cloud (Actions) - StackAdapt - Actions - StackAdapt + - 'StackAdapt Events & Conversions ' website: https://go.stackadapt.com/segment-marketplace status: PUBLIC_BETA categories: @@ -122466,7 +123185,7 @@ items: hidden: false defaultTrigger: type = "identify" or type = "page" or type = "screen" or type = "track" fields: - - id: dhnTvnA931YoKHr3GnJvR3 + - id: d9fgTcsqrZB34AJwd5JsJs sortOrder: 0 fieldKey: user_id label: Segment User ID @@ -122486,7 +123205,7 @@ items: choices: null dynamic: false allowNull: false - - id: hckXqG8f3iHeg1FhvuU2GM + - id: gerXVC42SQMmT1FznL39rN sortOrder: 1 fieldKey: event_type label: Event Type @@ -122500,7 +123219,7 @@ items: choices: null dynamic: false allowNull: false - - id: xfmG3MvVLo7N4mwRWRnWQ6 + - id: jS1gpsy3uxpjCZcNtg1Wv7 sortOrder: 2 fieldKey: action label: Event Name @@ -122514,7 +123233,7 @@ items: choices: null dynamic: false allowNull: false - - id: 47pQm3BJoE3Mf9sP1ueqJr + - id: esvJPsGMfgUeX7xrkSWAF3 sortOrder: 3 fieldKey: ip_fwd label: IP Address @@ -122528,7 +123247,7 @@ items: choices: null dynamic: false allowNull: false - - id: hzAHgHUwRaDHeLNNrb5NcW + - id: wGyNG8ecy4zwHUtBNB2tiq sortOrder: 4 fieldKey: title label: Page Title @@ -122542,7 +123261,7 @@ items: choices: null dynamic: false allowNull: false - - id: fLTN8THv3Yo3xDWv61cFRq + - id: hfXRhYTDWZuE124jJFSw6n sortOrder: 5 fieldKey: url label: URL @@ -122556,7 +123275,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4jmF4KPejSAnM9PsoVunZJ + - id: 7bD1U7MX8iVnfdREpZN8m9 sortOrder: 6 fieldKey: referrer label: Referrer @@ -122570,7 +123289,7 @@ items: choices: null dynamic: false allowNull: false - - id: rym6qN9txwGLRmkffFgng3 + - id: tMz2Ye44HeToiHZBBpd6eL sortOrder: 7 fieldKey: utm_source label: UTM Source @@ -122584,7 +123303,7 @@ items: choices: null dynamic: false allowNull: false - - id: mXAkGZ6MncV49T4E6GNqPm + - id: 6zHeD2WRuTD5GEUgh9kGHC sortOrder: 8 fieldKey: user_agent label: User Agent @@ -122598,7 +123317,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3tFpEVZNpgS3yeEryGAQbz + - id: DggDtgSXhoxYS5x3AVrCJ sortOrder: 9 fieldKey: email label: Email @@ -122618,7 +123337,7 @@ items: choices: null dynamic: false allowNull: false - - id: 52aQaMLXyujSz3DB75DWBu + - id: usTJQG4j2ZL4pnjSsZMzw5 sortOrder: 10 fieldKey: phone label: Phone Number @@ -122638,7 +123357,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7ZRMqwT9fMdFzuvW8TYzUA + - id: tFotqZjWh9QQiNooAmd5Eg sortOrder: 11 fieldKey: first_name label: First Name @@ -122658,7 +123377,7 @@ items: choices: null dynamic: false allowNull: false - - id: qyM8ZPZcPBe4GskgLXGRBJ + - id: qdGo7P4n6gHCYrFm8riRx7 sortOrder: 12 fieldKey: last_name label: Last Name @@ -122678,7 +123397,7 @@ items: choices: null dynamic: false allowNull: false - - id: bmJ3pHwREho6nnpf7UJZxv + - id: 6Lk9BEJoeAtQYdAvddBVcP sortOrder: 13 fieldKey: ecommerce_data label: Ecommerce Data @@ -122705,7 +123424,7 @@ items: choices: null dynamic: false allowNull: false - - id: d99oaceCPchkiNiiFfnzMM + - id: gHvrPghmEyDs1TLD8SoL6L sortOrder: 14 fieldKey: ecommerce_products label: Products @@ -138812,6 +139531,65 @@ items: '@path': $.traits trigger: type = "identify" partnerOwned: true +- id: 68207e064c022255721ec2d3 + display_name: Userpilot Mobile + name: Userpilot Mobile + slug: userpilot-mobile + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/userpilot-mobile + previous_names: + - Userpilot Mobile + website: https://userpilot.com + status: PUBLIC_BETA + categories: + - Personalization + - Analytics + logo: + url: https://cdn-devcenter.segment.com/196fe932-31c9-477b-9d19-8778643abfdd.svg + mark: + url: https://cdn-devcenter.segment.com/7947dc3a-30f9-4dbf-b36f-514ecd79d9d5.svg + methods: + track: true + identify: true + group: true + alias: false + screen: false + page: false + platforms: + browser: true + mobile: true + server: true + warehouse: false + cloudAppObject: false + linkedAudiences: 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: token + type: string + defaultValue: '' + description: Your Userpilot mobile account token + required: true + label: Token + actions: [] + presets: [] + partnerOwned: true - id: 6480b4eeab29eca5415089d4 display_name: Userpilot Web (Actions) name: Userpilot Web (Actions) @@ -139641,154 +140419,6 @@ items: actions: [] presets: [] partnerOwned: true -- id: 54521fdc25e721e32a72ef01 - display_name: Visual Website Optimizer - name: Visual Website Optimizer - slug: visual-website-optimizer - hidden: false - endpoints: - - US - regions: - - us-west-2 - - eu-west-1 - url: connections/destinations/catalog/visual-website-optimizer - previous_names: - - Visual Website Optimizer - website: http://visualwebsiteoptimizer.com - status: PUBLIC - categories: - - A/B Testing - logo: - url: https://cdn.filepicker.io/api/file/VFEXv8cXT6KnV0de1SEq - mark: - url: null - methods: - track: true - identify: false - group: false - alias: false - screen: false - page: false - platforms: - browser: true - mobile: false - server: false - warehouse: false - cloudAppObject: false - linkedAudiences: false - components: - - code: >- - https://github.com/segment-integrations/analytics.js-integration-visual-website-optimizer - type: BROWSER - browserUnbundlingSupported: false - browserUnbundlingPublic: true - replay: false - connection_modes: - device: - web: true - mobile: false - server: false - cloud: - web: false - mobile: false - server: false - settings: - - name: accountId - type: string - defaultValue: '' - description: |- - Your VWO account ID, used for fetching your VWO async smart code. - - This setting is only effective if "Use Async Smart Code" is enabled. - required: false - label: Account ID - - name: experimentNonInteraction - type: boolean - defaultValue: false - description: >- - For Google Analytics users - enabling this setting will add the - `nonInteraction` flag to your Experiment Viewed calls. This can help with - low bounce rates. - required: false - label: Make Experiment Viewed Non-interactive - - name: isSpa - type: boolean - defaultValue: false - description: >- - Enable this setting if your website is a SPA. We will configure VWO's SDK - to enable SPA on their end. - required: false - label: Single Page Application - - name: libraryTolerance - type: number - defaultValue: 2500 - description: >- - The maximum amount of time (in milliseconds) to wait for VWO's full - library to be downloaded before simply displaying your original page. - - - This setting is only effective if "Use Async Smart Code" is set to "true". - required: false - label: Library Tolerance - - name: listen - type: boolean - defaultValue: true - description: >- - Sends the experiment and variation information as properties on a track - call. - required: false - label: Send experiment data to other tools (as a track call) - - name: replay - type: boolean - defaultValue: false - description: Sends the experiment id and variation name as traits on the identify call. - required: false - label: Send experiment data to other tools (as an identify call) - - name: settingsTolerance - type: number - defaultValue: 2000 - description: >- - The maximum amount of time (in milliseconds) to wait for test settings - before VWO will simply display your original page. - - - This setting is only effective if "Use Async Smart Code" is set to "true". - required: false - label: Settings Tolerance - - name: trackOnlyAbExperiments - type: boolean - defaultValue: true - description: >- - Enable this setting if you only want to send to VWO events on A/B - Experiments. If disabled, we'll send events for all experiments. - required: false - label: Track Only AB Experiments - - name: useAsyncSmartCode - type: boolean - defaultValue: false - description: >- - If you would like to utilize VWO's asynchronous smart code, toggle on this - feature. This means you will not need to include VWO's native snippet on - your page as Segment will do this on your behalf. If this feature is - toggled off, you will need to include VWO's native smart code on your - webpage. - required: false - label: Use Async Smart Code - - name: useExistingJQuery - type: boolean - defaultValue: false - description: >- - If your page already includes JQuery, you can set this to "true". - Otherwise, VWO will include JQuery onto the page for you. VWO needs JQuery - on the page to function correctly. - - - This setting is only effective if "Use Async Smart Code" is enabled. - required: false - label: Use Existing JQuery - actions: [] - presets: [] - partnerOwned: false - id: 5c5239a982bdf80001a6ac7d display_name: Vitally name: Vitally diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 48548abac9..5d000da89c 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 2025-08-21 +# destination data last updated 2025-08-28 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index f4dbe5c183..cc6a3f2206 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 2025-08-21 +# source categories last updated 2025-08-28 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 972dcc56ee..c760aa7615 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 2025-08-21 +# sources last updated 2025-08-28 items: - id: 8HWbgPTt3k display_name: .NET @@ -568,11 +568,12 @@ items: automatically send emails to your users after they perform actions, making drip email campaigns really easy. logo: - url: https://cdn.filepicker.io/api/file/GyZ581zaSTmv9T1ivLE0 + url: >- + https://cdn-devcenter.segment.com/8fc0785f-8b1d-4ec9-9f89-4a7861d2906b.svg categories: - Email Marketing status: PUBLIC - partnerOwned: true + partnerOwned: false - id: aSPS4yE0CZ display_name: Databricks isCloudEventSource: false diff --git a/src/_includes/content/spec-field-identify-traits.md b/src/_includes/content/spec-field-identify-traits.md index 92dc225855..105ec18f65 100644 --- a/src/_includes/content/spec-field-identify-traits.md +++ b/src/_includes/content/spec-field-identify-traits.md @@ -4,6 +4,6 @@ Object Free-form dictionary of traits of the user, like `email` or `name`. - See the [Traits field docs](/docs/connections/spec/identify#traits) for a list of reserved trait names. + See the [Custom traits section](/docs/connections/spec/identify/#custom-traits) for a list of reserved trait names. diff --git a/src/connections/destinations/catalog/actions-algolia-insights/index.md b/src/connections/destinations/catalog/actions-algolia-insights/index.md index 38a031a44a..71aebaead8 100644 --- a/src/connections/destinations/catalog/actions-algolia-insights/index.md +++ b/src/connections/destinations/catalog/actions-algolia-insights/index.md @@ -5,13 +5,15 @@ redirect_from: - '/connections/destinations/catalog/algolia/' id: 63e52bea7747fbc311d5b872 --- -With the [Algolia Insights (Actions)](https://www.algolia.com/products/analytics/){:target="_blank"} destination, you can send [Insights Events](https://www.algolia.com/doc/guides/sending-events/getting-started/){:target="_blank"}. It's required to send Insight Events to use these Algolia features: +With the Algolia Insights (Actions) destination, you can send [Insights Events](https://www.algolia.com/doc/guides/sending-events/getting-started/){:target="_blank"}. Insight Events are required to use these Algolia features: -- Click and conversion analytics -- A/B Testing -- AI Re-Ranking -- Personalization -- Algolia Recommend +- [Click and conversion analytics](https://www.algolia.com/doc/guides/search-analytics/overview/){:target="_blank"} +- [Algolia Recommend](https://www.algolia.com/doc/guides/algolia-recommend/overview/){:target="_blank"} +- [Personalization](https://www.algolia.com/doc/guides/personalization/classic-personalization/what-is-personalization/){:target="_blank"} +- [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/){:target="_blank"} +- [A/B Testing](https://www.algolia.com/doc/guides/ab-testing/what-is-ab-testing/){:target="_blank"} +- [Query Categorization](https://www.algolia.com/doc/guides/algolia-ai/query-categorization/){:target="_blank"} +- [NeuralSearch](https://www.algolia.com/doc/guides/getting-started/neuralsearch/){:target="_blank"} This destination is maintained by [Algolia](https://www.algolia.com/){:target="_blank”}. For any issues with the destination, [contact the Algolia team](mailto:hey@algolia.com). @@ -25,7 +27,7 @@ This destination is maintained by [Algolia](https://www.algolia.com/){:target="_ ### Getting your Algolia credentials -Your app ID and API key can be found in the **API Keys** section of your account settings in the Algolia dashboard. You will need a **search** API key to set up the destination. +Your app ID and API key can be found in the **API Keys** section of your account settings in the Algolia dashboard. You need a **search** API key to set up the destination. ![Dashboard Settings](images/algolia_dashboard_settings.png) @@ -37,13 +39,19 @@ Your app ID and API key can be found in the **API Keys** section of your account The Algolia Insights Destination is not a plug-and-play integration. It requires you to modify your frontend code to add additional Algolia-related data like an index name and a query ID. -To access your query ID, make sure [`clickAnalytics`](https://www.algolia.com/doc/api-reference/api-parameters/clickAnalytics/) is enabled in your searches. If you're using our JavaScript search API client, this will look like: +To access your query ID, make sure [`clickAnalytics`](https://www.algolia.com/doc/api-reference/api-parameters/clickAnalytics/){:target="_blank"} is enabled in your searches. If you're using the [JavaScript v5 search API client](https://www.algolia.com/doc/libraries/javascript/v5/methods/search/search-single-index/?client=javascript){:target="_blank"}, this looks like: ```js -index.search('query', { +import { algoliasearch } from 'algoliasearch'; + +const client = algoliasearch('ALGOLIA_APPLICATION_ID', 'ALGOLIA_API_KEY'); + +const response = await client.searchSingleIndex({ + indexName: '', + query: '', userToken: 'user-1', clickAnalytics: true -}) +}); ``` Once this is enabled, you will be able to access `queryID` in your search response, which you can then use in your Segment events. @@ -52,10 +60,14 @@ You can read more about how to send Algolia-related data to Segment in the [Algo ## Mapping Events -By default, Algolia has set up mappings for `Product List Filtered`, `Product Clicked`, `Product Viewed`, `Product Added` and `Order Completed` events. If your event structure doesn't match Segment's [Ecommerce Spec](/docs/connections/spec/ecommerce/v2/), you can update this in the destination mappings section of the Segment app. +By default, Algolia has set up mappings for `Product List Filtered`, `Product List Viewed`, `Product Viewed`, `Product Clicked`, `Product Added` and `Order Completed` events. If your event structure doesn't match Segment's [Ecommerce Spec](/docs/connections/spec/ecommerce/v2/), you can update this in the destination mappings section of the Segment app. ![Mappings Tab](images/mappings_tab.png) +### User identifiers + +When mapping user identifiers, Algolia recommends using the **Authenticated User Token** field to map authenticated user IDs and the **User Token** field for anonymous user IDs. For more detail, see the [Algolia documentation](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/#persistent-user-token){:target="_blank"}. + ## Track If you're not familiar with the Segment spec, take a look to understand what the [Track](/docs/connections/spec/track/) method does. @@ -72,13 +84,17 @@ Algolia supports the following Segment events out of the box: Send this event when a visitor filters a product list or category. - Product Clicked - Fire this event when a visitor clicks a product. + Product List Viewed + Send this event when a visitor views a product list or category. Product Viewed Fire this event when a visitor views a product. + + Product Clicked + Fire this event when a visitor clicks a product. + Product Added Fire this event when a visitor adds a product to their shopping cart. @@ -104,10 +120,16 @@ analytics.track('Product List Filtered', { // ... other required properties from the spec }) -analytics.track('Product Clicked', { +analytics.track('Product List Viewed', { search_index: "my-index-name", - product_id: "hit objectID", - position: hitPositionOnIndex, // number + products: [ + { + product_id: "hit objectID", + }, + { + product_id: "hit objectID 2", + }, + ], query_id: "Algolia queryID", // required only for Click Analytics, // ... other required properties from the spec }) @@ -119,6 +141,15 @@ analytics.track('Product Viewed', { // ... other required properties from the spec }) +analytics.track('Product Clicked', { + search_index: "my-index-name", + product_id: "hit objectID", + position: hitPositionOnIndex, // number + query_id: "Algolia queryID", // required only for Click Analytics, + // ... other required properties from the spec +}) + +// This analytics.track('Product Added', { search_index: "my-index-name", product_id: "hit objectID", diff --git a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md index 9c2c0071e8..e9de2af80a 100644 --- a/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md +++ b/src/connections/destinations/catalog/actions-amazon-conversions-api/index.md @@ -7,7 +7,7 @@ hide-dossier: true private: true hidden: true beta: true - +redirect_from: /connections/destinations/catalog/amazon-conversions-api/ --- The Amazon Conversions API (Actions) destination is a server-to-server integration with the Amazon Events API. This destination allows advertisers to send real-time or offline conversion events data from Segment directly to Amazon without needing Amazon Ad Tag (AAT) setup. diff --git a/src/connections/destinations/catalog/actions-batch/images/attributes_mapping.png b/src/connections/destinations/catalog/actions-batch/images/attributes_mapping.png new file mode 100644 index 0000000000..5eea55b773 Binary files /dev/null and b/src/connections/destinations/catalog/actions-batch/images/attributes_mapping.png differ diff --git a/src/connections/destinations/catalog/actions-batch/images/basic_settings_destination.png b/src/connections/destinations/catalog/actions-batch/images/basic_settings_destination.png new file mode 100644 index 0000000000..a020e5abe9 Binary files /dev/null and b/src/connections/destinations/catalog/actions-batch/images/basic_settings_destination.png differ diff --git a/src/connections/destinations/catalog/actions-batch/images/events_mapping.png b/src/connections/destinations/catalog/actions-batch/images/events_mapping.png new file mode 100644 index 0000000000..60a16f9f74 Binary files /dev/null and b/src/connections/destinations/catalog/actions-batch/images/events_mapping.png differ diff --git a/src/connections/destinations/catalog/actions-batch/images/test_record.png b/src/connections/destinations/catalog/actions-batch/images/test_record.png new file mode 100644 index 0000000000..aea3daf33c Binary files /dev/null and b/src/connections/destinations/catalog/actions-batch/images/test_record.png differ diff --git a/src/connections/destinations/catalog/actions-batch/index.md b/src/connections/destinations/catalog/actions-batch/index.md new file mode 100644 index 0000000000..e556073b22 --- /dev/null +++ b/src/connections/destinations/catalog/actions-batch/index.md @@ -0,0 +1,206 @@ +--- +title: Batch (Actions) Destination +id: 596d11f870a3e552b957e6d9 +--- + +{% include content/plan-grid.md name="actions" %} + +[Batch](https://batch.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} is a customer engagement platform for personalized, timely notifications and messages that boost retention and drive growth. + +This destination is maintained by Batch. For any issues, [contact Batch Support](mailto:support@batch.com){:target="_blank"}. + +## Getting started + +1. From your workspace’s [destinations catalog](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"}, search for **Batch**. +2. Select **Batch (Actions)** and click **Add Destination**. +3. Choose the **source** you want to connect to **Batch (Actions)**. +4. In the [Batch dashboard](https://dashboard.batch.com/){:target="_blank"}, copy your **Project Key** and **REST API Key**. +5. Paste the **Project Key** and **REST API Key** into the Batch destination settings in Segment. +6. Toggle **Enable Destination**. Segment will start sending data to Batch according to your **Mappings**. + +![Basic settings destination](./images/basic_settings_destination.png "Basic settings destination") + +{% include components/actions-fields.html %} + +## Profile attributes mapping + +> info "" +> If you’re new to the Identify call, see the [Segment spec](/docs/connections/spec/identify/) for more details. + +When you call **Identify**, Segment maps `userId` to **`identifiers.custom_id`** and writes traits into **`attributes`**. + +### Example Identify call (Segment input) + +```js +analytics.identify("97980cfea0067", { + name: "Peter Gibbons", + email: "peter@example.com", + phone: "+33600000000", + email_marketing: "subscribed", + sms_marketing: "unsubscribed", + plan: "premium", + logins: 5 +}, { + context: { + timezone: "Europe/Paris", + locale: "fr-FR" + } +}); +``` + +### Auto-mapped fields (native) + +| Segment field | Batch field | +|----------------------------------------|---------------------------------| +| `userId` | `identifiers.custom_id` | +| `traits.email` | `attributes.$email_address` | +| `traits.phone` | `attributes.$phone_number` | +| `traits.email_marketing` | `attributes.$email_marketing` | +| `traits.sms_marketing` | `attributes.$sms_marketing` | +| `context.timezone` | `attributes.$timezone` | +| `context.locale` → language *(for example: `fr`)*| `attributes.$language` | +| `context.locale` → region *(for example: `FR`)* | `attributes.$region` | + +**Notes** + +- `$email_marketing` / `$sms_marketing`: use `subscribed` / `unsubscribed`. +- A locale like `fr-FR` is split into **language** (`fr`) and **region** (`FR`). +- All other non‑reserved fields become **custom attributes** under `attributes` (strings, numbers, booleans, arrays of strings). Avoid arbitrary nested objects. + +> info "" +> For more details on the fields to be included, refer to the Batch [API Profile documentation](https://doc.batch.com/developer/api/cep/profiles/update){:target="_blank"}. + +### Resulting Batch profile payload (output) + +```json +{ + "identifiers": { + "custom_id": "97980cfea0067" + }, + "attributes": { + "$email_address": "peter@example.com", + "$phone_number": "+33600000000", + "$email_marketing": "subscribed", + "$sms_marketing": "unsubscribed", + "$language": "fr", + "$region": "FR", + "$timezone": "Europe/Paris", + + "name": "Peter Gibbons", + "plan": "premium", + "logins": 5 + } +} +``` + +### Add custom mappings + +To map additional traits into Batch profile attributes: + +1. Open your destination → **Mappings** → **Edit Mapping**. +2. Go to **Profile attributes** → **Add Mapping Field**. +3. Choose a **source** (for example, `traits.plan`) and set a **target** under `attributes` (for example, `attributes.plan`). +![Attributes mapping](./images/attributes_mapping.png "Attributes mapping") +4. In **Step 4 – Send test record**, you can test your mapping before saving. +![Test record](./images/test_record.png "Test record") +5. **Save** and enable the mapping. + +> info "Supported types" +> Strings, numbers, booleans, arrays of strings are supported. +> Avoid arbitrary nested objects. + +## Historical backfill request + +If you want to integrate your entire Segment userbase into Batch using the **Identify** method, you can request a historical backfill from Segment. + +To do this: + +1. **Contact Segment Support** at [friends@segment.com](mailto:friends@segment.com). +2. **Request a historical replay** of your data. +3. Provide Segment with the following details: + - **Start date and time** + - **End date and time** (usually “now”) + - **Source**: the Segment source you want to replay + - **Destination**: **Batch (Actions)** + - **Events**: `Identify` + +Segment will then replay your historical data so Batch can import your full userbase. + +## Profile events mapping + +When you call **Track**, Segment uses your `userId` as Batch’s **`identifiers.custom_id`**. A **userId is required** to attribute the event to a profile. + +> info "" +> For more details on the Track call, see the [Track spec](/docs/connections/spec/track). + +### Example Track call (Segment input) + +```js +analytics.track("User Registered", { + plan: "Pro Annual", + accountType: "Facebook" +}, { + userId: "97980cfea0067" +}); +``` + +### How Segment maps to Batch + +| Segment | Batch | +|-------------------|-------------------------| +| `userId` | `identifiers.custom_id` | +| `event` | `event.name` | +| `properties.*` | `event.attributes.*` | + +### Resulting Batch event payload (output) + +```json +{ + "identifiers": { + "custom_id": "97980cfea0067" + }, + "event": { + "name": "User Registered", + "attributes": { + "plan": "Pro Annual", + "accountType": "Facebook" + } + } +} +``` + +Events are sent to Batch in near real time according to your destination mappings, and all event `properties` are included under `event.attributes`. + +![Events mapping](./images/events_mapping.png "Events mapping") + +## Validation checklist + +- Always send a stable `userId` → becomes `identifiers.custom_id`. +- Place native profile fields under `attributes`: `$email_address`, `$email_marketing`, `$phone_number`, `$sms_marketing`, `$language`, `$region`, `$timezone`. +- Put everything else under **custom attributes** in `attributes`. +- Format dates using **ISO‑8601 UTC** (for example: `1989-07-20T00:00:00Z`). +- Configure additional mappings in **Mappings → Edit Mapping**. +- Test with a read-back or export to verify types, encodings, and timezones. + +## Integrating a computed trait + +> info "" +> For more details on computed traits, see the [Segment spec](/docs/unify/Traits/computed-traits). + +To integrate a computed trait with Batch: + +1. Go to your **Segment workspace**. +2. Open the **Engage** tab → **Destinations**. + - If your Batch destination is already listed, skip this step. + - Otherwise, click **Add destination** and select **Batch (Actions)**. +3. Open the **Engage** tab → **Audiences** → **Computed traits**. +4. Click **Create computed trait**. +5. Configure your **calculation method** (for example: count, aggregation, last value). +6. Click **Preview**, then **Next**. +7. Select your **Batch destination**. +8. Choose how to send the data: + - For an attribute → enable **Send Identify** in the connection settings. + - For an event → enable **Send Track**. +9. Give your computed trait a **clear name**. + +Segment will then automatically update and forward your computed trait data to Batch. diff --git a/src/connections/destinations/catalog/actions-blend-ai/index.md b/src/connections/destinations/catalog/actions-blend-ai/index.md index 2e1892a274..3eba3589f1 100644 --- a/src/connections/destinations/catalog/actions-blend-ai/index.md +++ b/src/connections/destinations/catalog/actions-blend-ai/index.md @@ -6,7 +6,7 @@ id: 64244158b33d1380a79dc85c --- {% include content/plan-grid.md name="actions" %} -[Blend-AI](https://blnd.ai/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} identifies the most valuable product interaction in your product data and cross references it with new incoming leads. +[Blend-AI](https://blend-ai.com/){:target="_blank"} identifies the most valuable product interaction in your product data and cross references it with new incoming leads. Blend-AI maintains this destination. For any issues with the destination, [contact their Support team](mailto:support@blnd.ai). diff --git a/src/connections/destinations/catalog/actions-drip/index.md b/src/connections/destinations/catalog/actions-drip/index.md index 1c93c1f124..3c000b9c88 100644 --- a/src/connections/destinations/catalog/actions-drip/index.md +++ b/src/connections/destinations/catalog/actions-drip/index.md @@ -1,6 +1,7 @@ --- title: Drip (Actions) Destination id: 673b62169b3342fbe0fc28da +redirect_from: /connections/destinations/catalog/drip-actions/ --- {% include content/plan-grid.md name="actions" %} diff --git a/src/connections/destinations/catalog/actions-dub/index.md b/src/connections/destinations/catalog/actions-dub/index.md index 2d3baf17ad..ea9ec1e715 100644 --- a/src/connections/destinations/catalog/actions-dub/index.md +++ b/src/connections/destinations/catalog/actions-dub/index.md @@ -1,6 +1,7 @@ --- title: Dub (Actions) Destination id: 682db6914f35aafb2757ef24 +redirect_from: /connections/destinations/catalog/dub-actions/ --- {% include content/plan-grid.md name="actions" %} diff --git a/src/connections/destinations/catalog/actions-first-party-dv360/index.md b/src/connections/destinations/catalog/actions-first-party-dv360/index.md index 446d7efd16..fddefeedfa 100644 --- a/src/connections/destinations/catalog/actions-first-party-dv360/index.md +++ b/src/connections/destinations/catalog/actions-first-party-dv360/index.md @@ -4,6 +4,7 @@ strat: google hide-settings: true id: 6683e1d5e37fd84efcf3bbef engage: true +redirect_from: /connections/destinations/catalog/first-party-dv360/ --- Google’s [Display & Video (DV360)](https://marketingplatform.google.com/about/display-video-360/){:target="_blank"} is an end-to-end campaign management tool that enables enterprise customers to plan, measure, and run display and video advertisements. Segment’s integration with DV360 enables Segment customers to sync audiences created in Engage with DV360 for centralized audience management and improved retargeting. diff --git a/src/connections/destinations/catalog/actions-klaviyo/index.md b/src/connections/destinations/catalog/actions-klaviyo/index.md index 763ae25b4b..14e850ecbd 100644 --- a/src/connections/destinations/catalog/actions-klaviyo/index.md +++ b/src/connections/destinations/catalog/actions-klaviyo/index.md @@ -80,6 +80,14 @@ To add and remove profiles in Klaviyo with Engage Audience data: 11. In the settings that appear in the side panel, toggle the **Send Track** option on, and don't change the **Audience Entered/Audience Exited** event names. 12. Click **Save Settings**. + +#### Update opt-in settings + +You must update opt-in settings (`Single opt-in` or `Double opt-in`) through the Klaviyo UI. Double opt-in is a process through which a new subscriber must confirm their subscription before being subscribed to a given list in Klaviyo. + +To learn more about opt-in settings, visit [Understanding the double opt-in process](https://help.klaviyo.com/hc/en-us/articles/115005251108#h_01HZ5G5ZQB825T0HDN5E2FA80G){:target="_blank"}. + + ## FAQ #### Dealing with error responses from Klaviyo's API diff --git a/src/connections/destinations/catalog/actions-postscript/index.md b/src/connections/destinations/catalog/actions-postscript/index.md index cb557330ad..4e88d3b395 100644 --- a/src/connections/destinations/catalog/actions-postscript/index.md +++ b/src/connections/destinations/catalog/actions-postscript/index.md @@ -1,6 +1,7 @@ --- title: Postscript Destination id: 66f2b0818aa856d4d2d87f90 +redirect_from: /connections/destinations/catalog/postscript/ --- {% include content/plan-grid.md name="actions" %} diff --git a/src/connections/destinations/catalog/actions-recombee/index.md b/src/connections/destinations/catalog/actions-recombee/index.md index 7a988da88e..1f04a51a53 100644 --- a/src/connections/destinations/catalog/actions-recombee/index.md +++ b/src/connections/destinations/catalog/actions-recombee/index.md @@ -4,7 +4,8 @@ hidden: true id: 66f2aea175bae98028d5185a versions: - name: Recombee AI - link: /docs/connections/destinations/catalog/recombee-ai + link: /docs/connections/destinations/catalog/recombee-ai +redirect_from: /connections/destinations/catalog/recombee/ --- {% include content/plan-grid.md name="actions" %} diff --git a/src/connections/destinations/catalog/actions-reddit-pixel/index.md b/src/connections/destinations/catalog/actions-reddit-pixel/index.md index 298e875653..ea91f3ef48 100644 --- a/src/connections/destinations/catalog/actions-reddit-pixel/index.md +++ b/src/connections/destinations/catalog/actions-reddit-pixel/index.md @@ -2,6 +2,7 @@ title: Reddit Pixel id: 68383577d2c19626da376944 beta: true +redirect_from: /connections/destinations/catalog/reddit-pixel/ --- {% include content/plan-grid.md name="actions" %} diff --git a/src/connections/destinations/catalog/actions-singlestore/index.md b/src/connections/destinations/catalog/actions-singlestore/index.md index 7e68dbab67..194fca4bb1 100644 --- a/src/connections/destinations/catalog/actions-singlestore/index.md +++ b/src/connections/destinations/catalog/actions-singlestore/index.md @@ -1,6 +1,7 @@ --- title: SingleStore (Actions) Destination id: 6720ddceaa24532723b39d63 +redirect_from: /connections/destinations/catalog/singlestore/ --- {% include content/plan-grid.md name="actions" %} diff --git a/src/connections/destinations/catalog/batch/index.md b/src/connections/destinations/catalog/batch/index.md index 560aaef561..200280a450 100644 --- a/src/connections/destinations/catalog/batch/index.md +++ b/src/connections/destinations/catalog/batch/index.md @@ -1,101 +1,21 @@ --- title: Batch Destination -id: 596d11f870a3e552b957e6d9 --- -The Batch.com integration code is open sourced on GitHub. Feel free to check it out: [iOS](https://github.com/BatchLabs/ios-segment-integration){:target="_blank"}, [Android](https://github.com/BatchLabs/android-segment-integration){:target="_blank"}. -## Getting Started +{% include content/plan-grid.md name="actions" %} -* Batch.com supports the `screen`, `track`, `identify` and `group` methods. -* Make a Batch.com account. -* Turn on Batch.com using Segment dashboard. -* Enter your Batch LIVE API Key. You can find it in your dashboard, under 'settings'. +Batch is a powerful customer engagement platform that helps businesses deliver personalized, timely notifications and messages to boost user retention and drive growth. Discover how Batch can transform your communication strategy at Batch. -Events tracked using Segment's `track`/`screen` will automatically be tracked. `Identify` and `group` calls will also be mapped to Batch user data. +This destination is maintained by Batch. For any issues with the destination, [contact their Support team](mailto:support@batch.com). -## Android +## Getting started -### Installation +1. From your workspace's [Destination catalog page](https://app.segment.com/goto-my-workspace/destinations/catalog){:target="_blank"} search for Batch. +2. Select **Batch** and click **Add Destination**. +3. Select an existing Source to connect to Batch (Actions). +4. Go to the [Batch dashboard](https://dashboard.batch.com/){:target="_blank"}, find and copy the **Project Key** / **REST API Key** +5. Enter the **Project Key** / **REST API Key** in the Batch destination settings in Segment. -Add the following dependency in your build.gradle: -``` -compile "com.batch.android:sdk-segment-integration:+" -``` - -Import the integration: - -``` -import com.segment.analytics.android.integrations.batch.BatchIntegration; - -``` - -Then, add the factory to your Analytics instance: - -```java -Analytics analytics = new Analytics.Builder(this, "write_key") - .use(BatchIntegration.getFactory(this)) - .build(); -``` - - -## iOS - -### Installation - -Add the following Cocoapods dependency: - -``` -pod 'Segment-Batch' -``` - -If you integrate in a Swift project or have `use_frameworks!` in your Podfile, you need to use the following to work around due to a limitation with Cocoapods: - -``` -pod 'Batch' -pod 'Segment-Batch/StaticLibWorkaround' -``` - -Then, add the integration factory in your Analytics instance: - -```objc -#import - -SEGAnalyticsConfiguration *config = [SEGAnalyticsConfiguration configurationWithWriteKey:@"MySegmentWriteKey"]; -[config use:[SEGBatchIntegrationFactory instance]]; -[SEGAnalytics setupWithConfiguration:config]; -``` - -## Server Side - -You can transmit server-side data from Segment to Batch with a [destination function](/docs/connections/functions/destination-functions/). Follow the steps outlined [in Batch's documentation](https://help.batch.com/en/articles/2208243-how-to-connect-batch-to-segment){:target="_blank"} for a smooth integration. - -## Screen - -When you call `screen` in your mobile app, we send a screen view to an event named `SEGMENT_SCREEN`. The screen name will be tracked as the event's label. - -## Identify - -When you `identify` a user, we'll pass that user's information to Batch as the custom user identifier. Batch supports tracking anonymous users, but not through Segment's `anonymousId`. - -Tracked events are attached to the installation ID, and the installation ID itself can be attached/detached to a user at a later date, with no data loss. - -## Track - -When you `track` an event, we will send that event to Batch after converting the name to fit Batch's event naming rules. - -For example, an event named `Ad Shown` will become `AD_SHOWN`. Note that this means that event names longer than 30 characters will be truncated. -The events `title` property will become the event's label. - -## Group - -When you call `group`, we will set the group ID in a user attribute named `SEGMENT_GROUP`. - -## Features - -All of our supported Segment integration features will work automatically, with no action or specific properties required on your side. - -Batch's other features are available directly by using the native SDK, which comes bundled with this integration. - -To use the Batch native SDK through Segment, follow the [instructions for Android](/docs/connections/sources/catalog/libraries/mobile/android/#how-can-i-use-a-destination-specific-feature) and [instructions for iOS](/docs/connections/sources/catalog/libraries/mobile/ios/#what-if-your-sdk-doesnt-support-feature-x). +{% include components/actions-fields.html %} diff --git a/src/connections/destinations/catalog/eagleeye-actions/index.md b/src/connections/destinations/catalog/eagleeye-actions/index.md index 3169d1b1cb..43c5e1aa92 100644 --- a/src/connections/destinations/catalog/eagleeye-actions/index.md +++ b/src/connections/destinations/catalog/eagleeye-actions/index.md @@ -1,6 +1,7 @@ --- title: Eagle Eye (Actions) Destination id: 682db61f6c600fdb90251392 +redirect_from: /connections/destinations/catalog/eagle-eye/ --- {% include content/plan-grid.md name="actions" %} diff --git a/src/connections/destinations/catalog/inflection/index.md b/src/connections/destinations/catalog/inflection/index.md index c5ac0630e6..23688482b4 100644 --- a/src/connections/destinations/catalog/inflection/index.md +++ b/src/connections/destinations/catalog/inflection/index.md @@ -1,6 +1,7 @@ --- title: Inflection Destination id: 62260e5dbc37b83046a847be +hide-personas-partial: true --- [Inflection](https://www.inflection.io/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} provides a B2B marketing automation platform for product-led growth companies. Combining Segment data with CRM data to create a single view of the customer, Inflection was built with marketing teams in mind, pricing a platform that can drive hyper-contextualized communications to support adoption, expansion, and engagement. diff --git a/src/connections/destinations/catalog/rockerbox/index.md b/src/connections/destinations/catalog/rockerbox/index.md index 4db429b2ff..8337645814 100644 --- a/src/connections/destinations/catalog/rockerbox/index.md +++ b/src/connections/destinations/catalog/rockerbox/index.md @@ -5,11 +5,11 @@ id: 59a476a470a3e552b9594307 --- ## Getting Started -All you need in order to integrate with Rockerbox is your pixel code, which you can get by emailing **info@rockerbox.com**. +To integrate with Rockerbox, you need a pixel code. To request one, contact [Rockerbox](info@rockerbox.com){:target="_blank"}. ## Page -When you trigger a `.page()` call, we will fire `window.RB.track('view')` and pass your page properties, including any custom properties outside of url, path, title, etc. +Triggering a Page call fires `window.RB.track('view')` and passes on page properties, including any custom properties outside of `url`, `path`, `title`. ## Track diff --git a/src/connections/destinations/catalog/userlens/index.md b/src/connections/destinations/catalog/userlens/index.md index 545e3731df..53791e1596 100644 --- a/src/connections/destinations/catalog/userlens/index.md +++ b/src/connections/destinations/catalog/userlens/index.md @@ -1,9 +1,9 @@ --- title: Userlens By Wudpecker Destination id: 678b412b643761937104abb2 +redirect_from: /connections/destinations/catalog/userlens-by-wudpecker/ --- - [Userlens By Wudpecker](https://userlens.io/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} is the Next-Gen of Product Intelligence. Userlens combines quantitative data from products like Segment and PostHog, and qualitative feedback from products like Intercom and Wudpecker user interviews, to give you a full picture of how your users are using your products and features. This destination is maintained by Wudpecker. For any issues with the destination, [contact the Wudpecker Support team](mailto:ankur@wudpecker.io). diff --git a/src/connections/spec/common.md b/src/connections/spec/common.md index d54017db8c..e6d78e55b3 100644 --- a/src/connections/spec/common.md +++ b/src/connections/spec/common.md @@ -1,10 +1,10 @@ --- -title: 'Spec: Common Fields' +title: 'Spec: Common fields' --- -In the Segment [Spec](/docs/connections/spec/) all the [API calls](/docs/connections/spec/) have a common structure, and a few common fields. +In the Segment [Spec](/docs/connections/spec/), all [API calls](/docs/connections/spec/) share a common structure and a set of common fields. -However, not all destinations accept all fields included in the Spec. Not sure which fields a destination accepts? Refer to the destination's documentation page, or check out the [open-source destination code on GitHub](https://github.com/segment-integrations). +However, not all destinations accept all fields included in the Spec. Not sure which fields a destination accepts? Refer to the destination's documentation page, or check out the [open-source destination code on GitHub](https://github.com/segment-integrations){:target="_blank"}. {% include components/reference-button.html href="https://university.segment.com/introduction-to-segment/324252?reg=1&referrer=docs" icon="media/academy.svg" title="Segment University: The Segment Methods" description="Check out our high-level overview of these APIs in Segment University. (Must be logged in to access.)" %} @@ -136,29 +136,29 @@ Context is a dictionary of extra information that provides useful context about | Field | Type | Description | | ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `active` | Boolean | Whether a user is active.

This is usually used to flag an `.identify()` call to just update the traits but not "last seen." | +| `active` | Boolean | Whether a user is active.

This is usually used to flag an Identify call to just update the traits but not "last seen." | | `app` | Object | dictionary of information about the current application, containing `name`, `version`, and `build`.

This is collected automatically from the mobile libraries when possible. | | `campaign` | Object | Dictionary of information about the campaign that resulted in the API call, containing `name`, `source`, `medium`, `term`, `content`, and any other custom UTM parameter.

This maps directly to the common UTM campaign parameters. | -| `device` | Object | Dictionary of information about the device, containing `id`, `advertisingId`, `manufacturer`, `model`, `name`, `type`, and `version`.

**Note:** If you collect information about iOS devices, note that the `model` value set by Apple might not exactly correspond to an iPhone model number. For example, an `iPhone 15 Pro Max` has a `model` value of `iPhone16,2`. | +| `device` | Object | Dictionary of information about the device, containing `id`, `advertisingId`, `manufacturer`, `model`, `name`, `type`, and `version`.

If you collect information about iOS devices, note that the `model` value set by Apple might not exactly correspond to an iPhone model number. For example, an `iPhone 15 Pro Max` has a `model` value of `iPhone16,2`. | | `ip` | String | Current user's IP address. | | `library` | Object | Dictionary of information about the library making the requests to the API, containing `name` and `version`. | | `locale` | String | Locale string for the current user, for example `en-US`. | | `network` | Object | Dictionary of information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline. | | `os` | Object | Dictionary of information about the operating system, containing `name` and `version`. | -| `page` | Object | Dictionary of information about the current page in the browser, containing `path`, `referrer`, `search`, `title` and `url`. This is automatically collected by [Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript/#context--traits). | +| `page` | Object | Dictionary of information about the current page in the browser, containing `path`, `referrer`, `search`, `title`, and `url`. This is automatically collected by [Analytics.js](/docs/connections/sources/catalog/libraries/website/javascript/#context--traits). | | `referrer` | Object | Dictionary of information about the way the user was referred to the website or app, containing `type`, `name`, `url`, and `link`. | | `screen` | Object | Dictionary of information about the device's screen, containing `density`, `height`, and `width`. | -| `timezone` | String | Timezones are sent as tzdata strings to add user timezone information which might be stripped from the timestamp, for example `America/New_York`, but in some cases, this may be unavailable due to browser limitations, privacy settings, or missing API support. | +| `timezone` | String | Timezones are sent as `tzdata` strings to add user timezone information which might be stripped from the timestamp, for example `America/New_York`, but in some cases, this may be unavailable due to browser limitations, privacy settings, or missing API support. | | `groupId` | String | Group / Account ID.

This is useful in B2B use cases where you need to attribute your non-group calls to a company or account. It is relied on by several Customer Success and CRM tools. | -| `traits` | Object | Dictionary of `traits` of the current user.

This is useful in cases where you need to `track` an event, but also associate information from a previous Identify call. You should fill this object the same way you would fill traits in an [identify call](/docs/connections/spec/identify/#traits). | +| `traits` | Object | Dictionary of `traits` of the current user.

This is useful in cases where you need to `track` an event, but also associate information from a previous Identify call. You should fill this object the same way you would fill traits in an [Identify call](/docs/connections/spec/identify/#traits). | | `userAgent` | String | User agent of the device making the request. | | `userAgentData` | Object | The user agent data of the device making the request. This always contains `brands`, `mobile`, `platform`, and may contain `bitness`, `model`, `platformVersion`,`uaFullVersion`, `fullVersionList`, `wow64`, if [requested](/docs/connections/sources/catalog/libraries/website/javascript/#client-hints) and available.

This populates if the [Client Hints API](https://developer.mozilla.org/en-US/docs/Web/API/User-Agent_Client_Hints_API){:target="_blank"} is available on the browser.

This may contain more information than is available in the `userAgent` in some cases. | -| `channel` | String | where the request originated from: server, browser or mobile | +| `channel` | String | Where the request originated from: server, browser, or mobile. | ## Context fields automatically collected -Below is a chart that shows you which context variables are populated automatically by the iOS, Android, and analytics.js libraries. +Below is a chart that shows you which context variables are populated automatically by the iOS, Android, and Analytics.js libraries. Other libraries only collect `context.library`, any other context variables must be sent manually. @@ -208,11 +208,11 @@ Other libraries only collect `context.library`, any other context variables must - The Android library collects `screen.density` with [this method](/docs/connections/spec/common/#context-fields-automatically-collected). -- userAgentData is only collected if the [Client Hints API](https://developer.mozilla.org/en-US/docs/Web/API/User-Agent_Client_Hints_API){:target="_blank"} is available on the browser. +- `userAgentData` is only collected if the [Client Hints API](https://developer.mozilla.org/en-US/docs/Web/API/User-Agent_Client_Hints_API){:target="_blank"} is available on the browser. - Segment doesn't collect or append to the context of subsequent calls in the new mobile libraries (Swift, Kotlin, and React Native). -To pass the context variables which are not automatically collected by Segment's libraries, you must manually include them in the event payload. The following code shows how to pass `groupId` as the context field of Analytics.js's `.track()` event: +To pass the context variables which are not automatically collected by Segment's libraries, you must manually include them in the event payload. The following code shows how to pass `groupId` as the context field of Analytics.js's Track event: ```js analytics.track("Report Submitted", {}, { @@ -261,24 +261,24 @@ Every API call has four timestamps, `originalTimestamp`, `timestamp`, `sentAt`, | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `originalTimestamp` | Time on the client device when call was invoked
**OR**
The `timestamp` value manually passed in through server-side libraries. | Used by Segment to calculate `timestamp`.

**Note:** `originalTimestamp` is not useful for analysis since it's not always trustworthy as it can be easily adjusted and affected by clock skew. | | `sentAt` | Time on client device when call was sent.
**OR**
`sentAt` value manually passed in. | Used by Segment to calculate `timestamp`.

**Note:** `sentAt` is not useful for analysis since it's not always trustworthy as it can be easily adjusted and affected by clock skew. | -| `receivedAt` | Time on Segment server clock when call was received | Used by Segment to calculate `timestamp`, and used as sort key in Warehouses.

**Note:** For max query speed, `receivedAt` is the recommended timestamp for analysis when chronology does not matter as chronology is not ensured. | -| `timestamp` | Calculated by Segment to correct client-device clock skew using the following formula:
`receivedAt` - (`sentAt` - `originalTimestamp`) | Used by Segment to send to downstream destinations, and used for historical replays.

**Note:** Recommended timestamp for analysis when chronology does matter. | +| `receivedAt` | Time on Segment server clock when call was received. | Used by Segment to calculate `timestamp`, and used as sort key in Warehouses.

**Note:** For max query speed, `receivedAt` is the recommended timestamp for analysis when chronology does not matter as chronology is not ensured. | +| `timestamp` | Calculated by Segment to correct client-device clock skew using the following formula:
`receivedAt` - (`sentAt` - `originalTimestamp`). | Used by Segment to send to downstream destinations, and used for historical replays.

**Note:** Recommended timestamp for analysis when chronology does matter. | ### originalTimestamp The `originalTimestamp` tells you when call was invoked on the client device or the value of `timestamp` that you manually passed in. -**Note:** The `originalTimestamp` timestamp is not useful for any analysis since it's not always trustworthy as it can be easily adjusted and affected by clock skew. +The `originalTimestamp` timestamp is not useful for any analysis since it's not always trustworthy as it can be easily adjusted and affected by clock skew. ### sentAt The `sentAt` timestamp specifies the clock time for the client's device when the network request was made to the Segment API. For libraries and systems that send batched requests, there can be a long gap between a datapoint's `timestamp` and `sentAt`. Combined with `receivedAt`, Segment uses `sentAt` to correct the original `timestamp` in situations where a user's device clock cannot be trusted (mobile phones and browsers). The `sentAt` and `receivedAt` timestamps are assumed to occur at the same time (maximum a few hundred milliseconds), and therefore the difference is the user's device clock skew, which can be applied back to correct the `timestamp`. -**Note:** The `sentAt` timestamp is not useful for any analysis since it's tainted by user's clock skew. +**Note**: The `sentAt` timestamp is not useful for any analysis since it's tainted by user's clock skew. -> warning "Segment now adds sentAt to a payload when the batch is complete and initially tried to the Segment API for the Swift, Kotlin, and C# mobile libraries" +> warning "Segment now adds `sentAt` to a payload when the batch is complete and initially tried to the Segment API for the Swift, Kotlin, and C# mobile libraries" > This update changes the value of the Segment-calculated `timestamp` to align closer with the `receivedAt` value rather than the `originalTimestamp` value. For most users who are online when events are sent, this does not significantly impact their data. However, if your application utilizes an offline mode where events are queued up for any period of time, the `timestamp` value for those users now more closely reflects when Segment received the events rather than the time they occurred on the users' devices. @@ -288,7 +288,7 @@ The `receivedAt` timestamp is added to incoming messages as soon as they hit the The `receivedAt` timestamp is most important as the sort key in Segment's Warehouses product. Use this for max query speed when retrieving data from your Warehouse. -**Note:** Chronological order of events is not ensured with `receivedAt`. +Chronological order of events is not ensured with `receivedAt`. ### timestamp @@ -304,21 +304,21 @@ Segment calculates `timestamp` as `timestamp = receivedAt - (sentAt - originalTi ## FAQ -### Why Are Events Received with Timestamps Set in the Past or Future? +### Why are events received with timestamps set in the past or future? If you're using one of Segment's client-side libraries, please note that several factors can cause timestamp discrepancies in your event data. -1. **Overriding Timestamp Value:** +1. **Overriding Timestamp Value**: - When a manual timestamp is set in the payload with a date in the past, it can cause events to appear as if they were sent earlier than they actually were. -2. **Analytics.js Source with Retries Enabled:** - - The [Retries](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#retries) feature supports offline traffic by queuing events in Analytics.js. These events are sent or retried later when an internet connection is available, keeping the original timestamp intact. +2. **Analytics.js Source with Retries Enabled**: + - The [Retries](/docs/connections/sources/catalog/libraries/website/javascript/#retries) feature supports offline traffic by queuing events in Analytics.js. These events are sent or retried later when an internet connection is available, keeping the original timestamp intact. -3. **Mobile App Backgrounded or Closed:** +3. **Mobile App Backgrounded or Closed**: - If a user closes the app, events may be queued within the app. These queued events won't be sent until the app is re-opened, potentially in the future, leading to timestamp discrepancies. -4. **Inaccurate Browser/Device Clock Settings:** +4. **Inaccurate Browser/Device Clock Settings**: - Timestamps can be incorrect if the client's device time is inaccurate, as the `originalTimestamp` relies on the client device's clock, which can be manually adjusted. -5. **Traffic from Internet Bots:** - - [Internet Bots](https://segment.com/docs/guides/ignore-bots/#whats-a-bot) can sometimes send requests with unusual timestamps, either intentionally or due to incorrect settings, leading to discrepancies. +5. **Traffic from Internet Bots**: + - [Internet Bots](/docs/guides/ignore-bots/#whats-a-bot) can sometimes send requests with unusual timestamps, either intentionally or due to incorrect settings, leading to discrepancies. diff --git a/src/connections/spec/identify.md b/src/connections/spec/identify.md index 5d75e4b0be..7fbdb26505 100644 --- a/src/connections/spec/identify.md +++ b/src/connections/spec/identify.md @@ -2,9 +2,9 @@ title: 'Spec: Identify' --- -The Segment Identify call lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about the user, like their email, name, and more. +The Segment Identify call lets you tie a user to their actions and record traits about them. It includes a unique User ID and any optional traits you know about the user, like their email and name. -{% include components/reference-button.html href="https://university.segment.com/introduction-to-segment/299968?reg=1&referrer=docs" icon="media/academy.svg" title="Segment University: The Identify Method" description="Check out our high-level overview of the Identify method in Segment University. (Must be logged in to access.)" %} +{% include components/reference-button.html href="https://university.segment.com/introduction-to-segment/299968?reg=1&referrer=docs" icon="media/academy.svg" title="Segment University: The Identify Method" description="Check out the high-level overview of the Identify method in Segment University. (You must be logged in to access.)" %} Segment recommends that you make an Identify call: @@ -12,11 +12,9 @@ Segment recommends that you make an Identify call: - After a user logs in - When a user updates their info (for example, they change or add a new address) -The first three examples are pretty self-explanatory, but many might ask: why you would call Identify on every page load if you're storing the `userId` in the cookie/local storage? +Calling Identify in one of Segment's [libraries](/docs/connections/sources/) is one of the first steps to getting started with Segment. You can refer to library-specific documentation for more details. -Calling Identify in one of Segment's [libraries](/docs/connections/sources/) is one of the first steps to getting started with Segment. Refer to library-specific documentation for more details. - -Here's the payload of a typical Identify call with most [common fields](/docs/connections/spec/common/) removed: +For example, here's the payload of a typical Identify call with most [common fields](/docs/connections/spec/common/) removed: ```json { @@ -31,7 +29,7 @@ Here's the payload of a typical Identify call with most [common fields](/docs/co } ``` -And here's the corresponding JavaScript event that would generate the above payload: +Here's the corresponding JavaScript event that would generate the above payload: ```js analytics.identify("97980cfea0067", { @@ -105,14 +103,12 @@ The Identify call specifies a customer identity that you can reference across th ### Anonymous ID -There are certain cases where you don't actually know who the user is according to your database, but you still want to be able to tie them to traits, events, or page views. For example, you may not know who a user is when tracking newsletter signups or anonymous page views. - -In these cases, you should use an Anonymous ID. +There are certain cases where you don't actually know who the user is according to your database, but you still want to be able to tie them to traits, events, or page views. For example, you may not know who a user is when tracking newsletter signups or anonymous page views. In these cases, you should use an Anonymous ID. -The Anonymous ID can be any pseudo-unique identifier. For example, on your servers you can use a session id. If you don't have any readily available identifier, you can always generate a new random one — Segment recommends [UUIDv4 format](/docs/guides/working-with-ids/#segments-guidance-on-identifier-formats). +The Anonymous ID can be any pseudo-unique identifier. For example, on your servers you can use a session ID. If you don't have any readily available identifier, you can always generate a new random one — Segment recommends [UUIDv4 format](/docs/guides/working-with-ids/#segments-guidance-on-identifier-formats). > info "" -> Segment's [browser and mobile libraries](/docs/connections/sources/) automatically use Anonymous IDs to keep track of users as they navigate around your website or app, so you don't need to worry about them when using those libraries. +> Segment's [website and mobile libraries](/docs/connections/sources/) automatically use Anonymous IDs to keep track of users as they navigate around your website or app, so you don't need to worry about them when using those libraries. Here's an example of a JavaScript event for an anonymous user: @@ -128,7 +124,7 @@ User IDs are a more permanent and robust identifier, like a database ID. Since t A User ID is usually the unique identifier that you recognize a user by in your own database. For example, if you're using MongoDB, User IDs might look something like this: `507f191e810c19729de860ea`. -Segment recommends using database IDs, [in `uuidv4` format](/docs/guides/working-with-ids/#segments-guidance-on-identifier-formats), instead of email addresses or usernames because database IDs _never_ change. That guarantees that even if the user changes their email address, you can still recognize them as the same person in all of your analytics tools, and you'll be able to correlate analytics data with your own internal database. +Segment recommends using database IDs, [in `uuidv4` format](/docs/guides/working-with-ids/#segments-guidance-on-identifier-formats), instead of email addresses or usernames because database IDs _never_ change. This guarantees that even if the user changes their email address, you can still recognize them as the same person in all of your analytics tools, and you'll be able to correlate analytics data with your own internal database. > success "" > Instead of using an email address or a username as a User ID, send them along as [custom traits](/docs/unify/traits/custom-traits/). @@ -147,24 +143,24 @@ Reserved custom traits Segment has standardized: | **Trait** | **Type** | **Description** | |---------------|----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `address` | Object | Street address of a user optionally containing: `city`, `country`, `postalCode`, `state`, or `street` | -| `age` | Number | Age of a user | -| `avatar` | String | URL to an avatar image for the user | -| `birthday` | Date | User's birthday | -| `company` | Object | Company the user represents, optionally containing: `name` (String), `id` (String or Number), `industry` (String), `employee_count` (Number) or `plan` (String) | +| `age` | Number | Age of a user. | +| `avatar` | String | URL to an avatar image for the user. | +| `birthday` | Date | The user's birthday. | +| `company` | Object | The company the user represents, optionally containing: `name` (String), `id` (String or Number), `industry` (String), `employee_count` (Number) or `plan` (String) | | `createdAt` | Date | Date the user's account was first created. Segment recommends using [ISO-8601](http://en.wikipedia.org/wiki/ISO_8601){:target="_blank"} date strings. | -| `description` | String | Description of the user | -| `email` | String | Email address of a user | -| `firstName` | String | First name of a user | -| `gender` | String | Gender of a user | -| `id` | String | Unique ID in your database for a user | -| `lastName` | String | Last name of a user | -| `name` | String | Full name of a user. If you only pass a first and last name Segment automatically fills in the full name for you. | -| `phone` | String | Phone number of a user | +| `description` | String | Description of the user. | +| `email` | String | Email address of a user. | +| `firstName` | String | First name of a user. | +| `gender` | String | Gender of a user. | +| `id` | String | Unique ID in your database for a user. | +| `lastName` | String | Last name of a user. | +| `name` | String | Full name of a user. If you only pass a first and last name, Segment automatically fills in the full name for you. | +| `phone` | String | Phone number of a user. | | `title` | String | Title of a user, usually related to their position at a specific company. Example: "VP of Engineering" | | `username` | String | User's username. This should be unique to each user, like the usernames of Twitter or GitHub. | -| `website` | String | Website of a user | +| `website` | String | Website of a user. | > info "" > You might be used to some destinations recognizing special traits by slightly different names. For example, Mixpanel recognizes a `$created` trait when the user's account was first created, while Intercom recognizes the same trait as `created_at` instead. Segment attempts to handle all the destination-specific conversions for you automatically. If you need help understanding if a specific field will be converted to a destination, take a look at Segment's [open source integration code](https://github.com/segment-integrations?q=&type=all&language=&sort=){:target="_blank"}, view the destination's documentation, or [contact Segment support](https://app.segment.com/workspaces?contact=1){:target="_blank"}. -**You can pass these reserved traits using camelCase or snake_case**, so in JavaScript you can match the rest of your camelCase code by sending `firstName`, while in Ruby you can match your snake-case code by sending `first_name`. That way the API never seems alien to your code base. Keep in mind that not all destinations support these reserved traits, so sending these traits in camelCase and snake_case can result in two sets of traits in other destinations. \ No newline at end of file +You can pass these reserved traits using camelCase or snake_case. For example, in JavaScript you can match the rest of your camelCase code by sending `firstName`, while in Ruby you can match your snake-case code by sending `first_name`. This keeps the API consistent to your code base. Keep in mind that not all destinations support these reserved traits, so sending these traits in camelCase and snake_case can result in two sets of traits in other destinations. \ No newline at end of file diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 8f7bb165d8..2c0195c3b3 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -231,7 +231,7 @@ To create a new audience or trait: 2. Configure and preview your Audience or Trait. - A lightning bolt next to `Realtime Enabled` indicates that the computation updates in real-time. -- Configure the **Include Historical Event Data** option to limit how far back event data is processed by setting a lookback window (for example, the “last 90 days”). Unchecking **Include Historical Event Data** computes values without historical event data, using only data arriving after audience creation. +- Configure the **Include Historical Event Data** option to limit how far back event data is processed by setting a lookback window (for example, the “last 90 days”). When the **Include Historical Event Data** option is unchecked, Segment only uses event data received after audience creation. However, trait data is always included as part of the filtering criteria whenever it is defined in the audience as lookback windows don't apply to trait data since it represents a snapshot of profile attributes at a given time. 3. Select destinations to connect, then review and create your audience or trait. @@ -257,7 +257,7 @@ To edit a realtime trait or audience: Engage then processes your realtime audience or trait edits. While the edit task runs, the audience remains locked and you can't make further changes. Once Engage incorporates your changes, you'll be able to access your updated audience or trait. > warning "" -> If your audience includes historical data (Historical Backfill is enabled), editing an audience creates a new backfill task. The backfill task, and therefore the edit task, take longer to process if the audience is connected to a destination with rate limits. Rate-limited destinations dictate how fast Engage can backfill. View a list of [rate-limited destinations](/docs/engage/using-engage-data/#rate-limits-on-engage-event-destinations). +> If your audience includes historical event data (the **Include Historical Event Data** option is enabled), editing an audience creates a new backfill task. The backfill task and the edit task take longer to process if the audience is connected to a destination with rate limits. Rate-limited destinations dictate how fast Engage can backfill. View a list of [rate-limited destinations](/docs/engage/using-engage-data/#rate-limits-on-engage-event-destinations). > warning "" > It's not possible to edit an audience to convert it from real-time to batch, or vice-versa. If the computation type needs to be changed, you will need to recreate the audience with the appropriate conditions.