diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml
index 0735e55a5d..6969b60aed 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-10-09
+# destination categories last updated 2025-10-16
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 2902261e3e..0f8740abb7 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-10-09
+# destination data last updated 2025-10-16
items:
- id: 637e8d185e2dec264895ea89
display_name: 1Flow
@@ -7678,2302 +7678,6 @@ items:
allowNull: false
presets: []
partnerOwned: false
-- id: 683ef14a3f9aac157e3a3446
- display_name: Amazon Conversions Api
- name: Amazon Conversions Api
- slug: amazon-conversions-api
- hidden: false
- endpoints:
- - US
- regions:
- - us-west-2
- - eu-west-1
- url: connections/destinations/catalog/amazon-conversions-api
- previous_names:
- - Amazon Conversions Api
- website: https://advertising.amazon.com/help/GEDE65PCE2CL5P63
- status: PUBLIC_BETA
- categories:
- - Advertising
- - Attribution
- logo:
- url: https://cdn-devcenter.segment.com/a4e77672-0b0c-4c68-b522-bbd6f83d33b5.svg
- mark:
- url: https://cdn-devcenter.segment.com/51ad439c-55ca-4bc7-97f4-3cd896f24766.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: advertiserId
- type: string
- defaultValue: ''
- description: Your Amazon Advertiser Account ID.
- required: true
- label: Amazon Advertiser ID
- - name: region
- type: select
- defaultValue: https://advertising-api.amazon.com
- description: Region for API Endpoint, either NA, EU, FE.
- required: true
- label: Region
- actions:
- - id: 3PXoEXmHMzVcnY5RaMTcQp
- name: Track Conversion
- slug: trackConversion
- description: Send conversion event data to Amazon Events API
- platform: CLOUD
- hidden: false
- defaultTrigger: type = "track"
- fields:
- - id: qgPBt4VU1i9xAd7B9VeAtF
- sortOrder: 0
- fieldKey: name
- label: Event Name
- type: STRING
- description: The name of the imported event.
- placeholder: ''
- defaultValue:
- '@path': $.event
- required: true
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- - id: hqKYNYP77wh4xNjxN2VzJa
- sortOrder: 1
- fieldKey: eventType
- label: Event Type
- type: STRING
- description: The standard Amazon event type.
- placeholder: ''
- required: true
- multiple: false
- choices:
- - label: Add to Shopping Cart
- value: ADD_TO_SHOPPING_CART
- - label: Application
- value: APPLICATION
- - label: Checkout
- value: CHECKOUT
- - label: Contact
- value: CONTACT
- - label: Lead
- value: LEAD
- - label: Off Amazon Purchases
- value: OFF_AMAZON_PURCHASES
- - label: Mobile App First Start
- value: MOBILE_APP_FIRST_START
- - label: Page View
- value: PAGE_VIEW
- - label: Search
- value: SEARCH
- - label: Sign Up
- value: SIGN_UP
- - label: Subscribe
- value: SUBSCRIBE
- - label: Other
- value: OTHER
- dynamic: false
- allowNull: false
- - id: kWXzbjoTkpx4aWmfePffqR
- sortOrder: 2
- fieldKey: eventActionSource
- label: Event Action Source
- type: STRING
- description: >-
- The platform from which the event was sourced. If no value is provided,
- then website is used as default.
- placeholder: ''
- defaultValue:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- required: true
- multiple: false
- choices:
- - label: Android
- value: android
- - label: Fire TV
- value: fire_tv
- - label: iOS
- value: ios
- - label: Offline
- value: offline
- - label: Website
- value: website
- dynamic: false
- allowNull: false
- - id: 6ZXd93NwZbHq1HWx8Dy4R9
- sortOrder: 3
- fieldKey: countryCode
- label: Country Code
- type: STRING
- description: >-
- ISO 3166-1 alpha-2 country code. e.g., US, GB. Also accepts locale
- codes. e.g en-US, en-GB.
- placeholder: ''
- defaultValue:
- '@path': $.context.locale
- required: true
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- - id: qEbRQtxiwE6UXgVqgew7gu
- sortOrder: 4
- fieldKey: timestamp
- label: Event Timestamp
- type: STRING
- description: >-
- The reported timestamp of when the event occurred in ISO format
- (YYYY-MM-DDThh:mm:ssTZD).
- placeholder: ''
- defaultValue:
- '@path': $.timestamp
- required: true
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- - id: rMe47AeWoAE33izcVbNMGX
- sortOrder: 5
- fieldKey: value
- label: Value
- type: NUMBER
- description: The value of the event.
- placeholder: ''
- defaultValue:
- '@path': $.properties.value
- required: false
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- - id: pFA5UVqRSZ8MF6WTEcYsH2
- sortOrder: 6
- fieldKey: currencyCode
- label: Currency Code
- type: STRING
- description: >-
- The currencyCode associated with the 'value' of the event in ISO-4217
- format. Only applicable for OFF_AMAZON_PURCHASES event type.
- placeholder: ''
- defaultValue:
- '@path': $.properties.currency
- required: false
- multiple: false
- choices:
- - label: AED - UAE Dirham
- value: AED
- - label: AUD - Australian Dollar
- value: AUD
- - label: BRL - Brazilian Real
- value: BRL
- - label: CAD - Canadian Dollar
- value: CAD
- - label: CNY - Chinese Yuan
- value: CNY
- - label: EUR - Euro
- value: EUR
- - label: GBP - British Pound
- value: GBP
- - label: INR - Indian Rupee
- value: INR
- - label: JPY - Japanese Yen
- value: JPY
- - label: MXN - Mexican Peso
- value: MXN
- - label: SAR - Saudi Riyal
- value: SAR
- - label: SEK - Swedish Krona
- value: SEK
- - label: SGD - Singapore Dollar
- value: SGD
- - label: TRY - Turkish Lira
- value: TRY
- - label: USD - US Dollar
- value: USD
- - label: DKK - Danish Krone
- value: DKK
- - label: NOK - Norwegian Krone
- value: NOK
- - label: NZD - New Zealand Dollar
- value: NZD
- dynamic: false
- allowNull: false
- - id: gPjsuc6hZv3Ao8BPPVF1HT
- sortOrder: 7
- fieldKey: unitsSold
- label: Units Sold
- type: INTEGER
- description: >-
- The number of items purchased. Only applicable for OFF_AMAZON_PURCHASES
- event type. If not provided on the event, a default of 1 will be
- applied.
- placeholder: ''
- defaultValue:
- '@path': $.properties.quantity
- required: false
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- - id: pKg4gSsqnBn9GX8PsEk5qv
- sortOrder: 8
- fieldKey: clientDedupeId
- label: Client Dedupe ID
- type: STRING
- description: >-
- Amazon Conversions API uses the `clientDedupeId` field to prevent
- duplicate events. By default, Segment maps the messageId to this field.
- For events with the same clientDedupeId, only the latest event will be
- processed. Please be advised that deduplication occurs across all event
- types, rather than being limited to individual event types.
- placeholder: ''
- defaultValue:
- '@path': $.messageId
- required: false
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- - id: rGnUAdVa6EL8GcZSw4T7Re
- sortOrder: 9
- fieldKey: matchKeys
- label: Match Keys
- type: OBJECT
- description: >-
- Match keys are used to identify the customer associated with the event
- for attribution. At least one match key must be provided.
- placeholder: ''
- defaultValue:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- required: true
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- - id: csMgVG3qpFU5cS3c4Gzf1k
- sortOrder: 10
- fieldKey: dataProcessingOptions
- label: Data Processing Options
- type: STRING
- description: >-
- A list of flags for signaling how an event shall be processed. Events
- marked for limited data use will not be processed.
- placeholder: ''
- defaultValue:
- '@path': $.properties.dataProcessingOptions
- required: false
- multiple: true
- choices:
- - label: Limited Data Use
- value: LIMITED_DATA_USE
- dynamic: false
- allowNull: false
- - id: 7RekLhoew8JipZEbxxMJgb
- sortOrder: 11
- fieldKey: consent
- label: Consent
- type: OBJECT
- description: >-
- Describes consent given by the user for advertising purposes. For EU
- advertisers, it is required to provide one of Geo ipAddress,
- amazonConsent, tcf, or gpp.
- placeholder: ''
- defaultValue:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- required: false
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- - id: 2xTkY2f7p33a19dTA8Ly8i
- sortOrder: 12
- fieldKey: customAttributes
- label: Custom Attributes
- type: OBJECT
- description: >-
- Custom attributes associated with the event to provide additional
- context. Note that only brand, category, productId and attr1 - attr10
- custom attributes are used for reporting.
- placeholder: ''
- defaultValue:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- required: false
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- - id: 29gVGBzJAjVHfNx6XYWAVY
- sortOrder: 13
- fieldKey: enable_batching
- label: Enable Batching
- type: BOOLEAN
- description: When enabled, Segment will send data in batching.
- placeholder: ''
- defaultValue: true
- required: true
- multiple: false
- choices: null
- dynamic: false
- allowNull: false
- presets:
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Sign Up
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: SIGN_UP
- trigger: type = "track" AND event = "Signed Up"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Subscribe
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: SUBSCRIBE
- trigger: type = "track" AND event = "Subscription Created"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Off Amazon Purchases
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: OFF_AMAZON_PURCHASES
- trigger: type = "track" AND event = "Order Completed"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Page View
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: PAGE_VIEW
- trigger: type = "page"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Other
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: OTHER
- trigger: type = "track" AND event = "Other"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Checkout
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: CHECKOUT
- trigger: type = "track" AND event = "Checkout Started"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Add to Shopping Cart
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: ADD_TO_SHOPPING_CART
- trigger: type = "track" AND event = "Product Added"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Mobile App First Start
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: MOBILE_APP_FIRST_START
- trigger: type = "track" AND event = "Application Opened"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Contact
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: CONTACT
- trigger: type = "track" AND event = "Callback Started"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Lead
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: LEAD
- trigger: type = "track" AND event = "Lead Generated"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Application
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: APPLICATION
- trigger: type = "track" AND event = "Application Submitted"
- - actionId: 3PXoEXmHMzVcnY5RaMTcQp
- name: Search
- fields:
- name:
- '@path': $.event
- eventActionSource:
- '@if':
- exists:
- '@path': $.context.device.type
- then:
- '@path': $.context.device.type
- else: website
- countryCode:
- '@path': $.context.locale
- timestamp:
- '@path': $.timestamp
- value:
- '@path': $.properties.value
- currencyCode:
- '@path': $.properties.currency
- unitsSold:
- '@path': $.properties.quantity
- clientDedupeId:
- '@path': $.messageId
- matchKeys:
- email:
- '@if':
- exists:
- '@path': $.context.traits.email
- then:
- '@path': $.context.traits.email
- else:
- '@path': $.properties.email
- phone:
- '@if':
- exists:
- '@path': $.context.traits.phone
- then:
- '@path': $.context.traits.phone
- else:
- '@path': $.properties.phone
- firstName:
- '@if':
- exists:
- '@path': $.context.traits.firstName
- then:
- '@path': $.context.traits.firstName
- else:
- '@path': $.properties.firstName
- lastName:
- '@if':
- exists:
- '@path': $.context.traits.lastName
- then:
- '@path': $.context.traits.lastName
- else:
- '@path': $.properties.lastName
- address:
- '@if':
- exists:
- '@path': $.context.traits.street
- then:
- '@path': $.context.traits.street
- else:
- '@path': $.properties.street
- city:
- '@if':
- exists:
- '@path': $.context.traits.city
- then:
- '@path': $.context.traits.city
- else:
- '@path': $.properties.city
- state:
- '@if':
- exists:
- '@path': $.context.traits.state
- then:
- '@path': $.context.traits.state
- else:
- '@path': $.properties.state
- postalCode:
- '@if':
- exists:
- '@path': $.context.traits.postalCode
- then:
- '@path': $.context.traits.postalCode
- else:
- '@path': $.properties.postalCode
- maid:
- '@path': context.device.advertisingId
- rampId:
- '@if':
- exists:
- '@path': $.context.traits.rampId
- then:
- '@path': $.context.traits.rampId
- else:
- '@path': $.properties.rampId
- matchId:
- '@if':
- exists:
- '@path': $.context.traits.matchId
- then:
- '@path': $.context.traits.matchId
- else:
- '@path': $.properties.matchId
- dataProcessingOptions:
- '@path': $.properties.dataProcessingOptions
- consent:
- ipAddress:
- '@path': $.context.ip
- amznAdStorage:
- '@path': $.properties.amznAdStorage
- amznUserData:
- '@path': $.properties.amznUserData
- tcf:
- '@path': $.properties.tcf
- gpp:
- '@path': $.properties.gpp
- customAttributes:
- brand:
- '@path': $.properties.brand
- category:
- '@path': $.properties.category
- productId:
- '@path': $.properties.productId
- attr1:
- '@path': $.properties.attr1
- attr2:
- '@path': $.properties.attr2
- attr3:
- '@path': $.properties.attr3
- attr4:
- '@path': $.properties.attr4
- attr5:
- '@path': $.properties.attr5
- attr6:
- '@path': $.properties.attr6
- attr7:
- '@path': $.properties.attr7
- attr8:
- '@path': $.properties.attr8
- attr9:
- '@path': $.properties.attr9
- attr10:
- '@path': $.properties.attr10
- enable_batching: true
- batch_size: 500
- eventType: SEARCH
- trigger: type = "track" AND event = "Products Searched"
- partnerOwned: true
- id: 5d1994fb320116000112aa12
display_name: Amazon EventBridge
name: Amazon EventBridge
@@ -30815,7 +28519,7 @@ items:
logo:
url: https://cdn-devcenter.segment.com/9e709c23-539a-4c50-9a9a-3212e726baa1.svg
mark:
- url: https://cdn-devcenter.segment.com/887dae0e-f6a3-4f55-a5f1-157b65cccc20.svg
+ url: https://cdn-devcenter.segment.com/34845397-e130-4972-9990-29c37e66e48d.svg
methods:
track: true
identify: true
@@ -95208,6 +92912,406 @@ items:
actions: []
presets: []
partnerOwned: false
+- id: 66cc76e29693c9e5591bf029
+ display_name: Nextdoor Conversions API
+ name: Nextdoor Conversions API
+ slug: nextdoor-conversions-api
+ hidden: false
+ endpoints:
+ - US
+ regions:
+ - us-west-2
+ - eu-west-1
+ url: connections/destinations/catalog/nextdoor-conversions-api
+ previous_names:
+ - Nextdoor Conversions API
+ website: https://nextdoor.com/
+ status: PUBLIC_BETA
+ categories:
+ - Advertising
+ - Attribution
+ logo:
+ url: https://cdn-devcenter.segment.com/32c46ddc-fe44-4a08-b134-db4269ce8232.svg
+ mark:
+ url: https://cdn-devcenter.segment.com/58fca57c-8676-4e90-85b3-c0461a94a11d.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: 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: apiKey
+ type: password
+ defaultValue: ''
+ description: >-
+ The Embed API Key for your account. You can find this on your settings
+ pages.
+ required: true
+ label: API Key
+ - name: client_id
+ type: string
+ defaultValue: ''
+ description: >-
+ Your Nextdoor Advertiser ID for self serve clients can be found in your
+ NAM account for managed your support team can provide
+ required: true
+ label: Nextdoor Advertiser ID
+ - name: pixel_id
+ type: string
+ defaultValue: ''
+ description: >-
+ Nextdoor Pixel Id. Used for deduplication when events are sent via CAPI
+ and front end Pixel.
+ required: true
+ label: Nextdoor Pixel Id
+ actions:
+ - id: 7hSAaxpKp56cqggHVoM5Ss
+ name: Send Conversion
+ slug: sendConversion
+ description: Send Conversion Event to Nextdoor
+ platform: CLOUD
+ hidden: false
+ defaultTrigger: null
+ fields:
+ - id: rxBViDnV5Mfwn4CzwvyAnj
+ sortOrder: 0
+ fieldKey: event_name
+ label: Event Name
+ type: STRING
+ description: The name of the event to track
+ placeholder: ''
+ required: true
+ multiple: false
+ choices:
+ - label: Custom Conversion 1
+ value: custom_conversion_1
+ - label: Custom Conversion 2
+ value: custom_conversion_2
+ - label: Custom Conversion 3
+ value: custom_conversion_3
+ - label: Custom Conversion 4
+ value: custom_conversion_4
+ - label: Custom Conversion 5
+ value: custom_conversion_5
+ - label: Custom Conversion 6
+ value: custom_conversion_6
+ - label: Custom Conversion 7
+ value: custom_conversion_7
+ - label: Custom Conversion 8
+ value: custom_conversion_8
+ - label: Custom Conversion 9
+ value: custom_conversion_9
+ - label: Custom Conversion 10
+ value: custom_conversion_10
+ - label: Lead
+ value: lead
+ - label: Purchase
+ value: purchase
+ - label: Sign Up
+ value: sign_up
+ dynamic: false
+ allowNull: false
+ - id: eVrZPMAQnZ8Lbya6kSTNVk
+ sortOrder: 1
+ fieldKey: event_id
+ label: Event ID
+ type: STRING
+ description: >-
+ A unique ID for the event. This is used to deduplicate events sent by
+ the browser and server.
+ placeholder: ''
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: rXdsHtC2NWyd6Nhi6JZCW2
+ sortOrder: 2
+ fieldKey: event_time
+ label: Event Time
+ type: STRING
+ description: UCT Timestamp with ISO 8601 format. For example, 2022-11-23T03:30:52Z
+ placeholder: ''
+ defaultValue:
+ '@path': $.timestamp
+ required: true
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: rdPZWzPhV8zfctkov5XQTQ
+ sortOrder: 3
+ fieldKey: action_source
+ label: Action Source
+ type: STRING
+ description: Indicates the channel through which conversion happened.
+ placeholder: ''
+ required: true
+ multiple: false
+ choices:
+ - label: email
+ value: email
+ - label: website
+ value: website
+ - label: app
+ value: app
+ - label: phone_call
+ value: phone_call
+ - label: chat
+ value: chat
+ - label: physical_store
+ value: physical_store
+ - label: system_generated
+ value: system_generated
+ - label: other
+ value: custom_conversion_8
+ dynamic: false
+ allowNull: false
+ - id: ruUz364dVbCBcc4r46vDe4
+ sortOrder: 4
+ fieldKey: action_source_url
+ label: Action Source url
+ type: STRING
+ description: The browser URL where the event happened (required for web events).
+ placeholder: ''
+ defaultValue:
+ '@path': $.context.page.url
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: iKZQkd6VPD14rqBswSKL6f
+ sortOrder: 5
+ fieldKey: delivery_optimization
+ label: Delivery Optimization
+ type: BOOLEAN
+ description: >-
+ True indicates data can be used for optimization. False indicates the
+ data will only be used for attribution
+ placeholder: ''
+ defaultValue: true
+ required: true
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: kCdSdH9UFGrwLdW46xChKU
+ sortOrder: 6
+ fieldKey: test_event
+ label: Test Event
+ type: BOOLEAN
+ description: Flag to indicate if this is a test event.
+ placeholder: ''
+ defaultValue: false
+ required: true
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: c83A1Cx6Dn5BMksz6gmTgJ
+ sortOrder: 8
+ fieldKey: customer
+ label: Customer Data
+ type: OBJECT
+ description: >-
+ Customer profile data used to match with Nextdoor users. At least one of
+ the fields is required.
+ placeholder: ''
+ defaultValue:
+ email:
+ '@if':
+ exists:
+ '@path': $.context.traits.email
+ then:
+ '@path': $.context.traits.email
+ else:
+ '@path': $.properties.email
+ phone_number:
+ '@if':
+ exists:
+ '@path': $.context.traits.phone
+ then:
+ '@path': $.context.traits.phone
+ else:
+ '@path': $.properties.phone
+ first_name:
+ '@if':
+ exists:
+ '@path': $.context.traits.first_name
+ then:
+ '@path': $.context.traits.first_name
+ else:
+ '@path': $.properties.first_name
+ last_name:
+ '@if':
+ exists:
+ '@path': $.context.traits.last_name
+ then:
+ '@path': $.context.traits.last_name
+ else:
+ '@path': $.properties.last_name
+ date_of_birth:
+ '@if':
+ exists:
+ '@path': $.context.traits.birthday
+ then:
+ '@path': $.context.traits.birthday
+ else:
+ '@path': $.properties.birthday
+ street_address:
+ '@if':
+ exists:
+ '@path': $.context.traits.address.street
+ then:
+ '@path': $.context.traits.address.street
+ else:
+ '@path': $.properties.address.street
+ city:
+ '@if':
+ exists:
+ '@path': $.context.traits.address.city
+ then:
+ '@path': $.context.traits.address.city
+ else:
+ '@path': $.properties.address.city
+ state:
+ '@if':
+ exists:
+ '@path': $.context.traits.address.state
+ then:
+ '@path': $.context.traits.address.state
+ else:
+ '@path': $.properties.address.state
+ country:
+ '@if':
+ exists:
+ '@path': $.context.traits.address.country
+ then:
+ '@path': $.context.traits.address.country
+ else:
+ '@path': $.properties.address.country
+ zip_code:
+ '@if':
+ exists:
+ '@path': $.context.traits.address.postal_code
+ then:
+ '@path': $.context.traits.address.postal_code
+ else:
+ '@path': $.properties.address.postal_code
+ click_id:
+ '@if':
+ exists:
+ '@path': $.integrations.Nextdoor Conversions API.click_id
+ then:
+ '@path': $.integrations.Nextdoor Conversions API.click_id
+ else:
+ '@path': $.properties.click_id
+ client_ip_address:
+ '@path': $.context.ip
+ required: true
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: h1QHQSVAmbVv5xrjqnfwuk
+ sortOrder: 9
+ fieldKey: custom
+ label: Custom Data
+ type: OBJECT
+ description: >-
+ Custom objects contains fields specific to advertisers that are not
+ already covered in standard fields.
+ placeholder: ''
+ defaultValue:
+ order_value:
+ '@path': $.properties.total
+ currency:
+ '@path': $.properties.currency
+ order_id:
+ '@path': $.properties.order_id
+ delivery_category: not_specified
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: f4v3otMMiJpX2iZbSDZzuv
+ sortOrder: 10
+ fieldKey: product_context
+ label: Product Context
+ type: OBJECT
+ description: Product details associated with the event.
+ placeholder: ''
+ defaultValue:
+ '@arrayPath':
+ - $.properties.products
+ - id:
+ '@path': $.product_id
+ quantity:
+ '@path': $.quantity
+ item_price:
+ '@path': $.price
+ required: false
+ multiple: true
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: jeLFST56mmZui9Ugf1mjFR
+ sortOrder: 11
+ fieldKey: app
+ label: Mobile App Event Parameters
+ type: OBJECT
+ description: Data about the source Mobile app. Required for app events
+ placeholder: ''
+ defaultValue:
+ app_id:
+ '@path': $.context.app.name
+ app_tracking_enabled:
+ '@path': $.context.device.adTrackingEnabled
+ platform:
+ '@path': $.context.app.type
+ app_version:
+ '@path': $.context.app.version
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: rP5JhLETdYbU4XkxmkeSFn
+ name: Nextdoor Browser Plugin
+ slug: nextdoorPlugin
+ description: Enriches Segment payloads the Nextdoor Click ID
+ platform: WEB
+ hidden: false
+ defaultTrigger: >-
+ type = "track" or type = "identify" or type = "page" or type = "group" or
+ type = "alias"
+ fields: []
+ presets: []
+ partnerOwned: true
- id: 596f991a70a3e552b957f74e
display_name: Nielsen DCR
name: Nielsen DCR
@@ -113651,7 +111755,7 @@ items:
hidden: false
defaultTrigger: type = "identify"
fields:
- - id: 7bcUDgjmbVCwE79YLWzN9Q
+ - id: 3gkmxjopNbdFJ37RDx6Q9S
sortOrder: 0
fieldKey: contactKey
label: Contact Key
@@ -113677,7 +111781,7 @@ items:
hidden: false
defaultTrigger: null
fields:
- - id: wB4GwXmo6BVQAhRopCcyYZ
+ - id: uZyESXLqFiVf6j4WZUTjUX
sortOrder: 0
fieldKey: eventDefinitionKey
label: Event Definition Key
@@ -113691,7 +111795,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 85Zaq8eDPfKZVkyPX8EdRp
+ - id: fGbwaydgYgqjXaZCoaNy6j
sortOrder: 1
fieldKey: contactKey
label: Contact Key
@@ -113705,7 +111809,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: rDwpaCDgtgAj9K9eTVu5KT
+ - id: wXGo2au4Tx7GGApGouTygk
sortOrder: 2
fieldKey: data
label: Event Data
@@ -113732,7 +111836,7 @@ items:
hidden: false
defaultTrigger: null
fields:
- - id: rJ8t3SNQwreVFTqwmZRB2q
+ - id: mpdj371Zgcqj76u9Edov9U
sortOrder: 0
fieldKey: key
label: Data Extension Key
@@ -113747,7 +111851,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: pwTAP6HA2brVctvwzoCY9t
+ - id: 4ngH84j9pjvAH2BM7KMti6
sortOrder: 1
fieldKey: id
label: Data Extension ID
@@ -113762,7 +111866,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: sg8cHv3HeuoMfxf1FUL7on
+ - id: pmd7jmGQmHH6ic2sRggK92
sortOrder: 2
fieldKey: keys
label: Data Extension Primary Keys
@@ -113779,7 +111883,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: c4arDnmkkUgnAouYAGRJXq
+ - id: u71oGUVYTce2REQgbuTEXP
sortOrder: 3
fieldKey: values
label: Data Extension Fields
@@ -113797,7 +111901,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: fQX5mLRvmbcJWQkm6UgAfR
+ - id: eUUm8X98bw8GREcaG8xppf
sortOrder: 4
fieldKey: enable_batching
label: Batch data to SFMC
@@ -113820,7 +111924,7 @@ items:
hidden: false
defaultTrigger: type = "identify"
fields:
- - id: cRB4mpG2673nwJkpsKKhud
+ - id: wCqc4wtYVL42f7EGxaHHgL
sortOrder: 0
fieldKey: key
label: Data Extension Key
@@ -113835,7 +111939,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: ahyjmWLu24HAekxwLKhYN4
+ - id: 7nW4DRyH1pvp3MCuFGq8wo
sortOrder: 1
fieldKey: id
label: Data Extension ID
@@ -113850,7 +111954,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 9LmLt2Dxduisbd9t8AdbhR
+ - id: o4kSusbWjwb1jKvy1HmKE5
sortOrder: 2
fieldKey: keys
label: Data Extension Primary Keys
@@ -113870,7 +111974,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: xcAmN3NasKGtgMF5gN4ZM6
+ - id: 8n8Ek8bFHKk6vTUGu8oQHc
sortOrder: 3
fieldKey: values
label: Contact Fields
@@ -113887,7 +111991,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: p9yt1KGUFEca1kF1a6jXH5
+ - id: cEwnXVGNrL5yvazv2aWEPJ
sortOrder: 4
fieldKey: enable_batching
label: Batch data to SFMC
@@ -113903,14 +112007,12 @@ items:
- id: 2ZQ3y7DJqFGYwCxcpypA1P
name: Send Event to Data Extension (V2)
slug: dataExtensionV2
- description: >-
- Upsert events as rows into an existing data extension in Salesforce
- Marketing Cloud.
+ description: Upsert events as rows into a data extension in Salesforce Marketing Cloud.
platform: CLOUD
hidden: false
defaultTrigger: null
fields:
- - id: rmgeYjf8zx8CxrPHi3Ng1Q
+ - id: oj2wfkcgfnRFBmuEwHwVMS
sortOrder: 0
fieldKey: keys
label: Data Extension Primary Keys
@@ -113927,7 +112029,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: 7RBWa4CrPJNyTYkfE1dLd2
+ - id: tvm9KAKhF1Cwa7yiPWFExt
sortOrder: 1
fieldKey: values
label: Data Extension Fields
@@ -113945,7 +112047,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: 8BvhrUXiey5iutkfuKCxKk
+ - id: dnfe9ipyCBoCFjR6UomjbE
sortOrder: 2
fieldKey: enable_batching
label: Batch data to SFMC
@@ -113958,7 +112060,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: shtWQ25AGQcpE1tdmP1n9G
+ - id: tHc6YrCC2gB9oFSAo82br1
sortOrder: 4
fieldKey: operation
label: Operation
@@ -113976,7 +112078,7 @@ items:
value: select
dynamic: false
allowNull: false
- - id: 4DbMJDATSkDtK8LYRJR45B
+ - id: 2DjQNSqZ8JSDYgwmD8RE9v
sortOrder: 5
fieldKey: dataExtensionId
label: Data Extension ID
@@ -113988,7 +112090,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: 9HQGivpCgKw5pNcQvxMDa3
+ - id: 6NANnvaB7bhXDXpiW6daCF
sortOrder: 6
fieldKey: categoryId
label: Category ID (Folder ID)
@@ -114000,7 +112102,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: suxU3f7Tpi5gs23Kqcg2w7
+ - id: vFGTKYq9kqjPx5pbxULfNF
sortOrder: 7
fieldKey: name
label: Data Extension Name
@@ -114012,7 +112114,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 26EAQuxkb5rdDL9CgUpuKG
+ - id: 22jBXDEQtNGAdz8sdHrrWV
sortOrder: 8
fieldKey: description
label: Data Extension Description
@@ -114024,7 +112126,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: tYQvYiMxZxDFCjhEu56PyL
+ - id: iAXj2yXiYfDaxf8TUetMEL
sortOrder: 9
fieldKey: isSendable
label: Is Sendable
@@ -114038,7 +112140,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 2T5WVnJJBoBS71pXebXtuX
+ - id: rtrQ8xEkcNDYuWnQfYydkh
sortOrder: 10
fieldKey: sendableCustomObjectField
label: Sendable Custom Object Field
@@ -114052,7 +112154,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: b5CeLAQ6gs4WKyfVMeEgzS
+ - id: o9cx5WqfHMeGQzA6gqHGg3
sortOrder: 11
fieldKey: sendableSubscriberField
label: Sendable Subscriber Field
@@ -114070,7 +112172,7 @@ items:
value: _SubscriberID
dynamic: false
allowNull: false
- - id: 6YHFzPAwH7H8mwDTxtbhk
+ - id: fWEDwCQe7DE7bCmpmFKAcf
sortOrder: 12
fieldKey: columns
label: Data Extension Fields
@@ -114082,7 +112184,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: bTKKS7Lw93ETX8WvPokCsU
+ - id: bKJgWHTgGNGFpV7fxgUHqA
sortOrder: 13
fieldKey: retlOnMappingSave
label: Create or Select Data Extension
@@ -114097,7 +112199,7 @@ items:
dynamic: false
allowNull: false
hidden: false
- - id: vk4qzR1jutUuga82iQFmcV
+ - id: qEJhRwvSPK672kUWhkDsXW
sortOrder: 14
fieldKey: operation
label: Operation
@@ -114115,7 +112217,7 @@ items:
value: select
dynamic: false
allowNull: false
- - id: qbaCm2NMPzxZfEJCGfDMjt
+ - id: da2LtXBDvYK81mfsE2Tea2
sortOrder: 15
fieldKey: dataExtensionId
label: Data Extension ID
@@ -114127,7 +112229,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: hff9VkRMW2TCC2yWPfD5Tb
+ - id: 2JBnXqT53MfHtBSeL5ddnC
sortOrder: 16
fieldKey: categoryId
label: Category ID (Folder ID)
@@ -114139,7 +112241,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: dAjP9ByPaFExBEUctT9nPq
+ - id: fAZG36Und1Afc9UkJPo1PP
sortOrder: 17
fieldKey: name
label: Data Extension Name
@@ -114151,7 +112253,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: qmdGzHA1NGusRFMd5uoFd5
+ - id: 9r1CCd7MXi2ooLNJHAes9w
sortOrder: 18
fieldKey: description
label: Data Extension Description
@@ -114163,7 +112265,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: tMUcq99j4VdoFZnbX3w1RM
+ - id: qSqSrrGXdD5GTVKWscXtMt
sortOrder: 19
fieldKey: isSendable
label: Is Sendable
@@ -114177,7 +112279,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: ssrHTeEKAv269uxcdRaYMt
+ - id: jJQdAUUYwcV4R7K8K49Z6B
sortOrder: 20
fieldKey: sendableCustomObjectField
label: Sendable Custom Object Field
@@ -114191,7 +112293,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: qp6bPgwiB83vBHemFXBsJX
+ - id: 5bS5YHc1Y8Vw88ovx6MauY
sortOrder: 21
fieldKey: sendableSubscriberField
label: Sendable Subscriber Field
@@ -114209,7 +112311,7 @@ items:
value: _SubscriberID
dynamic: false
allowNull: false
- - id: 4jgm72jg3sXSV6bpWS5j23
+ - id: 6vp9uFecd7qJzKUvcb7nMD
sortOrder: 22
fieldKey: columns
label: Data Extension Fields
@@ -114221,7 +112323,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: mt6hTj8jiUs3Jk4ZF5pWRj
+ - id: 2igVMoW4iyhTqy6g6WcYLs
sortOrder: 23
fieldKey: onMappingSave
label: Create or Select Data Extension
@@ -114240,13 +112342,13 @@ items:
name: Send Contact to Data Extension (V2)
slug: contactDataExtensionV2
description: >-
- Upsert contact data as rows into an existing data extension in Salesforce
- Marketing Cloud.
+ Upsert contact data as rows into a data extension in Salesforce Marketing
+ Cloud.
platform: CLOUD
hidden: false
defaultTrigger: type = "identify"
fields:
- - id: nHJELWgpAfybPmzdkiBzhD
+ - id: oGg6NmbtphpMxQv5PjTpMs
sortOrder: 0
fieldKey: keys
label: Data Extension Primary Keys
@@ -114266,7 +112368,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: c5sL6KM65fucNpcWfXYurR
+ - id: vjK9uNwKDwiMPCK2FBrB4Y
sortOrder: 1
fieldKey: values
label: Contact Fields
@@ -114283,7 +112385,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: 844ctQZXVLtWJ26Fx8TPNK
+ - id: usb8siC5pM4GTa9nwMQVvw
sortOrder: 2
fieldKey: enable_batching
label: Batch data to SFMC
@@ -114296,7 +112398,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: sB8Dvkoio4a4AG2rkGcg6B
+ - id: syXExevLc4sPhV88BaBzbE
sortOrder: 4
fieldKey: operation
label: Operation
@@ -114314,7 +112416,7 @@ items:
value: select
dynamic: false
allowNull: false
- - id: JfbT7D7L7YYAESN3AL6zA
+ - id: fgqqsPnVwffdVgqcjahaov
sortOrder: 5
fieldKey: dataExtensionId
label: Data Extension ID
@@ -114326,7 +112428,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: dHLENaRwJiwaarUCvPpahi
+ - id: rx2LGZMTsamr4yr4QeWTAC
sortOrder: 6
fieldKey: categoryId
label: Category ID (Folder ID)
@@ -114338,7 +112440,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: kdGyRB8vLpTr1UaoathKFt
+ - id: 2vsMbgLkFPKNQG72SNXawx
sortOrder: 7
fieldKey: name
label: Data Extension Name
@@ -114350,7 +112452,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: n1bg8W6QDZFbqwBM69d9y3
+ - id: 8nZkmagoADrZf9eAgdhkXG
sortOrder: 8
fieldKey: description
label: Data Extension Description
@@ -114362,7 +112464,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: eBPeJJJeoDe7rztA8nMPfJ
+ - id: 3q3dUbzAzeNJ8P3FHtNst3
sortOrder: 9
fieldKey: isSendable
label: Is Sendable
@@ -114376,7 +112478,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: hd5Zykihm9PTmiXjfMHT75
+ - id: 244UMuNhjXmmUR8vZ7wWns
sortOrder: 10
fieldKey: sendableCustomObjectField
label: Sendable Custom Object Field
@@ -114390,7 +112492,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: iTxYgoESWBjr98ZT7Cqv6t
+ - id: 8V71EugQ8FNphY9mkAKJPS
sortOrder: 11
fieldKey: sendableSubscriberField
label: Sendable Subscriber Field
@@ -114408,7 +112510,7 @@ items:
value: _SubscriberID
dynamic: false
allowNull: false
- - id: pxx9XUV664rTK51ZMWoxs7
+ - id: 7kYwwjZt7nLMRyrmQSYPtt
sortOrder: 12
fieldKey: columns
label: Data Extension Fields
@@ -114420,7 +112522,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: eycpCdFAVUbFRjx69Y5swJ
+ - id: dSXUQaQvicuGufbE8mdneC
sortOrder: 13
fieldKey: retlOnMappingSave
label: Create or Select Data Extension
@@ -114435,7 +112537,7 @@ items:
dynamic: false
allowNull: false
hidden: false
- - id: vEMuUkY8WJgwmaRpx451k5
+ - id: rshvzy6XhkkemFew96g57Z
sortOrder: 14
fieldKey: operation
label: Operation
@@ -114453,7 +112555,7 @@ items:
value: select
dynamic: false
allowNull: false
- - id: cEaf3ptqCuU2739uoHSMAe
+ - id: vHpFEhsAXm7jq14h45TnxQ
sortOrder: 15
fieldKey: dataExtensionId
label: Data Extension ID
@@ -114465,7 +112567,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: 2XMuaNAMaGRii6Hq5K6UzV
+ - id: q4eLMyg6qM47cWoQUDsT9a
sortOrder: 16
fieldKey: categoryId
label: Category ID (Folder ID)
@@ -114477,7 +112579,7 @@ items:
choices: null
dynamic: true
allowNull: false
- - id: sUxep19wmuPGp6QZkE2TnS
+ - id: j26vBUpwarvj3fHTvApmdr
sortOrder: 17
fieldKey: name
label: Data Extension Name
@@ -114489,7 +112591,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: fKmViPQn4eQLX5aqgMPeLW
+ - id: 2jFY3tfRyk3rdhHnVBXqcr
sortOrder: 18
fieldKey: description
label: Data Extension Description
@@ -114501,7 +112603,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: kjJL4n4WhgB1ygCWJWfaTy
+ - id: sVrb95f51HdUAv2iNAdV9B
sortOrder: 19
fieldKey: isSendable
label: Is Sendable
@@ -114515,7 +112617,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: cJmx59Qi6hUq7eqkfoA74t
+ - id: fKkdRGdoft6EFZQr6678nE
sortOrder: 20
fieldKey: sendableCustomObjectField
label: Sendable Custom Object Field
@@ -114529,7 +112631,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 9rLexRWHxFyZDfdtpFhVpD
+ - id: sED5QGkZxgapA218u9mdPG
sortOrder: 21
fieldKey: sendableSubscriberField
label: Sendable Subscriber Field
@@ -114547,7 +112649,7 @@ items:
value: _SubscriberID
dynamic: false
allowNull: false
- - id: h1PuRt8zm8pLEzTZq7TuQn
+ - id: euRpi66XwsHp9mSibrsgH9
sortOrder: 22
fieldKey: columns
label: Data Extension Fields
@@ -114559,7 +112661,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: kzQErgZKER7tbhSwf1cgrX
+ - id: tCDx8Q2oCXU2prUcapbr33
sortOrder: 23
fieldKey: onMappingSave
label: Create or Select Data Extension
@@ -125351,7 +123453,7 @@ items:
- Surveys
- Analytics
logo:
- url: https://cdn-devcenter.segment.com/026a2792-a26a-4dd3-b834-151d73246b90.svg
+ url: https://cdn-devcenter.segment.com/c5999c7c-27c9-4c92-90b9-a043814cfaf9.svg
mark:
url: https://cdn-devcenter.segment.com/a1dc2f9b-a359-41b9-a6fb-c9d147b79227.svg
methods:
@@ -125421,7 +123523,7 @@ items:
- Surveys
- Analytics
logo:
- url: https://cdn-devcenter.segment.com/33840a5c-ebcd-4e5a-a2da-3bbff3f69425.svg
+ url: https://cdn-devcenter.segment.com/b36a6bfa-51a0-4cee-9ce5-a8c1310b7e66.svg
mark:
url: https://cdn-devcenter.segment.com/6f44d6d0-edd6-4667-a42c-e84402fddc1a.svg
methods:
@@ -137811,6 +135913,14 @@ items:
description: Created under Settings > API Integration in the Topsort Manager Platform.
required: true
label: API Key
+ - name: skipZeroPricePurchases
+ type: boolean
+ defaultValue: false
+ description: >-
+ When enabled, purchase events with items that have zero or missing unit
+ price will be filtered out.
+ required: false
+ label: Skip Zero Price Purchases
actions:
- id: 6hi4YVo8BFtB3xqeESgvPK
name: Purchase
@@ -137820,7 +135930,7 @@ items:
hidden: false
defaultTrigger: type = "track" and event = "Order Completed"
fields:
- - id: 9Mip7RXK19Na9ThBW8fVMx
+ - id: wNdkQq6KisvamidmgFbGqa
sortOrder: 0
fieldKey: id
label: Event ID
@@ -137836,7 +135946,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 6dT8g3W5tZsZPjcBkfooXf
+ - id: aL45KCMrqonrfT4kK1ny4p
sortOrder: 1
fieldKey: occurredAt
label: Occurred At
@@ -137850,7 +135960,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: aSRSpnEgdk9RfA5Wp6agWz
+ - id: 36rpatKNiBfDqsfRwMDApa
sortOrder: 2
fieldKey: opaqueUserId
label: Opaque User ID
@@ -137866,7 +135976,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: h7xm3WFmRe9Lc5kwf4jdjc
+ - id: 4uq9Xg6nyERPwAY5EHiRDo
sortOrder: 3
fieldKey: items
label: Items
@@ -137903,7 +136013,7 @@ items:
hidden: false
defaultTrigger: type = "track" and event = "Product Clicked"
fields:
- - id: sZMs8z8aZBKiKPqyLqBH7U
+ - id: 7GBd8L28VfTAvLQJm6Gib8
sortOrder: 0
fieldKey: id
label: Event ID
@@ -137919,7 +136029,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: bZk3VFRfjeu8CyjZTV7bnW
+ - id: u2rXPnd22h6Xxqi54oRdrN
sortOrder: 1
fieldKey: occurredAt
label: Occurred At
@@ -137933,7 +136043,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: irgTfafpV9pWEBGzPaV8s9
+ - id: sGKZzi7z4DjXWdV5EwJsA7
sortOrder: 2
fieldKey: opaqueUserId
label: Opaque User ID
@@ -137949,7 +136059,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: uJXo7pnnSYvzDMSGbgLJAM
+ - id: wd3ZERovpo79cNknr2ruvz
sortOrder: 3
fieldKey: resolvedBidId
label: Resolved Bid ID
@@ -137965,7 +136075,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: uexA8viyACctUNLV1QWxW5
+ - id: 3WMwxaJgagbKpqJtc7QyX8
sortOrder: 4
fieldKey: additionalAttribution
label: Additional Attribution
@@ -137987,7 +136097,7 @@ items:
hidden: false
defaultTrigger: type = "track" and event = "Product Viewed"
fields:
- - id: 48ZRK4fsba1yWWkU4a8Zzv
+ - id: rj277JN5qcZhsTJADphUoD
sortOrder: 0
fieldKey: id
label: Event ID
@@ -138003,7 +136113,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: bsG4sbuRKbYys1z69SAR9w
+ - id: b4HeMMWPkTqRmFpXc9H6X9
sortOrder: 1
fieldKey: occurredAt
label: Occurred At
@@ -138017,7 +136127,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: aYDDEk9htRnP1gzK3AGHi8
+ - id: t1ATmVuby8Prw5tL7fziSv
sortOrder: 2
fieldKey: opaqueUserId
label: Opaque User ID
@@ -138033,7 +136143,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: id8Ty6Ry4WMhGsMaLMjAt4
+ - id: qvcGUSZ2Lk5Num5oXfdA6f
sortOrder: 3
fieldKey: resolvedBidId
label: Resolved Bid ID
@@ -138049,7 +136159,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: fnfKhgEywRhVBP54BxBaPj
+ - id: 4ykPKZvug5h262Qrz7qgCh
sortOrder: 4
fieldKey: additionalAttribution
label: Additional Attribution
@@ -138073,7 +136183,7 @@ items:
hidden: false
defaultTrigger: type = "track" and event = "Product List Viewed"
fields:
- - id: tMfVUhNWNZ7zag1EDf7af8
+ - id: hLaArG9xGbZdKYKGbxUAoP
sortOrder: 0
fieldKey: id
label: Event ID
@@ -138089,7 +136199,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: iAN1vvGMHYaF6NmRCCKDZ3
+ - id: wVdm2ecwCKhKD3oReiqe7C
sortOrder: 1
fieldKey: occurredAt
label: Occurred At
@@ -138103,7 +136213,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: mNFzKRLzCX3GtxvUV9E4qL
+ - id: 3AqeWf87bUpxGVn7mrK5bm
sortOrder: 2
fieldKey: opaqueUserId
label: Opaque User ID
@@ -138119,7 +136229,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: dyNpukrBLg9yGFn4hbXigH
+ - id: kngzk2ZfouoNWxoHRET5M7
sortOrder: 3
fieldKey: products
label: Products
@@ -138156,8 +136266,35 @@ items:
additionalAttribution:
'@path': additionalAttribution
trigger: type = "track" and event = "Product List Viewed"
- - actionId: haYWUuXp1KDvb8u6uLj9h4
- name: Banner Impression
+ - actionId: 6hi4YVo8BFtB3xqeESgvPK
+ name: Purchase
+ fields:
+ id:
+ '@path': $.messageId
+ occurredAt:
+ '@path': $.timestamp
+ opaqueUserId:
+ '@path': $.anonymousId
+ items:
+ '@arrayPath':
+ - $.properties.products
+ - productId:
+ '@path': $.product_id
+ unitPrice:
+ '@path': $.price
+ quantity:
+ '@path': $.quantity
+ vendorId:
+ '@if':
+ exists:
+ '@path': $.vendorId
+ then:
+ '@path': $.vendorId
+ else:
+ '@path': $.brand
+ trigger: type = "track" and event = "Order Completed"
+ - actionId: bB6C4ayDhAhkCaRq83iJVw
+ name: Banner Click
fields:
id:
'@path': $.messageId
@@ -138169,7 +136306,7 @@ items:
'@path': $.properties.resolvedBidId
additionalAttribution:
'@path': $.properties.additionalAttribution
- trigger: type = "track" and event = "Banner Impression"
+ trigger: type = "track" and event = "Banner Click"
- actionId: haYWUuXp1KDvb8u6uLj9h4
name: Impression
fields:
@@ -138184,8 +136321,8 @@ items:
additionalAttribution:
'@path': $.properties.additionalAttribution
trigger: type = "track" and event = "Product Viewed"
- - actionId: bB6C4ayDhAhkCaRq83iJVw
- name: Banner Click
+ - actionId: haYWUuXp1KDvb8u6uLj9h4
+ name: Banner Impression
fields:
id:
'@path': $.messageId
@@ -138197,7 +136334,7 @@ items:
'@path': $.properties.resolvedBidId
additionalAttribution:
'@path': $.properties.additionalAttribution
- trigger: type = "track" and event = "Banner Click"
+ trigger: type = "track" and event = "Banner Impression"
- actionId: bB6C4ayDhAhkCaRq83iJVw
name: Click
fields:
@@ -138212,33 +136349,6 @@ items:
additionalAttribution:
'@path': $.properties.additionalAttribution
trigger: type = "track" and event = "Product Clicked"
- - actionId: 6hi4YVo8BFtB3xqeESgvPK
- name: Purchase
- fields:
- id:
- '@path': $.messageId
- occurredAt:
- '@path': $.timestamp
- opaqueUserId:
- '@path': $.anonymousId
- items:
- '@arrayPath':
- - $.properties.products
- - productId:
- '@path': $.product_id
- unitPrice:
- '@path': $.price
- quantity:
- '@path': $.quantity
- vendorId:
- '@if':
- exists:
- '@path': $.vendorId
- then:
- '@path': $.vendorId
- else:
- '@path': $.brand
- trigger: type = "track" and event = "Order Completed"
partnerOwned: true
- id: 54521fdb25e721e32a72eefa
display_name: Totango
diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml
index 6d7114d4e7..19610d2bf2 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-10-09
+# destination data last updated 2025-10-16
items:
- id: 54521fd925e721e32a72eee1
display_name: Pardot
diff --git a/src/_data/catalog/kotlin_resources.yml b/src/_data/catalog/kotlin_resources.yml
index 6492eb6b51..41c7c7542a 100644
--- a/src/_data/catalog/kotlin_resources.yml
+++ b/src/_data/catalog/kotlin_resources.yml
@@ -16,7 +16,7 @@ items:
categories:
- app
- name: Android AdvertisingId Plugin
- url: https://github.com/segmentio/analytics-kotlin/blob/main/samples/kotlin-android-app/src/main/java/com/segment/analytics/next/plugins/AndroidAdvertisingIdPlugin.kt
+ url: https://github.com/segmentio/analytics-kotlin/blob/1ef79eaf035549d08f91bac4e0a1de8ca6793e7b/samples/kotlin-android-app/src/main/java/com/segment/analytics/next/plugins/AndroidAdvertisingIdPlugin.kt
categories:
- plugin
- name: Screen Recording Plugin
diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml
index 2aea807994..132bce3a08 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-10-09
+# source categories last updated 2025-10-16
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 765122ec11..48c3d5217f 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-10-09
+# sources last updated 2025-10-16
items:
- id: 8HWbgPTt3k
display_name: .NET
diff --git a/src/connections/auto-instrumentation/configuration.md b/src/connections/auto-instrumentation/configuration.md
index e1976a2e27..20e6d57d7f 100644
--- a/src/connections/auto-instrumentation/configuration.md
+++ b/src/connections/auto-instrumentation/configuration.md
@@ -13,10 +13,21 @@ This guide assumes that you've already added the Signals SDK to your application
> info "Auto-Instrumentation in public beta"
> Auto-Instrumentation is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available.
+> info "Regional availability"
+> Auto-Instrumentation isn't supported in EU workspaces.
+
## Converting signals to events
After you set up the Signals SDK to capture the signals you want to target, you can create rules in your Segment workspace to translate the captured signals into traditional Segment analytics events. These rules are deployed in your application the next time a user launches your app.
+The process works like this:
+
+1. The SDK sends raw signals from your app or website to Segment.
+2. You build event rules in your workspace that define how those signals should become analytics events.
+3. You publish the event rules.
+
+After publishing, Segment analyzes user interactions in your app or website against these rules and automatically generates analytics events when matching interactions occur.
+
### Getting started with rule creation
1. Ensure you have the `Workspace Owner` or `Source Admin` role in Segment. If your source is connected to a tracking plan, you will also need, at a minimum, the `Tracking Plan Read-only` role. To view the content in the Event Builder tab, you will need, at a minimum, the `Source Read-only` role.
@@ -47,13 +58,11 @@ You can enrich your events by adding properties based on signal metadata. For ex
These properties are sent alongside your event, giving your team deeper insights without requiring any manual instrumentation.
+
-- - -
## Identify
diff --git a/src/connections/destinations/catalog/kable/index.md b/src/connections/destinations/catalog/kable/index.md
index 378f2de825..6f14286318 100644
--- a/src/connections/destinations/catalog/kable/index.md
+++ b/src/connections/destinations/catalog/kable/index.md
@@ -55,7 +55,7 @@ analytics.track({
The Segment Track event above would be transformed and transmitted to Kable as:
-```curl
+```bash
curl --request POST \
--url https://live.kable.io/api/v1/events/create \
--header 'Accept: application/json' \
diff --git a/src/connections/destinations/catalog/keen/index.md b/src/connections/destinations/catalog/keen/index.md
index 57b9507edc..b0b9e97d3e 100644
--- a/src/connections/destinations/catalog/keen/index.md
+++ b/src/connections/destinations/catalog/keen/index.md
@@ -9,7 +9,6 @@ When you enable Keen in the Segment web app, your changes appear in the Segment
Keen is supported on the client side and server side.
-- - -
## Identify
diff --git a/src/connections/destinations/catalog/leanplum/index.md b/src/connections/destinations/catalog/leanplum/index.md
index 9634a70c30..72cabd7a45 100644
--- a/src/connections/destinations/catalog/leanplum/index.md
+++ b/src/connections/destinations/catalog/leanplum/index.md
@@ -187,7 +187,7 @@ As every analytics provider deals with push notifications and in-app messaging d
5. In Keychain, select the new certificates, expand them to view the private key, and then right click to export them as .p12 files. You must enter a password.
-6. In Leanplum, go to your app's Keys & Settings (App Settings > {Your app} > Keys & Settings). Under Push Notifications, upload your .p12 files to Leanplum and enter your passphrase from step 5 above.
+6. In Leanplum, go to your app's Keys & Settings (App Settings > \{Your app} > Keys & Settings). Under Push Notifications, upload your .p12 files to Leanplum and enter your passphrase from step 5 above.
7. Configure your app to use push notifications in your app delegate's `applicationDidFinishLaunching` method (you may choose any combination of formats.
diff --git a/src/connections/destinations/catalog/librato/index.md b/src/connections/destinations/catalog/librato/index.md
index 0c10df41a1..940024517e 100644
--- a/src/connections/destinations/catalog/librato/index.md
+++ b/src/connections/destinations/catalog/librato/index.md
@@ -9,7 +9,6 @@ When you enable Librato in the Segment web app, your changes appear in the Segme
Librato supports the Segment `track` method for both client-side and server-side.
-- - -
## Track
diff --git a/src/connections/destinations/catalog/livechat/index.md b/src/connections/destinations/catalog/livechat/index.md
index 748df4af30..97db17014a 100644
--- a/src/connections/destinations/catalog/livechat/index.md
+++ b/src/connections/destinations/catalog/livechat/index.md
@@ -9,7 +9,6 @@ When you enable LiveChat in the Segment web app, your changes appear in the Segm
LiveChat is only supported on the client-side.
-- - -
## Identify
diff --git a/src/connections/destinations/catalog/localytics/index.md b/src/connections/destinations/catalog/localytics/index.md
index b47fd6e190..8fc041f3ca 100644
--- a/src/connections/destinations/catalog/localytics/index.md
+++ b/src/connections/destinations/catalog/localytics/index.md
@@ -43,8 +43,6 @@ Whenever you call [`track`](/docs/connections/spec/track/), we'll log an event w
Localytics. [`track`](/docs/connections/spec/track/) takes the name of the event and any
optional properties you want to associate with the event.
-- - -
-
## Push Notifications
Push notifications on Android require a bit of extra work to setup.
diff --git a/src/connections/destinations/catalog/lytics/index.md b/src/connections/destinations/catalog/lytics/index.md
index acdb17d7e7..6e0a080bc3 100644
--- a/src/connections/destinations/catalog/lytics/index.md
+++ b/src/connections/destinations/catalog/lytics/index.md
@@ -7,7 +7,7 @@ id: 54521fd925e721e32a72eed2
1. Lytics uses Segment's JavaScript library so make sure to [go through our quickstart guide to get set up on that first](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/).
-2) Once you're recording data enable Lytics on your destination page using your Customer ID number, which can be found in the admin section of your Lytics account: **Account** -> **Manage Accounts**.
+2. Once you're recording data enable Lytics on your destination page using your Customer ID number, which can be found in the admin section of your Lytics account: **Account** -> **Manage Accounts**.

diff --git a/src/connections/destinations/catalog/mailchimp/index.md b/src/connections/destinations/catalog/mailchimp/index.md
index 71c51bc974..d520ec9cc6 100644
--- a/src/connections/destinations/catalog/mailchimp/index.md
+++ b/src/connections/destinations/catalog/mailchimp/index.md
@@ -134,7 +134,7 @@ Again, this will **NOT** work for new users. New users will always have their su
Mailchimp doesn't support arrays as traits values. This can cause calls to not show up.
#### Why am I seeing a `400 Bad Request` error?
-A **400 Bad Request** error can occur if the email address contains a misspelled domain name. For example, Mailchimp might reject`"joe@gmil.com"` because "gmail" is misspelled.
+A **400 Bad Request** error can occur if the email address contains a misspelled domain name. For example, Mailchimp might reject `"joe@gmil.com"` because "gmail" is misspelled.
#### Why am I seeing frequent `404 Bad Request` errors from Identify events with no error message?
diff --git a/src/connections/destinations/catalog/marketo-v2/index.md b/src/connections/destinations/catalog/marketo-v2/index.md
index 635c934faa..a0f00ff605 100644
--- a/src/connections/destinations/catalog/marketo-v2/index.md
+++ b/src/connections/destinations/catalog/marketo-v2/index.md
@@ -1,81 +1,75 @@
---
-title: Marketo V2 Destination
+title: Marketo v2 Destination
strat: adobe
id: 58f8f55a70a3e552b955a444
---
-## Getting Started
+## Getting started
To start sending data to Marketo, there are two things you must do. **Both of these steps require that you to log in with the Admin Marketo Account.**
-### Enter your Marketo Credentials into your Destination settings
-We'll need your Munchkin Account ID, Client Secret, and Client ID.
-
-To get your Munchkin Account ID [login to your Marketo account](https://login.marketo.com/){:target="_blank"}, click Admin in the top right corner, then click Munchkin on the left side bar.
+### 1. Enter your Marketo Credentials into your Destination settings
+You need to enter your Munchkin Account ID, Client Secret, and Client ID.
+To get your Munchkin Account ID, [login to your Marketo account](https://login.marketo.com/){:target="_blank"}, click **Admin**, then **Munchkin** in the side bar.

-
To get your Client Secret and Client ID, you must create a role that has full API access, an API only user, and then create a Service in Marketo.
To create a role with full API access:
-1. Click **Admin** in the top right corner.
-2. Click **Users & Roles** on the left side bar.
+1. Click **Admin**.
+2. Click **Users & Roles** in the side bar.
3. Click on the **Roles** tab.
-4. Click **New Role**. Name your role and check the API Access box to assign the user full API access. Click Create.
-
-
+4. Click **New Role**. Name your role and check the API Access box to assign the user full API access. Click **Create**.
+
-Now that you've created an API role, you have to assign that role to an API only user.
+Once you've created an API role, you have to assign that role to an API only user.
-1. Click the Users tab.
-2. Click Invite New User and fill out the necessary information in Step 1.
-3. Assign the new role you created to this user in Step 2 and check the API Only box. Click next then Send.
+1. Click the **Users** tab.
+2. Click **Invite New User** and fill out the necessary information in Step 1.
+3. Assign the new role you created to this user in Step 2 and check the API Only box. Click **Next**, then **Send**.

-
Next, create a Service and get Client Secret and Client ID from that Service.
-1. Click LaunchPoint on the left side bar.
-2. Click New and then New Service from the drop down.
-3. Select Custom for the Service from the drop down.
-4. Select the new API Only user you invited. This User must be an API Only user **and** be assigned a role that has full API access.
+1. Click **LaunchPoint** in the side bar.
+2. Click **New > New Service**.
+3. Select **Custom for the Service**.
+4. Select the new API-Only user you invited. This user must be an API_Only user **and** be assigned a role that has full API access.

-1. Click View Details on the new service that you've created and a small window will display with your Client Secret and Client ID. Copy and paste them into your Destination's Settings.
+1. Click **View Details** on the new service that you've created. Your Client Secret and Client ID are displayed in a small window. Copy and paste them into your destination's settings.

+### 2. Create a User ID and an Anonymous ID field in Marketo
-### Create a User ID and an Anonymous ID field in Marketo
-
-1. Click Admin in the top right corner.
-2. Click Field Management on the left side bar.
-3. Click New Custom Field.
-4. Select String as the type.
+1. Click **Admin**.
+2. Click **Field Management** in the side bar.
+3. Click **New Custom Field**.
+4. Select **String** as the type.
5. Name the field whatever you'd like.
-6. Set the API name to `userId` for the user ID field and then `anonymousId` for the anonymous ID field. **Important:** The API names for the user ID and anonymous ID fields must be `userId` and `anonymousId` exactly. If anything in the API name is different, the destination will not work.
+6. Set the API name to `userId` for the user ID field and then `anonymousId` for the anonymous ID field. **Note**: The API names for the user ID and anonymous ID fields must be `userId` and `anonymousId` exactly. If anything in the API name is different, the destination won't work.

-----------
## Identify
### Cloud-mode
-When you call [`Identify`](/docs/connections/spec/identify/) in Cloud-mode, Segment uses [Marketo's REST API](http://developers.marketo.com/rest-api/lead-database/leads/#create_and_update){:target="_blank"} to create and update leads server-side.
+When you call [Identify](/docs/connections/spec/identify/) in Cloud-mode, Segment uses [Marketo's REST API](http://developers.marketo.com/rest-api/lead-database/leads/#create_and_update){:target="_blank"} to create and update leads server-side.
### Device-mode
-When you call [`Identify`](/docs/connections/spec/identify/) in Device-mode, Segment uses [Marketo's Background Form Submission](https://developers.marketo.com/blog/make-a-marketo-form-submission-in-the-background/){:target="_blank"} to create and update leads client-side.
+When you call [Identify](/docs/connections/spec/identify/) in Device-mode, Segment uses [Marketo's Background Form Submission](https://developers.marketo.com/blog/make-a-marketo-form-submission-in-the-background/){:target="_blank"} to create and update leads client-side.
-There are additional steps you must take to send `.identify()` calls in Device-mode.
+There are additional steps you must take to send Identify calls in Device-mode.
1. Create an empty form in Marketo. This form will always be hidden and can remain empty as long as the traits you need downstream are mapped in the **Marketo Custom Fields** Destination setting.
-2. Input the associated **Marketo Form ID** and **Marketo Form URL** in your Marketo V2 Destination settings. This information can be found in Form Actions > Embed Code in the Marketo Design Studio:
+2. Input the associated **Marketo Form ID** and **Marketo Form URL** in your Marketo v2 Destination settings. This information can be found in **Form Actions > Embed Code** in the Marketo Design Studio:

> info ""
-> **Marketo Form ID** and **Marketo Form URL** are **required** fields for the Marketo SDK to initialize on your site. If these fields are left blank, the SDK will not initialize and data will not be sent downstream.
+> **Marketo Form ID** and **Marketo Form URL** are **required** fields for the Marketo SDK to initialize on your site. If these fields are left blank, the SDK won't initialize and data won't be sent downstream.
### Traits
-Regardless of connection mode, we'll map the following spec'd Segment traits to Marketo's standard fields:
+Regardless of connection mode, following spec'd Segment traits are mapped to Marketo's standard fields:
| **Segment Traits** | **Marketo Standard Fields** |
| --------------------- | --------------------------- |
@@ -112,22 +106,22 @@ analytics.identify('1234', {
});
```
-If you'd like any other traits from your `.identify()` call to update a field in Marketo, you must create custom fields in Marketo and map them in the **Marketo Custom Fields** Destination setting.
+If you'd like any other traits from your Identify call to update a field in Marketo, you must create custom fields in Marketo and map them in the **Marketo Custom Fields** Destination setting.

-- **Segment Trait**. The name of the trait sent in your `.identify()` call.
-- **Marketo Field Name**. The Marketo REST API name for the field. To get the REST API name for your fields in Marketo, click Field Management, then Export Field Names. A spreadsheet will download and the first column is the REST API name for your Marketo fields. **Make sure to copy and paste the REST API name exactly. This is case sensitive.**
-- **Marketo Field Type**. When you are in Field Management, click on the field name in the bar on the right and you'll see the field type.
+- **Segment trait**: The name of the trait sent in your Identify call.
+- **Marketo field name**: The Marketo REST API name for the field. To get the REST API name for your fields in Marketo, click **Field Management**, then **Export Field Names**. A spreadsheet downloads and the first column is the REST API name for your Marketo fields. **Make sure to copy and paste the REST API name exactly. This is case sensitive.**
+- **Marketo field type**: When you are in Field Management, click on the field name to see the field type.

-**Note:** Custom `address` traits must go in the top level `traits` object, not in the `address` object.
+**Note**: Custom `address` traits must go in the top level `traits` object, not in the `address` object.
## Track
-When you call [`Track`](/docs/connections/spec/track/), Segment maps the event to a pre-defined [Marketo Custom Activity](http://docs.marketo.com/display/public/DOCS/Understanding+Custom+Activities){:target="_blank"}. There are two important things to note when sending `.track()` calls to Marketo:
+When you call [Track](/docs/connections/spec/track/), Segment maps the event to a pre-defined [Marketo Custom Activity](http://docs.marketo.com/display/public/DOCS/Understanding+Custom+Activities){:target="_blank"}. There are two important things to note when sending Track calls to Marketo:
-1. You **must** map them to your Marketo Custom Activities in your Destination Settings. If you do not map a track call to a Custom Activity in your Destination Settings, we will not send the event to Marketo to help limit the amount of API calls made to Marketo.
+1. You **must** map them to your Marketo Custom Activities in your Destination Settings. If you don't map a track call to a Custom Activity in your destination settings, the event won't be sent to Marketo to help limit the amount of API calls made to Marketo.
2. You must either:
@@ -135,7 +129,7 @@ When you call [`Track`](/docs/connections/spec/track/), Segment maps the event t
- Enable [Device-mode](/docs/connections/destinations/catalog/marketo-v2/#supported-sources-and-connection-modes) and enable the [Send Track Events Server Side](/docs/connections/destinations/catalog/marketo-v2/#send-track-events-server-side) setting
- Send track events from one of our [server side libraries](/docs/connections/sources/#server)
-Here is a sample Ruby `.track()` event:
+Here is a sample Ruby Track event:
```js
Analytics.track(
@@ -148,30 +142,30 @@ Analytics.track(

-- **Segment Event Name**. Your Segment Event name.
-- **Marketo Activity ID**. When you are in [Marketo Custom Activities](http://docs.marketo.com/display/public/DOCS/Understanding+Custom+Activities){:target="_blank"}, click on the Marketo Activity in the right side bar that you'd like to map your Segment Track event to. Copy and paste the ID into your Destination Settings.
+- **Segment event name**: Your Segment Event name.
+- **Marketo activity ID**: When you are in [Marketo Custom Activities](http://docs.marketo.com/display/public/DOCS/Understanding+Custom+Activities){:target="_blank"}, click on the Marketo Activity in the right side bar that you'd like to map your Segment Track event to. Copy and paste the ID into your Destination Settings.

-- **Segment Property Name**. The name of the property in your `.track()` call. This is case sensitive so make sure the name matches exactly how you are passing it in your `.track()` call.
-- **Marketo Field Name**. The name of the Marketo Attribute for your Custom Activity. The Attribute names for a given Custom Activity can be found in the Fields tab of Marketo Custom Attributes. Click on the Custom Activity in the right side bar and a list of your Attributes for that Custom Activity will appear. **Make sure to copy and paste the API Name for your field exactly as it appears in Marketo. This is case sensitive.**
+- **Segment property name**: The name of the property in your Track call. This is case sensitive so make sure the name matches exactly how you are passing it in your Track call.
+- **Marketo field name**: The name of the Marketo attribute for your Custom Activity. The attribute names for a given Custom Activity can be found in the **Fields** tab of **Marketo Custom Attributes**. Click on **Custom Activity** to see a list of your attributes for that Custom Activity. **Make sure to copy and paste the API Name for your field exactly as it appears in Marketo. This is case sensitive.**

-- **Marketo Field Type**. The type of the Marketo Attribute. The Attribute type can be found in the Fields tab of Marketo Custom Attributes. Click on the Custom Activity in the right side bar and a list of your Attributes for that Custom Activity will appear.
+- **Marketo field type**: The type of the Marketo attribute. The attribute type can be found in the **Fields** tab of **Marketo Custom Attributes**. Click on **Custom Activity** to see a list of your attributes for that Custom Activity.

-- **Primary Field**. When creating a Custom Activity in Marketo, you have to set a Primary Field. If you are unsure which field was set as the primary field, when you are looking at the list of fields for your Custom Activity in Marketo, there will be a red star next to your Primary Field.
+- **Primary field**. When creating a Custom Activity in Marketo, you have to set a Primary Field. If you are unsure which field was set as the primary field, when you are looking at the list of fields for your Custom Activity in Marketo, primary fields are denoted by a red star.

> info ""
-> You can't map fields nested in objects as Marketo Custom Activity property names. You must flatten any objects you may need to access data from either before you send it to Segment, or while using an [Insert Function](/docs/connections/functions/insert-functions/).
+> You can't map fields nested in objects as Marketo Custom Activity property names. You must flatten any objects you may need to access data from either before you send it to Segment, or while using an [Insert function](/docs/connections/functions/insert-functions/).
## Page
-When you call [`Page`](/docs/connections/spec/page/), Segment uses [Marketo's Munchkin.js `visitWebPage` method](http://developers.marketo.com/javascript-api/lead-tracking/api-reference/#munchkin_visitwebpage){:target="_blank"}. The URL is built from your `.page()` event and properties object into the form Marketo expects, so no need to worry about doing that yourself.
+When you call [Page](/docs/connections/spec/page/), Segment uses [Marketo's Munchkin.js `visitWebPage` method](http://developers.marketo.com/javascript-api/lead-tracking/api-reference/#munchkin_visitwebpage){:target="_blank"}. The URL is built from your Page event and properties object into the form Marketo expects, so no need to worry about doing that yourself.
-Marketo's `visitWebPage` method requires a URL and a user agent. Any calls that are missing either of these fields will not be sent to Marketo. User agent is automatically collected Client-side but if you are sending `.page()` calls from the server, make sure to set the user agent.
+Marketo's `visitWebPage` method requires a URL and a user agent. Any calls that are missing either of these fields aren't sent to Marketo. User agent is automatically collected client-side but if you are sending Page calls from the server, make sure to set the user agent.
-Here is a sample Node `.page()` event:
+Here is a sample Node Page event:
```js
analytics.page({
@@ -191,20 +185,25 @@ Here is a sample Node `.page()` event:
```
-## Tracking Anonymous Activity in Marketo
+## Tracking anonymous activity in Marketo
-If you would only like to track known users in Marketo, set your Track Anonymous Activity setting to false. There are a couple things to note when this setting is false:
+If you'd only like to track known users in Marketo, set your Track Anonymous Activity setting to `false`. There are some things to note when this setting is false:
-1. Any call without a User ID will be rejected.
-2. No anonymous activity will be sent to Marketo. Even after the user becomes known, none of their previous anonymous activity will be sent to Marketo.
+1. Calls without a User ID are rejected.
+2. No anonymous activity is sent to Marketo. Even after the user becomes known, none of their previous anonymous activity will be sent to Marketo.
-If you'd like to track anonymous activity but don't want to have to parse through or view unknown leads, Marketo lets you create Smart Lists that will filter your leads (i.e. if you'd only like to view leads that have a user ID or an email). To do this, when you are in your Lead Database, click All Leads, then New. From the drop down, click New Smart List. Select the folder you'd like the Smart List to live in. After you've created the Smart List, select what field you'd like to filter by on the right side bar, drag it to the filters and then select what you'd specifically like to filter by for that field.
+If you'd like to track anonymous activity but don't want to have to parse through or view unknown leads, Marketo lets you create Smart Lists that filter your leads. For example, you can filter to only view leads that have a user ID or an email. To do this, when you are in your Lead Database:
+
+1. Click **All Leads**, then **New**.
+2. From the drop down, click **New Smart List**.
+3. Select the folder you'd like the Smart List to live in.
+4. After you've created the Smart List, select what field you'd like to filter by, drag it to the filters and then select what you'd specifically like to filter by for that field.

-## Marketo API Limits
+## Marketo API limits
-We do our best to limit the amount of API calls that we are making to Marketo but if you are hitting your 50k/day limit, we'd recommend only sending events to Marketo that you need. To prevent an event from being sent to Marketo, you can select destinations by doing the following:
+Segment tries to limit the amount of API calls being made to Marketo but if you are hitting the 50 k/day limit, Segment recommends only sending events to Marketo that you need. To prevent an event from being sent to Marketo, you can select destinations by doing the following:
```js
analytics.identify({
@@ -213,68 +212,74 @@ We do our best to limit the amount of API calls that we are making to Marketo bu
firstName: 'Alex'
},
integrations: {
- 'Marketo V2': false,
+ 'Marketo v2': false,
'Google Analytics': true
}
})
```
-## Hybrid Device/Cloud-mode
-Another option is to use Marketo in [Device-mode](/docs/connections/destinations/catalog/marketo-v2/#supported-sources-and-connection-modes) (assuming you are tracking events from a Website). Marketo does not limit API calls that originate from their Web SDK but it also only supports capturing Identify and Page events. If you would also like to capture Track events, you can choose to have these be routed through our server-side integration.
+## Hybrid device or cloud-mode
+Another option is to use Marketo in [device-mode](/docs/connections/destinations/catalog/marketo-v2/#supported-sources-and-connection-modes) (assuming you are tracking events from a website). Marketo does not limit API calls that originate from its web SDK, but it only supports capturing Identify and Page events. If you'd also like to capture Track events, you can choose to have these be routed through Segment's server-side integration.
-To enable this "Hybrid" mode, select the [Send Track Events Server Side](/docs/connections/destinations/catalog/marketo-v2/#send-track-events-server-side) setting and follow the instructions for mapping [Track](/docs/connections/destinations/catalog/marketo-v2/#track) events defined above.
+To enable this "Hybrid" mode, select the **[Send Track Events Server Side](/docs/connections/destinations/catalog/marketo-v2/#send-track-events-server-side)** setting and follow the instructions for mapping [Track](/docs/connections/destinations/catalog/marketo-v2/#track) events.
## Preventing Duplicate Leads
-Marketo allows you to upsert leads based on any field. We use email and userId as well as anonymousId if you are tracking anonymous activity. We will first use email since that is the field Marketo recommends is unique for your leads. However, many `.track()` and `.page()` calls don't include an email address so then we will use the `userId` or `anonymousId` passed in your `.track()` and `.page()` calls to associate these events to leads in Marketo.
+Marketo allows you to upsert leads based on any field. Segment uses `email` and `userId`, as well as `anonymousId` if you are tracking anonymous activity. `email` is used first since that is the field Marketo recommends is unique for your leads. However, many Track and Page calls don't include an email address. In that case, Segment uses the `userId` or `anonymousId` passed in your Track and Page calls to associate these events to leads in Marketo.
You can do one of the following to prevent duplicate leads:
+**Recommended: Upload a CSV adding your userId to all your leads in Marketo _before_ enabling the destination**.
-1. **Recommended:** Upload a CSV adding your userId to all your leads in Marketo **before** enabling the destination. After you [create the userId field](/docs/connections/destinations/catalog/marketo-v2/#2-you-must-create-a-user-id-and-an-anonymous-id-field-in-marketo) in Marketo, you can upload a list of all your users with an email column and a userId column. Your CSV should look like this:
+After you [create the `userId` field](/docs/connections/destinations/catalog/marketo-v2/#2-you-must-create-a-user-id-and-an-anonymous-id-field-in-marketo) in Marketo, you can upload a list of all your users with an email column and a userId column. Your CSV should look like this:
| **email** | **userId** |
| ----------------- | ---------- |
| alex@email.com | ABC1234 |
| natasha@email.com | XYZ9876 |
-To upload a list to Marketo, when you are in Lead Database, click All Leads. Then click "New", then "Import List" from the drop down. Select your CSV, then click "Next". Make sure "Email Address" and "userId" are the Marketo Fields selected then click "Next". Name your list or select a pre-existing list. Select "None" for Acquisition Program. Then Click "Import".
-
-2. Manually merge leads in Marketo. Follow [these instructions to merge](http://docs.marketo.com/display/public/DOCS/Find+and+Merge+Duplicate+People){:target="_blank"} any duplicate leads found in Marketo after enabling the destination.
-3. Make sure to call identify first. This is already a recommended best practice as [part of our spec](/docs/connections/spec/identify/).
-4. Pass an email in your `.track()` and `.page()` calls.
+To upload a list to Marketo, when you are in Lead Database:
-## Migrating from Marketo to Marketo V2
+1. Click **All Leads**.
+2. Then click **New**, then **Import List**.
+3. Select your CSV, then click **Next**. Make sure `Email Address` and `userId` are the Marketo Fields selected then click **Next"**.
+4. Name your list or select a pre-existing list. Select **None** for Acquisition Program. Then click **Import**.
-There are a few necessary steps that have to be taken to migrate from Segment's legacy Marketo v1 destinations, to Marketo V2.
+**Manually merge leads in Marketo**.
-**Important: Make sure you disable Marketo once you are done getting set up with Marketo V2. If you leave both enabled, there will likely be duplicate data in your Marketo account.**
+Follow [Marketo's instructions to merge](http://docs.marketo.com/display/public/DOCS/Find+and+Merge+Duplicate+People){:target="_blank"} any duplicate leads found in Marketo after enabling the destination.
+1. Make sure to call Identify first. This is already a recommended best practice as [part of the Segment spec](/docs/connections/spec/identify/).
+2. Pass an email in your Track and Page calls.
-1. Your Marketo credentials in your Segment Destination settings need to be updated. Our Marketo Destination used Marketo's SOAP API and Marketo V2 uses Marketo's REST API which requires different credentials. Check out the [Getting Started](/docs/connections/destinations/catalog/marketo-v2/#getting-started) guide for what credentials you'll need.
-2. Two custom fields must be created in Marketo: userId and anonymousId. Check out [Getting Started](/docs/connections/destinations/catalog/marketo-v2/#2-you-must-create-a-user-id-and-an-anonymous-id-field-in-marketo) for exact details on how to create these custom fields in Marketo.
-3. `Track` calls must be mapped in your Destination settings. Our Marketo Destination sent `track` calls as a Munchkin Visit WebPage event in Marketo. In Marketo V2, we'll send your track calls to your Marketo Custom Activities. Detailed instructions [in the Track section of this page](/docs/connections/destinations/catalog/marketo-v2/#track).
-4. If there are any custom Lead fields that you'd like sent to Marketo in your `Identify` calls, you must create custom fields in Marketo and add them in your Destination settings. In addition, if you are connecting Marketo V2 in Device-mode, an empty form must be created in Marketo to create and update leads. Detailed instructions [in the Identify section of this page](/docs/connections/destinations/catalog/marketo-v2/#identify).
-5. Update anything in Marketo that rely on the way V1 sends `.track()` events to be triggered by your custom activities. For example, our V1 Marketo destination sent track events as a "Visit Web Page" event with `/event/
-Find below another Track example, this time with all the available Matomo event parameters:
+See the following Track example, this time with all the available Matomo event parameters:
```js
analytics.track('Created Account', {
@@ -68,7 +65,7 @@ analytics.track('Created Account', {
})
```
-That call will create a Matomo Event with these attributes:
+That call creates a Matomo Event with these attributes:
@@ -58,7 +55,7 @@ For the example above, these event attributes are sent to Matomo:
-For **Event Value** you can name the event property `value` or `revenue`. We'll look for `value` first, then fall back to `revenue`.
+For **Event Value**, you can name the event property `value` or `revenue`. Segment looks for `value` first, then fall back to `revenue`.
-## Best Pratices
+## Best practices
-Matomo allows you to set [custom variables](http://matomo.org/docs/custom-variables/){:target="_blank"} with your pageviews and events. With Segment, you can set page-scoped custom variables with any `track` call you make with analytics.js.
+Matomo lets you set [custom variables](http://matomo.org/docs/custom-variables/){:target="_blank"} with your pageviews and events. With Segment, you can set page-scoped custom variables with any Track call you make with analytics.js.
-Since these custom variables must be mapped to an index you define, which can change from call to call, the only way we can support these custom variables with full flexibility is to allow you to pass your map in the `context.Matomo.customVars` dictionary of each call.
+Since these custom variables must be mapped to an index you define, which can change from call to call, the only way that Segment can support these custom variables with full flexibility is to allow you to pass your map in the `context.Matomo.customVars` dictionary of each call.
-To take advantage of this feature, your `track` calls should look like this:
+To take advantage of this feature, your Track calls should look like this:
-> **Note** The destination's name is still "piwik" in the JSON for these calls.
+> info ""
+> The destination's name is still "piwik" in the JSON for these calls.
```js
analytics.track('event', {
@@ -117,6 +115,6 @@ analytics.track('event', {
```
### Goals
-If you want to flag specific events as Matomo Goals you can do so by mapping those events in your Segment Source Destinations page under Matomo Settings.
+If you want to flag specific events as Matomo Goals, you can do so by mapping those events in your Segment Source Destinations page under Matomo Settings.
-Fill in the event on the left and the Goal ID from Matomo on the right. Then every time the event happens we'll fire Matomo's `trackGoal` method.
+Fill in the event on the left and the Goal ID from Matomo on the right. Then every time the event happens Segment fires Matomo's `trackGoal` method.
diff --git a/src/connections/destinations/catalog/mixpanel/index.md b/src/connections/destinations/catalog/mixpanel/index.md
index 05fe21e16c..2ec9b89a3b 100644
--- a/src/connections/destinations/catalog/mixpanel/index.md
+++ b/src/connections/destinations/catalog/mixpanel/index.md
@@ -337,7 +337,6 @@ analytics.track({
Segment doesn't map `$library_version` since that is reserved for Mixpanel's library version, not Segment's. Segment doesn't map to `$brand`.
-- - -
## Features
diff --git a/src/connections/destinations/catalog/moengage/index.md b/src/connections/destinations/catalog/moengage/index.md
index a999d033f4..4ef7a54b7c 100644
--- a/src/connections/destinations/catalog/moengage/index.md
+++ b/src/connections/destinations/catalog/moengage/index.md
@@ -5,12 +5,11 @@ id: 55b280290a20f4e22f0fb3d6
hide-personas-partial: true
---
-[MoEngage](https://www.moengage.com/){:target="_blank"} is an Intelligent Customer Engagement Platform. MoEngage allows brands to personalize every customer interaction and drive better engagement, retention, loyalty and lifetime value.
+[MoEngage](https://www.moengage.com/){:target="_blank"} is an intelligent customer engagement platform. MoEngage allows brands to personalize every customer interaction and drive better engagement, retention, loyalty and lifetime value.
-The MoEngage and Segment integration allows you to send
-the users you have tracked on Segment, along with their route data, to MoEngage for further targeting and campaigning. This Destination enables you to:
+The MoEngage and Segment integration allows you to send the users you have tracked on Segment, along with their route data, to MoEngage for further targeting and campaigning. This destination enables you to:
-- **Import data from Segment to MoEngage**: Moengage offers a side-by-side (device mode) SDK integration for your Android, iOS, and web applications and a server-to-server integration for your backend services.
+- **Import data from Segment to MoEngage**: Moengage offers a side-by-side (device-mode) SDK integration for your Android, iOS, and web applications and a server-to-server integration for your backend services.
- **Sync [Twilio Engage](https://segment.com/product/twilio-engage){:target="_blank"} (cohorts)**: Send Segment Cohorts to MoEngage for use in MoEngage Segments and campaigns.
The MoEngage Destination source code is open-sourced and freely available on GitHub for anyone to view:
@@ -21,33 +20,31 @@ Connection Mode | Maintained by | GitHub Link
Android | MoEngage | [moengage-segment-integration](https://github.com/moengage/moengage-segment-integration){:target="_blank"}
Web | Segment | [analytics.js-integrations](https://github.com/segmentio/analytics.js-integrations/tree/master/integrations/moengage){:target="_blank"}
-## Getting Started
+## Getting started
-Once you add the Segment-MoEngage library to your app, you can enable MoEngage from the Segment App. These new settings can take up to an hour to propagate to your existing users. For new users, it'll be instantaneous!
+Once you add the Segment-MoEngage library to your app, you can enable MoEngage from the Segment App. These new settings can take up to an hour to propagate to your existing users. For new users, the settings are propagated instantly.
The Segment-MoEngage Integration is a bundled integration, meaning it requires that you add a client-side integration to your app.
-## Setup MoEngage in your Segment Workspace
+## Setup MoEngage in your Segment workspace
To setup MoEngage do the following :
- 1. First get your key(AppID) from the MoEngage dashboard. Navigate to `Dashboard --> Settings --> App --> General`.
- 2. Go to your **Segment workspace**, go to **Destinations** and select **MoEngage**.
+ 1. First get your key(AppID) from the MoEngage dashboard. Navigate to **Dashboard > Settings > App > General**.
+ 2. In your Segment workspace, go to **Destinations** and select **MoEngage**.
3. Enable the MoEngage Destination.
- 4. Go to the MoEngage Settings and enter the MoEngage AppID, obtained in **Step1**.
+ 4. Go to the MoEngage Settings and enter the MoEngage AppID, obtained in Step 1.
5. Save the changes.
- 6. Make sure you set the **Connection Mode** to `Device Mode`. MoEngage requires this setting to use
- of features like push notifications and any in-app features of the MoEngage SDK.
+ 6. Make sure you set the **Connection Mode** to `Device Mode`. MoEngage requires this setting to use of features like push notifications and any in-app features of the MoEngage SDK.
-These new settings will take up to an hour to propagate to your existing users. For new
-users it'll be instantaneous! Segment-MoEngage Integration is a bundled integration, requires client side integration.
+Segment-MoEngage Integration is a bundled integration and requires client-side integration.
-
+ 
## Identify
Use [Identify](/docs/connections/sources/catalog/libraries/mobile/android/#identify) to track user-specific attributes. This is the same as tracking [user attributes](https://help.moengage.com/hc/en-us/articles/360044285511-User-Profile){:target="_blank"} on MoEngage. MoEngage supports traits supported by Segment as well as custom traits. If you set `traits.id`, MoEngage sets that as the Unique ID for that user.
> info ""
-> MoEngage supports anonymous identifiers in Device-mode only. If you use the MoEngage destination in Cloud-mode, use a known user identifier.
+> MoEngage supports anonymous identifiers in device-mode only. If you use the MoEngage destination in cloud-mode, use a known user identifier.
The Identify method follows the format below:
@@ -59,7 +56,7 @@ analytics.identify('12090000-00001992', {
```
## Track
-Use [track](/docs/connections/sources/catalog/libraries/mobile/android/#track) to track events and user behavior in your app.
+Use [Track](/docs/connections/sources/catalog/libraries/mobile/android/#track) to track events and user behavior in your app.
```javascript
analytics.track('Article Completed', {
@@ -68,30 +65,30 @@ analytics.track('Article Completed', {
});
```
-This will send the event to MoEngage with the associated properties. Tracking events is essential and will help you create segments for engaging users.
+This sends the event to MoEngage with the associated properties. Tracking events is essential and helps you create segments for engaging users.
## Reset
-If your app or website supports the ability for a user to logout and login with a new identity, then you'll need to call [reset](/docs/sources/website/analytics.js/#reset-logout) method in `analytics.js`.
+If your app or website supports the ability for a user to logout and login with a new identity, then you need to call the [Reset](/docs/sources/website/analytics.js/#reset-logout) method in `analytics.js`.
```javascript
analytics.reset();
```
## iOS
-
To get started with MoEngage on iOS, first integrate your app with the [MoEngage-Segment-Swift](https://github.com/moengage/MoEngage-Segment-Swift){:target="_blank"} library. You can integrate MoEngage and Segment with Swift Package Manager.
> info ""
-> **Note:** This document covers the integration with [analytics-swift](https://github.com/segmentio/analytics-swift){:target="_blank"}, if you have integrated with [analytics-ios](https://github.com/segmentio/analytics-ios){:target="_blank"} refer [this documentation](https://partners.moengage.com/hc/en-us/articles/4409143473172-iOS-device-mode-){:target="_blank"} for details on how to integrate.
+> This document covers the integration with [analytics-swift](https://github.com/segmentio/analytics-swift){:target="_blank"}. If you've integrated with [analytics-ios](https://github.com/segmentio/analytics-ios){:target="_blank"} refer [MoEngage's documentation](https://partners.moengage.com/hc/en-us/articles/4409143473172-iOS-device-mode-){:target="_blank"} for details on how to integrate.
- To install with SPM use the [MoEngage-Segment-Swift](https://github.com/moengage/MoEngage-Segment-Swift.git){:target="_blank"} library and set the branch as master or version as 1.0.0 and above.
+To install with SPM use the [MoEngage-Segment-Swift](https://github.com/moengage/MoEngage-Segment-Swift.git){:target="_blank"} library and set the branch as master or version as 1.0.0 and above.
### Configure the Segment SDK:
-Now head to the App Delegate file, and setup the Segment SDK by
+Head to the App Delegate file, and setup the Segment SDK by:
+
1. Importing `Segment`, `Segment_MoEngage` and `MoEngageSDK`.
2. Initialize `MoEngageSDKConfig` object and call `initializeDefaultInstance` method of `MoEngageInitializer`.
-3. Initialize `MoEngageDestination` as shown below:
+3. Initialize `MoEngageDestination`:
Under your Analytics-Swift library setup, add the MoEngage plugin using the `analytics.add(plugin: ...)` method. The MoEngage dashboard now tracks all of your events.
@@ -116,43 +113,42 @@ analytics.add(plugin: MoEngageDestination())
}
```
-### Tracking User Attribute
+### Tracking user attribute
-[User attributes](https://developers.moengage.com/hc/en-us/articles/4403905883796-Tracking-user-attributes){:target="_blank"} are specific traits of a user, like email, username, mobile, gender etc. **identify** 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 them.
+[User attributes](https://developers.moengage.com/hc/en-us/articles/4403905883796-Tracking-user-attributes){:target="_blank"} are specific traits of a user, like email, username, mobile, gender, and more. Identify 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 them.
```swift
Analytics.main.identify("a user's id", traits: @["email":"a user's email address"])
```
-Read more about [identify calls](/docs/connections/sources/catalog/libraries/mobile/ios/#identify).
+Read more about [Identify calls](/docs/connections/sources/catalog/libraries/mobile/ios/#identify) for further detail.
-### Tracking Events
+### Tracking events
-Segment uses event tracking to track user behavior in an app. `track` calls let you record the actions your users perform. Every action triggers an "event", which can also have associated attributes.
+Segment uses event tracking to track user behavior in an app. Track calls let you record the actions your users perform. Every action triggers an "event", which can also have associated attributes.
```swift
Analytics.main.track("Item Purchased", properties: @["item":"Sword of Heracles"])
```
-Read more about [track calls](/docs/connections/sources/catalog/libraries/mobile/ios/#track).
-
+Read more about [Track calls](/docs/connections/sources/catalog/libraries/mobile/ios/#track) for further detail.
-### Reset Users
+### Reset users
-The `reset` method clears the SDK's internal stores for the current user. This is useful for apps where users can log in and out with different identities over time.
+The Reset method clears the SDK's internal stores for the current user. This is useful for apps where users can log in and out with different identities over time.
```swift
Analytics.main.reset()
```
-Read more about the [reset method](/docs/connections/sources/catalog/libraries/mobile/ios/#reset).
+Read more about the [Reset method](/docs/connections/sources/catalog/libraries/mobile/ios/#reset) for further detail.
-### Install / Update Differentiation
+### Install or update differentiation
Since your app might already be on the App Store, you must specify whether your app update would be an `UPDATE` or an `INSTALL`.
-To differentiate between those, use one of the method below:
+To differentiate between those, use one of the following methods:
```swift
//For new Install call following
@@ -162,20 +158,20 @@ To differentiate between those, use one of the method below:
MoEngageSDKAnalytics.sharedInstance.appStatus(.update)
```
-Read more on [install/update differentiation](https://developers.moengage.com/hc/en-us/articles/4403910297620){:target="_blank"}.
+Read more on [Install/Update differentiation](https://developers.moengage.com/hc/en-us/articles/4403910297620){:target="_blank"} on MoEngage website.
### Set the data center
-By default, the data center setting in the SDK is set to `data_center_01`. Follow the steps in the [MoEngage - Data Center](https://developers.moengage.com/hc/en-us/articles/4403910162452-Data-Center){:target="_blank"} to update the data center value. If not set correctly, several features of the MoEngage SDK will not function.
+By default, the data center setting in the SDK is set to `data_center_01`. Follow the steps in the [MoEngage - Data Center](https://developers.moengage.com/hc/en-us/articles/4403910162452-Data-Center){:target="_blank"} to update the data center value. If not set correctly, several features of the MoEngage SDK won't function.
-## MoEngage iOS SDK Features
+## MoEngage iOS SDK features
Along with tracking your user's activities, you can use the MoEngage iOS SDK for more effective user engagement:
-### Push Notifications:
-Push Notifications are a great way to keep your users engaged and informed about your app. You have following options while implementing push notifications in your app:
+### Push notifications:
+Push notifications are a useful way to keep your users engaged and informed about your app. You have following options while implementing push notifications in your app:
-**Segment Push Implementation:**
+**Segment push implementation:**
1. In your application's application:didRegisterForRemoteNotificationsWithDeviceToken: method, add the following:
```swift
@@ -197,24 +193,21 @@ Push Notifications are a great way to keep your users engaged and informed about
Analytics.main.handleAction(identifier: identifier, userInfo: userInfo)
```
-**MoEngage Push Implementation:**
+**MoEngage push implementation:**
For information about the MoEngage push implementation, see [**Push Notifications**](https://developers.moengage.com/hc/en-us/articles/4403943988756){:target="_blank"} in the MoEngage documentation.
### In-app messaging
-In-App Messages are custom views which you can send to a set of users to show custom messages, give new offers, or direct to a specific page. For more information about In-app messaging, see [MoEngage - In-App NATIV](https://developers.moengage.com/hc/en-us/articles/4404155127828-In-App-Nativ){:target="_blank"}.
-
+In-app messages are custom views which you can send to a set of users to show custom messages, give new offers, or direct to a specific page. For more information about in-app messaging, see [MoEngage - In-App NATIV](https://developers.moengage.com/hc/en-us/articles/4404155127828-In-App-Nativ){:target="_blank"}.
### Cards
Create targeted or automated App Inbox/NewsFeed messages that can be grouped into various categories, and target your users with different updates or offers that can stay in the Inbox/Feed over a designated period of time. For more information about cards, see [MoEngage - Cards](https://developers.moengage.com/hc/en-us/articles/4404058438676-Cards-in-iOS){:target="_blank"}.
-
### Compliance
-To make the App compliant with policies (such as GDPR) while using MoEngage's SDK, follow the instructions in this [doc](https://developers.moengage.com/hc/en-us/articles/4403905438228-SDK-initialisation){:target="_blank"}.
-
-### Segment Docs
-For more info on using **Segment for iOS** refer to [**Developer Docs**](/docs/connections/sources/catalog/libraries/mobile/ios/) provided by Segment.
+To make the app compliant with policies (such as GDPR) while using MoEngage's SDK, follow the instructions in [MoEngage's documentation](https://developers.moengage.com/hc/en-us/articles/4403905438228-SDK-initialisation){:target="_blank"}.
+### Segment for iOS
+For more info on using Segment for iOS, refer to the [Developer docs](/docs/connections/sources/catalog/libraries/mobile/ios/) provided by Segment.
## Android
@@ -222,14 +215,14 @@ To use MoEngage in an Android app, you must perform the following steps to set u

-To enable the full functionality of MoEngage (like Push Notifications, InApp Messaging), complete the following steps in your Android app.
+To enable the full functionality of MoEngage (like push notifications, in-app messaging), complete the following steps in your Android app.
> info ""
-> **Note:** This document covers the integration with [analytics-kotlin](https://github.com/segmentio/analytics-kotlin){:target="_blank"}, if you have integrated with [analytics-android](https://github.com/segmentio/analytics-android){:target="_blank"} refer [this documentation](https://partners.moengage.com/hc/en-us/articles/4409143473172-iOS-device-mode-){:target="_blank"} for details on how to integrate.
+> This document covers the integration with [analytics-kotlin](https://github.com/segmentio/analytics-kotlin){:target="_blank"}. If you have integrated with [analytics-android](https://github.com/segmentio/analytics-android){:target="_blank"} refer [MoEngage's documentation](https://partners.moengage.com/hc/en-us/articles/4409143473172-iOS-device-mode-){:target="_blank"} for details on how to integrate.
-### Adding the MoEngage Dependency
+### Adding the MoEngage dependency
-Along with the Segment dependency, add the below dependency in your `build.gradle` file.
+Along with the Segment dependency, add the following dependency in your `build.gradle` file.
```groovy
implementation("com.moengage:moengage-segment-kotlin-destination:$sdkVersion") {
@@ -238,20 +231,18 @@ implementation("com.moengage:moengage-segment-kotlin-destination:$sdkVersion") {
```
with `$sdkVersion` replaced by the latest version of the MoEngage SDK.
-The MoEngage SDK depends on the below Jetpack libraries provided by Google for its functioning, make you add them if not
- done already.
+The MoEngage SDK depends on the following Jetpack libraries provided by Google for its functioning, make sure you add them if not done already.
```groovy
implementation("androidx.core:core:1.6.0")
implementation("androidx.appcompat:appcompat:1.3.1")
implementation("androidx.lifecycle:lifecycle-process:2.4.0")
```
-Refer to the [SDK Configuration](https://developers.moengage.com/hc/en-us/articles/4401984733972-Android-SDK-Configuration){:target="_blank"} documentation to know more about the build config and other libraries used by the SDK.
+Refer to the [SDK Configuration](https://developers.moengage.com/hc/en-us/articles/4401984733972-Android-SDK-Configuration){:target="_blank"} documentation to learn more about the build config and other libraries used by the SDK.
### Register MoEngage with Segment SDK
-After adding the dependency, you must register the integration with Segment SDK. To do this, import the MoEngage
- integration:
+After adding the dependency, you must register the integration with Segment SDK. To do this, import the MoEngage integration:
```kotlin
import com.segment.analytics.kotlin.destinations.moengage.MoEngageDestination
@@ -264,37 +255,36 @@ Analytics("
@@ -89,17 +86,18 @@ That call will create a Matomo Event with these attributes:
_ customer_id -(primary key)
- -_ email_address -(email)
- -_ first_name
- -_ last_name
- -_ address_street_1
- -_ address_street_2
- -_ address_city
- -_ address_state
- -_ address_zip
- -_ country
- +- customer_id (primary key) +- email_address (email) +- first_name +- last_name +- address_street_1 +- address_street_2 +- address_city +- address_state +- address_zip +- country ## Track When you track an event, we pass that event to Message Studio as a record in the configured Interaction Extension. Since the Interaction Extension is flexible, each customer's destination with Segment will require -unique mapping of the Interaction Extension fields. Customers should +unique mapping of the Interaction Extension fields. Customers should contact their Selligent Relationship Manager so we can work with them to configure the mapping to best meet their needs. ### Example Interaction Extension schema: -_ event_id -(primary key)
- -_ customer_id -(recipient key)
- -_ event_type -(event type)
- -_ event_timestamp -(event timestamp)
- -_ channel
- -_ ip_address
- -_ plan_name
- -_ acct_type
- - +- event_id (primary key) +- customer_id (recipient key) +- event_type (event key) +- event_timestamp (event timestamp) +- channel +- ip_address +- plan_name +- acct_type -If you have any questions, -contact your Selligent Relationship Manager for assistance.
+If you have any questions, contact your Selligent Relationship Manager for assistance. diff --git a/src/connections/destinations/catalog/sherlock/index.md b/src/connections/destinations/catalog/sherlock/index.md index eee50a9015..bbead8a9c4 100644 --- a/src/connections/destinations/catalog/sherlock/index.md +++ b/src/connections/destinations/catalog/sherlock/index.md @@ -5,7 +5,7 @@ id: 5a947eee1ad6310001435883 --- Sherlock is the first engagement scoring application for SaaS businesses who want to truly understand user engagement. Build an engagement algorithm and understand the engagement of your users, accounts and segments. -This integration is maintained by Sherlock. For questions or help with your integration, contact [Sherlock support][support@sherlockscore.com]. +This integration is maintained by Sherlock. For questions or help with your integration, contact [Sherlock support](support@sherlockscore.com). ## Getting Started diff --git a/src/connections/destinations/catalog/smyte/index.md b/src/connections/destinations/catalog/smyte/index.md index 914581fdc9..c54d5603d3 100644 --- a/src/connections/destinations/catalog/smyte/index.md +++ b/src/connections/destinations/catalog/smyte/index.md @@ -4,7 +4,6 @@ title: Smyte Destination This destination is maintained by Smyte. -- - - # Getting Started diff --git a/src/connections/destinations/catalog/stonly/index.md b/src/connections/destinations/catalog/stonly/index.md index 360a4db8e0..4787d59428 100644 --- a/src/connections/destinations/catalog/stonly/index.md +++ b/src/connections/destinations/catalog/stonly/index.md @@ -7,7 +7,7 @@ id: 5f354f1a928763feb8caf724 This destination is maintained by Stonly. For any issues with the destination, [contact their support team](mailto:support@stonly.com). -> "Note:" +> info "" > Stonly Destination is currently in beta, which means that they are still actively developing the destination. To join their beta program, or if you have any feedback to help improve Stonly Destination and its documentation, [contact Stonly support team](mailto:support@stonly.com)! ## Getting Started @@ -61,8 +61,6 @@ Segment sends Track calls to Stonly as a `track` event. If one of your properties is of the date property type, it should be sent as an ISO string. ---- - ## Troubleshooting ### Nested Objects and Arrays diff --git a/src/connections/destinations/catalog/tag-injector/index.md b/src/connections/destinations/catalog/tag-injector/index.md index b5085b13c4..790aba70f6 100644 --- a/src/connections/destinations/catalog/tag-injector/index.md +++ b/src/connections/destinations/catalog/tag-injector/index.md @@ -15,14 +15,14 @@ _**NOTE:** Tag Injector is only available for select customers at this time._ 1. Once you have access, with the link provided confirm the Source you'd like to connect to. 2. You have the following configuration options which will manipulate the page at runtime: - - **URL**: A URL to the JavaScript code to load on the page as the `src` attribute of the ` to the section of the source code where the page loads. +2. Initialize the plugin by giving it access to the YouTube video player instance(s) running on your page. This can be done by adding the following script to the section of the source code where the page loads. - Use the initialize method in the YouTube `onYouTubeIframeAPIReady()` function to register and initialize the plugin with the player instance and your API key: diff --git a/src/connections/spec/ecommerce/index.md b/src/connections/spec/ecommerce/index.md index 1c8bef555e..a60a17c859 100644 --- a/src/connections/spec/ecommerce/index.md +++ b/src/connections/spec/ecommerce/index.md @@ -3,7 +3,7 @@ title: 'Spec: V1 Ecommerce Events' hidden: true --- -This guide maps out the standard data Segment expects to see from ecommerce companies. The semantic events detailed below represent the ideal for ecommerce events; not every ecommerce store will take advantage of every event or all of their properties. +This guide maps out the standard data Segment expects to see from ecommerce companies. The semantic events detailed represent the ideal for ecommerce events; not every ecommerce store takes advantage of every event or all of their properties. ## V2 @@ -11,11 +11,11 @@ Segment now supports a fully **backwards compatible** V2 of the Ecommerce Spec. For more information about the V2 spec, refer to the [Ecommerce V2 docs](/docs/connections/spec/ecommerce/v2/). -## V1 Overview +## V1 overview -One of the core components of the Segment [Spec](/docs/connections/spec/) is the [Track](/docs/connections/spec/track) method. It records any arbitrary event that the user has triggered. For Ecommerce tracking, you will be sending **specific event names** that Segment recognizes semantically. That way the Segment app can transform them before sending them off to each different tool. +One of the core components of the Segment [Spec](/docs/connections/spec/) is the [Track](/docs/connections/spec/track) method. It records any arbitrary event that the user has triggered. For Ecommerce tracking, you send **specific event names** that Segment recognizes semantically. That way the Segment app can transform them before sending them off to each different tool. -The `properties` listed in the sections below are **required** for some destinations to function. You can always add your own custom properties (product color, size, etc.) in addition to the required ones. +The `properties` listed in the following sections are **required** for some destinations to function. You can always add your own custom properties (for example, product color, size) in addition to the required ones. ## Events @@ -38,11 +38,11 @@ The ecommerce category includes the following semantic events: - [Google Analytics Enhanced Ecommerce](#google-analytics-enhanced-ecommerce) -## Viewed Product Category +## Viewed product category -Category pages are a staple of Ecommerce. They let the user browse all of the products in a specific category. You'll want to track all of your product category pages so you can quickly see which categories are most popular. +Category pages are a staple of Ecommerce. They let the user browse all of the products in a specific category. You can track all of your product category pages so you can quickly see which categories are most popular. -To do that, you'll want to record a specially recognized event called `Viewed Product Category` using a `track call. This event fires when a visitor views a product category. That view might happen on a page, screen, or modal. +To do that, yrecord a specially recognized event called `Viewed Product Category` using a Track call. This event fires when a visitor views a product category. That view might happen on a page, screen, or modal. ### Properties @@ -76,9 +76,9 @@ Property | Type | Description ``` -## Viewed Product +## Viewed product -The second special event to record for an Ecommerce installation is 'Viewed Product'. To record that you'll use a Track call. This event fires when a visitor views a product. That view might happen on a page, screen, or preview modal. +The second special event to record for an Ecommerce installation is 'Viewed Product'. To record that, use a Track call. This event fires when a visitor views a product. That view might happen on a page, screen, or preview modal. Note that the properties are required to tell individual tools, like Google Analytics, about the specific product that was viewed. You can always add your own custom properties as well. @@ -94,7 +94,8 @@ Property | Type | Description `price` | Number | The price ($) of the product being viewed. `category` | String | The product category being viewed. -_Note: The `sku` and `id` do not have to be different. If they are different, typically the `id` is a database identifier, like `9714107479` and the `sku` is a public-facing identifier like `SEG-02`._ +> info "" +> The `sku` and `id` do not have to be different. If they are different, typically the `id` is a database identifier, like `9714107479` and the `sku` is a public-facing identifier like `SEG-02`. ### Example @@ -131,7 +132,7 @@ _Note: The `sku` and `id` do not have to be different. If they are different, ty Next up are two events that are critical to figuring out how your customers are interacting with your products: 'Added Product' and 'Removed Product'. Fire the `Added Product` event when a visitor adds a product to their shopping cart and the `Removed Product` event when a visitor removes a product from their shopping cart. -The properties to record for each of these are the same as the ones for the'Viewed Product' event above (of course you can always add more properties of your own too!). +The properties to record for each of these are the same as the ones for the' Viewed Product' event (you can always add more properties of your own). ### Properties @@ -209,9 +210,9 @@ Property | Type | Description ``` -## Completing an Order +## Completing an order -The final step is to record a `Order Completed` event when people complete your checkout process. It's the most important event to record, since you'll use it for A/B tests, sales dashboards, conversion pixels and pretty much everything you can think of. +The final step is to record a `Order Completed` event when people complete your checkout process. It's the most important event to record, since you use it for A/B tests, sales dashboards, conversion pixels and more. Be sure to **include all items in the cart as event properties**, with the same properties from the previous calls, like so: @@ -277,8 +278,8 @@ Be sure to **include all items in the cart as event properties**, with the same } ``` -**Note**: Some destinations require `total` in place of `revenue`. Specific requirements will be outlined in each destination's documentation. +**Note**: Some destinations require `total` in place of `revenue`. Specific requirements are outlined in each destination's documentation. -## Google Analytics Enhanced Ecommerce +## Google Analytics enhanced ecommerce If you're using Google Analytics enhanced ecommerce, there are some special events you might also want to add. Details are in Segment's [Google Analytics docs](/docs/connections/destinations/catalog/google-analytics/#enabling-enhanced-e-commerce-tracking). diff --git a/src/connections/storage/warehouses/redshift-faq.md b/src/connections/storage/warehouses/redshift-faq.md index 62c42ffbc2..6722ac5e2c 100644 --- a/src/connections/storage/warehouses/redshift-faq.md +++ b/src/connections/storage/warehouses/redshift-faq.md @@ -40,6 +40,6 @@ Example: ## Blocklisted track call properties -While almost all event properties are valid, we are unable to pass through properties that have naming conflicts with the default key/value pairs included in a standard raw JSON call. For example, if you send through a property in a track call named "timestamp" or "event", it will cause a conflict and you likely wont see it appear in your warehouse. To be more specific, if you send the following track call, {'event':'birthday'} will likely be dropped when syncing the data to your data warehouse. +While almost all event properties are valid, we are unable to pass through properties that have naming conflicts with the default key/value pairs included in a standard raw JSON call. For example, if you send through a property in a track call named "timestamp" or "event", it will cause a conflict and you likely wont see it appear in your warehouse. To be more specific, if you send the following track call, `{'event':'birthday'}` will likely be dropped when syncing the data to your data warehouse. `analytics.track('selected gift', {'event':'birthday', 'type':'cake'})` diff --git a/src/connections/storage/warehouses/schema.md b/src/connections/storage/warehouses/schema.md index 3d1a1a1538..560fd7029a 100644 --- a/src/connections/storage/warehouses/schema.md +++ b/src/connections/storage/warehouses/schema.md @@ -22,99 +22,79 @@ Segment's libraries pass nested objects and arrays into tracking calls as **prop - The warehouse connector optionally stringifies **arrays** when they follow the [Ecommerce spec](/docs/connections/spec/ecommerce/v2/) - The warehouse connector "flattens" all **context fields** that contain a nested **object** (for example, context.field.nestedA.nestedB becomes a column called context_field_nestedA_nestedB) -| Field | -Code (Example) | -Schema (Example) | -
|---|---|---|
| Object (Context): Flatten | -- -``` json -context: { - app: { - version: "1.0.0" +### Schema objects + +The following examples show how Segment transforms nested objects and arrays into warehouse columns. + +#### Context + +**Type:** Object + +```json +{ + "context": { + "app": { + "version": "1.0.0" + } } } ``` - | -
- Column Name: - context_app_version - - Value: - "1.0.0" - |
-
| Object (Traits): Flatten | -+ +Segment flattens nested objects in context fields. + +**Result:** Column `context_app_version` with value `"1.0.0"` + +#### Traits + +**Type:** Object ```json -traits: { - address: { - street: "6th Street" +{ + "traits": { + "address": { + "street": "6th Street" + } } } ``` - | -
-Column Name: -address_street - -Value: -"6th Street" - |
-
| Object (Properties): Flatten | -+**Result:** Column `address_street` with value `"6th Street"` + +#### Properties + +**Type:** Object ```json -properties: { - product_id: { - sku: "G-32" +{ + "properties": { + "product_id": { + "sku": "G-32" + } } } ``` - | -
- Column Name: - product_id_sku - Value: - "G-32" - |
-
| Array (Any): Stringify | -+ +Segment flattens nested objects in properties. + +**Result:** Column `product_id_sku` with value `"G-32"` + +#### Array (String) + +**Type**: String array ```json -products: { - product_id: [ - "507f1", "505bd" - ] +{ + "products": { + "product_id": ["507f1", "505bd"] + } } ``` - | -
- Column Name: - product_id - Value: - "[507f1, 505bd]" - |
-