diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml
index 0676a78b49..fb4c063be2 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 2023-10-10
+# destination categories last updated 2023-10-12
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 1d5b8a38e5..1d6fb5b81b 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 2023-10-10
+# destination data last updated 2023-10-12
items:
- id: 637e8d185e2dec264895ea89
display_name: 1Flow
@@ -12676,7 +12676,7 @@ items:
hidden: false
defaultTrigger: type = "identify"
fields:
- - id: 2bSsqZboLLYg5pBHid9WJZ
+ - id: t9SCc3xALWZBf8Es2TDjK9
sortOrder: 0
fieldKey: external_id
label: External User ID
@@ -12690,7 +12690,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: pUTMjAd4aztB1hdivbTNq
+ - id: dPsXmeH3wqxgfvGLbiT4Tt
sortOrder: 1
fieldKey: user_alias
label: User Alias Object
@@ -12704,7 +12704,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: dNsvKs3wsg2b6N8B9qkwMi
+ - id: fKLjXAUioS8d6Lz9yHWzu1
sortOrder: 2
fieldKey: braze_id
label: Braze User Identifier
@@ -12718,7 +12718,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: 6jeMnM1ZTcyKXo9gHnKjf5
+ - id: stgHBwjcZD56Ftwad6Q2bs
sortOrder: 3
fieldKey: country
label: Country
@@ -12732,7 +12732,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: cVzkL6sESnM3xyXLGWERtk
+ - id: wuNQNhybcgLrSpy6V4ycDF
sortOrder: 4
fieldKey: current_location
label: Current Location
@@ -12749,7 +12749,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: dfznvyWrYEjUGMwLZARACL
+ - id: mHcxzzjsbAGUiRkMLvKLNG
sortOrder: 5
fieldKey: date_of_first_session
label: Date of First Session
@@ -12761,7 +12761,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: 6yuPetEWYavvt2BafZgkbf
+ - id: 8DcpniBdDevP8WzC2JTJ8b
sortOrder: 6
fieldKey: date_of_last_session
label: Date of Last Session
@@ -12773,7 +12773,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: aST3mWj2BKSrgiEromLKD7
+ - id: 5ZmrERSLmGG3cqRpNzmE9Z
sortOrder: 7
fieldKey: dob
label: Date of Birth
@@ -12785,7 +12785,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: uXXHDCAtoKRwDEpdZEvVtC
+ - id: qYgtmgDo4wWMjQpEnhrrZC
sortOrder: 8
fieldKey: email
label: Email
@@ -12799,7 +12799,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: 58MVfEvRBJc6xHHAFBWdan
+ - id: 47cZKmaWVHCj3FvMjgGsag
sortOrder: 9
fieldKey: email_subscribe
label: Email Subscribe
@@ -12814,7 +12814,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 4tBHK38oNYvdUWdEZNbU1
+ - id: 6WLxaPpFM58swst8U8r9Lw
sortOrder: 10
fieldKey: email_open_tracking_disabled
label: Email Open Tracking Disabled
@@ -12828,7 +12828,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 2TWVYph7SjHmyQUUsYPey3
+ - id: uaMKfapt8MkGzyNQfLTrCs
sortOrder: 11
fieldKey: email_click_tracking_disabled
label: Email Click Tracking Disabled
@@ -12842,7 +12842,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: oS285bCjxECHyeM68ZLXzm
+ - id: oM7ujxdfgVXYrXWoSizoX7
sortOrder: 12
fieldKey: facebook
label: Facebook Attribution Data
@@ -12856,7 +12856,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: hWZ5G3MQxhoSU92cta6XuV
+ - id: qwfL9PyHvsYBm7tXq41KYk
sortOrder: 13
fieldKey: first_name
label: First Name
@@ -12870,7 +12870,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: 4EAG6U62Dc2kAhx7UJb2Gz
+ - id: jxG4QW9FKLYdf1GM5LrPp3
sortOrder: 14
fieldKey: gender
label: Gender
@@ -12886,7 +12886,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: phtG4ikS5XScR9fidTjHX9
+ - id: ijMyF3StJeVNtwEumuyoBt
sortOrder: 15
fieldKey: home_city
label: Home City
@@ -12900,7 +12900,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: dq9PmuVCWokyr42FWP4iRh
+ - id: aRnpCrmsJeWGbPSFNkYmKK
sortOrder: 16
fieldKey: image_url
label: Image URL
@@ -12914,7 +12914,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: 9BdG8ZqZeNeDiXo7Y9NcXx
+ - id: qjFbDd6gSGi165672QUfdF
sortOrder: 17
fieldKey: language
label: Language
@@ -12926,7 +12926,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: 34MJwhmcjNugPcNRzohL2j
+ - id: s6jfoe5yf7ff4aYs6mwqF8
sortOrder: 18
fieldKey: last_name
label: Last Name
@@ -12940,7 +12940,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: avZZd5FymtVumhP5CLqx2F
+ - id: cZrP5RdxwvWC8WhhTbjPTo
sortOrder: 19
fieldKey: marked_email_as_spam_at
label: Marked Email as Spam At
@@ -12952,7 +12952,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: h46NpE6GnAPXcW4C5K3Psp
+ - id: t6PVQdepmERTAMsoAK7wjZ
sortOrder: 20
fieldKey: phone
label: Phone Number
@@ -12966,7 +12966,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: cu2m9Uvh8Lnofeb7pvJW6V
+ - id: 8hPgzEcHSNWRZkTARciSTY
sortOrder: 21
fieldKey: push_subscribe
label: Push Subscribe
@@ -12981,7 +12981,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 3ewTGZKHAZQQobMRMHgNhN
+ - id: nxnuC7tu4LoRv9e64L46Ym
sortOrder: 22
fieldKey: push_tokens
label: Push Tokens
@@ -12998,7 +12998,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: tpPU51RgTq4ei3XQoRtB9r
+ - id: wDDgpKtikzhfG7r9vLvcj1
sortOrder: 23
fieldKey: time_zone
label: Time zone
@@ -13013,7 +13013,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: oU5ipCTCGYGYzfQc1dRoYS
+ - id: cHCJW78gQqET9pxqoTtqjC
sortOrder: 24
fieldKey: twitter
label: Twitter Attribution Data
@@ -13028,7 +13028,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: jSyaUha3ZZLG96Ga3KnTHq
+ - id: 4fPjGC9WChZe1djf3XPrXG
sortOrder: 25
fieldKey: custom_attributes
label: Custom Attributes
@@ -13042,7 +13042,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 2fKcoTYuKurKDxCuK7d4Qj
+ - id: o6vAzJ27qeY7qEjQ3SHvky
sortOrder: 26
fieldKey: _update_existing_only
label: Update Existing Only
@@ -13065,7 +13065,7 @@ items:
hidden: false
defaultTrigger: type = "track" and event != "Order Completed"
fields:
- - id: 54Gfaef9YqgxyeHQfNTnsg
+ - id: ikZu3QVPvUPmVykGE82tWS
sortOrder: 0
fieldKey: external_id
label: External User ID
@@ -13079,7 +13079,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: JLcvqAJWtMbHEFA93cvnq
+ - id: m2kCv32eKA5Ha3L1KTUk53
sortOrder: 1
fieldKey: user_alias
label: User Alias Object
@@ -13093,7 +13093,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 4uRXXbgrkETb2iEFnRXTWR
+ - id: 3yfH95GE3BBPcjLFQVr5mX
sortOrder: 2
fieldKey: braze_id
label: Braze User Identifier
@@ -13107,7 +13107,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: wPs11q6UEDDMdhPS1h6hvT
+ - id: cKFRRjtSyiHFDg3Y8RU3Nf
sortOrder: 3
fieldKey: name
label: Event Name
@@ -13121,7 +13121,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 6k6TQkDNHtJpuVsh9fxej
+ - id: ndiJTprd2QJ5CJJaKk7UA8
sortOrder: 4
fieldKey: time
label: Time
@@ -13135,7 +13135,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: cPkAKLeSNjdCefWgFP9jax
+ - id: iFvfC61ukb7uDPSgTn8Jjf
sortOrder: 5
fieldKey: properties
label: Event Properties
@@ -13149,7 +13149,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: stUju6WAND1ZgcZDxEsdsf
+ - id: r4tXN39NPuX4UWb9mCXScK
sortOrder: 6
fieldKey: _update_existing_only
label: Update Existing Only
@@ -13164,7 +13164,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 56Ljq5EjrA7VSPhTdtuX88
+ - id: 7cgyRdzSXeBhNvsCL3Pvto
sortOrder: 7
fieldKey: enable_batching
label: Batch Data to Braze
@@ -13201,7 +13201,7 @@ items:
hidden: false
defaultTrigger: null
fields:
- - id: scjEtY59TD2KY81ihjYyBB
+ - id: qUpbZje8zWGY1ybKK4haDt
sortOrder: 0
fieldKey: external_id
label: External ID
@@ -13213,7 +13213,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: ef733HVEX97Su2ZGQkWCmY
+ - id: aHYQDV9BqZcwhsZ2hcvpF5
sortOrder: 1
fieldKey: user_alias
label: User Alias Object
@@ -13235,7 +13235,7 @@ items:
hidden: false
defaultTrigger: event = "Order Completed"
fields:
- - id: iVoZBMUoiChjUwPtTWgFf3
+ - id: 6peeteD72WPab967K6Ngfa
sortOrder: 0
fieldKey: external_id
label: External User ID
@@ -13249,7 +13249,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: a5buUWTLkvmZ8Tq86dWHem
+ - id: 28ei7hgXqXf7CPnMj338BA
sortOrder: 1
fieldKey: user_alias
label: User Alias Object
@@ -13263,7 +13263,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: qvuG5ATnUncDxXq5nbchgs
+ - id: jx7UJco4tnv6ViNNffupNa
sortOrder: 2
fieldKey: braze_id
label: Braze User Identifier
@@ -13277,7 +13277,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: ucFXTLaww5tZbRUZcDEJ5q
+ - id: dz549cPk8jWo8SNaMcUw4C
sortOrder: 3
fieldKey: time
label: Time
@@ -13291,7 +13291,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: 5V5teWT8APH7LNATiuyWHU
+ - id: s8duNk4NPmzpodfkTzRd2T
sortOrder: 4
fieldKey: products
label: Products
@@ -13305,7 +13305,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: fz3pSc6XvZVEbnYvwNN6CY
+ - id: r1iPmEtXsGhKKWuvECqTq3
sortOrder: 5
fieldKey: properties
label: Event Properties
@@ -13319,7 +13319,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: uUjaW5619iY3y7ERhx2vk7
+ - id: o2qj7Cp9sqeE6BECQESH9p
sortOrder: 6
fieldKey: _update_existing_only
label: Update Existing Only
@@ -13344,7 +13344,7 @@ items:
hidden: false
defaultTrigger: event = "Create Alias"
fields:
- - id: hp4QBpCRVsJnYomLNHzkMr
+ - id: oxYh76t1WkkSFhXkzfgcU1
sortOrder: 0
fieldKey: external_id
label: External ID
@@ -13356,7 +13356,7 @@ items:
choices: null
dynamic: false
allowNull: true
- - id: tdvBx9AWBUoY2xR4XbcvuJ
+ - id: 9Z6g3Scf8NFtM2Fp1Z1ZUx
sortOrder: 1
fieldKey: alias_name
label: Alias Name
@@ -13368,7 +13368,7 @@ items:
choices: null
dynamic: false
allowNull: false
- - id: q3mGxYe3WNu11MhyVCw7T1
+ - id: 9GGzbUeCxmcqskN6ktDVrX
sortOrder: 2
fieldKey: alias_label
label: Alias Label
@@ -13572,7 +13572,7 @@ items:
sortOrder: 3
fieldKey: cohort_id
label: Cohort ID
- type: HIDDEN
+ type: STRING
description: The Cohort Identifier
placeholder: ''
defaultValue:
@@ -13586,7 +13586,7 @@ items:
sortOrder: 4
fieldKey: cohort_name
label: Cohort Name
- type: HIDDEN
+ type: STRING
description: The name of Cohort
placeholder: ''
defaultValue:
@@ -13650,7 +13650,7 @@ items:
sortOrder: 8
fieldKey: time
label: Time
- type: HIDDEN
+ type: STRING
description: When the event occurred.
placeholder: ''
defaultValue:
@@ -17125,7 +17125,7 @@ items:
sortOrder: 0
fieldKey: segmentId
label: Segment User ID
- type: HIDDEN
+ type: STRING
description: Segment User ID value
placeholder: ''
defaultValue:
@@ -17139,7 +17139,7 @@ items:
sortOrder: 1
fieldKey: anonymousId
label: Segment Anonymous ID
- type: HIDDEN
+ type: STRING
description: Segment Anonymous ID value
placeholder: ''
defaultValue:
@@ -17350,7 +17350,7 @@ items:
sortOrder: 0
fieldKey: segmentId
label: Segment User ID
- type: HIDDEN
+ type: STRING
description: Segment User ID value
placeholder: ''
defaultValue:
@@ -17364,7 +17364,7 @@ items:
sortOrder: 1
fieldKey: anonymousId
label: Segment Anonymous ID
- type: HIDDEN
+ type: STRING
description: Segment Anonymous ID value
placeholder: ''
defaultValue:
@@ -17432,7 +17432,7 @@ items:
sortOrder: 0
fieldKey: segmentId
label: Segment User ID
- type: HIDDEN
+ type: STRING
description: Segment User ID value
placeholder: ''
defaultValue:
@@ -17446,7 +17446,7 @@ items:
sortOrder: 1
fieldKey: anonymousId
label: Segment Anonymous ID
- type: HIDDEN
+ type: STRING
description: Segment Anonymous ID value
placeholder: ''
defaultValue:
@@ -17498,7 +17498,7 @@ items:
sortOrder: 0
fieldKey: segmentId
label: Segment User ID
- type: HIDDEN
+ type: STRING
description: Segment User ID value
placeholder: ''
defaultValue:
@@ -17512,7 +17512,7 @@ items:
sortOrder: 1
fieldKey: anonymousId
label: Segment Anonymous ID
- type: HIDDEN
+ type: STRING
description: Segment Anonymous ID value
placeholder: ''
defaultValue:
@@ -17615,7 +17615,7 @@ items:
sortOrder: 0
fieldKey: segmentId
label: Segment User ID
- type: HIDDEN
+ type: STRING
description: Segment User ID value
placeholder: ''
defaultValue:
@@ -17629,7 +17629,7 @@ items:
sortOrder: 1
fieldKey: anonymousId
label: Segment Anonymous ID
- type: HIDDEN
+ type: STRING
description: Segment Anonymous ID value
placeholder: ''
defaultValue:
@@ -17695,7 +17695,7 @@ items:
sortOrder: 0
fieldKey: segmentId
label: Segment User ID
- type: HIDDEN
+ type: STRING
description: Segment User ID value
placeholder: ''
defaultValue:
@@ -17709,7 +17709,7 @@ items:
sortOrder: 1
fieldKey: anonymousId
label: Segment Anonymous ID
- type: HIDDEN
+ type: STRING
description: Segment Anonymous ID value
placeholder: ''
defaultValue:
@@ -17766,7 +17766,7 @@ items:
sortOrder: 0
fieldKey: segmentId
label: Segment User ID
- type: HIDDEN
+ type: STRING
description: Segment User ID value
placeholder: ''
defaultValue:
@@ -17780,7 +17780,7 @@ items:
sortOrder: 1
fieldKey: anonymousId
label: Segment Anonymous ID
- type: HIDDEN
+ type: STRING
description: Segment Anonymous ID value
placeholder: ''
defaultValue:
@@ -38433,7 +38433,7 @@ items:
sortOrder: 1
fieldKey: operation_type
label: Operation Type
- type: HIDDEN
+ type: STRING
description: >-
Describes the nature of the operation being performed. Only supported
values are 'new' and 'updated'.
@@ -41760,10 +41760,10 @@ items:
methods:
track: true
identify: true
- group: false
+ group: true
alias: false
screen: false
- page: true
+ page: false
platforms:
browser: true
mobile: true
@@ -49367,7 +49367,7 @@ items:
sortOrder: 2
fieldKey: email
label: User Email
- type: HIDDEN
+ type: STRING
description: The user's email address to send to LinkedIn.
placeholder: ''
defaultValue:
@@ -49381,7 +49381,7 @@ items:
sortOrder: 3
fieldKey: google_advertising_id
label: User Google Advertising ID
- type: HIDDEN
+ type: STRING
description: The user's Google Advertising ID to send to LinkedIn.
placeholder: ''
defaultValue:
@@ -49395,7 +49395,7 @@ items:
sortOrder: 4
fieldKey: source_segment_id
label: LinkedIn Source Segment ID
- type: HIDDEN
+ type: STRING
description: >-
A Segment-specific key associated with the LinkedIn DMP Segment. This is
the lookup key Segment uses to fetch the DMP Segment from LinkedIn's
@@ -49427,7 +49427,7 @@ items:
sortOrder: 6
fieldKey: event_name
label: Event Name
- type: HIDDEN
+ type: STRING
description: The name of the current Segment event.
placeholder: ''
defaultValue:
@@ -49936,7 +49936,7 @@ items:
sortOrder: 4
fieldKey: anonymous_id
label: Segment Anonymous ID
- type: HIDDEN
+ type: STRING
description: Segment Anonymous ID.
placeholder: ''
defaultValue:
@@ -50687,6 +50687,261 @@ items:
properties:
'@path': $.properties
trigger: type = "track"
+- id: 63360a5fe290ca3fdfad4a68
+ display_name: Loops (Actions)
+ name: Loops (Actions)
+ slug: loops-actions
+ hidden: false
+ endpoints:
+ - US
+ regions:
+ - us-west-2
+ - eu-west-1
+ url: connections/destinations/catalog/loops-actions
+ previous_names:
+ - Loops (Actions)
+ website: https://loops.so
+ status: PUBLIC_BETA
+ categories:
+ - Email Marketing
+ - Marketing Automation
+ logo:
+ url: https://cdn.filepicker.io/api/file/oiEy8wQZTWmI0ZCBZDdr
+ mark:
+ url: https://cdn.filepicker.io/api/file/ITaW6g6gRiOqhCbx4o7Y
+ methods:
+ track: true
+ identify: true
+ group: true
+ alias: true
+ screen: false
+ page: true
+ platforms:
+ browser: true
+ mobile: false
+ server: true
+ warehouse: 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: string
+ defaultValue: ''
+ description: Your Loops API Key
+ required: true
+ label: API Key
+ actions:
+ - id: unHYcGwymGuZGnXskSGFQt
+ name: Create or update a contact
+ slug: createOrUpdateContact
+ description: Create or update a contact in Loops
+ platform: CLOUD
+ hidden: false
+ defaultTrigger: type = "identify"
+ fields:
+ - id: rxYWaVqEV45dnwgbCP6U22
+ sortOrder: 0
+ fieldKey: createdAt
+ label: Contact Created Date
+ type: DATETIME
+ description: Date the contact was created.
+ placeholder: ''
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: cMqYhUx4pfeG5zDT8XNsqJ
+ sortOrder: 1
+ fieldKey: customAttributes
+ label: Custom Contact Attributes
+ type: OBJECT
+ description: Attributes maintained by your team.
+ placeholder: ''
+ defaultValue:
+ '@path': $.traits
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: tGqBCH6mUzbM9HVjqAnbcQ
+ sortOrder: 2
+ fieldKey: email
+ label: Contact Email
+ type: STRING
+ description: >-
+ Email address for the contact. This is required when creating new
+ contacts.
+ placeholder: ''
+ defaultValue:
+ '@if':
+ exists:
+ '@path': $.traits.email
+ then:
+ '@path': $.traits.email
+ else:
+ '@path': $.email
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: fhCmdnagiJso31geuyQPpf
+ sortOrder: 3
+ fieldKey: firstName
+ label: First Name
+ type: STRING
+ description: The contact's given name.
+ placeholder: ''
+ defaultValue:
+ '@path': $.traits.firstName
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: nFvYJauyj9yMHuUqVdsCYM
+ sortOrder: 4
+ fieldKey: lastName
+ label: Last Name
+ type: STRING
+ description: The contact's surname.
+ placeholder: ''
+ defaultValue:
+ '@path': $.traits.lastName
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: m5ysat4jv9qeViVB6rCbJS
+ sortOrder: 5
+ fieldKey: source
+ label: Source
+ type: STRING
+ description: The contact's source.
+ placeholder: ''
+ defaultValue:
+ '@if':
+ exists:
+ '@path': $.traits.source
+ then:
+ '@path': $.traits.source
+ else: Segment
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: xo9AuQ4NWnB34GraEyySUn
+ sortOrder: 6
+ fieldKey: subscribed
+ label: Subscribed
+ type: BOOLEAN
+ description: Whether the contact is subscribed to email.
+ placeholder: ''
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: 4aC8HEz9iHMo5F4Tg5ajc5
+ sortOrder: 7
+ fieldKey: userGroup
+ label: User Group
+ type: STRING
+ description: The contact's user group.
+ placeholder: ''
+ defaultValue:
+ '@path': $.traits.userGroup
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: rF1Hb6AdDRdJwzTHwAv2oJ
+ sortOrder: 8
+ fieldKey: userId
+ label: User ID
+ type: STRING
+ description: User ID for the contact.
+ placeholder: ''
+ defaultValue:
+ '@path': $.userId
+ required: true
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: vaKecAu4KpBs6R7sHQKTNY
+ name: Send Event
+ slug: sendEvent
+ description: Send an event for a contact in Loops
+ platform: CLOUD
+ hidden: false
+ defaultTrigger: type = "track"
+ fields:
+ - id: otkhdgsXZkG1tLtSTJgNV1
+ sortOrder: 0
+ fieldKey: email
+ label: Contact Email
+ type: STRING
+ description: Email address for the contact.
+ placeholder: ''
+ defaultValue:
+ '@if':
+ exists:
+ '@path': $.properties.email
+ then:
+ '@path': $.properties.email
+ else:
+ '@path': $.context.traits.email
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: 29NeoqAxu4wMed82Y383f2
+ sortOrder: 1
+ fieldKey: eventName
+ label: Event Name
+ type: STRING
+ description: Name of the event.
+ placeholder: ''
+ defaultValue:
+ '@path': $.event
+ required: true
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: pDJDuKmBEYytcXy7qojDh3
+ sortOrder: 2
+ fieldKey: userId
+ label: User ID
+ type: STRING
+ description: User ID for the contact.
+ placeholder: ''
+ defaultValue:
+ '@path': $.userId
+ required: true
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ presets: []
- id: 5fac1adf1aa5eb4a01168950
display_name: Lou
name: Lou
@@ -56545,7 +56800,7 @@ items:
sortOrder: 7
fieldKey: uuid
label: Unique ID
- type: HIDDEN
+ type: STRING
description: Unique ID for the event
placeholder: ''
defaultValue:
@@ -57090,7 +57345,7 @@ items:
sortOrder: 0
fieldKey: action
label: Action name
- type: HIDDEN
+ type: STRING
description: Indicates which action was triggered
placeholder: ''
defaultValue: track
@@ -57117,7 +57372,7 @@ items:
sortOrder: 2
fieldKey: user_id
label: User ID
- type: HIDDEN
+ type: STRING
description: The identifier of the user who performed the event
placeholder: ''
defaultValue:
@@ -57131,7 +57386,7 @@ items:
sortOrder: 3
fieldKey: anonymous_id
label: Anonymous ID
- type: HIDDEN
+ type: STRING
description: Anonymous ID of the user
placeholder: ''
defaultValue:
@@ -57179,7 +57434,7 @@ items:
sortOrder: 6
fieldKey: timestamp
label: Event timestamp
- type: HIDDEN
+ type: STRING
description: The time the event occured in UTC
placeholder: ''
defaultValue:
@@ -57229,7 +57484,7 @@ items:
sortOrder: 0
fieldKey: action
label: Action name
- type: HIDDEN
+ type: STRING
description: Indicates which action was triggered
placeholder: ''
defaultValue: group
@@ -57242,7 +57497,7 @@ items:
sortOrder: 1
fieldKey: user_id
label: User ID
- type: HIDDEN
+ type: STRING
description: The identifier of the user
placeholder: ''
defaultValue:
@@ -57256,7 +57511,7 @@ items:
sortOrder: 2
fieldKey: anonymous_id
label: Anonymous ID
- type: HIDDEN
+ type: STRING
description: Anonymous ID of the user
placeholder: ''
defaultValue:
@@ -57270,7 +57525,7 @@ items:
sortOrder: 3
fieldKey: group_id
label: Group ID
- type: HIDDEN
+ type: STRING
description: ID of the group
placeholder: ''
defaultValue:
@@ -57298,7 +57553,7 @@ items:
sortOrder: 5
fieldKey: timestamp
label: Event timestamp
- type: HIDDEN
+ type: STRING
description: The time the event occured in UTC
placeholder: ''
defaultValue:
@@ -57348,7 +57603,7 @@ items:
sortOrder: 0
fieldKey: action
label: Action name
- type: HIDDEN
+ type: STRING
description: Indicates which action was triggered
placeholder: ''
defaultValue: identify
@@ -57361,7 +57616,7 @@ items:
sortOrder: 1
fieldKey: user_id
label: User ID
- type: HIDDEN
+ type: STRING
description: The identifier of the user
placeholder: ''
defaultValue:
@@ -57375,7 +57630,7 @@ items:
sortOrder: 2
fieldKey: anonymous_id
label: Anonymous ID
- type: HIDDEN
+ type: STRING
description: Anonymous ID of the user
placeholder: ''
defaultValue:
@@ -57403,7 +57658,7 @@ items:
sortOrder: 4
fieldKey: timestamp
label: Event timestamp
- type: HIDDEN
+ type: STRING
description: The time the event occured in UTC
placeholder: ''
defaultValue:
@@ -59465,6 +59720,12 @@ items:
mobile: false
server: false
settings:
+ - name: mapMessageIdToEventId
+ type: boolean
+ defaultValue: false
+ description: If this setting is enabled, event_id will be set to message_id.
+ required: false
+ label: Use messageId as event_id
- name: pinterestCustomProperties
type: array
defaultValue: []
@@ -73542,7 +73803,7 @@ items:
browser: true
mobile: false
server: false
- warehouse: true
+ warehouse: false
components: []
browserUnbundlingSupported: false
browserUnbundlingPublic: false
@@ -76174,7 +76435,7 @@ items:
sortOrder: 0
fieldKey: email
label: User Email
- type: HIDDEN
+ type: STRING
description: The user's email address to send to TikTok.
placeholder: ''
defaultValue:
@@ -76188,7 +76449,7 @@ items:
sortOrder: 1
fieldKey: advertising_id
label: User Advertising ID
- type: HIDDEN
+ type: STRING
description: >-
The user's mobile advertising ID to send to TikTok. This could be a
GAID, IDFA, or AAID
@@ -76232,7 +76493,7 @@ items:
sortOrder: 4
fieldKey: event_name
label: Event Name
- type: HIDDEN
+ type: STRING
description: The name of the current Segment event.
placeholder: ''
defaultValue:
@@ -76259,7 +76520,7 @@ items:
sortOrder: 6
fieldKey: external_audience_id
label: External Audience ID
- type: HIDDEN
+ type: STRING
description: The Audience ID in TikTok's DB.
placeholder: ''
defaultValue:
@@ -76365,7 +76626,7 @@ items:
sortOrder: 2
fieldKey: email
label: User Email
- type: HIDDEN
+ type: STRING
description: The user's email address to send to TikTok.
placeholder: ''
defaultValue:
@@ -76379,7 +76640,7 @@ items:
sortOrder: 3
fieldKey: advertising_id
label: User Advertising ID
- type: HIDDEN
+ type: STRING
description: >-
The user's mobile advertising ID to send to TikTok. This could be a
GAID, IDFA, or AAID
@@ -76423,7 +76684,7 @@ items:
sortOrder: 6
fieldKey: event_name
label: Event Name
- type: HIDDEN
+ type: STRING
description: The name of the current Segment event.
placeholder: ''
defaultValue:
@@ -76458,7 +76719,7 @@ items:
sortOrder: 0
fieldKey: email
label: User Email
- type: HIDDEN
+ type: STRING
description: The user's email address to send to TikTok.
placeholder: ''
defaultValue:
@@ -76472,7 +76733,7 @@ items:
sortOrder: 1
fieldKey: advertising_id
label: User Advertising ID
- type: HIDDEN
+ type: STRING
description: >-
The user's mobile advertising ID to send to TikTok. This could be a
GAID, IDFA, or AAID
@@ -76516,7 +76777,7 @@ items:
sortOrder: 4
fieldKey: event_name
label: Event Name
- type: HIDDEN
+ type: STRING
description: The name of the current Segment event.
placeholder: ''
defaultValue:
@@ -76543,7 +76804,7 @@ items:
sortOrder: 6
fieldKey: external_audience_id
label: External Audience ID
- type: HIDDEN
+ type: STRING
description: The Audience ID in TikTok's DB.
placeholder: ''
defaultValue:
@@ -76592,7 +76853,7 @@ items:
sortOrder: 2
fieldKey: email
label: User Email
- type: HIDDEN
+ type: STRING
description: The user's email address to send to TikTok.
placeholder: ''
defaultValue:
@@ -76606,7 +76867,7 @@ items:
sortOrder: 3
fieldKey: advertising_id
label: User Advertising ID
- type: HIDDEN
+ type: STRING
description: >-
The user's mobile advertising ID to send to TikTok. This could be a
GAID, IDFA, or AAID
@@ -76650,7 +76911,7 @@ items:
sortOrder: 6
fieldKey: event_name
label: Event Name
- type: HIDDEN
+ type: STRING
description: The name of the current Segment event.
placeholder: ''
defaultValue:
@@ -78223,6 +78484,638 @@ items:
event_channel: in_store
event: SubmitForm
trigger: type = "track" and event = "Form Submitted"
+- id: 64c1690a9f08c84a420aba78
+ display_name: TikTok Pixel
+ name: TikTok Pixel
+ slug: tiktok-pixel
+ hidden: true
+ endpoints:
+ - US
+ regions:
+ - us-west-2
+ - eu-west-1
+ url: connections/destinations/catalog/tiktok-pixel
+ previous_names:
+ - TikTok Pixel
+ website: https://ads.tiktok.com/marketing_api/docs?id=1739583652957185
+ status: PUBLIC_BETA
+ categories:
+ - Advertising
+ logo:
+ url: https://cdn.filepicker.io/api/file/eopgr24sQ0R0SRVoIMkO
+ mark:
+ url: https://cdn.filepicker.io/api/file/FldFCNWTS83L7R7EE59G
+ methods:
+ track: true
+ identify: true
+ group: true
+ alias: true
+ screen: false
+ page: true
+ platforms:
+ browser: true
+ mobile: false
+ server: false
+ warehouse: false
+ components: []
+ browserUnbundlingSupported: false
+ browserUnbundlingPublic: false
+ replay: false
+ connection_modes:
+ device:
+ web: false
+ mobile: false
+ server: false
+ cloud:
+ web: true
+ mobile: false
+ server: false
+ settings:
+ - name: pixelCode
+ type: string
+ defaultValue: ''
+ description: >-
+ Your TikTok Pixel ID. Please see TikTok's [Pixel
+ documentation](https://ads.tiktok.com/marketing_api/docs?id=1739583652957185)
+ for information on how to find this value.
+ required: true
+ label: Pixel Code
+ actions:
+ - id: wxF1KnjEX1Zu9fuN8Nkwp1
+ name: Report Web Event
+ slug: reportWebEvent
+ description: >-
+ Report events directly to TikTok. Data shared can power TikTok solutions
+ like dynamic product ads, custom targeting, campaign optimization and
+ attribution.
+ platform: WEB
+ hidden: false
+ defaultTrigger: type = "track"
+ fields:
+ - id: q2bkw9YNe2wkaPhvFnCiFR
+ sortOrder: 0
+ fieldKey: event
+ label: Event Name
+ type: STRING
+ description: >-
+ Conversion event name. Please refer to the "Supported Web Events"
+ section on in TikTok’s [Pixel
+ documentation](https://ads.tiktok.com/marketing_api/docs?id=1739585696931842)
+ for accepted event names.
+ placeholder: ''
+ required: true
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: wQdHFJ4vFqVGecgLy7ycYq
+ sortOrder: 1
+ fieldKey: event_id
+ label: Event ID
+ type: STRING
+ description: Any hashed ID that can identify a unique user/session.
+ placeholder: ''
+ defaultValue:
+ '@path': $.messageId
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: cdyufu44YdBK6wfV45GmXp
+ sortOrder: 2
+ fieldKey: phone_number
+ label: Phone Number
+ type: STRING
+ description: >-
+ Phone number of the user who triggered the conversion event, in E.164
+ standard format, e.g. +14150000000. Segment will hash this value before
+ sending to TikTok.
+ placeholder: ''
+ defaultValue:
+ '@if':
+ exists:
+ '@path': $.properties.phone
+ then:
+ '@path': $.properties.phone
+ else:
+ '@path': $.traits.phone
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: 4z7NkDVjwLJVjsVZeu8g9U
+ sortOrder: 3
+ fieldKey: email
+ label: Email
+ type: STRING
+ description: >-
+ Email address of the user who triggered the conversion event. Segment
+ will hash this value before sending to TikTok.
+ placeholder: ''
+ defaultValue:
+ '@if':
+ exists:
+ '@path': $.properties.email
+ then:
+ '@path': $.properties.email
+ else:
+ '@path': $.traits.email
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: 8EXzo78xe6gz9oQqsE2GU
+ sortOrder: 4
+ fieldKey: external_id
+ label: External ID
+ type: STRING
+ description: >-
+ Uniquely identifies the user who triggered the conversion event. Segment
+ will hash this value before sending to TikTok.
+ placeholder: ''
+ defaultValue:
+ '@if':
+ exists:
+ '@path': $.userId
+ then:
+ '@path': $.userId
+ else:
+ '@path': $.anonymousId
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: hAc9KnJg1ciGvmzE5phCyE
+ sortOrder: 5
+ fieldKey: contents
+ label: Contents
+ type: OBJECT
+ description: Related items in a web event.
+ placeholder: ''
+ required: false
+ multiple: true
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: 4WD4KaeGZBoWDWCYwVPhhp
+ sortOrder: 6
+ fieldKey: currency
+ label: Currency
+ type: STRING
+ description: Currency for the value specified as ISO 4217 code.
+ placeholder: ''
+ defaultValue:
+ '@path': $.properties.currency
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: k7EeskRsch9d3WheCA99mf
+ sortOrder: 7
+ fieldKey: value
+ label: Value
+ type: NUMBER
+ description: Value of the order or items sold.
+ placeholder: ''
+ defaultValue:
+ '@if':
+ exists:
+ '@path': $.properties.value
+ then:
+ '@path': $.properties.value
+ else:
+ '@path': $.properties.revenue
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: mT3tcEcQ2ynxh73jTpMeFb
+ sortOrder: 8
+ fieldKey: description
+ label: Description
+ type: STRING
+ description: A string description of the web event.
+ placeholder: ''
+ defaultValue:
+ '@path': $.properties.description
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ - id: m94decyCZEGKPd5xWa23a8
+ sortOrder: 9
+ fieldKey: query
+ label: Query
+ type: STRING
+ description: The text string that was searched for.
+ placeholder: ''
+ defaultValue:
+ '@path': $.properties.query
+ required: false
+ multiple: false
+ choices: null
+ dynamic: false
+ allowNull: false
+ presets:
+ - actionId: wxF1KnjEX1Zu9fuN8Nkwp1
+ name: Search
+ fields:
+ event_id:
+ '@path': $.messageId
+ phone_number:
+ '@if':
+ exists:
+ '@path': $.properties.phone
+ then:
+ '@path': $.properties.phone
+ else:
+ '@path': $.traits.phone
+ email:
+ '@if':
+ exists:
+ '@path': $.properties.email
+ then:
+ '@path': $.properties.email
+ else:
+ '@path': $.traits.email
+ external_id:
+ '@if':
+ exists:
+ '@path': $.userId
+ then:
+ '@path': $.userId
+ else:
+ '@path': $.anonymousId
+ currency:
+ '@path': $.properties.currency
+ value:
+ '@if':
+ exists:
+ '@path': $.properties.value
+ then:
+ '@path': $.properties.value
+ else:
+ '@path': $.properties.revenue
+ description:
+ '@path': $.properties.description
+ query:
+ '@path': $.properties.query
+ contents:
+ '@arrayPath':
+ - $.properties
+ - price:
+ '@path': $.price
+ quantity:
+ '@path': $.quantity
+ content_type:
+ '@path': $.category
+ content_id:
+ '@path': $.product_id
+ event: Search
+ trigger: event = "Products Searched"
+ - actionId: wxF1KnjEX1Zu9fuN8Nkwp1
+ name: Add to Wishlist
+ fields:
+ event_id:
+ '@path': $.messageId
+ phone_number:
+ '@if':
+ exists:
+ '@path': $.properties.phone
+ then:
+ '@path': $.properties.phone
+ else:
+ '@path': $.traits.phone
+ email:
+ '@if':
+ exists:
+ '@path': $.properties.email
+ then:
+ '@path': $.properties.email
+ else:
+ '@path': $.traits.email
+ external_id:
+ '@if':
+ exists:
+ '@path': $.userId
+ then:
+ '@path': $.userId
+ else:
+ '@path': $.anonymousId
+ currency:
+ '@path': $.properties.currency
+ value:
+ '@if':
+ exists:
+ '@path': $.properties.value
+ then:
+ '@path': $.properties.value
+ else:
+ '@path': $.properties.revenue
+ description:
+ '@path': $.properties.description
+ query:
+ '@path': $.properties.query
+ contents:
+ '@arrayPath':
+ - $.properties
+ - price:
+ '@path': $.price
+ quantity:
+ '@path': $.quantity
+ content_type:
+ '@path': $.category
+ content_id:
+ '@path': $.product_id
+ event: AddToWishlist
+ trigger: event = "Product Added to Wishlist"
+ - actionId: wxF1KnjEX1Zu9fuN8Nkwp1
+ name: Place an Order
+ fields:
+ event_id:
+ '@path': $.messageId
+ phone_number:
+ '@if':
+ exists:
+ '@path': $.properties.phone
+ then:
+ '@path': $.properties.phone
+ else:
+ '@path': $.traits.phone
+ email:
+ '@if':
+ exists:
+ '@path': $.properties.email
+ then:
+ '@path': $.properties.email
+ else:
+ '@path': $.traits.email
+ external_id:
+ '@if':
+ exists:
+ '@path': $.userId
+ then:
+ '@path': $.userId
+ else:
+ '@path': $.anonymousId
+ currency:
+ '@path': $.properties.currency
+ value:
+ '@if':
+ exists:
+ '@path': $.properties.value
+ then:
+ '@path': $.properties.value
+ else:
+ '@path': $.properties.revenue
+ description:
+ '@path': $.properties.description
+ query:
+ '@path': $.properties.query
+ contents:
+ '@arrayPath':
+ - $.properties.products
+ - price:
+ '@path': $.price
+ quantity:
+ '@path': $.quantity
+ content_type:
+ '@path': $.category
+ content_id:
+ '@path': $.product_id
+ event: PlaceAnOrder
+ trigger: event = "Order Completed"
+ - actionId: wxF1KnjEX1Zu9fuN8Nkwp1
+ name: View Content
+ fields:
+ event_id:
+ '@path': $.messageId
+ phone_number:
+ '@if':
+ exists:
+ '@path': $.properties.phone
+ then:
+ '@path': $.properties.phone
+ else:
+ '@path': $.traits.phone
+ email:
+ '@if':
+ exists:
+ '@path': $.properties.email
+ then:
+ '@path': $.properties.email
+ else:
+ '@path': $.traits.email
+ external_id:
+ '@if':
+ exists:
+ '@path': $.userId
+ then:
+ '@path': $.userId
+ else:
+ '@path': $.anonymousId
+ currency:
+ '@path': $.properties.currency
+ value:
+ '@if':
+ exists:
+ '@path': $.properties.value
+ then:
+ '@path': $.properties.value
+ else:
+ '@path': $.properties.revenue
+ description:
+ '@path': $.properties.description
+ query:
+ '@path': $.properties.query
+ contents:
+ '@arrayPath':
+ - $.properties
+ - price:
+ '@path': $.price
+ quantity:
+ '@path': $.quantity
+ content_type:
+ '@path': $.category
+ content_id:
+ '@path': $.product_id
+ event: ViewContent
+ trigger: type="page"
+ - actionId: wxF1KnjEX1Zu9fuN8Nkwp1
+ name: Add Payment Info
+ fields:
+ event_id:
+ '@path': $.messageId
+ phone_number:
+ '@if':
+ exists:
+ '@path': $.properties.phone
+ then:
+ '@path': $.properties.phone
+ else:
+ '@path': $.traits.phone
+ email:
+ '@if':
+ exists:
+ '@path': $.properties.email
+ then:
+ '@path': $.properties.email
+ else:
+ '@path': $.traits.email
+ external_id:
+ '@if':
+ exists:
+ '@path': $.userId
+ then:
+ '@path': $.userId
+ else:
+ '@path': $.anonymousId
+ currency:
+ '@path': $.properties.currency
+ value:
+ '@if':
+ exists:
+ '@path': $.properties.value
+ then:
+ '@path': $.properties.value
+ else:
+ '@path': $.properties.revenue
+ description:
+ '@path': $.properties.description
+ query:
+ '@path': $.properties.query
+ contents:
+ '@arrayPath':
+ - $.properties.products
+ - price:
+ '@path': $.price
+ quantity:
+ '@path': $.quantity
+ content_type:
+ '@path': $.category
+ content_id:
+ '@path': $.product_id
+ event: AddPaymentInfo
+ trigger: event = "Payment Info Entered"
+ - actionId: wxF1KnjEX1Zu9fuN8Nkwp1
+ name: Initiate Checkout
+ fields:
+ event_id:
+ '@path': $.messageId
+ phone_number:
+ '@if':
+ exists:
+ '@path': $.properties.phone
+ then:
+ '@path': $.properties.phone
+ else:
+ '@path': $.traits.phone
+ email:
+ '@if':
+ exists:
+ '@path': $.properties.email
+ then:
+ '@path': $.properties.email
+ else:
+ '@path': $.traits.email
+ external_id:
+ '@if':
+ exists:
+ '@path': $.userId
+ then:
+ '@path': $.userId
+ else:
+ '@path': $.anonymousId
+ currency:
+ '@path': $.properties.currency
+ value:
+ '@if':
+ exists:
+ '@path': $.properties.value
+ then:
+ '@path': $.properties.value
+ else:
+ '@path': $.properties.revenue
+ description:
+ '@path': $.properties.description
+ query:
+ '@path': $.properties.query
+ contents:
+ '@arrayPath':
+ - $.properties.products
+ - price:
+ '@path': $.price
+ quantity:
+ '@path': $.quantity
+ content_type:
+ '@path': $.category
+ content_id:
+ '@path': $.product_id
+ event: InitiateCheckout
+ trigger: event = "Checkout Started"
+ - actionId: wxF1KnjEX1Zu9fuN8Nkwp1
+ name: Add to Cart
+ fields:
+ event_id:
+ '@path': $.messageId
+ phone_number:
+ '@if':
+ exists:
+ '@path': $.properties.phone
+ then:
+ '@path': $.properties.phone
+ else:
+ '@path': $.traits.phone
+ email:
+ '@if':
+ exists:
+ '@path': $.properties.email
+ then:
+ '@path': $.properties.email
+ else:
+ '@path': $.traits.email
+ external_id:
+ '@if':
+ exists:
+ '@path': $.userId
+ then:
+ '@path': $.userId
+ else:
+ '@path': $.anonymousId
+ currency:
+ '@path': $.properties.currency
+ value:
+ '@if':
+ exists:
+ '@path': $.properties.value
+ then:
+ '@path': $.properties.value
+ else:
+ '@path': $.properties.revenue
+ description:
+ '@path': $.properties.description
+ query:
+ '@path': $.properties.query
+ contents:
+ '@arrayPath':
+ - $.properties
+ - price:
+ '@path': $.price
+ quantity:
+ '@path': $.quantity
+ content_type:
+ '@path': $.category
+ content_id:
+ '@path': $.product_id
+ event: AddToCart
+ trigger: event = "Product Added"
- id: 6408ac6c144a7d5ac55cf414
display_name: Toplyne Cloud Mode (Actions)
name: Toplyne Cloud Mode (Actions)
diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml
index e3d6370d24..7aaf083705 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 2023-10-10
+# destination data last updated 2023-10-12
items:
- id: 54521fd725e721e32a72eec6
display_name: Intercom
diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml
index 9e4a9cf54e..deb6fbb0ed 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 2023-10-10
+# source categories last updated 2023-10-12
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 e19d67e6f4..8906238d55 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 2023-10-10
+# sources last updated 2023-10-12
items:
- id: 8HWbgPTt3k
display_name: .NET
diff --git a/src/_includes/components/actions-fields.html b/src/_includes/components/actions-fields.html
index 947f2ea6ea..a06c5a92b9 100644
--- a/src/_includes/components/actions-fields.html
+++ b/src/_includes/components/actions-fields.html
@@ -82,6 +82,21 @@
## Available Actions
+
+
+{% if currentIntegration.id == '63ed446fe60a1b56c5e6f130' %}
+
+
+
+
+
+ View the [Google Analytics documentation](https://developers.google.com/analytics/devguides/collection/ga4/reference/events?client_type=gtag#purchase){:target="_blank"} for the most up-to-date list of required fields.
+
+
+
+
+{% endif %}
+
Build your own Mappings. Combine supported [triggers](/docs/connections/destinations/actions/#components-of-a-destination-action) with the following {{currentIntegration.display_name | remove: " (Actions)"}}-supported actions:
diff --git a/src/_includes/content/react-dest.md b/src/_includes/content/react-dest.md
deleted file mode 100644
index 260f9a937c..0000000000
--- a/src/_includes/content/react-dest.md
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-{% assign currentSlug = page.url | split: "/" | last %}
-{% assign thisDest = site.data.catalog.destinations.items | where: "slug", currentSlug | first %}
-{% assign thisDestName = thisDest.display_name %}
-{% assign thisDestRNspecific = include.only %}
-
-
-{% if thisDestRNspecific %}
-
-
-
-The {{thisDestName}} device-mode destination SDK is only available for {{thisDestRNspecific}} in React Native.
-
-{%endif%}
-
-To add the {{thisDestName}} device-mode SDK to a [React Native](/docs/connections/sources/catalog/libraries/mobile/react-native/) project using Segment's `1.5.1≤` release:
-1. Navigate to the root folder of your project, and run a `yarn add @segment/analytics-react-native-{{thisDestName | downcase | replace: " ", "-" }}{% if thisDestRNspecific %}-{{thisDestRNspecific}}{%endif%}` command to add the destination SDK to your project.
-2. Add an `import` statement to your project, as in the example below.
- ```js
- import {{thisDestName | replace: " ", "" }} from '@segment/analytics-react-native-{{thisDestName | downcase | replace: " ", "-" }}{% if thisDestRNspecific %}-{{thisDestRNspecific}}{%endif%}'
- ```
-3. In the same project file, add the destination to the `using` list in the `await` command.
- ```js
- await analytics.setup('YOUR_WRITE_KEY', {
- // Add any of your Device-mode destinations. This ensures they load before continuing.
- using: {{thisDestName | replace: " ", "" }}
- // ...
- })
- ```
-4. Finally, change to your iOS development folder ( `cd ios` ) and run `pod install`.
diff --git a/src/connections/destinations/catalog/actions-launchdarkly-audiences/index.md b/src/connections/destinations/catalog/actions-launchdarkly-audiences/index.md
new file mode 100644
index 0000000000..ccadb85bb4
--- /dev/null
+++ b/src/connections/destinations/catalog/actions-launchdarkly-audiences/index.md
@@ -0,0 +1,32 @@
+---
+title: LaunchDarkly Audiences Destination
+id: 64e72a310da9ebedf99c8937
+beta: true
+---
+
+{% include content/plan-grid.md name="actions" %}
+
+[LaunchDarkly](https://launchdarkly.com){:target="_blank"} is a feature management platform that empowers development teams to safely deliver, control, and measure their software through feature flags.
+
+With LaunchDarkly, you can release features that target specific groups, such as beta users, and premium accounts, using segments. This destination allows you to sync Engage Audiences to LaunchDarkly segments, letting you concentrate more on deploying features and less on managing end users between platforms.
+
+LaunchDarkly maintains this destinatino. For any issues with the destination, [contact the LaunchDarkly Support team](mailto:support@launchdarkly.com).
+
+{% include content/ajs-upgrade.md %}
+
+## Getting started
+
+1. In LaunchDarkly, navigate to [Account settings](https://app.launchdarkly.com/settings/projects){:target="_blank"} and copy the client-side ID for the project and environment where you would like to create an Engage Audience synced segment.
+2. In LaunchDarkly, create a service token with either a Writer role or a custom role. If your service token has a custom role, it must have the actions `createSegment` and `updateIncluded` to sync a segment from an Engage Audience. To learn how to create a service token, read [Creating API access tokens](https://docs.launchdarkly.com/home/account-security/api-access-tokens#creating-api-access-tokens){:target="_blank"}.
+3. From the Segment web app, navigate to **Engage > Audiences**. Ensure you are in the Engage space you plan to use with the LaunchDarkly Audiences destination. Either choose an existing Engage audience or create a new one. This is the audience you plan to sync with LaunchDarkly.
+4. Navigate to **Engage > Engage Settings** and click **Destinations**. Ensure you are still in the correct Engage space.
+5. Search for `LaunchDarkly Audiences` and select the destination. Click **Add destination**.
+6. On the **Select Source** screen, your Engage space should already be selected as the source. Click **Confirm Source**.
+7. On the Destination **Settings** tab, name your destination and provide your LaunchDarkly client-side ID and service token.
+8. Toggle **Enable Destination** on and click **Save Changes**.
+9. Navigate to the **Mappings** tab, click **New Mapping**, and select the **Sync Engage Audience to LaunchDarkly** pre-built mapping.
+10. Under **Select mappings**, modify the default mappings as needed. In most cases, you shouldn't need to make any changes.
+11. Click **Save**.
+12. Ensure the **Status** toggle on the **Mappings** tab is enabled.
+
+{% include components/actions-fields.html %}
diff --git a/src/connections/destinations/catalog/adjust/index.md b/src/connections/destinations/catalog/adjust/index.md
index 8b390b2906..2c62812ebd 100644
--- a/src/connections/destinations/catalog/adjust/index.md
+++ b/src/connections/destinations/catalog/adjust/index.md
@@ -109,10 +109,6 @@ analytics = new Analytics.Builder(this, "write_key")
After you build and release to the App Store, Segment automatically starts translating and sending your data to Adjust.
-### React Native
-
-{% include content/react-dest.md %}
-
### Server
The Cloud-mode integration allows you to send *supplemental* data to Adjust. This *does not* include attribution events. If you rely on the Adjust server-side component, and do not bundle the Segment-Adjust SDK, your installs will not be attributed. E-commerce events and other general `track` events are supported out of the box. You **must** map your `track` events to your custom Adjust Event Token in your [Adjust destination settings](#map-your-events-to-custom-adjust-event-tokens).
diff --git a/src/connections/destinations/catalog/amplitude/index.md b/src/connections/destinations/catalog/amplitude/index.md
index caf8a4d3e7..87082a1238 100644
--- a/src/connections/destinations/catalog/amplitude/index.md
+++ b/src/connections/destinations/catalog/amplitude/index.md
@@ -42,11 +42,6 @@ In addition to Segment's Amplitude documentation, Amplitude provides a [Segment
If you included Segment's JavaScript snippet on your page, then Amplitude's SDK loads on your page automatically and you can use Segment's to begin sending events right away.
-### React Native device mode set up
-
-{% include content/react-dest.md %}
-
-
## Page and Screen
If you're not familiar with the Segment Specs, take a look to understand what the [Page](/docs/connections/spec/page/) and [Screen](/docs/connections/spec/screen/) methods do. By default, Segment does not send these standard calls to Amplitude. However, you can enable them with the destination settings below, which you can find under the "Optional Settings" tab.
diff --git a/src/connections/destinations/catalog/branch-metrics/index.md b/src/connections/destinations/catalog/branch-metrics/index.md
index 00b6ecec68..fd90fa40d9 100644
--- a/src/connections/destinations/catalog/branch-metrics/index.md
+++ b/src/connections/destinations/catalog/branch-metrics/index.md
@@ -29,28 +29,6 @@ This destination is maintained by Branch. For any issues with the destination, [
5. Paste the Branch Key in the destination settings and click **Save**.
-### Adding Branch device-mode SDKs for React Native
-
-
-
-To add the Branch device-mode SDK to a [React Native](/docs/connections/sources/catalog/libraries/mobile/react-native/) project using Segment's `1.5.1≤` release:
-1. Navigate to the root folder of your project, and run a `yarn add branch` command to add the destination SDK to your project.
-2. Add an `import` statement to your project, as in the example below.
- ```js
- import Branch from '@segment/analytics-react-native-branch'
- ```
-3. In the same project file, add the destination to the `using` list in the `await` command.
- ```js
- await analytics.setup('YOUR_WRITE_KEY', {
- // Add any of your Device-mode destinations. This ensures they load before continuing.
- using: Branch
- // ...
- })
- ```
-4. Finally, change to your iOS development folder ( `cd ios` ) and run `pod install`.
-
-
-
## Identify
If you're not familiar with the Segment Specs, take a look to understand what the [Identify method](/docs/connections/spec/identify/) does. An example iOS call would look like:
diff --git a/src/connections/destinations/catalog/braze/index.md b/src/connections/destinations/catalog/braze/index.md
index 8a6fed2f56..59a192524c 100644
--- a/src/connections/destinations/catalog/braze/index.md
+++ b/src/connections/destinations/catalog/braze/index.md
@@ -108,30 +108,6 @@ To use the latest Braze SDK to collect IDFAs you must do the following:
.build();
```
-### React Native device-mode set up
-
-
-
-To add the Braze device-mode SDK to a [React Native](/docs/connections/sources/catalog/libraries/mobile/react-native/) project using Segment's `1.5.1≤` release:
-1. Navigate to the root folder of your project, and run a `yarn add appboy` command to add the destination SDK to your project.
-2. Add an `import` statement to your project, as in the following example.
- ```js
- import Braze from '@segment/analytics-react-native-appboy'
- ```
-3. In the same project file, add the destination to the `using` list in the `await` command.
- ```js
- await analytics.setup('YOUR_WRITE_KEY', {
- // Add any of your Device-mode destinations. This ensures they load before continuing.
- using: [Braze]
- // ...
- })
- ```
-4. Change to your iOS development folder ( `cd ios` ) and run `pod install`.
-
-
-> note ""
-> Braze was formerly known as "Appboy", and the Braze React component still uses that name. Be sure to use the old name!
-
## Page
If you're not familiar with the Segment Specs, take a look to understand what the [Page method](/docs/connections/spec/page/) does. An example call would look like:
diff --git a/src/connections/destinations/catalog/bugsnag/index.md b/src/connections/destinations/catalog/bugsnag/index.md
index 54fc98b617..9ad909dece 100644
--- a/src/connections/destinations/catalog/bugsnag/index.md
+++ b/src/connections/destinations/catalog/bugsnag/index.md
@@ -31,13 +31,6 @@ If you'd like to integrate with Bugsnag's iOS and/or Android SDKs, in addition t
2. [iOS](https://github.com/segment-integrations/analytics-ios-integration-bugsnag)
-
-### React Native
-
-{% include content/react-dest.md %}
-
-- - -
-
## Identify
Once you've correctly set up your Bugsnag integration, you should [`identify`](/docs/connections/spec/identify/) each of your users as soon as you know their identity (this typically happens after log in or sign up), so that Bugsnag can provide you with more visibility into which user is encountering which error.
diff --git a/src/connections/destinations/catalog/clevertap/index.md b/src/connections/destinations/catalog/clevertap/index.md
index 1a2143e1f7..380bc9a4d3 100644
--- a/src/connections/destinations/catalog/clevertap/index.md
+++ b/src/connections/destinations/catalog/clevertap/index.md
@@ -163,12 +163,6 @@ No further action is required to integrate in-app notifications, which are regis
CleverTap has created a sample iOS application that integrates CleverTap using Segment. Check it out at the [GitHub repository](https://github.com/CleverTap/clevertap-segment-ios/tree/master/Example){:target="_blank"}.
-
-## React Native
-
-{% include content/react-dest.md %}
-
-
## Server-Side
### Push Tokens
diff --git a/src/connections/destinations/catalog/comscore/index.md b/src/connections/destinations/catalog/comscore/index.md
index 9d7f3c7d4f..2917cf4ba7 100644
--- a/src/connections/destinations/catalog/comscore/index.md
+++ b/src/connections/destinations/catalog/comscore/index.md
@@ -30,10 +30,6 @@ To install comScore via Segment on iOS, please follow the additional set up step
### Android
To install comScore via Segment on Android, please follow the additional set up steps in the Segment-Comscore Android repository [here](https://github.com/segment-integrations/analytics-android-integration-comscore#analytics-android-integration-comscore).
-### React Native
-
-{% include content/react-dest.md only="ios"%}
-
## Page
Calling `page` on web will automatically send a call to comScore's Application Tag, along with any `labels` mapped in the **Beacon Param Map** setting.
diff --git a/src/connections/destinations/catalog/countly/index.md b/src/connections/destinations/catalog/countly/index.md
index af294f4b3e..b15ac525e9 100644
--- a/src/connections/destinations/catalog/countly/index.md
+++ b/src/connections/destinations/catalog/countly/index.md
@@ -12,11 +12,6 @@ After you integrate the appropriate destination with your app, add the Countly d
These new settings take up to an hour to propagate to existing users, but is instantaneous for new users.
-### React Native set up
-
-{% include content/react-dest.md %}
-
-
## Track
Countly helps you better understand your user's behavior. To accomplish that, [`track`](/docs/connections/spec/track/) your user's actions in detail.
diff --git a/src/connections/destinations/catalog/crittercism/index.md b/src/connections/destinations/catalog/crittercism/index.md
index c292c46af7..78db02ee0b 100644
--- a/src/connections/destinations/catalog/crittercism/index.md
+++ b/src/connections/destinations/catalog/crittercism/index.md
@@ -11,13 +11,6 @@ To get started with Crittercism and Segment, you'll want to integrate our [Andro
Once the Segment library is integrated with your app, toggle Crittercism on in your Segment destination catalog, and add your **App Id** which you can find in your [Crittercism app settings](https://app.crittercism.com/developers/login). These new settings will take up to an hour to propagate to all of your existing users. For new users it'll be instantaneous!
-### React Native set up
-
-{% include content/react-dest.md %}
-
-- - -
-
-
## Identify
Crittercism can show you information about the user using your app. You can record that info with our [`identify`](/docs/connections/spec/identify/) method. You should put the `identify` call as soon as you know the user's identity. This usually happens after they register or log in.
diff --git a/src/connections/destinations/catalog/facebook-app-events/index.md b/src/connections/destinations/catalog/facebook-app-events/index.md
index 7c310e6544..655ae329f2 100644
--- a/src/connections/destinations/catalog/facebook-app-events/index.md
+++ b/src/connections/destinations/catalog/facebook-app-events/index.md
@@ -28,10 +28,6 @@ This page is about the **Facebook App Events**. For documentation on other Faceb
3. In the destination settings, enter your Facebook App ID which can be retrieved from your [Facebook Apps dashboard](https://developers.facebook.com/apps/).
4. Once you turn on the Facebook App Events integration in your app's Segment project, we'll start sending `track` data to Facebook's App Events endpoints.
-### Using Facebook App Events with React Native Device Mode
-
-{% include content/react-dest.md only="ios" %}
-
## Screen
If you're not familiar with the Segment Specs, take a look to understand what the [Screen method](/docs/connections/spec/screen/) does. An example call would look like:
diff --git a/src/connections/destinations/catalog/flurry/index.md b/src/connections/destinations/catalog/flurry/index.md
index f9343302ef..ae42070158 100644
--- a/src/connections/destinations/catalog/flurry/index.md
+++ b/src/connections/destinations/catalog/flurry/index.md
@@ -19,10 +19,6 @@ Our Flurry destination code is open sourced on GitHub. Feel free to check it out
_Note: Flurry does not always display data in real time. We've seen that it can take anywhere from a few hours to a few days for certain types of data to sync with Flurry._
-### React Native set up
-
-{% include content/react-dest.md %}
-
## Screen
If you're not familiar with the Segment Specs, take a look to understand what the [Screen method](/docs/connections/spec/screen/) does.
diff --git a/src/connections/destinations/catalog/inflection/index.md b/src/connections/destinations/catalog/inflection/index.md
index a0c58895a1..c5ac0630e6 100644
--- a/src/connections/destinations/catalog/inflection/index.md
+++ b/src/connections/destinations/catalog/inflection/index.md
@@ -21,24 +21,6 @@ This destination is maintained by Inflection. For any issues with the destinatio
Inflection supports the following methods, as specified in the [Segment Spec](/docs/connections/spec).
-### Page
-
-Send [Page](/docs/connections/spec/page) calls to be added to *Product Activity* on Inflection App. For example:
-
-```js
-analytics.page()
-```
-
-
-### Screen
-
-Send [Screen](/docs/connections/spec/screen) calls to be added to *Product Activity* on Inflection App. For example:
-
-```obj-c
-[[SEGAnalytics sharedAnalytics] screen:@"Home"];
-```
-
-
### Identify
Send [Identify](/docs/connections/spec/identify) calls to Identify a user. The traits should have the `email` trait to be processed. All the other reserved traits are optional, but will be used to populate *Person DB* if available.
@@ -58,4 +40,18 @@ Send [Track](/docs/connections/spec/track) calls to be added to *Product Activit
```js
analytics.track('Login Button Clicked')
+```
+
+### Group
+
+Send [Group](/docs/connections/spec/group) calls to tie a user to an org. There are two IDs that are relevant in a group call: the userId, which belongs and refers to the user, and the groupId, which belongs and refers to the specific group. A user can belong to multiple groups, each associated with a different groupId, but the user will have only one userId linked to each of these different groups.
+
+```js
+ analytics.group("0e8c78ea9d97a7b8185e8632", {
+name: "Initech",
+industry: "Technology",
+employees: 329,
+plan: "enterprise",
+"total billed": 830
+});
```
\ No newline at end of file
diff --git a/src/connections/destinations/catalog/intercom/index.md b/src/connections/destinations/catalog/intercom/index.md
index 560cda4cfd..abdc986c82 100644
--- a/src/connections/destinations/catalog/intercom/index.md
+++ b/src/connections/destinations/catalog/intercom/index.md
@@ -52,10 +52,6 @@ Before reading the specific instructions for iOS or Android below, make sure you
.build();
```
-### React Native
-
-{% include content/react-dest.md %}
-
## Page
If you're not familiar with the Segment Specs, take a look to understand what the [Page method](/docs/connections/spec/page/) does. An example call would look like:
diff --git a/src/connections/destinations/catalog/localytics/index.md b/src/connections/destinations/catalog/localytics/index.md
index 246593ab78..f13d1bcc1c 100644
--- a/src/connections/destinations/catalog/localytics/index.md
+++ b/src/connections/destinations/catalog/localytics/index.md
@@ -31,12 +31,6 @@ is not yet supported.
You must also add the Maven Localytics repo (since Localytics doesn't publish it on Maven Central). You can see an example of how to add that
[here](https://github.com/segment-integrations/analytics-android-integration-localytics/blob/master/build.gradle#L44).
-### React Native set up
-
-{% include content/react-dest.md %}
-
-- - -
-
## Identify
When you call [`identify`](/docs/connections/spec/identify/), we'll set the Localytics
diff --git a/src/connections/destinations/catalog/loops-actions/index.md b/src/connections/destinations/catalog/loops-actions/index.md
new file mode 100644
index 0000000000..2e0025bf08
--- /dev/null
+++ b/src/connections/destinations/catalog/loops-actions/index.md
@@ -0,0 +1,7 @@
+---
+title: 'Loops (Actions) Destination'
+hidden: true
+id: 63360a5fe290ca3fdfad4a68
+published: false
+beta: true
+---
diff --git a/src/connections/destinations/catalog/mixpanel/index.md b/src/connections/destinations/catalog/mixpanel/index.md
index 5336e0bbbc..e352e09563 100644
--- a/src/connections/destinations/catalog/mixpanel/index.md
+++ b/src/connections/destinations/catalog/mixpanel/index.md
@@ -22,10 +22,6 @@ Segment's Mixpanel destination code is open source and available on GitHub. You
3. Copy your Mixpanel "API Secret" and "Token", and paste them into the Connection Settings in Segment.
4. Enable the destination to start sending your data to Mixpanel.
-### Adding device-mode SDKs to React Native
-
-{% include content/react-dest.md %}
-
## Page
If you're not familiar with the Segment Specs, take a look to understand what the [Page method](/docs/connections/spec/page/) does. An example call would look like:
diff --git a/src/connections/destinations/catalog/quantcast/index.md b/src/connections/destinations/catalog/quantcast/index.md
index 19561e625e..5e70c002ab 100644
--- a/src/connections/destinations/catalog/quantcast/index.md
+++ b/src/connections/destinations/catalog/quantcast/index.md
@@ -15,10 +15,6 @@ Quantcast supports the `identify` and `track` methods on our API.
Note: For Quantcast to load you must call our page method. There is a call to page in your JavaScript snippet by default, so as long as you don't remove it Quantcast will load whenever your snippet loads!
-## React Native set up
-
-{% include content/react-dest.md only="android" %}
-
### Page
When you call `.page()`, we will automatically pass the labels. [See below for details](#labels).
diff --git a/src/connections/destinations/catalog/taplytics/index.md b/src/connections/destinations/catalog/taplytics/index.md
index 2cc13b2771..e818c003f1 100644
--- a/src/connections/destinations/catalog/taplytics/index.md
+++ b/src/connections/destinations/catalog/taplytics/index.md
@@ -23,10 +23,6 @@ To get up and running with Taplytics on Android, there a couple of steps we will
To enable its full functionality (like Push Notifications, Deep linking), there are a couple of extra steps that you have to take care of in your Android app. [This document explains how to set up Push Notifications](https://docs.taplytics.com/docs/guides-push-notifications) and [ths one explains how to set up deep linking](https://support.taplytics.com/hc/en-us/articles/360004176632-Deep-Linking-Guide-).
-### React Native set up
-
-{% include content/react-dest.md only="ios" %}
-
## Identify
Use [Identify](/docs/connections/sources/catalog/libraries/mobile/ios/#identify) to track user specific attributes. It equivalent to tracking [user attributes](https://docs.taplytics.com/docs/guides-user-insights) on Taplytics. Taplytics supports traits supported by Segment as well as custom traits. If you set traits.id, we set that as the Unique ID for that user.
diff --git a/src/connections/destinations/catalog/tapstream/index.md b/src/connections/destinations/catalog/tapstream/index.md
index b272135956..201e5391f3 100644
--- a/src/connections/destinations/catalog/tapstream/index.md
+++ b/src/connections/destinations/catalog/tapstream/index.md
@@ -3,5 +3,4 @@ title: 'Tapstream Destination'
hidden: true
id: 54521fdb25e721e32a72eef7
---
-
+
diff --git a/src/protocols/tracking-plan/create.md b/src/protocols/tracking-plan/create.md
index b628e83c0c..8244da80ec 100644
--- a/src/protocols/tracking-plan/create.md
+++ b/src/protocols/tracking-plan/create.md
@@ -174,6 +174,9 @@ To edit the common JSON schema using the Public API, you'll need to add your new
> info "Specifying data type"
> Property or trait data type should adhere to the [data types defined by JSON schema](https://json-schema.org/understanding-json-schema/reference/type.html){:target="_blank”}. Data type names must be lower-cased as specified in JSON schema. Datetime properties should be represented as a `string` type with [`format` keyword](https://json-schema.org/understanding-json-schema/reference/string.html#format){:target="_blank”} (for example: "format": "date-time").
+> info "Blocking data"
+> JSON schema violation event blocking is **only** supported in cloud-mode Destinations. See [the Customize your schema controls docs](/docs/protocols/enforce/schema-configuration/) for more information on blocking data.
+
### Extend the Tracking Plan
Some customers prefer to manage the Tracking Plan with outside tools and resources. See the [APIs and extensions](/docs/protocols/apis-and-extensions/) section to learn more.
diff --git a/src/segment-app/iam/roles.md b/src/segment-app/iam/roles.md
index 3ab052a8f9..966a054cc9 100644
--- a/src/segment-app/iam/roles.md
+++ b/src/segment-app/iam/roles.md
@@ -67,10 +67,10 @@ The following roles are only available to Segment Business Tier accounts.
* **Scope:** Grants access to *all* warehouses.
#### Entities Admin
-Full CRUD (create, read, access, and delete) access to all Entities within a workspace. You can also grant or revoke user permissions.
+Full edit and view access to all entity models and connection details.
#### Entities Read-only
-Read-only access to all Entities models and destinations in a workspace.
+Read-only access, with the ability to view entity models.
## PII Access
diff --git a/src/engage/images/large_trait_csv.png b/src/unify/images/large_trait_csv.png
similarity index 100%
rename from src/engage/images/large_trait_csv.png
rename to src/unify/images/large_trait_csv.png
diff --git a/src/engage/images/trait_overview.png b/src/unify/images/trait_overview.png
similarity index 100%
rename from src/engage/images/trait_overview.png
rename to src/unify/images/trait_overview.png
diff --git a/src/unify/linked-profiles/linked-events.md b/src/unify/linked-profiles/linked-events.md
index 423f6a315e..542abb863d 100644
--- a/src/unify/linked-profiles/linked-events.md
+++ b/src/unify/linked-profiles/linked-events.md
@@ -39,10 +39,8 @@ The following Segment access [roles](/docs/segment-app/iam/roles/) apply to Link
**Entities Read-only Access**: Entities Read-only users have the ability to view entity models.
-To create models and enrich events in destinations, you need the following roles:
-- `Workspace Owner` and `Entities Admin`
+To create models and enrich events in destinations, you need to be a `Workspace Owner` or have the following roles:
-OR:
- `Unify and Engage Admin`
- `Entities Admin`
- `Source Admin`