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.

@@ -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.

+### 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**.
+
+
+
+{% 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`).
+
+4. In **Step 4 – Send test record**, you can test your mapping before saving.
+
+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`.
+
+
+
+## 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.