diff --git a/CODEOWNERS b/CODEOWNERS index 78e3ce8044..0642a808b4 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,8 +1,14 @@ +# Global default: all files fall back to the Segment docs team +# unless overridden by a more specific rule. * @segmentio/segment-doc-team -# The default owners for everything in -# the repo. Unless a later match takes precedence. -CODEOWNERS @segmentio/segment-doc-team +# The specific rules in this file still take precedence (for example, /src/protocols). +# However, we've added @segmentio/segment-doc-team to each rule to make sure that +# PRs can be reviewed by ANY member of the team. If the docs team member isn't available, +# GitHub will assign reviewers randomly from the rest of the team. + +# CODEOWNERS file itself +CODEOWNERS @segmentio/segment-doc-team # Utility scripts /scripts @segmentio/segment-doc-team @@ -11,43 +17,23 @@ CODEOWNERS @segmentio/segment-doc-team # /vale-styles @segmentio/segment-doc-team # .vale.ini @segmentio/segment-doc-team - -# Content owners should be in the order of PM, TL (team-lead), and EM (in a crisis) for a given team. -# This team will receive review requests automatically when a PR is submitted modifying the files in -# a given directory+subtree, or file type, etc. that matches below. While Github won't enforce the -# order names are listed in for the PR review, this file can provide insight on who should be contacted -# if anything becomes time sensitive. Names other than the PM can mostly ignore these review notifications -# but are listed here as backup. - +# Content ownership by team member # Libraries owners -/src/connections/catalog/libraries @stayseesong - - -# Destinations owners -# /src/connections/destinations @stayseesong= - -# Stratconn -## Adobe - - -## Facebook - - -## Google - - -## Salesforce +/src/connections/catalog/libraries @stayseesong @segmentio/segment-doc-team +# Destinations owners; owned by the docs team only, +# so GitHub can assign a reviewer randomly. +/src/connections/destinations @segmentio/segment-doc-team # Engage -/src/engage/ @pwseg +/src/engage/ @pwseg @segmentio/segment-doc-team # Unify -/src/unify @pwseg +/src/unify @pwseg @segmentio/segment-doc-team # Protocols owners -/src/protocols @forstisabella +/src/protocols @forstisabella @segmentio/segment-doc-team # Storage owners -/src/connections/storage @forstisabella +/src/connections/storage @forstisabella @segmentio/segment-doc-team diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 49592364ef..f8a919c06e 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-03-06 +# destination categories last updated 2025-04-24 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 6b0446b8ac..96babbfd9a 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-03-06 +# destination data last updated 2025-04-24 items: - id: 637e8d185e2dec264895ea89 display_name: 1Flow @@ -5848,15 +5848,15 @@ items: name: Conversion Events slug: conversionEvents description: >- - In ecommerce, conversions are purchase events often but not always - involving multiple products. Outside of a conversion can be any positive - signal associated with an index record. Query ID is optional and indicates - that the view events is the result of a search query. + In ecommerce, conversions are purchase or add-to-cart events often but not + always involving multiple products. Outside of ecommerce, a conversion can + be any positive signal associated with an index record. Query ID is + optional and indicates that the event is the result of a search query. platform: CLOUD hidden: false defaultTrigger: type = "track" and event = "Order Completed" fields: - - id: jyYQsHrUC3z5aTkmmrpJsP + - id: bzPDcwFKachfkx3rSDQR4X sortOrder: 0 fieldKey: eventSubtype label: Event Subtype @@ -5873,7 +5873,7 @@ items: value: addToCart dynamic: false allowNull: false - - id: r1ajnZpoosrfWMKPEt11Aj + - id: oi7UAXBM9m22uBxzHj6ZtU sortOrder: 1 fieldKey: products label: Product Details @@ -5901,7 +5901,7 @@ items: choices: null dynamic: false allowNull: false - - id: bk1j5r61xNWoQwwywLrnor + - id: 97cVdQq1euH9xy7CBxBFnt sortOrder: 2 fieldKey: index label: Index @@ -5915,7 +5915,7 @@ items: choices: null dynamic: false allowNull: false - - id: akcPLa9TcmmKuwPbwUXZsq + - id: 8zHC4XKT6zw1fSEVNCkpXx sortOrder: 3 fieldKey: queryID label: Query ID @@ -5935,7 +5935,7 @@ items: choices: null dynamic: false allowNull: false - - id: xzLoCGn2gHpSUyxeBfLenv + - id: ue7YzadGXzJeh4ehdM3WCk sortOrder: 4 fieldKey: userToken label: User Token @@ -5955,7 +5955,7 @@ items: choices: null dynamic: false allowNull: false - - id: oYhL6BB1Kp8bS1zEtK25vD + - id: h9Z14o4tJtwWSijrZHUKEX sortOrder: 5 fieldKey: timestamp label: Timestamp @@ -5969,7 +5969,7 @@ items: choices: null dynamic: false allowNull: false - - id: bWn4BApB8KTnwC862E1rKQ + - id: 27h7UbwYBziAv55r7BkqVq sortOrder: 6 fieldKey: value label: Value @@ -5983,7 +5983,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7Z1JEcXeSZZBrrvCSkmft8 + - id: hNuSorFNTweWTihYZJpApn sortOrder: 7 fieldKey: currency label: Currency @@ -5999,7 +5999,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5u1aVjjqYbtv7RxfACpwfE + - id: i2QrLsoBAwJdZmyJioFtpK sortOrder: 8 fieldKey: extraProperties label: Extra Properties @@ -6015,7 +6015,7 @@ items: choices: null dynamic: false allowNull: false - - id: eHmtysvj6uaFsdLHvqyE2b + - id: cLo6E8qcNBWbtyqQAitdz2 sortOrder: 9 fieldKey: eventName label: Event Name @@ -6028,7 +6028,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3zPARwpa5CszETXSmqN9kg + - id: 3jgcs9xg89MqesYUtgLue2 sortOrder: 10 fieldKey: eventType label: Event Type @@ -6058,7 +6058,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Viewed" fields: - - id: e56vXfr6pKJjDFgGCF6iCx + - id: kBPaEg6EPdnmtzYsTupfZr sortOrder: 0 fieldKey: objectID label: Product ID @@ -6072,7 +6072,7 @@ items: choices: null dynamic: false allowNull: false - - id: hYjGsna7UPmqX4BN1BJ5zo + - id: uLVFmBiX7RrJgCa7wNRcyQ sortOrder: 1 fieldKey: index label: Index @@ -6086,7 +6086,7 @@ items: choices: null dynamic: false allowNull: false - - id: dDtYnmTYZFDFQN7N947wvp + - id: tnVBeTQnKAV4vTSJTs91Qn sortOrder: 2 fieldKey: queryID label: Query ID @@ -6106,7 +6106,7 @@ items: choices: null dynamic: false allowNull: false - - id: adBN78A1KLgWJkHSi5maah + - id: wZ3jvuLQnN2dVs4sVShBNo sortOrder: 3 fieldKey: userToken label: User Token @@ -6126,7 +6126,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2MWUJEnJqfMF8n5x9CYtJg + - id: j19bZs6RrEFxHDLZThr31C sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -6140,7 +6140,7 @@ items: choices: null dynamic: false allowNull: false - - id: pGAFCyYUafTs9YxYDK2oz9 + - id: eBpLKV7MGxZ7DYenVQFTKz sortOrder: 5 fieldKey: extraProperties label: Extra Properties @@ -6156,7 +6156,7 @@ items: choices: null dynamic: false allowNull: false - - id: cjsUEHEhiy42Yt4xy39rNM + - id: oj4J9zP5sQ4sFQQL4syinC sortOrder: 6 fieldKey: eventName label: Event Name @@ -6171,7 +6171,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3VXCJqtaYt49YGTUi9WNVK + - id: 3oJL4pbiUzCXyZ9iTQUAzb sortOrder: 7 fieldKey: eventType label: Event Type @@ -6200,7 +6200,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Clicked" fields: - - id: 8LGqUWkJAkWrxrBGyUyBwQ + - id: 6YQw3RMv6kYGb4figikT71 sortOrder: 0 fieldKey: objectID label: Product ID @@ -6216,7 +6216,7 @@ items: choices: null dynamic: false allowNull: false - - id: b1V93CR2pWXssrVURST4Fq + - id: 4jQBych2ueuNKAi5E2La56 sortOrder: 1 fieldKey: index label: Index @@ -6230,7 +6230,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7iWzC63jRmjA6UaiecahtP + - id: htzkQqY5Uph1JVem4j51px sortOrder: 2 fieldKey: queryID label: Query ID @@ -6250,7 +6250,7 @@ items: choices: null dynamic: false allowNull: false - - id: kmntVxdG5pSrQwAuABxa6P + - id: gy2vySb7QycbC4LZ9MSFvy sortOrder: 3 fieldKey: position label: Position @@ -6264,7 +6264,7 @@ items: choices: null dynamic: false allowNull: false - - id: feFBuZR1LriwvkDuQjzSsL + - id: uqWsGp6kZPvWMU9CQ7BFgg sortOrder: 4 fieldKey: userToken label: User Token @@ -6284,7 +6284,7 @@ items: choices: null dynamic: false allowNull: false - - id: b1pjQGZZyVse4MtLM9MU75 + - id: cfNrCrUkHAvMsCCN7LueqU sortOrder: 5 fieldKey: timestamp label: Timestamp @@ -6298,7 +6298,7 @@ items: choices: null dynamic: false allowNull: false - - id: oRQ968LvhBcuifgcvMc1mG + - id: kG3GmRo7pCVjCCmHZRjFeA sortOrder: 6 fieldKey: extraProperties label: Extra Properties @@ -6314,7 +6314,7 @@ items: choices: null dynamic: false allowNull: false - - id: 25b7CSZJB1z6BEDFReCiKt + - id: oqvq1M17zZzV5zeRTiv1G1 sortOrder: 7 fieldKey: eventName label: Event Name @@ -6329,7 +6329,7 @@ items: choices: null dynamic: false allowNull: false - - id: jRBNsFkRhke4ZmyZdf9pej + - id: qfoQBYmM87Rraj6sRkXiE8 sortOrder: 8 fieldKey: eventType label: Event Type @@ -6356,7 +6356,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product List Filtered" fields: - - id: rL2dr9rjCayRKrj4REtuGB + - id: wBhy3BLj2GZioNeA7nGX7T sortOrder: 0 fieldKey: filters label: Filters @@ -6378,7 +6378,7 @@ items: choices: null dynamic: false allowNull: false - - id: byjxTdgpbCLjGuPdKvhA2A + - id: cdLZgYVZfvRZjHqvwHWrNd sortOrder: 1 fieldKey: index label: Index @@ -6392,7 +6392,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5mRcubZda23iwBzDJGAePJ + - id: tcBcsVgS3uz9EAXwwPmfDw sortOrder: 2 fieldKey: queryID label: Query ID @@ -6412,7 +6412,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9sE5aPsZYb7c2NB5ALs784 + - id: uco5QWszWopGfGWdPS8Fj3 sortOrder: 3 fieldKey: userToken label: User Token @@ -6432,7 +6432,7 @@ items: choices: null dynamic: false allowNull: false - - id: dT811KKgopaU1rYjgC69E4 + - id: nkPn7t5FJRzkLJQdKYBHCj sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -6446,7 +6446,7 @@ items: choices: null dynamic: false allowNull: false - - id: uEEcggxFZwTRe4Nh1Xttny + - id: v9ka7FqZXtiCME7QtFAqsq sortOrder: 5 fieldKey: extraProperties label: Extra Properties @@ -6462,7 +6462,7 @@ items: choices: null dynamic: false allowNull: false - - id: vxtGErF73oypm77JmD22bG + - id: bJuE2GvAw8FfgQ5PY7FS5o sortOrder: 6 fieldKey: eventName label: Event Name @@ -6477,7 +6477,7 @@ items: choices: null dynamic: false allowNull: false - - id: khMVMfBDSkQHqWHUuK8BLP + - id: 3assDR2KSKnAQrGjQ39Pvh sortOrder: 7 fieldKey: eventType label: Event Type @@ -6497,17 +6497,18 @@ items: dynamic: false allowNull: false - id: jBtAWFiwa9ovR5HvbNDMbf - name: Product Added Events + name: '[Deprecated] Product Added Events' slug: productAddedEvents description: >- Product added events for ecommerce use cases for a customer adding an item to their cart. Query ID is optional and indicates that the event was the - result of a search query. + result of a search query. **Important** This Action is deprecated. Use the + **Conversion Events** Action instead. platform: CLOUD hidden: false defaultTrigger: type = "track" and event = "Product Added" fields: - - id: kM4ksMhSVgjF4KsyMXw3Sx + - id: k8ChFgusnwjkvRNmHiWVtx sortOrder: 0 fieldKey: product label: Product ID @@ -6523,7 +6524,7 @@ items: choices: null dynamic: false allowNull: false - - id: ivdLsdCEXHGVRbEci3DLqA + - id: 8fApLYemLJfTkkNx5XTydm sortOrder: 1 fieldKey: index label: Index @@ -6537,7 +6538,7 @@ items: choices: null dynamic: false allowNull: false - - id: rVjDxhbfTdV369Mz8SJUx1 + - id: bGwhTz3JsscNZtnAqy7yU8 sortOrder: 2 fieldKey: queryID label: Query ID @@ -6557,7 +6558,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3BJosBmTeXvEnBq2doC7o3 + - id: hYo2PDRg33itLQZFskNWZn sortOrder: 3 fieldKey: userToken label: User Token @@ -6577,7 +6578,7 @@ items: choices: null dynamic: false allowNull: false - - id: gsWk1KjvZpH1EZQ19iMANd + - id: 7aGbKTfjfJtaRwNR4fczE1 sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -6591,7 +6592,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9kxdRNtGagtRS2Ux6vjc3R + - id: qfZrHXESR69peBrqEtpsci sortOrder: 5 fieldKey: extraProperties label: Extra Properties @@ -6607,7 +6608,7 @@ items: choices: null dynamic: false allowNull: false - - id: nAtWL5z6umVFLiM5rMUYNs + - id: tSXZbMv3ixmEZYXRTx9jZw sortOrder: 6 fieldKey: eventName label: Event Name @@ -6620,7 +6621,7 @@ items: choices: null dynamic: false allowNull: false - - id: ipYUnxWpDrfQxK4ciJ18KA + - id: jWbAM4fsyHif2ZfLPoPn1p sortOrder: 7 fieldKey: eventType label: Event Type @@ -6650,11 +6651,23 @@ items: type = "alias" fields: [] presets: - - actionId: 63BBDy2TNprpH9uExRJKop - name: Send product viewed events to Algolia + - actionId: 2KEUSgKKYG2W82DdaBGsF4 + name: Send purchase events to Algolia fields: - objectID: - '@path': $.properties.product_id + eventSubtype: purchase + products: + '@arrayPath': + - $.properties.products + - product_id: + '@path': $.product_id + price: + '@path': $.price + quantity: + '@path': $.quantity + discount: + '@path': $.discount + queryID: + '@path': $.queryID index: '@path': $.properties.search_index queryID: @@ -6675,15 +6688,19 @@ items: '@path': $.anonymousId timestamp: '@path': $.timestamp + value: + '@path': $.properties.value + currency: + '@path': $.properties.currency extraProperties: '@path': $.properties - eventName: Product Viewed - eventType: view - trigger: type = "track" and event = "Product Viewed" - - actionId: jBtAWFiwa9ovR5HvbNDMbf - name: Send product added events to Algolia + eventName: Conversion Event + eventType: conversion + trigger: type = "track" and event = "Order Completed" + - actionId: etbKXm8QsQyQAo83znMszn + name: Send product clicked events to Algolia fields: - product: + objectID: '@path': $.properties.product_id index: '@path': $.properties.search_index @@ -6695,6 +6712,8 @@ items: '@path': $.properties.query_id else: '@path': $.integrations.Algolia Insights (Actions).query_id + position: + '@path': $.properties.position userToken: '@if': exists: @@ -6707,17 +6726,11 @@ items: '@path': $.timestamp extraProperties: '@path': $.properties - eventName: Add to cart - eventType: conversion - trigger: type = "track" and event = "Product Added" - - actionId: pMj2PGgP2c3hHzLMae4iBb - name: Algolia Plugin - fields: {} - trigger: >- - type = "track" or type = "identify" or type = "group" or type = "page" or - type = "alias" - - actionId: etbKXm8QsQyQAo83znMszn - name: Send product clicked events to Algolia + eventName: Product Clicked + eventType: click + trigger: type = "track" and event = "Product Clicked" + - actionId: 63BBDy2TNprpH9uExRJKop + name: Send product viewed events to Algolia fields: objectID: '@path': $.properties.product_id @@ -6731,8 +6744,6 @@ items: '@path': $.properties.query_id else: '@path': $.integrations.Algolia Insights (Actions).query_id - position: - '@path': $.properties.position userToken: '@if': exists: @@ -6745,9 +6756,9 @@ items: '@path': $.timestamp extraProperties: '@path': $.properties - eventName: Product Clicked - eventType: click - trigger: type = "track" and event = "Product Clicked" + eventName: Product Viewed + eventType: view + trigger: type = "track" and event = "Product Viewed" - actionId: amxZNcsLHjUhJTRP5YHwaE name: Send product list filtered events to Algolia fields: @@ -6784,9 +6795,9 @@ items: eventType: click trigger: type = "track" and event = "Product List Filtered" - actionId: 2KEUSgKKYG2W82DdaBGsF4 - name: Send conversion events to Algolia + name: Send add-to-cart events to Algolia fields: - eventSubtype: purchase + eventSubtype: addToCart products: '@arrayPath': - $.properties.products @@ -6828,7 +6839,13 @@ items: '@path': $.properties eventName: Conversion Event eventType: conversion - trigger: type = "track" and event = "Order Completed" + trigger: type = "track" and event = "Product Added" + - actionId: pMj2PGgP2c3hHzLMae4iBb + name: Algolia Plugin + fields: {} + trigger: >- + type = "track" or type = "identify" or type = "group" or type = "page" or + type = "alias" partnerOwned: true - id: 66543798b2fb3cb3e9ff992c display_name: Amazon Ads DSP and AMC @@ -6895,7 +6912,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: iWAEFNBAkAAWfg68qS8677 + - id: uqsytr7irf9murj6hGc3nP sortOrder: 1 fieldKey: externalUserId label: External User ID @@ -6909,12 +6926,12 @@ items: choices: null dynamic: false allowNull: false - - id: jazuKzEArste3n3VigWPPm + - id: 5LTeP8VWAkoAU3jq59vMpB sortOrder: 2 fieldKey: email label: Email type: STRING - description: User email address. Vaule will be hashed before sending to Amazon. + description: User email address. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -6929,12 +6946,12 @@ items: choices: null dynamic: false allowNull: false - - id: fzXUeosx365WgNsS33LFGt + - id: 9RtG3Z4xxYWjPABeJaoahm sortOrder: 3 fieldKey: firstName label: First name type: STRING - description: User first name. Value will be hashed before sending to Amazon. + description: User first name. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.properties.first_name @@ -6943,12 +6960,12 @@ items: choices: null dynamic: false allowNull: false - - id: 75uHVRXZhaeJaSTB8mo3At + - id: VduS1yHQpryezQjTL2UK2 sortOrder: 4 fieldKey: lastName label: Last name type: STRING - description: User Last name. Value will be hashed before sending to Amazon. + description: User Last name. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.properties.last_name @@ -6957,12 +6974,12 @@ items: choices: null dynamic: false allowNull: false - - id: 8z93d5siat8d7Sr9E7pov6 + - id: bZNfzrpvhf8AuDsVbVJApz sortOrder: 5 fieldKey: phone label: Phone type: STRING - description: Phone Number. Value will be hashed before sending to Amazon. + description: Phone Number. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.properties.phone @@ -6971,12 +6988,12 @@ items: choices: null dynamic: false allowNull: false - - id: ndcdbNWMsUr2tKq13Hpiam + - id: ChKz6e7fh9PHJ3DCxWfzw sortOrder: 6 fieldKey: postal label: Postal type: STRING - description: POstal Code. Value will be hashed before sending to Amazon. + description: POstal Code. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.properties.postal @@ -6985,12 +7002,12 @@ items: choices: null dynamic: false allowNull: false - - id: aZG1KC5Qdxa5QPa3wa3JFy + - id: hkUcgsdMFeDZzXTrV7BvFs sortOrder: 7 fieldKey: state label: State type: STRING - description: State Code. Value will be hashed before sending to Amazon. + description: State Code. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.properties.state @@ -6999,12 +7016,12 @@ items: choices: null dynamic: false allowNull: false - - id: agSk4UTz5AiFsQjrURz7vb + - id: sUMyhH2Yr1xC6QnRy5Mxf7 sortOrder: 8 fieldKey: city label: City type: STRING - description: City name. Value will be hashed before sending to Amazon. + description: City name. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.properties.city @@ -7013,12 +7030,12 @@ items: choices: null dynamic: false allowNull: false - - id: qE7R8vnmDu1uz1b4RmDkhR + - id: rxodfctwzztkCJH8m3Y8Tf sortOrder: 9 fieldKey: address label: Address type: STRING - description: Address Code. Value will be hashed before sending to Amazon. + description: Address Code. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.properties.address @@ -7027,7 +7044,7 @@ items: choices: null dynamic: false allowNull: false - - id: ob3A7PV1cEKJg4GFTYeeXY + - id: sHaUo7WSARy6ccxNNyUGvx sortOrder: 11 fieldKey: enable_batching label: Enable Batching @@ -24612,7 +24629,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: x53nX9sScgCzLdFpxshPqV + - id: MYWx7cbqiDEtU3oMu4uZp sortOrder: 0 fieldKey: external_id label: External User ID @@ -24631,7 +24648,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4yo6yvyVzW67E5Ci8dmH9m + - id: dmoSCo2UqPKRx6eqY7J4mn sortOrder: 1 fieldKey: user_alias label: User Alias Object @@ -24648,7 +24665,7 @@ items: dynamic: false allowNull: false hidden: false - - id: k1qCv78j49HNUiDfv9DUMs + - id: rzBuJ21aYq1uQdKZCoizBH sortOrder: 2 fieldKey: device_id label: Device ID @@ -24664,7 +24681,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jYZzGtHsu9Kg7eGdzxtpQ7 + - id: vnSpRMiHSMieY4V19FQ3dP sortOrder: 5 fieldKey: enable_batching label: Enable Batching @@ -24678,7 +24695,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 3Y3GygGwnrUh4ncoKPRNqm + - id: 37hRwjbqcqtLa8ZiUAvPhE sortOrder: 6 fieldKey: personas_audience_key label: Segment Engage Audience Key @@ -24694,29 +24711,6 @@ items: dynamic: false allowNull: false hidden: false - - id: t4mKB7BJAhijBgbpHB596r - sortOrder: 7 - fieldKey: event_properties - label: Event Properties - type: OBJECT - description: >- - Displays properties of the event to add/remove users to a cohort and the - traits of the specific user - placeholder: '' - defaultValue: - '@if': - exists: - '@path': $.properties - then: - '@path': $.properties - else: - '@path': $.traits - required: true - multiple: false - choices: null - dynamic: false - allowNull: false - hidden: false presets: [] partnerOwned: false - id: 60fb01aec459242d3b6f20c1 @@ -24785,9 +24779,8 @@ items: defaultValue: false description: >- To indicate that you trust the Braze dashboard users to write - non-malicious Javascript click actions, set this property to true. If - enableHtmlInAppMessages is true, this option will also be set to true. - [See more + non-malicious Javascript click actions, set this property to true. [See + more details](https://js.appboycdn.com/web-sdk/latest/doc/modules/appboy.html#initializationoptions) required: false label: Allow User Supplied Javascript @@ -24970,7 +24963,7 @@ items: label: Safari Website Push ID - name: sdkVersion type: select - defaultValue: '4.10' + defaultValue: '5.8' description: The version of the Braze SDK to use required: true label: SDK Version @@ -25020,7 +25013,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: 6Q1QaSvy8Uwaj1FXX1nQim + - id: stJYHuavLhjpZSbbtWnA9F sortOrder: 0 fieldKey: eventName label: Event Name @@ -25034,7 +25027,7 @@ items: choices: null dynamic: false allowNull: false - - id: rCF4hvZL1FfBLZqypECaYN + - id: oqyLaWBRrKvgipb129suEp sortOrder: 1 fieldKey: eventProperties label: Event Properties @@ -25056,7 +25049,7 @@ items: hidden: false defaultTrigger: type = "identify" or type = "group" fields: - - id: h7m1HSpMDMMkrwyQ4Y2pwH + - id: dxeRTvLWTwQDdN6fvK5VVo sortOrder: 0 fieldKey: external_id label: External User ID @@ -25070,7 +25063,7 @@ items: choices: null dynamic: false allowNull: false - - id: eeCv1kJYS3BMG3PV6m49tM + - id: Vht76mw1WSQtpe4F2hq9y sortOrder: 1 fieldKey: country label: Country @@ -25084,7 +25077,7 @@ items: choices: null dynamic: false allowNull: true - - id: maHTDJD6jjaPyGeqAeCAWB + - id: t2f6CUzpAgn5XxgJk1xNxu sortOrder: 2 fieldKey: current_location label: Current Location @@ -25096,7 +25089,7 @@ items: choices: null dynamic: false allowNull: true - - id: qxtRJD9EezUBUpoCrs9T1d + - id: ggD55GKgXsecAwdSxmhdMi sortOrder: 3 fieldKey: custom_attributes label: Custom Attributes @@ -25112,7 +25105,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4ZEyKQrLYop2FmwrhyozB3 + - id: uvVWeQxCMHz7TdwD7DnXuS sortOrder: 4 fieldKey: dob label: Date of Birth @@ -25124,7 +25117,7 @@ items: choices: null dynamic: false allowNull: true - - id: ns3C16DRH3Jfjdyw29e9jc + - id: edhysng2wqWHGcMTuKZxqe sortOrder: 5 fieldKey: email label: Email @@ -25138,7 +25131,7 @@ items: choices: null dynamic: false allowNull: true - - id: wbPyLK2tqmGHmtYUQFP8SX + - id: rZx6KjpoUpFHR7t2Fmiq5n sortOrder: 6 fieldKey: email_subscribe label: Email Subscribe @@ -25153,7 +25146,7 @@ items: choices: null dynamic: false allowNull: false - - id: wPfiYFTdjsWg7FrNhSTzgA + - id: idp8ibzUex7Q8NRoXjRFNt sortOrder: 7 fieldKey: first_name label: First Name @@ -25167,7 +25160,7 @@ items: choices: null dynamic: false allowNull: true - - id: 6fshCvxdyQvM2Vj6thn5sm + - id: wJUxu5uqed8QwikHQGJPwr sortOrder: 8 fieldKey: last_name label: Last Name @@ -25181,7 +25174,7 @@ items: choices: null dynamic: false allowNull: false - - id: htenqgZoB34c7XTYBUxDE4 + - id: AuoHPe9CaefQ4FPSxmfUB sortOrder: 9 fieldKey: gender label: Gender @@ -25197,7 +25190,7 @@ items: choices: null dynamic: false allowNull: true - - id: vUvwztZVwVTZ6mf6u7r2ia + - id: qHDUBGmgkX88vWktNt83Yq sortOrder: 10 fieldKey: home_city label: Home City @@ -25211,7 +25204,7 @@ items: choices: null dynamic: false allowNull: true - - id: d8ogAxX7WgUUFXuHh7wcdR + - id: thsnNVbYj21rf1NS8iMBHA sortOrder: 11 fieldKey: image_url label: Image URL @@ -25225,7 +25218,7 @@ items: choices: null dynamic: false allowNull: false - - id: r8WtFganYGATKoW6Dxfc7C + - id: u3oVoEBu4cDAU5UoWTXaML sortOrder: 12 fieldKey: language label: Language @@ -25237,7 +25230,7 @@ items: choices: null dynamic: false allowNull: true - - id: fEvwmPnSLsg7MSzEKnpLWY + - id: uUv5TJoDTBXqw7RuQmAbky sortOrder: 13 fieldKey: phone label: Phone Number @@ -25251,7 +25244,7 @@ items: choices: null dynamic: false allowNull: true - - id: bJEZPpwKnTzTmNrBCafDMr + - id: vPztZQqR8pmaBv8aqTr5q1 sortOrder: 14 fieldKey: push_subscribe label: Push Subscribe @@ -25266,7 +25259,7 @@ items: choices: null dynamic: false allowNull: false - - id: qeprmWFJtkaC27aBhS5tt4 + - id: cQon4TDMCpkYVTpVvQHZtT sortOrder: 15 fieldKey: subscription_groups label: Subscription Groups @@ -25291,7 +25284,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Order Completed" fields: - - id: wxZJp2DL8VbeS7QXe8tqv9 + - id: 8ydScjmfB9212W6BD1D3id sortOrder: 0 fieldKey: purchaseProperties label: Purchase Properties @@ -25311,7 +25304,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8BkKtPyxuPNYzcWTcokXJc + - id: 7DU4vc5BQoMQbfUBtFaLst sortOrder: 1 fieldKey: products label: Products @@ -25326,6 +25319,14 @@ items: dynamic: false allowNull: false presets: + - actionId: uL67YU9rAsuT4cp4dNNmBu + name: Order Completed calls + fields: + purchaseProperties: + '@path': $.properties + products: + '@path': $.properties.products + trigger: type = "track" and event = "Order Completed" - actionId: fRZrfm4TC5JL3AGeRnLk3W name: Track Calls fields: @@ -25360,14 +25361,6 @@ items: subscription_groups: '@path': $.traits.braze_subscription_groups trigger: type = "identify" or type = "group" - - actionId: uL67YU9rAsuT4cp4dNNmBu - name: Order Completed calls - fields: - purchaseProperties: - '@path': $.properties - products: - '@path': $.properties.products - trigger: type = "track" and event = "Order Completed" partnerOwned: false - id: 6241e78214aad278a6322f52 display_name: Breyta CRM @@ -30464,6 +30457,12 @@ items: description: Your Criteo API client secret required: true label: API Client Secret + - name: enable_batching + type: boolean + defaultValue: true + description: 'Important: This setting should remain enabled!' + required: false + label: Enable Batching actions: - id: i1hNum2eXrRDke1x4b9Jn6 name: Remove users from Audience @@ -30473,7 +30472,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Audience Exited" fields: - - id: 9TuG4fb3DeFRn3bTksy46o + - id: pvW4CibYBwEGgfxfZfXh85 sortOrder: 0 fieldKey: audience_key label: Audience key @@ -30488,7 +30487,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hQ46BST86zt2yCssvjTsvq + - id: 62rLxvUKZJaXYM1eyfReSQ sortOrder: 1 fieldKey: event label: Event name @@ -30503,7 +30502,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fEBbjDhiDzQSbcyXgy5jdX + - id: cgFW7QiYXTQrz8WDJkrenk sortOrder: 2 fieldKey: email label: Email @@ -30518,7 +30517,7 @@ items: dynamic: false allowNull: false hidden: false - - id: myfR2g1ondo3CV5D5uKyQc + - id: 5YJHvHqrWD1DEdotrKS3He sortOrder: 3 fieldKey: hash_emails label: Hash Emails @@ -30535,7 +30534,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 48UG5pCmVJYuQZfpeWNqHB + - id: 2zw36yjEgDdHDivz1GF6XN sortOrder: 4 fieldKey: enable_batching label: Enable Batching? @@ -30555,7 +30554,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Audience Entered" fields: - - id: 4WwVWm1hzvy7JqarCbMJir + - id: 6APzV8AJGTNmUhtubUH4kX sortOrder: 0 fieldKey: audience_key label: Audience key @@ -30570,7 +30569,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qAAEHg71NgxcSc3jxJMYoh + - id: tf6QTage6RqtuffuSkydtE sortOrder: 1 fieldKey: event label: Event name @@ -30585,7 +30584,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 5dTYi6v1kKV4W1BqGJ3yH7 + - id: s5FsjXJB5GQEZZTfvNZ1eN sortOrder: 2 fieldKey: email label: Email @@ -30600,7 +30599,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tDySYCbVen29KtGiu892jz + - id: eQypK4Yt5Rc7PXened4SaB sortOrder: 3 fieldKey: hash_emails label: Hash Emails @@ -30617,7 +30616,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fkRfFZemCKGVz9f8y5jHzQ + - id: qAiMkshChZhhByLgNdVKa3 sortOrder: 4 fieldKey: enable_batching label: Enable Batching? @@ -33051,7 +33050,7 @@ items: hidden: false defaultTrigger: event = "Audience Exited" fields: - - id: fXFR2b5pNgUVFsXD8qmwvQ + - id: 87DyUk3WGykAMRA1nqLQP1 sortOrder: 2 fieldKey: mobile_advertising_id label: Mobile Advertising ID @@ -33065,7 +33064,7 @@ items: choices: null dynamic: false allowNull: false - - id: d5kfNzrJmdCpmtD4YM1eZG + - id: p7kDAf4zEKkiv6a9HnMgPc sortOrder: 3 fieldKey: google_gid label: Google GID @@ -33081,7 +33080,7 @@ items: choices: null dynamic: false allowNull: false - - id: b5JqEKs2cLtRxL7pGZYZL + - id: 7isz7DC9zoFH3RWHPm6qn2 sortOrder: 4 fieldKey: partner_provided_id label: Partner Provided ID @@ -33105,7 +33104,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: wUMaDo7XGxk7t6ccibC5RT + - id: tWR4nxVtTHhqEXe7XfuC5Z sortOrder: 2 fieldKey: mobile_advertising_id label: Mobile Advertising ID @@ -33119,7 +33118,7 @@ items: choices: null dynamic: false allowNull: false - - id: r2njfNxsmfoWrLsdHM5GzK + - id: ccUkQ5c4kJtJmnnmtPMgU9 sortOrder: 3 fieldKey: google_gid label: Google GID @@ -33135,7 +33134,7 @@ items: choices: null dynamic: false allowNull: false - - id: kBVti6k7B8cSehgdZcVjv3 + - id: 4xfn7TyFj2Rzthz4ZTYFhh sortOrder: 4 fieldKey: partner_provided_id label: Partner Provided ID @@ -33819,7 +33818,7 @@ items: hidden: false defaultTrigger: type = "identify" or type = "track" fields: - - id: oZi2Jq64L21iyBMEHFoQqa + - id: dusoxVsiwzuAS4NciDPPTh sortOrder: 2 fieldKey: external_audience_id label: External Audience ID @@ -33836,7 +33835,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fx8Ee9kDgASTYxfHufQdPK + - id: iVDKx4fY8RtE6xEMRtEaH7 sortOrder: 3 fieldKey: segment_audience_key label: Audience Key @@ -33851,7 +33850,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8hCiwrwz4RAEMXehiF2SyY + - id: wWVBVh4MwGCmLbGGcTb2Fq sortOrder: 4 fieldKey: traits_or_props label: Traits or Properties @@ -36516,6 +36515,161 @@ items: actions: [] presets: [] partnerOwned: true +- id: 66b1f528d26440823fb27af9 + display_name: Extensible Webhook + name: Extensible Webhook + slug: extensible-webhook + hidden: false + endpoints: + - US + regions: + - us-west-2 + - eu-west-1 + url: connections/destinations/catalog/extensible-webhook + previous_names: + - Extensible Webhook + website: http://www.segment.com + status: PUBLIC_BETA + categories: + - Raw Data + logo: + url: https://cdn-devcenter.segment.com/8e83ff62-3673-4220-ae19-10a19e237fa6.svg + mark: + url: https://cdn-devcenter.segment.com/fe8e7fb8-c800-46f5-898c-7a0636508483.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: sharedSecret + type: string + defaultValue: '' + description: >- + If set, Segment will sign requests with an HMAC in the "X-Signature" + request header. The HMAC is a hex-encoded SHA1 hash generated using this + shared secret and the request body. + required: false + label: Shared Secret + actions: + - id: ja2fMtPLyGVf5gRvcPg2Km + name: Send + slug: send + description: Send an HTTP request. + platform: CLOUD + hidden: false + defaultTrigger: null + fields: + - id: cpvuk4sXMd1Y2MjEfaUhjq + sortOrder: 0 + fieldKey: url + label: URL + type: STRING + description: URL to deliver data to. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kYDuEArgcXFZReFi3r9hYk + sortOrder: 1 + fieldKey: method + label: Method + type: STRING + description: HTTP method to use. + placeholder: '' + defaultValue: POST + required: true + multiple: false + choices: + - label: POST + value: POST + - label: PUT + value: PUT + - label: PATCH + value: PATCH + dynamic: false + allowNull: false + - id: gC9tLMUDMnwqJ2ZHcmz5rC + sortOrder: 2 + fieldKey: batch_size + label: Batch Size + type: NUMBER + description: >- + Maximum number of events to include in each batch. Actual batch sizes + may be lower. + placeholder: '' + defaultValue: 0 + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 734xVeU73UHgLkv84RFPin + sortOrder: 3 + fieldKey: headers + label: Headers + type: OBJECT + description: >- + HTTP headers to send with each request. Only ASCII characters are + supported. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: c4QXdzFu8WoqsMsX4JWqb4 + sortOrder: 4 + fieldKey: data + label: Data + type: OBJECT + description: Payload to deliver to webhook URL (JSON-encoded). + placeholder: '' + defaultValue: + '@path': $. + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qnuUVq1tBSRH8rtw2Zsc4N + sortOrder: 5 + fieldKey: enable_batching + label: Enable Batching? + type: BOOLEAN + description: When enabled, Segment will send events in batches. + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: [] + partnerOwned: true - id: 5e79ef31929aef3bdfbc53a5 display_name: Extole Platform name: Extole Platform @@ -36834,7 +36988,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 88gqVMdzRqTV1adn9fv6Ze + - id: ideu5aAiSPGxn7KtA6xCTq sortOrder: 0 fieldKey: action_source label: Action Source @@ -36866,7 +37020,7 @@ items: value: other dynamic: false allowNull: false - - id: AJRAfBHCzToWTSeQUhvMd + - id: 7NXVFT2fbaEJaVSc6s2rc3 sortOrder: 1 fieldKey: event_name label: Event Name @@ -36885,7 +37039,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4tC9E1ahrGFA1hbtHZQm1N + - id: 6oQRJigyEq39Pp5oH4jx3E sortOrder: 2 fieldKey: event_time label: Event Time @@ -36901,7 +37055,7 @@ items: choices: null dynamic: false allowNull: false - - id: mHBozHSnwT2Y6RyZAsBjVy + - id: aDaGYA5N13UZZnZK9wPQPq sortOrder: 3 fieldKey: user_data label: User Data @@ -36951,7 +37105,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9aLqm8bvBpim2h3RksJWvD + - id: i6vck1oS9VuqBkZK2ef85j sortOrder: 4 fieldKey: app_data_field label: App Events Fields @@ -36995,7 +37149,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7UbV7Aa1BgmM3mhBKJnySC + - id: pGJgJYRUKne3FiLptxbYYm sortOrder: 5 fieldKey: custom_data label: Custom Data @@ -37011,7 +37165,7 @@ items: choices: null dynamic: false allowNull: false - - id: pgT5VQMAXyM6JmtuDizCMQ + - id: h5aUQQoZMkq3KyoAfCoDXp sortOrder: 6 fieldKey: event_id label: Event ID @@ -37027,7 +37181,7 @@ items: choices: null dynamic: false allowNull: false - - id: vVnLxZqFVGd6KCn9opVYmR + - id: uCWs8qbe2rUq6U8mxa1Ayo sortOrder: 7 fieldKey: event_source_url label: Event Source URL @@ -37044,7 +37198,7 @@ items: choices: null dynamic: false allowNull: false - - id: cbKjUK3nvmz15B11bRcNeA + - id: kTB2i1mjiAroaZp1sJ3ENK sortOrder: 8 fieldKey: data_processing_options label: Data Processing Options @@ -37061,7 +37215,7 @@ items: choices: null dynamic: false allowNull: false - - id: voT7DxmpJ4hMaWwGbcGP54 + - id: ockVhJmPxJ6jodDCq3EYeQ sortOrder: 9 fieldKey: data_processing_options_country label: Data Processing Country @@ -37082,7 +37236,7 @@ items: value: 1 dynamic: false allowNull: false - - id: hJy3mERU8kWhfAHUHaaey8 + - id: qDuJieU67hZY7sFWheF1bs sortOrder: 10 fieldKey: data_processing_options_state label: Data Processing State @@ -37123,7 +37277,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: uFnsDjvCG53rE5pcaxRAsK + - id: a2WqfpDsGefszi39Ht7diR sortOrder: 11 fieldKey: test_event_code label: Test Event Code @@ -37148,7 +37302,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Order Completed" fields: - - id: tZ3W3LNS5xUsWQRi33BcbJ + - id: h1eh8b7Wfp8vtTJtwjXd1H sortOrder: 0 fieldKey: action_source label: Action Source @@ -37180,7 +37334,7 @@ items: value: other dynamic: false allowNull: false - - id: sGnp8fnyoh1f4sUd7Z75YX + - id: 53jSRgQXYZXurGRGkmZxwz sortOrder: 1 fieldKey: currency label: Currency @@ -37196,7 +37350,7 @@ items: choices: null dynamic: false allowNull: false - - id: x7DZEqnyMcmWBMhVPb8TGv + - id: uBbR3JqHdYnnkzDcnh2pDY sortOrder: 2 fieldKey: event_time label: Event Time @@ -37212,7 +37366,7 @@ items: choices: null dynamic: false allowNull: false - - id: pWJvVLww7XJgb9LBjB3PgU + - id: 3MeBYVy2vA4FnJwLEpxDX7 sortOrder: 3 fieldKey: user_data label: User Data @@ -37262,7 +37416,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9s2m7E3F3NZKPi2XLgbXrt + - id: rAXNYRKa4vr5N6sBq6XRQ9 sortOrder: 4 fieldKey: app_data_field label: App Events Fields @@ -37306,7 +37460,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5yXU9YL2eGX8HJoRnWaxC7 + - id: 9b6zfBH5VozwvHLUtpsVxY sortOrder: 5 fieldKey: value label: Value @@ -37322,7 +37476,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2C99nUu8VmTqQzacAHHgVW + - id: ttM1ZQW8g9qwVHcxRYbK6Q sortOrder: 6 fieldKey: content_ids label: Content IDs @@ -37334,7 +37488,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9bkpBHhh5ZL8QUHBnRXNWH + - id: uEtqYDCcBEBNxX1uJzat1M sortOrder: 7 fieldKey: content_name label: Content Name @@ -37346,7 +37500,7 @@ items: choices: null dynamic: false allowNull: false - - id: onSzkPsyrHo8exnZwGosv3 + - id: gj6akyC1FpmqHQ876EavHr sortOrder: 8 fieldKey: content_type label: Content Type @@ -37362,7 +37516,7 @@ items: choices: null dynamic: false allowNull: false - - id: iNcDpkJvwCstHHSQwUBi3y + - id: sn7p7qQZfUTUiW7vV9QtXZ sortOrder: 9 fieldKey: contents label: Contents @@ -37386,7 +37540,7 @@ items: choices: null dynamic: false allowNull: false - - id: aG84chRr5DM2GpmG8Lm8wm + - id: dt7m19kG8emuSbAq6RneBv sortOrder: 10 fieldKey: event_id label: Event ID @@ -37402,7 +37556,7 @@ items: choices: null dynamic: false allowNull: false - - id: n6sxYVaEEgsWhbUnBDLUP2 + - id: 9yTaszuPU7ki7ts1cFQ2Hb sortOrder: 11 fieldKey: event_source_url label: Event Source URL @@ -37419,7 +37573,7 @@ items: choices: null dynamic: false allowNull: false - - id: Z6AELUz3AcXstCnadHMct + - id: 86dpXTwCwqAssyHtLYX7M5 sortOrder: 12 fieldKey: num_items label: Number of Items @@ -37431,7 +37585,7 @@ items: choices: null dynamic: false allowNull: false - - id: pU6ZHTpam6kLYduJqfRHCv + - id: vL9JudUtEScKhZ3Y6swiD6 sortOrder: 13 fieldKey: custom_data label: Custom Data @@ -37447,7 +37601,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3pY331Ejyv7tVNhGLHcutz + - id: aoGJLW5tsf8dgmafjCsAXf sortOrder: 14 fieldKey: data_processing_options label: Data Processing Options @@ -37464,7 +37618,7 @@ items: choices: null dynamic: false allowNull: false - - id: ovn59xF4aeaWnq1tGnfUdn + - id: 9c3T2m6gCh2vdNr3oPEyin sortOrder: 15 fieldKey: data_processing_options_country label: Data Processing Country @@ -37485,7 +37639,7 @@ items: value: 1 dynamic: false allowNull: false - - id: oZXkhMsnDKhhcBVz26qr1i + - id: 2yRUEqBw1fRBfAPWHPgcL2 sortOrder: 16 fieldKey: data_processing_options_state label: Data Processing State @@ -37526,7 +37680,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: hPFikH5JEb4wHNXztCRZUZ + - id: gAXdMTPvgTct8tDmMq1cpY sortOrder: 17 fieldKey: test_event_code label: Test Event Code @@ -37551,7 +37705,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Products Searched" fields: - - id: 2MgH3cXZTKaZFKQUM4dr5f + - id: ocWugXCTMnzJ9dmC6xQkwC sortOrder: 0 fieldKey: action_source label: Action Source @@ -37583,7 +37737,7 @@ items: value: other dynamic: false allowNull: false - - id: 2jDB6cKjXoyFipAkeBZmjj + - id: ik3xxL4cVmqthf8zXPAw5q sortOrder: 1 fieldKey: event_time label: Event Time @@ -37599,7 +37753,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9xrWSUMDc8NSCM4AmxDnyo + - id: cUxpe4VYkQHBpoiEWBzFGL sortOrder: 2 fieldKey: user_data label: User Data @@ -37649,7 +37803,7 @@ items: choices: null dynamic: false allowNull: false - - id: mYZfayXKWvNbTHq9ChH3qm + - id: 5pJXT89Uifi8sT59EAo5v3 sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -37693,7 +37847,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3TwwnSgaCWNqysKGcFRFtM + - id: gPnirwFVDuYfqEDVNggfQ9 sortOrder: 4 fieldKey: content_category label: Content Category @@ -37705,7 +37859,7 @@ items: choices: null dynamic: false allowNull: false - - id: iUPt6ctzeQGng3bpgFdURQ + - id: pcbarwHesrQpUSEBP759gJ sortOrder: 5 fieldKey: content_ids label: Content IDs @@ -37717,7 +37871,7 @@ items: choices: null dynamic: false allowNull: false - - id: gnpc7J4tC1Br1Bg21E4Whc + - id: 4WM16ibS8GQUMcafjRG1gQ sortOrder: 6 fieldKey: contents label: Contents @@ -37741,7 +37895,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8tYu2RzfaZNZZ2ndQYB8Ar + - id: jsWRXj1JL6GutaxWpnmS6z sortOrder: 7 fieldKey: currency label: Currency @@ -37757,7 +37911,7 @@ items: choices: null dynamic: false allowNull: false - - id: vFf1e55armhN8d8t99PyFn + - id: pTRmC76ncY5VUMejA5Y5Q1 sortOrder: 8 fieldKey: event_id label: Event ID @@ -37773,7 +37927,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7fDTdwVuP6VQFzVHb4mavE + - id: tdPtG6A1sEC6zVdpBRqkSs sortOrder: 9 fieldKey: event_source_url label: Event Source URL @@ -37790,7 +37944,7 @@ items: choices: null dynamic: false allowNull: false - - id: nh9EgchSgsbwLktiBbMYRj + - id: 7TccJvjzqDuSaMj7Pu3YH6 sortOrder: 10 fieldKey: search_string label: Search String @@ -37804,7 +37958,7 @@ items: choices: null dynamic: false allowNull: false - - id: xpfySxTPRF6d3RuDB1UNPm + - id: xeHrrinyVcJMQS97LbtZfp sortOrder: 11 fieldKey: value label: Value @@ -37818,7 +37972,7 @@ items: choices: null dynamic: false allowNull: false - - id: j5FCTvg4WjuSZhajwekFhi + - id: 2JVh41ANHQM3QSTzrm4k2V sortOrder: 12 fieldKey: custom_data label: Custom Data @@ -37834,7 +37988,7 @@ items: choices: null dynamic: false allowNull: false - - id: t2ndxpMwMtvL61tbAV1bFU + - id: irjaZhWaMP56zPfz5ZYgkS sortOrder: 13 fieldKey: data_processing_options label: Data Processing Options @@ -37851,7 +38005,7 @@ items: choices: null dynamic: false allowNull: false - - id: iXZu27oKqDb8DQ9DGBdyD1 + - id: eJm61Dn9JcKynrq5CYb9Xm sortOrder: 14 fieldKey: data_processing_options_country label: Data Processing Country @@ -37872,7 +38026,7 @@ items: value: 1 dynamic: false allowNull: false - - id: 78dEffp9ztBj9potwT2fGK + - id: 8sPpV8CW3KrH8x6sxCZvGy sortOrder: 15 fieldKey: data_processing_options_state label: Data Processing State @@ -37913,7 +38067,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: xjTHeME26cikp18jSfdL13 + - id: jjQ76oZfcUJquUCqU9PN6f sortOrder: 16 fieldKey: test_event_code label: Test Event Code @@ -37938,7 +38092,7 @@ items: hidden: false defaultTrigger: type = "page" fields: - - id: bFurdmhcKkXtBBPoWyHCp8 + - id: t91vgt68sq8jei8kmDuHZp sortOrder: 0 fieldKey: action_source label: Action Source @@ -37970,7 +38124,7 @@ items: value: other dynamic: false allowNull: false - - id: jzzRdrSbg1KUFC76NEGMCK + - id: 2itabjHVkvP9pbVcD9JCUx sortOrder: 1 fieldKey: event_time label: Event Time @@ -37986,7 +38140,7 @@ items: choices: null dynamic: false allowNull: false - - id: oWPeGtkyR3RZRu2J9gicBD + - id: 3o8RsMJhRNbTKxZvUxGSsp sortOrder: 2 fieldKey: user_data label: User Data @@ -38036,7 +38190,7 @@ items: choices: null dynamic: false allowNull: false - - id: s99pijAJT5EWw163CoD8ay + - id: tAhTLSS3T2sDxNHMPaXU82 sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -38080,7 +38234,7 @@ items: choices: null dynamic: false allowNull: false - - id: uV6CfB2hBAFpKv2LefXSdZ + - id: m4rjjw4Cp6SBASM6JcLC8V sortOrder: 4 fieldKey: event_id label: Event ID @@ -38096,7 +38250,7 @@ items: choices: null dynamic: false allowNull: false - - id: te25cjRCQShymQwNRmzYaZ + - id: cqXGnaPGoAA9soyrYRu2jt sortOrder: 5 fieldKey: event_source_url label: Event Source URL @@ -38113,7 +38267,7 @@ items: choices: null dynamic: false allowNull: false - - id: qTKCYNkKQZZcDsNULwsSux + - id: 6Wr68uL5kgdxQkMEuc7v28 sortOrder: 6 fieldKey: custom_data label: Custom Data @@ -38129,7 +38283,7 @@ items: choices: null dynamic: false allowNull: false - - id: rGYHiMnWJnJjmJXdXDrfb9 + - id: qYfmuEhcq465DokJNHQDd4 sortOrder: 7 fieldKey: data_processing_options label: Data Processing Options @@ -38146,7 +38300,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4fEZ6MFmNRVjzegAVw6Vt9 + - id: 6m8xoQtzDmQWZgqLNfEgCY sortOrder: 8 fieldKey: data_processing_options_country label: Data Processing Country @@ -38167,7 +38321,7 @@ items: value: 1 dynamic: false allowNull: false - - id: 7KPwRZ8C6T1wtinYj1RC1Y + - id: u58oTor4wPJWihsxyQ4j2p sortOrder: 9 fieldKey: data_processing_options_state label: Data Processing State @@ -38208,7 +38362,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: nYZGmuANoD1etUzeXFDmc6 + - id: fzokXwgoxTSW8QCsSnAz5U sortOrder: 10 fieldKey: test_event_code label: Test Event Code @@ -38233,7 +38387,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Checkout Started" fields: - - id: 5WqV8BJ5boV5E8xycJvDhr + - id: 8QU1LNTwJN8oyj2LgMcgGS sortOrder: 0 fieldKey: action_source label: Action Source @@ -38265,7 +38419,7 @@ items: value: other dynamic: false allowNull: false - - id: 2hffbu6NBYgkPncD2PAvj8 + - id: obnAkQQfVAx3jmuGwNTmaB sortOrder: 1 fieldKey: event_time label: Event Time @@ -38281,7 +38435,7 @@ items: choices: null dynamic: false allowNull: false - - id: qSUuUicABBZb2WJhFx83mh + - id: 6DK3GcGXaitGw8dAeD486E sortOrder: 2 fieldKey: user_data label: User Data @@ -38331,7 +38485,7 @@ items: choices: null dynamic: false allowNull: false - - id: ow9UTw1ydDTc82fKA8Pcdj + - id: boh283xLzzT4Rv3uz5t2uF sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -38375,7 +38529,7 @@ items: choices: null dynamic: false allowNull: false - - id: bu4bLAamE1K37x3gEfX6vM + - id: py2L7sepK7z3ZtjVMTYsGq sortOrder: 4 fieldKey: content_category label: Content Category @@ -38387,7 +38541,7 @@ items: choices: null dynamic: false allowNull: false - - id: vpdmUgHMThTkhxtsWe3j9q + - id: 4Vs7BstFuMLzXnMjgu3UBS sortOrder: 5 fieldKey: content_ids label: Content IDs @@ -38399,7 +38553,7 @@ items: choices: null dynamic: false allowNull: false - - id: ioTqF4iGoy86vPj6D1MYeV + - id: uBk1SrUTxgsqaToKvAagMw sortOrder: 6 fieldKey: contents label: Contents @@ -38423,7 +38577,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3xE7Zg4bcnygMtSzhHnZUY + - id: vAYrsC93M2jjqbuHEiop5E sortOrder: 7 fieldKey: currency label: Currency @@ -38439,7 +38593,7 @@ items: choices: null dynamic: false allowNull: false - - id: hHaGbvJNoJzTtSfCfHef4g + - id: eccrK3w7c8swBsEtj9ffhZ sortOrder: 8 fieldKey: event_id label: Event ID @@ -38455,7 +38609,7 @@ items: choices: null dynamic: false allowNull: false - - id: txjExoJhnjfreT9bSCJNMr + - id: fZ2vCVvT6aZZJkMLArR4n3 sortOrder: 9 fieldKey: event_source_url label: Event Source URL @@ -38472,7 +38626,7 @@ items: choices: null dynamic: false allowNull: false - - id: bVg7A9U3fXhuWqgyAP3S7u + - id: a3itAZxz9MhJZpjk66Kyri sortOrder: 10 fieldKey: num_items label: Number of Items @@ -38484,7 +38638,7 @@ items: choices: null dynamic: false allowNull: false - - id: aShwQCXoQBdKcRaXGPfok3 + - id: crHE3n3oDa7GkqH76EoSAS sortOrder: 11 fieldKey: value label: Value @@ -38500,7 +38654,7 @@ items: choices: null dynamic: false allowNull: false - - id: k9Svr6Cq62ZKXfzpHxRWz3 + - id: qFRt9bKxS9sgB3i2mWpSL6 sortOrder: 12 fieldKey: custom_data label: Custom Data @@ -38516,7 +38670,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9PBZ7kk5TGATT6Km5wKV1m + - id: tVNuwBSoGkCstwr5MMrox2 sortOrder: 13 fieldKey: data_processing_options label: Data Processing Options @@ -38533,7 +38687,7 @@ items: choices: null dynamic: false allowNull: false - - id: vEYKDa4zMnj2X7A2G4EPRw + - id: fQzY4JvgvjPxvkhPxJsfba sortOrder: 14 fieldKey: data_processing_options_country label: Data Processing Country @@ -38554,7 +38708,7 @@ items: value: 1 dynamic: false allowNull: false - - id: e5XXhFsYgUm54w2mjnYgrh + - id: e8Lc8C3XXLmBSxwuuAj6TL sortOrder: 15 fieldKey: data_processing_options_state label: Data Processing State @@ -38595,7 +38749,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: 8zrUC6KqNX3NivrDyAkiig + - id: hHB8uuCpAe29VNCdQg77CJ sortOrder: 16 fieldKey: test_event_code label: Test Event Code @@ -38620,7 +38774,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Viewed" fields: - - id: 8Njbkf2yCxg3p2tfLKxCTN + - id: pd9Y3ofDE2gnEXHTFx8DFk sortOrder: 0 fieldKey: action_source label: Action Source @@ -38652,7 +38806,7 @@ items: value: other dynamic: false allowNull: false - - id: fZwcPuDZTzwKyS1WPMJEjm + - id: vqm7TkibL5xfhsXeurkoZH sortOrder: 1 fieldKey: event_time label: Event Time @@ -38668,7 +38822,7 @@ items: choices: null dynamic: false allowNull: false - - id: oVpbrgNbmCW8hBTn3uHjfv + - id: q32444gCEDsDQPcYr6Dum8 sortOrder: 2 fieldKey: user_data label: User Data @@ -38718,7 +38872,7 @@ items: choices: null dynamic: false allowNull: false - - id: qhUafMXVdmoDJJe2wdcVbn + - id: c7BEozUdCReZ6ew1AGwMU3 sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -38762,7 +38916,7 @@ items: choices: null dynamic: false allowNull: false - - id: stLTFoNNCbzctMeurNLtb9 + - id: p4nBsvw1wNWPxMsgBv9e4u sortOrder: 4 fieldKey: content_category label: Content Category @@ -38774,7 +38928,7 @@ items: choices: null dynamic: false allowNull: false - - id: n69Cgjm3y3i5oW6tToSqw4 + - id: mEtoD8ptJiyszhujfcMCcn sortOrder: 5 fieldKey: content_ids label: Content IDs @@ -38788,7 +38942,7 @@ items: choices: null dynamic: false allowNull: false - - id: n6KyW2rpvJzCEeJo7aX7PS + - id: 4W2yc8o9p8KytfD6BRXKXz sortOrder: 6 fieldKey: content_name label: Content Name @@ -38800,7 +38954,7 @@ items: choices: null dynamic: false allowNull: false - - id: dJYQzhxmm4rXMuf1obZNX + - id: d6nBLo5P16S1bHok7ziFit sortOrder: 7 fieldKey: content_type label: Content Type @@ -38816,7 +38970,7 @@ items: choices: null dynamic: false allowNull: false - - id: vMTLgJR37EPyTCYNbKPBhP + - id: srn8nDyJm2vBEzZVCXu6eH sortOrder: 8 fieldKey: contents label: Contents @@ -38840,7 +38994,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8Vq88yMno4eY9TRKHQEvvE + - id: tbbAcNwoi8HAz5aVfMUTMt sortOrder: 9 fieldKey: currency label: Currency @@ -38856,7 +39010,7 @@ items: choices: null dynamic: false allowNull: false - - id: aH8FFDXZsS7dEXssYPaLTn + - id: raPw7KM13ZKBhF9mDQut6w sortOrder: 10 fieldKey: event_id label: Event ID @@ -38872,7 +39026,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2U2X4dE3RV8q2kHx5VJMA3 + - id: 3h4fLKWzeH8GVcmMouMi4g sortOrder: 11 fieldKey: event_source_url label: Event Source URL @@ -38889,7 +39043,7 @@ items: choices: null dynamic: false allowNull: false - - id: ts7xYxZetntc6dz58LngSf + - id: rktqPta4BpyTZ2L3Uhi7C6 sortOrder: 12 fieldKey: value label: Value @@ -38905,7 +39059,7 @@ items: choices: null dynamic: false allowNull: false - - id: sSFRxZT4m8uLhJiZQgKgNr + - id: 6EKii3Z4EptG1uQCwoEpvy sortOrder: 13 fieldKey: custom_data label: Custom Data @@ -38921,7 +39075,7 @@ items: choices: null dynamic: false allowNull: false - - id: pj4fQXyY4Fyr3Hfx4C5tmg + - id: 6xLuiMruJw6SBSa54sAnxk sortOrder: 14 fieldKey: data_processing_options label: Data Processing Options @@ -38938,7 +39092,7 @@ items: choices: null dynamic: false allowNull: false - - id: ugCyyic3offGjzEzjuv1cS + - id: hdNEAZeoatF1GnqPTZotPZ sortOrder: 15 fieldKey: data_processing_options_country label: Data Processing Country @@ -38959,7 +39113,7 @@ items: value: 1 dynamic: false allowNull: false - - id: kFuckbpZpixr3wQ2pE4SFQ + - id: hzQUbqu5fCJv71mQMS2y1g sortOrder: 16 fieldKey: data_processing_options_state label: Data Processing State @@ -39000,7 +39154,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: 7L3PAxi7NwLJSqta6Chq2s + - id: wZVt1J5xezFZLpMUgUBFVM sortOrder: 17 fieldKey: test_event_code label: Test Event Code @@ -39025,7 +39179,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Added" fields: - - id: tqphsqYTAG6T4NavqkBS1G + - id: Ex1fAN78HPmK9f9dEzwz2 sortOrder: 0 fieldKey: action_source label: Action Source @@ -39057,7 +39211,7 @@ items: value: other dynamic: false allowNull: false - - id: k7nbpPHfuQTGQsDHjKG6Kq + - id: pvBnpZCqx4t7TG4DybvSAG sortOrder: 1 fieldKey: event_time label: Event Time @@ -39073,7 +39227,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4hU7y2cZRN33jgRswR32rL + - id: ozfrDY1aZFzcLoHvQ1kBFu sortOrder: 2 fieldKey: user_data label: User Data @@ -39123,7 +39277,7 @@ items: choices: null dynamic: false allowNull: false - - id: uepg5ZZ6e6txdcAjXgarMM + - id: 84TRE7R4XHhRzqFihJdQxY sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -39167,7 +39321,7 @@ items: choices: null dynamic: false allowNull: false - - id: 95tSEBBNMK28wcmSxNudzL + - id: 3xjtWxM39b56goPeAuBpqe sortOrder: 4 fieldKey: content_ids label: Content IDs @@ -39179,7 +39333,7 @@ items: choices: null dynamic: false allowNull: false - - id: bbscc5ksLzYowxQYz6YFMt + - id: wJKSWvQmQTZEYu9PSjSQTK sortOrder: 5 fieldKey: content_name label: Content Name @@ -39191,7 +39345,7 @@ items: choices: null dynamic: false allowNull: false - - id: tMyG4uQdZsYzr2MP1RexPU + - id: xWqQDujac3gaN2ioWQehS sortOrder: 6 fieldKey: content_type label: Content Type @@ -39207,7 +39361,7 @@ items: choices: null dynamic: false allowNull: false - - id: bzBzaCsud6AtkKL6YByGC8 + - id: 7TfhYa7RJKSRNXvFJqEttK sortOrder: 7 fieldKey: contents label: Contents @@ -39231,7 +39385,7 @@ items: choices: null dynamic: false allowNull: false - - id: vpR8zUaUpiCZen3Q7qbwLy + - id: tN6pXA2hcCc3rLedHApqTh sortOrder: 8 fieldKey: currency label: Currency @@ -39247,7 +39401,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8sAjKaiAJh9VRhaVPTR5S7 + - id: ex8bVRDDFuZ7j66qdRiDhu sortOrder: 9 fieldKey: event_id label: Event ID @@ -39263,7 +39417,7 @@ items: choices: null dynamic: false allowNull: false - - id: v6tSuQnqQur7Ri2yBPdpHp + - id: ditpeSR9mf3dSmQk717i6d sortOrder: 10 fieldKey: event_source_url label: Event Source URL @@ -39280,7 +39434,7 @@ items: choices: null dynamic: false allowNull: false - - id: baumWGFd8Ye9qTuhPYAuzn + - id: aeuw4KE1bKKsWbw9Ytxx1e sortOrder: 11 fieldKey: value label: Value @@ -39296,7 +39450,7 @@ items: choices: null dynamic: false allowNull: false - - id: tCAh5gzjLYk775AWCjAEAo + - id: kDye4YF6hfre9ZDCL1EzxB sortOrder: 12 fieldKey: custom_data label: Custom Data @@ -39312,7 +39466,7 @@ items: choices: null dynamic: false allowNull: false - - id: rSRBcbsT314Ks1XQjW27ZT + - id: aEg3FE4Q2GDFXahVK4eskr sortOrder: 13 fieldKey: data_processing_options label: Data Processing Options @@ -39329,7 +39483,7 @@ items: choices: null dynamic: false allowNull: false - - id: grb4HZLbJKT9r3ebUZ61rS + - id: 2ooassQU6gcfyU2t35xEYk sortOrder: 14 fieldKey: data_processing_options_country label: Data Processing Country @@ -39350,7 +39504,7 @@ items: value: 1 dynamic: false allowNull: false - - id: j23K5CusDNqCzj4R5rjv5z + - id: x5zaksk7rQPCJnCeMrVhE7 sortOrder: 15 fieldKey: data_processing_options_state label: Data Processing State @@ -39391,7 +39545,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: oqQTUepofWQ8mWJ7HLeHcX + - id: 7Dn6K1mbY5S35Xt7rt8aV9 sortOrder: 16 fieldKey: test_event_code label: Test Event Code @@ -39416,7 +39570,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Order Completed" fields: - - id: 3uV7MDUmSgXYQzxNN7hQgW + - id: 8zJ9XQci1P4v6zikBXurFh sortOrder: 0 fieldKey: action_source label: Action Source @@ -39448,7 +39602,7 @@ items: value: other dynamic: false allowNull: false - - id: xxXpQ7rGpgvJtjBKZi7mhZ + - id: ohAEwM4AYWrqbLrU9zRsGH sortOrder: 1 fieldKey: currency label: Currency @@ -39464,7 +39618,7 @@ items: choices: null dynamic: false allowNull: false - - id: ptjbnGcBLKLiouGZCCA5mV + - id: tqW7Fo19Y7s7puPz8jwjVP sortOrder: 2 fieldKey: event_time label: Event Time @@ -39480,7 +39634,7 @@ items: choices: null dynamic: false allowNull: false - - id: oTwUJD9aSbKbwMvvGJuQ95 + - id: wuYFJCcwYaoc8FREbYqQkJ sortOrder: 3 fieldKey: user_data label: User Data @@ -39530,7 +39684,7 @@ items: choices: null dynamic: false allowNull: false - - id: rmEsmmpK1uUQisboKGzpTX + - id: kbVMrC5AKYPfWVpcMGzjT4 sortOrder: 4 fieldKey: app_data_field label: App Events Fields @@ -39574,7 +39728,7 @@ items: choices: null dynamic: false allowNull: false - - id: p7XNDVg772dD6P25ZnDBSX + - id: j8e4PXzfwiNjdj29fqFu8c sortOrder: 5 fieldKey: value label: Value @@ -39590,7 +39744,7 @@ items: choices: null dynamic: false allowNull: false - - id: nTjNaBUxh3zthGj1CHw3XX + - id: 2J1dje2iM7WwYytRT2bkxk sortOrder: 6 fieldKey: content_ids label: Content IDs @@ -39602,7 +39756,7 @@ items: choices: null dynamic: false allowNull: false - - id: tQaH1dxNsoWnvMbYvuWgaH + - id: ftn3eHobozH3kbCkLSbhcv sortOrder: 7 fieldKey: content_name label: Content Name @@ -39614,7 +39768,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9owYqYcG6zgxzuvkk4cuaV + - id: 9A8xsTkphq6kTvkLW5SE83 sortOrder: 8 fieldKey: content_type label: Content Type @@ -39630,7 +39784,7 @@ items: choices: null dynamic: false allowNull: false - - id: np2mQdYQFtdzsZ7FigE3MN + - id: fQxkMaNFU2F2QFrxCVZcRg sortOrder: 9 fieldKey: contents label: Contents @@ -39654,7 +39808,7 @@ items: choices: null dynamic: false allowNull: false - - id: h4oc1byiVaWCWGQGxxtVzZ + - id: nYivRXmfPVD1C4yzqkNyKT sortOrder: 10 fieldKey: event_id label: Event ID @@ -39670,7 +39824,7 @@ items: choices: null dynamic: false allowNull: false - - id: jbRvRcZYSrA9S6KWRyVuXG + - id: pgvVhqoErSNcsV1qUFPGDv sortOrder: 11 fieldKey: event_source_url label: Event Source URL @@ -39687,7 +39841,7 @@ items: choices: null dynamic: false allowNull: false - - id: EALiz2ciirWLKCyJW9T8A + - id: 2JNvrMD5dSc3572kxiB2rP sortOrder: 12 fieldKey: num_items label: Number of Items @@ -39699,7 +39853,7 @@ items: choices: null dynamic: false allowNull: false - - id: wg3J8hJAzTVcCjjim3m1dM + - id: kunMBeUCJ4fk9YNjD9VJLG sortOrder: 13 fieldKey: custom_data label: Custom Data @@ -39715,7 +39869,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7wf1mniWwUFixLZeoA4XgC + - id: m2oB6eDtv1cVShaxigZpds sortOrder: 14 fieldKey: data_processing_options label: Data Processing Options @@ -39732,7 +39886,7 @@ items: choices: null dynamic: false allowNull: false - - id: gEqAC5x5KSnxJQsE4mtB1r + - id: et2JtPMAjQZcbsH6ZRvKNU sortOrder: 15 fieldKey: data_processing_options_country label: Data Processing Country @@ -39753,7 +39907,7 @@ items: value: 1 dynamic: false allowNull: false - - id: 2gGT87oyz533noRAe8uQWc + - id: ah2BL8LpMrGqugQfzHf9ri sortOrder: 16 fieldKey: data_processing_options_state label: Data Processing State @@ -39794,7 +39948,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: 7ZwqHkRssPHBbjRQGmgPnC + - id: vjenyDFjuVBmhzjYkDGXAx sortOrder: 17 fieldKey: test_event_code label: Test Event Code @@ -39819,7 +39973,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Added" fields: - - id: 4HeRaV6wAZV1mnvPfK98YJ + - id: nDwWPKr7azyd5hgKUkr7Yn sortOrder: 0 fieldKey: action_source label: Action Source @@ -39851,7 +40005,7 @@ items: value: other dynamic: false allowNull: false - - id: ankaompQZCm3Lg5iVDUzkS + - id: sC9sgxLpyhHF4c7kZzosay sortOrder: 1 fieldKey: event_time label: Event Time @@ -39867,7 +40021,7 @@ items: choices: null dynamic: false allowNull: false - - id: sEcQQ76TY6fTyDhDwm5Ct2 + - id: 2h2PVYiuovjekg97uAdRBe sortOrder: 2 fieldKey: user_data label: User Data @@ -39917,7 +40071,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3tpnTTzCgZvuKhtcftPcf2 + - id: 9Cv6h79uNu7EA7SHzyneVQ sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -39961,7 +40115,7 @@ items: choices: null dynamic: false allowNull: false - - id: tGGmQFvJakQFwqSUZkGx2w + - id: ozNKeTL3pe6AxwNnUf5QJJ sortOrder: 4 fieldKey: content_ids label: Content IDs @@ -39973,7 +40127,7 @@ items: choices: null dynamic: false allowNull: false - - id: HQHsgnQW22w7PvtyCsPRS + - id: kQVHShiQPPXSoKG7tTEAvU sortOrder: 5 fieldKey: content_name label: Content Name @@ -39985,7 +40139,7 @@ items: choices: null dynamic: false allowNull: false - - id: pVEeNb4wcnM1smoeKSGCBg + - id: q2ffsW6Kzvzu8UxKo21Vs1 sortOrder: 6 fieldKey: content_type label: Content Type @@ -40001,7 +40155,7 @@ items: choices: null dynamic: false allowNull: false - - id: hZ6Nmjue1YKCtKTpQHBNYJ + - id: jNdeVuueqzq7iNptJKYwHo sortOrder: 7 fieldKey: contents label: Contents @@ -40025,7 +40179,7 @@ items: choices: null dynamic: false allowNull: false - - id: xAp5NyDBb4V8ExtUft6GBE + - id: 9c9sWP1SniT8fYYVzc5w5E sortOrder: 8 fieldKey: currency label: Currency @@ -40041,7 +40195,7 @@ items: choices: null dynamic: false allowNull: false - - id: qZqEq486PkFpjaNffHUvEj + - id: qHELazMr9m5dxGaC5wsJMR sortOrder: 9 fieldKey: event_id label: Event ID @@ -40057,7 +40211,7 @@ items: choices: null dynamic: false allowNull: false - - id: a6DwJb4LCMVRK495U2SkLZ + - id: vV5UuE1dqDpLQ3dSfcbHvd sortOrder: 10 fieldKey: event_source_url label: Event Source URL @@ -40074,7 +40228,7 @@ items: choices: null dynamic: false allowNull: false - - id: dMoC2gJiN4ATfM9XD9aFyD + - id: oyW6QGdzaLtRCJA5mgDUHY sortOrder: 11 fieldKey: value label: Value @@ -40090,7 +40244,7 @@ items: choices: null dynamic: false allowNull: false - - id: qH79TJ9bJXLyWhbrRDYCvt + - id: v8SVNPZ5n2iETnwXrRPoLm sortOrder: 12 fieldKey: custom_data label: Custom Data @@ -40106,7 +40260,7 @@ items: choices: null dynamic: false allowNull: false - - id: a3EdM9iasr7nhk5WM1VgNJ + - id: oCqPafr1nsjErjyYGNqVmy sortOrder: 13 fieldKey: data_processing_options label: Data Processing Options @@ -40123,7 +40277,7 @@ items: choices: null dynamic: false allowNull: false - - id: iXnPRPro3RWPCYGkA9LDNx + - id: mzrBX5FzaPrk6E3sBcGaeU sortOrder: 14 fieldKey: data_processing_options_country label: Data Processing Country @@ -40144,7 +40298,7 @@ items: value: 1 dynamic: false allowNull: false - - id: s8tkXydUGqPrm7eCHHwskx + - id: sdpLnXwpn3ZS7UG1QNP1h3 sortOrder: 15 fieldKey: data_processing_options_state label: Data Processing State @@ -40185,7 +40339,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: aSmQnLgYxc36E5CWFoGzgW + - id: 3GTNbCtD6SRisnHoZSfRyK sortOrder: 16 fieldKey: test_event_code label: Test Event Code @@ -40210,7 +40364,7 @@ items: hidden: false defaultTrigger: null fields: - - id: mzMPD1Tc9ChjjhhuxmjxsP + - id: rhCbbfBVAJnNbTFyk51Lwb sortOrder: 0 fieldKey: action_source label: Action Source @@ -40242,7 +40396,7 @@ items: value: other dynamic: false allowNull: false - - id: oX8hE5Uo9pxpb2rGH5uLDM + - id: bqXzG6KqYbmv25Zg2cYUQq sortOrder: 1 fieldKey: event_name label: Event Name @@ -40261,7 +40415,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7pEbgWF18cuULeSyU3y7np + - id: MCdQyM9eABPjMpC75k8Rk sortOrder: 2 fieldKey: event_time label: Event Time @@ -40277,7 +40431,7 @@ items: choices: null dynamic: false allowNull: false - - id: ukKTSkG6cyKM5G4L1AKiMc + - id: 5MpCvNY9e3jHuVnKrAqX3a sortOrder: 3 fieldKey: user_data label: User Data @@ -40327,7 +40481,7 @@ items: choices: null dynamic: false allowNull: false - - id: mTvmRGagCvG7vPfT9J9CFa + - id: qukysx8WqRSuQaHR84deNx sortOrder: 4 fieldKey: app_data_field label: App Events Fields @@ -40371,7 +40525,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6Hks5Tama4aDvdhsR5DadU + - id: 8B8cTMdP5j1vbk58voxhxK sortOrder: 5 fieldKey: custom_data label: Custom Data @@ -40387,7 +40541,7 @@ items: choices: null dynamic: false allowNull: false - - id: tfTdAQj8jTdHEeUQpaLe3G + - id: w2hxfwHajMyTZrFeQaJJP4 sortOrder: 6 fieldKey: event_id label: Event ID @@ -40403,7 +40557,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3F3B6XzEm6KfEJvuD7JPsy + - id: o47EhSD7wuaECMSgiHAcqR sortOrder: 7 fieldKey: event_source_url label: Event Source URL @@ -40420,7 +40574,7 @@ items: choices: null dynamic: false allowNull: false - - id: f2R5J966w18QaXNu7b5yWZ + - id: kraMY9MniuspLtmGiafWWN sortOrder: 8 fieldKey: data_processing_options label: Data Processing Options @@ -40437,7 +40591,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2QWPqEznPryfLiW9kNKbp4 + - id: rMGcGXMdm1dxSBWSSGgopW sortOrder: 9 fieldKey: data_processing_options_country label: Data Processing Country @@ -40458,7 +40612,7 @@ items: value: 1 dynamic: false allowNull: false - - id: mShXDw3M3m2swzZPT4m44i + - id: nnbXMCyG2NFhnUcxuKp9Le sortOrder: 10 fieldKey: data_processing_options_state label: Data Processing State @@ -40499,7 +40653,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: stD32dtpC6mHnX5Cq2AYov + - id: sCfvjoLYXNmtSqn53gEv2c sortOrder: 11 fieldKey: test_event_code label: Test Event Code @@ -40524,7 +40678,7 @@ items: hidden: false defaultTrigger: type = "page" fields: - - id: gcEfrBPB9XRMybNLjDuYF1 + - id: ngX88Ni3FKjjo7uSUNpCmx sortOrder: 0 fieldKey: action_source label: Action Source @@ -40556,7 +40710,7 @@ items: value: other dynamic: false allowNull: false - - id: 69DGzG8xaCPRNq1WErgimF + - id: iF89mWxbFmtZcDtoaqdBer sortOrder: 1 fieldKey: event_time label: Event Time @@ -40572,7 +40726,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5tecHGbu48syau9AFPu5WZ + - id: byqoZWMEKAbaPeaRdEhcpy sortOrder: 2 fieldKey: user_data label: User Data @@ -40622,7 +40776,7 @@ items: choices: null dynamic: false allowNull: false - - id: pTBxBsvn17dueuWopzRcP1 + - id: qNwDMBsfvFxtqfgH5Di59r sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -40666,7 +40820,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4ZpExMUwxP8LKwbN7cZ62A + - id: ivejALn2kbvPtHjr91sMJg sortOrder: 4 fieldKey: event_id label: Event ID @@ -40682,7 +40836,7 @@ items: choices: null dynamic: false allowNull: false - - id: b4tzsR7mrGff18nZZTBkb6 + - id: qpgqndT5atEs3SBpL7jD3G sortOrder: 5 fieldKey: event_source_url label: Event Source URL @@ -40699,7 +40853,7 @@ items: choices: null dynamic: false allowNull: false - - id: vq8XPJJyJKq8ZS6sjvZgNq + - id: uxumCvjLWeZGkoW2eh52a1 sortOrder: 6 fieldKey: custom_data label: Custom Data @@ -40715,7 +40869,7 @@ items: choices: null dynamic: false allowNull: false - - id: eAtenz4Mvbk4UUYQUd7Qis + - id: uXsTSPnSAtTZ4krev1RAX9 sortOrder: 7 fieldKey: data_processing_options label: Data Processing Options @@ -40732,7 +40886,7 @@ items: choices: null dynamic: false allowNull: false - - id: dv1VPoQHPai38pfABoo4xW + - id: 6AqGP36cb82ug9rQuf3SC sortOrder: 8 fieldKey: data_processing_options_country label: Data Processing Country @@ -40753,7 +40907,7 @@ items: value: 1 dynamic: false allowNull: false - - id: xs2S9KvTc2VH2iUHdfktU + - id: 85XhiVfFoiL3A5aCaT7y1b sortOrder: 9 fieldKey: data_processing_options_state label: Data Processing State @@ -40794,7 +40948,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: ojd6N4BEMQRm3dNHrYpT3b + - id: ftPQhexSghy5kQCCGQPoyG sortOrder: 10 fieldKey: test_event_code label: Test Event Code @@ -40819,7 +40973,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Product Viewed" fields: - - id: iky4MfuMQkyuEKaUeU5PBV + - id: dGEZTYcAzwWNK7jZsBk3Ks sortOrder: 0 fieldKey: action_source label: Action Source @@ -40851,7 +41005,7 @@ items: value: other dynamic: false allowNull: false - - id: cnv3Lsy43uNvSpXuZgijcC + - id: fk4ALJn56DnxNcRKSdFdY5 sortOrder: 1 fieldKey: event_time label: Event Time @@ -40867,7 +41021,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6aNyEZaCGjFQJ2nxr424gn + - id: 3tK9mDB99MHC5hMcw9YxQn sortOrder: 2 fieldKey: user_data label: User Data @@ -40917,7 +41071,7 @@ items: choices: null dynamic: false allowNull: false - - id: 35b2VPVzssfR6PXrup7arL + - id: g2PsfQbPy5VyaqVfs6LPxm sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -40961,7 +41115,7 @@ items: choices: null dynamic: false allowNull: false - - id: a3eEQYFtqoZZfuWBK8zpoc + - id: 8tyaJVfAy2UvH9LGRuAkWG sortOrder: 4 fieldKey: content_category label: Content Category @@ -40973,7 +41127,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9zY4Vx9k2vuoh7SnxGLkuS + - id: j2voPcUADM583GY71hcUGi sortOrder: 5 fieldKey: content_ids label: Content IDs @@ -40987,7 +41141,7 @@ items: choices: null dynamic: false allowNull: false - - id: ooGm3wbTrjFDcRuomyfNEd + - id: fY5yuRgWjzmuREnM5QHeQ3 sortOrder: 6 fieldKey: content_name label: Content Name @@ -40999,7 +41153,7 @@ items: choices: null dynamic: false allowNull: false - - id: gqsgU5WkMLVES3bJDWwH8x + - id: rDCW3Rd5Cxu1Vpk6Pa8cL3 sortOrder: 7 fieldKey: content_type label: Content Type @@ -41015,7 +41169,7 @@ items: choices: null dynamic: false allowNull: false - - id: d1G824HTpZoPj2BYrv8sa9 + - id: cnaThQ8ccttChWGriHeRcc sortOrder: 8 fieldKey: contents label: Contents @@ -41039,7 +41193,7 @@ items: choices: null dynamic: false allowNull: false - - id: b48jQhM1NQ2dF1Yqo8bZyd + - id: gZpkLEy4TBYcVj3hjLyzAE sortOrder: 9 fieldKey: currency label: Currency @@ -41055,7 +41209,7 @@ items: choices: null dynamic: false allowNull: false - - id: cNgwsTEDnJtLE6nhrYqm34 + - id: hzeJ9aBpp7y7XZTz5Q2YUC sortOrder: 10 fieldKey: event_id label: Event ID @@ -41071,7 +41225,7 @@ items: choices: null dynamic: false allowNull: false - - id: sGuqFsBpEHCMSqk2nXXojj + - id: xjnHMrYehtnd169tFgdwdt sortOrder: 11 fieldKey: event_source_url label: Event Source URL @@ -41088,7 +41242,7 @@ items: choices: null dynamic: false allowNull: false - - id: j6aSgNcv7C94P7J1ZXWiom + - id: 2YoNWcn1eMswq4NtqGT6pb sortOrder: 12 fieldKey: value label: Value @@ -41104,7 +41258,7 @@ items: choices: null dynamic: false allowNull: false - - id: gK2XhAC11CvKFv7LFjtsad + - id: 5sq2hruB19XnXzMGBLMNeT sortOrder: 13 fieldKey: custom_data label: Custom Data @@ -41120,7 +41274,7 @@ items: choices: null dynamic: false allowNull: false - - id: tqBfCwmm8fo4VWVNpfQAJo + - id: bPr8aNFqvfKxdNzrbRcBTL sortOrder: 14 fieldKey: data_processing_options label: Data Processing Options @@ -41137,7 +41291,7 @@ items: choices: null dynamic: false allowNull: false - - id: srBRXpZbPAdcVi9PWmbbZH + - id: 8CY6ataAu2V1G3u52iSjj2 sortOrder: 15 fieldKey: data_processing_options_country label: Data Processing Country @@ -41158,7 +41312,7 @@ items: value: 1 dynamic: false allowNull: false - - id: 3WmymaVBLvpnXtzhsyKsVN + - id: TBKRdGgjs9zaEECzaT2ht sortOrder: 16 fieldKey: data_processing_options_state label: Data Processing State @@ -41199,7 +41353,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: 4J3Cdyhhj4qTDz7ZC45yAj + - id: g6Cosbdj4xejexBmzkG5RA sortOrder: 17 fieldKey: test_event_code label: Test Event Code @@ -41224,7 +41378,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Checkout Started" fields: - - id: cwCSA2auWZZEkCq2nGrzr6 + - id: vAuwy65B6F2hCAmAYJkycz sortOrder: 0 fieldKey: action_source label: Action Source @@ -41256,7 +41410,7 @@ items: value: other dynamic: false allowNull: false - - id: 4fxaoQQtzZqzZrz2aC6m9w + - id: pwxqgN8f1X6KfWSHjHpf8k sortOrder: 1 fieldKey: event_time label: Event Time @@ -41272,7 +41426,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2QvjaPxun1uixxeTz8va9L + - id: ncqZLGGW5wHbwi9KM4wtvY sortOrder: 2 fieldKey: user_data label: User Data @@ -41322,7 +41476,7 @@ items: choices: null dynamic: false allowNull: false - - id: a6EjQmvEM1DFXjcDQXYDc3 + - id: aYi8p9tXQL52gng4urpo7Y sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -41366,7 +41520,7 @@ items: choices: null dynamic: false allowNull: false - - id: su61uYmcCq8GJvKqURBNQ9 + - id: uGQhShWmAsoATWTVRPVkU2 sortOrder: 4 fieldKey: content_category label: Content Category @@ -41378,7 +41532,7 @@ items: choices: null dynamic: false allowNull: false - - id: tNZrded2HrNNaPdJDXH7dc + - id: epX2zXomVL6aPuBf7F2zLz sortOrder: 5 fieldKey: content_ids label: Content IDs @@ -41390,7 +41544,7 @@ items: choices: null dynamic: false allowNull: false - - id: d7sMbjePP13orb553TYZof + - id: 8Br7zu38vGovGpVwyMMDs9 sortOrder: 6 fieldKey: contents label: Contents @@ -41414,7 +41568,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7CWKx6vRgZr2NshvZF9b68 + - id: 9pVM7k3VpshxFUePuh6Lau sortOrder: 7 fieldKey: currency label: Currency @@ -41430,7 +41584,7 @@ items: choices: null dynamic: false allowNull: false - - id: pZ1RJvDZfRFComgaQotgtf + - id: pHsE8yivFNasEv7k61tv1n sortOrder: 8 fieldKey: event_id label: Event ID @@ -41446,7 +41600,7 @@ items: choices: null dynamic: false allowNull: false - - id: ik1vwr913xtMGmYvR1uX1f + - id: jf3Fxc8SKz3wDPGhMnBpKR sortOrder: 9 fieldKey: event_source_url label: Event Source URL @@ -41463,7 +41617,7 @@ items: choices: null dynamic: false allowNull: false - - id: sMk8x1Q1PdzFEqTuT6RWan + - id: eKh2d5x8ApD5zPDhCFnVi3 sortOrder: 10 fieldKey: num_items label: Number of Items @@ -41475,7 +41629,7 @@ items: choices: null dynamic: false allowNull: false - - id: K2ujBcuACQCFT2X9U4NDi + - id: e4nrFeCyk3ZritA1rAuS2n sortOrder: 11 fieldKey: value label: Value @@ -41491,7 +41645,7 @@ items: choices: null dynamic: false allowNull: false - - id: demm6oS47mxaPopbSMLDYm + - id: tTbbr2vZNvK5YoN6Z1Zad3 sortOrder: 12 fieldKey: custom_data label: Custom Data @@ -41507,7 +41661,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2d2DkfL9hJH9FeFzPkC9HP + - id: 6GDJHXa4tjPCQXc1jw5HKt sortOrder: 13 fieldKey: data_processing_options label: Data Processing Options @@ -41524,7 +41678,7 @@ items: choices: null dynamic: false allowNull: false - - id: sAndCzvzC2YHcAxw6mxXuP + - id: m5MWgQYXm1Y9H5zcpt6Xod sortOrder: 14 fieldKey: data_processing_options_country label: Data Processing Country @@ -41545,7 +41699,7 @@ items: value: 1 dynamic: false allowNull: false - - id: 8N9hHi3ZEjAbuzoMxHCAJ6 + - id: jbP8grYaoRGYVKZR9CNhci sortOrder: 15 fieldKey: data_processing_options_state label: Data Processing State @@ -41586,7 +41740,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: zBZbMHF73m5HGQ1uokzkb + - id: tuvDR9aiz4PC1XpVKaQYwD sortOrder: 16 fieldKey: test_event_code label: Test Event Code @@ -41611,7 +41765,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Products Searched" fields: - - id: ozVftq3cgFjP4ng3Wa5boM + - id: 23XohSXMo6XuBUHfuTiHMY sortOrder: 0 fieldKey: action_source label: Action Source @@ -41643,7 +41797,7 @@ items: value: other dynamic: false allowNull: false - - id: ipyebhbbXGNChzVpHTFjg8 + - id: ctBAPSAdyzPKdwdxSF5nVg sortOrder: 1 fieldKey: event_time label: Event Time @@ -41659,7 +41813,7 @@ items: choices: null dynamic: false allowNull: false - - id: HsBWbChQqggoGLcirjh38 + - id: 628nxDHp4cJSvtrEXbDrBT sortOrder: 2 fieldKey: user_data label: User Data @@ -41709,7 +41863,7 @@ items: choices: null dynamic: false allowNull: false - - id: 86B9n6z4ok7vbzHgJdaUi7 + - id: cj484JExD9wo2Jzr5RKx24 sortOrder: 3 fieldKey: app_data_field label: App Events Fields @@ -41753,7 +41907,7 @@ items: choices: null dynamic: false allowNull: false - - id: eUjD4cQxbHzFWuMw2y96hE + - id: r7xtCdM9M46g6JNxiQ1EcQ sortOrder: 4 fieldKey: content_category label: Content Category @@ -41765,7 +41919,7 @@ items: choices: null dynamic: false allowNull: false - - id: rENYJXhKdNiQ4VdLKrNTdt + - id: cMudMu7yaRDvTy7WQBiCTL sortOrder: 5 fieldKey: content_ids label: Content IDs @@ -41777,7 +41931,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7UtybaU8Sn4tBb9CBhbc5R + - id: nfTqLerHCSx4TDSwTnoR3K sortOrder: 6 fieldKey: contents label: Contents @@ -41801,7 +41955,7 @@ items: choices: null dynamic: false allowNull: false - - id: doRsN4kuRni4Psh8sBeXZX + - id: i93XP7WExEk7WWrR2ynnB8 sortOrder: 7 fieldKey: currency label: Currency @@ -41817,7 +41971,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5ezrmWLG4VbBYkEBoWb7p4 + - id: hLFECrWjJziCu7VgePiuWp sortOrder: 8 fieldKey: event_id label: Event ID @@ -41833,7 +41987,7 @@ items: choices: null dynamic: false allowNull: false - - id: 47EriJ272jWSN1B7bc4bfm + - id: 3amdQoSkgPi5BJArAfKit4 sortOrder: 9 fieldKey: event_source_url label: Event Source URL @@ -41850,7 +42004,7 @@ items: choices: null dynamic: false allowNull: false - - id: b2TU2nftYjm3ebYC2cn7qQ + - id: miAZnU4oMeg1CP5hfF7hk4 sortOrder: 10 fieldKey: search_string label: Search String @@ -41864,7 +42018,7 @@ items: choices: null dynamic: false allowNull: false - - id: mYbBpeaj2DRdoNBLWbV3gz + - id: 4uTotuAVEv5bZrF9zTpuRf sortOrder: 11 fieldKey: value label: Value @@ -41878,7 +42032,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7S2E5UuVSJJa4aD5La2GMF + - id: wzmPzjTxDMDFKzVTGnX7F5 sortOrder: 12 fieldKey: custom_data label: Custom Data @@ -41894,7 +42048,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6gf1qWvpLSPsLguEmVNfhp + - id: bbPJCCRZmhgb8fdwuifb5F sortOrder: 13 fieldKey: data_processing_options label: Data Processing Options @@ -41911,7 +42065,7 @@ items: choices: null dynamic: false allowNull: false - - id: a2fcQKC71vckX6uYCgGzQM + - id: szgdX3yYM2vWSLB18aUqjh sortOrder: 14 fieldKey: data_processing_options_country label: Data Processing Country @@ -41932,7 +42086,7 @@ items: value: 1 dynamic: false allowNull: false - - id: 9tBsMbuwQ2ELdRZ7Mh5Jr4 + - id: 5U4aGwRgUa35V5gS5TmgYu sortOrder: 15 fieldKey: data_processing_options_state label: Data Processing State @@ -41973,7 +42127,7 @@ items: value: 1010 dynamic: false allowNull: false - - id: iZ6obUeuFUdWP9zz18twVx + - id: dyMLVSupPnH2MrE6x6tuLB sortOrder: 16 fieldKey: test_event_code label: Test Event Code @@ -42021,9 +42175,9 @@ items: screen: false page: true platforms: - browser: false + browser: true mobile: false - server: false + server: true warehouse: true cloudAppObject: false linkedAudiences: false @@ -42037,9 +42191,9 @@ items: mobile: false server: false cloud: - web: false + web: true mobile: false - server: false + server: true settings: - name: retlAdAccountId type: string @@ -42058,177 +42212,192 @@ items: hidden: false defaultTrigger: null fields: - - id: wb69yTj5iPwkPh3BDwGPjA + - id: kiMpM5CFKryy4hzqo4mQ9s sortOrder: 0 fieldKey: externalId label: External ID type: STRING description: >- Your company’s custom identifier for this user. This can be any unique - ID, such as loyalty membership IDs, user IDs, and external cookie IDs. + ID, such as loyalty membership IDs, user IDs, and external cookie IDs.. + If not hashed, Segment will hash this value. placeholder: '' required: true multiple: false choices: null dynamic: false allowNull: false - - id: cADyK4oANJGTQHy26eA3Nh + - id: jpBr8vZJbP7bckNGfdvfZH sortOrder: 1 fieldKey: email label: Email type: STRING - description: 'User’s email (ex: foo@bar.com)' + description: >- + User’s email (ex: foo@bar.com). If not hashed, Segment will hash this + value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: DnpzzRfscJFB9zdjDdwph + - id: v3amwwgmQjrFC5xmNQtqaB sortOrder: 2 fieldKey: phone label: Phone type: STRING description: >- User’s phone number, including country code. Punctuation and spaces are - ok (ex: 1-234-567-8910 or +44 844 412 4653) + ok (ex: 1-234-567-8910 or +44 844 412 4653). If not hashed, Segment will + hash this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: qroHKChprr8AfHRJ1k4BGU + - id: 4yD19DwmZXRdC4xkroZMLK sortOrder: 3 fieldKey: country label: Country type: STRING - description: User’s country. Use 2-letter country codes in ISO 3166-1 alpha-2 format. + description: >- + User’s country. Use 2-letter country codes in ISO 3166-1 alpha-2 + format.. If not hashed, Segment will hash this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: sDUxbcVRErRMuM3xyMAUHA + - id: g5ysDZBuxBcAseTaJhWQY2 sortOrder: 4 fieldKey: birth label: Date of Birth type: OBJECT description: >- User’s date of birth. Include as many fields as possible for better - match rates (ex: year = YYYY, month = MM, day = DD) + match rates (ex: year = YYYY, month = MM, day = DD). If not hashed, + Segment will hash this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: i2cWRb5vwg9orMMzfhHG3v + - id: 5WTLdtspBSEHH8MAQtYAgQ sortOrder: 5 fieldKey: name label: Name type: OBJECT description: >- User’s name. Include as many fields as possible for better match rates. - Use a-z only. No punctuation. Special characters in UTF-8 format + Use a-z only. No punctuation. Special characters in UTF-8 format. If not + hashed, Segment will hash this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: bsVHQkvZgvcVhWx2kyFTCP + - id: vEJsv4TMdqoQZuA8AuHtYb sortOrder: 6 fieldKey: city label: City type: STRING - description: User’s city. Use a-z only. No punctuation. No special characters. + description: >- + User’s city. Use a-z only. No punctuation. No special characters.. If + not hashed, Segment will hash this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: 7wdGBCVNF7QrSNP4cX9Pqh + - id: YcYu2G5KpmQKpnbbFmXFy sortOrder: 7 fieldKey: state label: State type: STRING description: >- User’s state. Use the 2-character ANSI abbreviation code, Normalize - states outside the US with no punctuation and no special characters. + states outside the US with no punctuation and no special characters.. If + not hashed, Segment will hash this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: uyqVRnhi9Sn565aWQC5VCa + - id: xucBzMoHYjgX8Lb1FyJLJS sortOrder: 8 fieldKey: zip label: Postal Code type: STRING description: >- User’s postal code. For the US, use only the first 5 digits. For the UK, - use the Area/District/Sector format. + use the Area/District/Sector format.. If not hashed, Segment will hash + this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: 6jy28YHEyEiqJhjtt2cu7v + - id: aTGvYiRGeqLukW5ynEc3J9 sortOrder: 9 fieldKey: gender label: Gender type: STRING - description: User’s gender (m for male, f for female) + description: >- + User’s gender (m for male, f for female). If not hashed, Segment will + hash this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: iWTFhoNrAqFn3GHsVrPYou + - id: jGoaLoWhYrnJGRCAFqNnWN sortOrder: 10 fieldKey: mobileAdId label: Mobile Advertising ID type: STRING description: >- User’s Apple IDFA, Android Ad ID, or Facebook app scoped ID. Keep - hyphens (ex: AB1234CD-E123-12FG-J123) + hyphens (ex: AB1234CD-E123-12FG-J123). If not hashed, Segment will hash + this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: oC8auqadH4rvzeU3fUVCZi + - id: otuVNdwW6YmeXSFkRvi89D sortOrder: 11 fieldKey: appId label: App ID type: STRING - description: The app ID of the user. + description: The app ID of the user.. If not hashed, Segment will hash this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: hs6UCXsZAHvBxFzE7LvbtG + - id: jdipr7zdCYWQT6eaQ6HzvP sortOrder: 12 fieldKey: pageId label: Page ID type: STRING - description: The page ID of the user. + description: The page ID of the user.. If not hashed, Segment will hash this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: x67oq1KFxFick4tQzP3796 + - id: uFkpXukGyCpHcA7iGKQSLh sortOrder: 15 fieldKey: operation label: Create a new custom audience or connect to an existing one? @@ -42250,7 +42419,7 @@ items: value: existing dynamic: false allowNull: false - - id: qPpynsNRpUHqY8nAfMp5AY + - id: dg74nGMMCj4eMseXofcRDu sortOrder: 16 fieldKey: audienceName label: Audience Creation Name @@ -42263,7 +42432,7 @@ items: choices: null dynamic: false allowNull: false - - id: rzb6tyQGLfD8ywnzD1us4i + - id: kzxEPoSjXYvDqsuwwzufJc sortOrder: 17 fieldKey: existingAudienceId label: Existing Audience ID @@ -42275,7 +42444,7 @@ items: choices: null dynamic: true allowNull: false - - id: duxtfHpwp6tdyj9atZgZEt + - id: azYfYAZi5tCd1jg4Dn7tGq sortOrder: 18 fieldKey: retlOnMappingSave label: Select or create an audience in Facebook @@ -42294,115 +42463,6 @@ items: hidden: false presets: [] partnerOwned: false -- id: 58ae54dc70a3e552b95415f6 - display_name: Facebook Offline Conversions - name: Facebook Offline Conversions - slug: facebook-offline-conversions - hidden: false - endpoints: - - US - regions: - - us-west-2 - - eu-west-1 - url: connections/destinations/catalog/facebook-offline-conversions - previous_names: - - Facebook Offline Conversions - website: https://www.facebook.com/business/help/1782327938668950 - status: PUBLIC - categories: - - Advertising - logo: - url: https://cdn.filepicker.io/api/file/MjCkA4RSTm7BQMFAcy8N - mark: - url: https://cdn.filepicker.io/api/file/TP1ONlaTGaF8fjL5XWhI - methods: - track: true - identify: false - group: false - alias: false - screen: false - page: false - platforms: - browser: false - mobile: false - server: true - warehouse: false - cloudAppObject: false - linkedAudiences: false - components: - - code: >- - https://github.com/segmentio/integrations/tree/master/integrations/facebook-offline-conversions - type: SERVER - browserUnbundlingSupported: false - browserUnbundlingPublic: true - replay: false - connection_modes: - device: - web: false - mobile: false - server: false - cloud: - web: false - mobile: true - server: true - settings: - - name: completeRegistrations - type: text-map - defaultValue: {} - description: >- - Enter your Segment `.track()` event names on the left that you want to - send as `CompleteRegistration` conversions. On the right hand side, put - the ID of the Facebook Offline Event Set where you want to send these - conversions. - required: false - label: Map Track Events as CompleteRegistration Conversions to Event Set IDs - - name: events - type: text-map - defaultValue: {} - description: >- - Enter your Segment `.track()` event names on the left that you want to - send as conversions. On the right hand side, put the ID of the Facebook - Offline Event Set where you want to send these conversions. - required: false - label: Map Track Events to Event Set IDs - - name: leads - type: text-map - defaultValue: {} - description: >- - Enter your Segment `.track()` event names on the left that you want to - send as `Lead` conversions. On the right hand side, put the ID of the - Facebook Offline Event Set where you want to send these conversions. - required: false - label: Map Track Events as Lead Conversions to Event Set IDs - - name: limitedDataUse - type: boolean - defaultValue: false - description: >- - The Limited Data Use (LDU) setting controls whether or not Data Processing - Options are sent to Facebook. When enabling LDU, you **must** set the user - geography values in the `Facebook Offline Conversions` integration options - under the `dataProcessingOptions` key. If you do not pass specific - geography values, Segment will default to empty Data Processing Options. - required: false - label: Limited Data Use - - name: oauth - type: oauth - defaultValue: {} - description: 'Authorize Segment to oauth `<UPDATE>` ' - required: false - label: oauth - - name: valueIdentifier - type: select - defaultValue: value - description: >- - For pre-purchase events such as `Product Viewed`, `Product Added`, and - `Product List Viewed`, choose which Segment property you would like to map - to Facebook's `value` property. - required: false - label: Value Field Identifier - actions: [] - presets: [] - partnerOwned: false - id: 5661eb58e954a874ca44cc07 display_name: Facebook Pixel name: Facebook Pixel @@ -42801,7 +42861,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: ttkgnqKCXzzPK4EVChzjKJ + - id: eriaHFF2sTsXx15Cn6jqq6 sortOrder: 0 fieldKey: mobileDeviceIds label: Mobile Device IDs @@ -42827,7 +42887,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: nF8V1euiip2uhfKkf78mjo + - id: sBAoHad7dhYpWFqqGK1wPP sortOrder: 0 fieldKey: mobileDeviceIds label: Mobile Device IDs @@ -42853,14 +42913,14 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: ho5EmgVCqLfxQSN1PnSfRE + - id: we7easNRz2ityJDwEc6NEk sortOrder: 0 fieldKey: emails label: Emails type: STRING description: >- A list of the user's emails. If not already hashed, the system will hash - them before use. + them before use.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.traits.emails @@ -42869,14 +42929,14 @@ items: choices: null dynamic: false allowNull: false - - id: bWsSqV3iKuLWN2tMKhGDqX + - id: tBGKtWfqUoPRW2vzvPKsTw sortOrder: 1 fieldKey: phoneNumbers label: Phone Numbers type: STRING description: >- A list of the user's phone numbers. If not already hashed, the system - will hash them before use. + will hash them before use.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.traits.phoneNumbers @@ -42885,7 +42945,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4dfVYvLcWQfApxSuNLNXkf + - id: pGuyseYrPw4EoV7yaNJvNz sortOrder: 2 fieldKey: zipCodes label: ZIP Codes @@ -42899,14 +42959,14 @@ items: choices: null dynamic: false allowNull: false - - id: kZKetf4TwkPHMk7yaCNKsd + - id: 8yMVkcuM5bPHEFZ7f6qwtv sortOrder: 3 fieldKey: firstName label: First Name type: STRING description: >- The user's first name. If not already hashed, the system will hash it - before use. + before use.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.traits.firstName @@ -42915,14 +42975,14 @@ items: choices: null dynamic: false allowNull: false - - id: 8FUsHqDfLi3ssZHrzezkvw + - id: qui4TUBujyKyxRpu9cdiWh sortOrder: 4 fieldKey: lastName label: Last Name type: STRING description: >- The user's last name. If not already hashed, the system will hash it - before use. + before use.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.traits.lastName @@ -42931,7 +42991,7 @@ items: choices: null dynamic: false allowNull: false - - id: fDjfFodrKCkhq2WL2KS1Qz + - id: 5VA2nqiz6szLsfveZrKw9j sortOrder: 5 fieldKey: countryCode label: Country Code @@ -42955,14 +43015,14 @@ items: hidden: false defaultTrigger: event = "Audience Exited" fields: - - id: 2BM88zBGxTxFcBpwgqhDiF + - id: nvjXeeNtfGpT1LU6DJNscq sortOrder: 0 fieldKey: emails label: Emails type: STRING description: >- A list of the user's emails. If not already hashed, the system will hash - them before use. + them before use.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.traits.emails @@ -42971,14 +43031,14 @@ items: choices: null dynamic: false allowNull: false - - id: iFss7A7ucG88Twc32EXFeD + - id: fCDx3y3hw7QbXcy3V6SZfh sortOrder: 1 fieldKey: phoneNumbers label: Phone Numbers type: STRING description: >- A list of the user's phone numbers. If not already hashed, the system - will hash them before use. + will hash them before use.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.traits.phoneNumbers @@ -42987,7 +43047,7 @@ items: choices: null dynamic: false allowNull: false - - id: qTKCT6XUuSFQajSLwejHkU + - id: kJYdWJAzNGViqxm2zW7MjA sortOrder: 2 fieldKey: zipCodes label: ZIP Codes @@ -43001,14 +43061,14 @@ items: choices: null dynamic: false allowNull: false - - id: 2kcE9MKtZmtummRNpy2spq + - id: onfADpS459LQU4MZKqsTSk sortOrder: 3 fieldKey: firstName label: First Name type: STRING description: >- The user's first name. If not already hashed, the system will hash it - before use. + before use.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.traits.firstName @@ -43017,14 +43077,14 @@ items: choices: null dynamic: false allowNull: false - - id: dyZ2e4MMmk26BfYgZyV76w + - id: hyFo73eYZHoSGHvNNEUnk9 sortOrder: 4 fieldKey: lastName label: Last Name type: STRING description: >- The user's last name. If not already hashed, the system will hash it - before use. + before use.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.traits.lastName @@ -43033,7 +43093,7 @@ items: choices: null dynamic: false allowNull: false - - id: ieGXJKQdeeaMLKRPosFkKf + - id: 9y3d6NvcRBCo5axkUmBWGU sortOrder: 5 fieldKey: countryCode label: Country Code @@ -49477,7 +49537,7 @@ items: hidden: true defaultTrigger: null fields: - - id: 5ueE3MjAVgBYrAT6YNktQ6 + - id: vuY2JxCgHx78xy8KRk8cvU sortOrder: 0 fieldKey: conversion_label label: Conversion Label @@ -49494,7 +49554,7 @@ items: dynamic: false allowNull: false hidden: false - - id: kM7DYArxJpHpRuPscCsZCx + - id: 8nR7HvHQL2m2JM68PahKZ9 sortOrder: 1 fieldKey: email label: Email @@ -49515,7 +49575,7 @@ items: dynamic: false allowNull: false hidden: false - - id: g2xxyc4PFSF9LPL3WSN9Qk + - id: 9gxNvkAUeBjhFyXwNxVqqf sortOrder: 2 fieldKey: transaction_id label: Order ID @@ -49534,7 +49594,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wD32teoizPEa7eCsvJiBW8 + - id: xbpsYu6xFcNNhLjoD2TyPj sortOrder: 3 fieldKey: user_agent label: User Agent @@ -49554,7 +49614,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mVYg5W35oKjVfqWqnSr4ca + - id: eeJT48f1vqbLydia4rLxvy sortOrder: 4 fieldKey: conversion_time label: Conversion Time @@ -49569,7 +49629,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vHrFpcKzJ53dhu8Rg1vKHV + - id: jCEsjDgS6VpLc9VF6T3Mc6 sortOrder: 5 fieldKey: value label: Value @@ -49584,7 +49644,7 @@ items: dynamic: false allowNull: false hidden: false - - id: xoaPCBmoby8ieRadaLaenu + - id: wMiH9LJwHazMmRd3vws75w sortOrder: 6 fieldKey: currency_code label: Currency Code @@ -49601,7 +49661,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8DHnAPNjQ52JN1fX8isTG5 + - id: tKrVcYUju9NtA8dGPMXkQg sortOrder: 7 fieldKey: is_app_incrementality label: App Conversion for Incrementality Study @@ -49615,7 +49675,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jvbdwyE7gBD2ysUUPmAmHr + - id: m5aDgmksQA2FgkoCVNq2S8 sortOrder: 8 fieldKey: pcc_game label: PCC Game Flag @@ -49631,7 +49691,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ggzcfRSedXaigAhzcP4HTF + - id: bsymLV4opHDYuR7He147MU sortOrder: 9 fieldKey: phone_number label: Phone Number @@ -49654,7 +49714,7 @@ items: dynamic: false allowNull: false hidden: false - - id: htKqJWwEN92HdwhXAYyyUr + - id: vhHaoeWdWTyMRtQKvUJn7Y sortOrder: 10 fieldKey: first_name label: First Name @@ -49675,7 +49735,7 @@ items: dynamic: false allowNull: false hidden: false - - id: u6BrePk4zCWVNSYQMc6ns3 + - id: gpZ6NGrUzMeS89bxLS8jgy sortOrder: 11 fieldKey: last_name label: Last Name @@ -49696,12 +49756,14 @@ items: dynamic: false allowNull: false hidden: false - - id: jbjDj7k5vDs7CBsN8mZgde + - id: gcDa7Jr27apnZMfqye7tgb sortOrder: 12 fieldKey: street_address label: Street Address type: STRING - description: Street address of the individual who triggered the conversion event. + description: >- + Street address of the individual who triggered the conversion event.. If + not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -49717,7 +49779,7 @@ items: dynamic: false allowNull: false hidden: false - - id: oAgCTwSr8aYPS4UD2DXxVv + - id: aA5b9ey3q5Vzg9skkfSAGC sortOrder: 13 fieldKey: city label: City @@ -49738,7 +49800,7 @@ items: dynamic: false allowNull: false hidden: false - - id: gBxbszMS4stihFBWn9UE7z + - id: akMJdMJYhZwasZSq5CVUXv sortOrder: 14 fieldKey: region label: Region @@ -49759,7 +49821,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4tMZ4JhiT13QgDF9m4J8uh + - id: fZaRCpUhYBhDBSZKW2Mdh3 sortOrder: 15 fieldKey: post_code label: Postal Code @@ -49780,7 +49842,7 @@ items: dynamic: false allowNull: false hidden: false - - id: u316ZK5WdVWDvVGxn2TeeQ + - id: xpguSoPdf6L6ZFP5nyVgmt sortOrder: 16 fieldKey: country label: Country @@ -49809,7 +49871,7 @@ items: hidden: false defaultTrigger: null fields: - - id: dtFGGRC5JRZP233Fxk99sr + - id: iwqhpWxJbpCHt4YoBeKAE9 sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -49822,7 +49884,7 @@ items: dynamic: true allowNull: false hidden: false - - id: jJnH9fkfzov4DztuQgrSUA + - id: osKntTTznAwTPs62vrwEXq sortOrder: 1 fieldKey: adjustment_type label: Adjustment Type @@ -49848,7 +49910,7 @@ items: dynamic: false allowNull: false hidden: false - - id: npQTrbkbZJ7dq7ZNuqYJcG + - id: bJyNtfUvCyUcmvZ9D2muNE sortOrder: 2 fieldKey: adjustment_timestamp label: Adjustment Timestamp @@ -49867,7 +49929,7 @@ items: dynamic: false allowNull: false hidden: false - - id: droTPffE1EdotcqS7YVdXC + - id: fdVMv56HM4hwopXdFnYJ4w sortOrder: 3 fieldKey: order_id label: Order ID @@ -49891,7 +49953,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 78SkfjFEasweBsLgoKGdw2 + - id: V7CAavECCkjZqNkdrxVLr sortOrder: 4 fieldKey: gclid label: GCLID @@ -49906,7 +49968,7 @@ items: dynamic: false allowNull: false hidden: false - - id: khXTPkFoViJp1UKxz4q4WK + - id: vvg2U9grm7v4BWPA7wG6ch sortOrder: 5 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -49923,7 +49985,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sM22JhV99bPUhVvBFhpezG + - id: g4Q5FRsVxas4KbXM8wRcA6 sortOrder: 6 fieldKey: restatement_value label: Restatement Value @@ -49940,7 +50002,7 @@ items: dynamic: false allowNull: false hidden: false - - id: Jv9UCka1KwtUPxUk5QNSZ + - id: vHR83XhhzNi2davqFwHr59 sortOrder: 7 fieldKey: restatement_currency_code label: Restatement Currency Code @@ -49957,14 +50019,14 @@ items: dynamic: false allowNull: false hidden: false - - id: QWEqySvZGubVGBZiu7FEU + - id: 7283Z61NRi56i2DPtWMd2a sortOrder: 8 fieldKey: email_address label: Email Address type: STRING description: >- - Email address of the individual who triggered the conversion event. - Segment will hash this value before sending to Google. + Email address of the individual who triggered the conversion event.. If + not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -49980,15 +50042,30 @@ items: dynamic: false allowNull: false hidden: false - - id: jZkCMJf5mFfFcWvRNS7gNP + - id: 3g5ZqTwLMAxHfeqDbiSjYK sortOrder: 9 + fieldKey: phone_country_code + label: Phone Number Country Code + type: STRING + description: >- + The numeric country code to associate with the phone number. If not + provided Segment will default to '+1'. If the country code does not + start with '+' Segment will add it. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sywAMZDDxVuMxCLdkdWt6P + sortOrder: 10 fieldKey: phone_number label: Phone Number type: STRING description: >- Phone number of the individual who triggered the conversion event, in - E.164 standard format, e.g. +14150000000. Segment will hash this value - before sending to Google. + E.164 standard format, e.g. +14150000000. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -50004,14 +50081,12 @@ items: dynamic: false allowNull: false hidden: false - - id: VkKGx5YhAiLyLkTqWJgA2 - sortOrder: 10 + - id: 27Bvvy14t5XZvv7h6nQ5vG + sortOrder: 11 fieldKey: first_name label: First Name type: STRING - description: >- - First name of the user who performed the conversion. Segment will hash - this value before sending to Google. + description: First name of the user who performed the conversion placeholder: '' defaultValue: '@if': @@ -50027,14 +50102,14 @@ items: dynamic: false allowNull: false hidden: false - - id: ubYkEjoZeXcP2gqrfvF8A9 - sortOrder: 11 + - id: p2ouzLA41RDs451JvbHtvK + sortOrder: 12 fieldKey: last_name label: Last Name type: STRING description: >- - Last name of the user who performed the conversion. Segment will hash - this value before sending to Google. + Last name of the user who performed the conversion. If not hashed, + Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -50050,8 +50125,8 @@ items: dynamic: false allowNull: false hidden: false - - id: nvajRmzRKACgiu4VEpbyWE - sortOrder: 12 + - id: bTWWaqMoqHWRPniV58q5Zn + sortOrder: 13 fieldKey: city label: City type: STRING @@ -50071,8 +50146,8 @@ items: dynamic: false allowNull: false hidden: false - - id: d4x6zds99JGx91hunNZGas - sortOrder: 13 + - id: DtxPpQCX3hFkaiDv5wRoP + sortOrder: 14 fieldKey: state label: State type: STRING @@ -50092,8 +50167,8 @@ items: dynamic: false allowNull: false hidden: false - - id: ddNBBbht7Db888p1pzc5p - sortOrder: 14 + - id: 312ruMzDJP8B7M7Z8X9Uc9 + sortOrder: 15 fieldKey: country label: Country type: STRING @@ -50115,8 +50190,8 @@ items: dynamic: false allowNull: false hidden: false - - id: mY5DePyaEHtPGMF86DF1wy - sortOrder: 15 + - id: 7NFWmqDyZmnCihfCbw51Mg + sortOrder: 16 fieldKey: postal_code label: Postal Code type: STRING @@ -50136,14 +50211,12 @@ items: dynamic: false allowNull: false hidden: false - - id: jwrCMUHWU3NgepVfuqk4pf - sortOrder: 16 + - id: 2a11Y1Uz5gidvJ4LjZecyP + sortOrder: 17 fieldKey: street_address label: Street Address type: STRING - description: >- - Street address of the user who performed the conversion. Segment will - hash this value before sending to Google. + description: Street address of the user who performed the conversion placeholder: '' defaultValue: '@if': @@ -50159,8 +50232,8 @@ items: dynamic: false allowNull: false hidden: false - - id: pg1JCZ8UKzttEYRqgPvQmx - sortOrder: 17 + - id: uToUUsjKLZqH45hNBvTbbc + sortOrder: 18 fieldKey: user_agent label: User Agent type: STRING @@ -50187,7 +50260,7 @@ items: hidden: false defaultTrigger: null fields: - - id: pHDzShk2F3NH632fmoQozi + - id: tnzUuE5Kdv8ffVUJEEZWmA sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -50200,7 +50273,7 @@ items: dynamic: true allowNull: false hidden: false - - id: p1hND1YUqr7rRGvjbJLbic + - id: xscGRMrqhWTxPwDr7ZPxYs sortOrder: 1 fieldKey: gclid label: GCLID @@ -50213,7 +50286,7 @@ items: dynamic: false allowNull: false hidden: false - - id: aHGJxwmyTJ2Txu1c3A83H2 + - id: q6fD8yZM1zCSnG7oiXMqhC sortOrder: 2 fieldKey: gbraid label: GBRAID @@ -50228,7 +50301,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sH2FAxKzucpvxASupZUEr1 + - id: pahjc1QtDpuHRbaksJgaQY sortOrder: 3 fieldKey: wbraid label: WBRAID @@ -50243,7 +50316,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hrnj9p7SnpDKGGP6NgDjAs + - id: kFdZMNWPtV732Vapc9MMNw sortOrder: 4 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -50261,14 +50334,14 @@ items: dynamic: false allowNull: false hidden: false - - id: aKSXDWa1KQVtt3XGu2PPa7 + - id: jDp9oejxLHQNVYfQuGG8Vv sortOrder: 5 fieldKey: email_address label: Email Address type: STRING description: >- - Email address of the individual who triggered the conversion event. - Segment will hash this value before sending to Google. + Email address of the individual who triggered the conversion event. If + not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -50284,15 +50357,30 @@ items: dynamic: false allowNull: false hidden: false - - id: qg18VrseiccxNj4NgPxrhP + - id: p8ocFJAQy7VJyQ6os3XkW1 sortOrder: 6 + fieldKey: phone_country_code + label: Phone Number Country Code + type: STRING + description: >- + The numeric country code to associate with the phone number. If not + provided Segment will default to '+1'. If the country code does not + start with '+' Segment will add it. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: g3cHRZrgVZLtdPDPt1cQXU + sortOrder: 7 fieldKey: phone_number label: Phone Number type: STRING description: >- Phone number of the individual who triggered the conversion event, in - E.164 standard format, e.g. +14150000000. Segment will hash this value - before sending to Google. + E.164 standard format, e.g. +14150000000. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -50308,8 +50396,8 @@ items: dynamic: false allowNull: false hidden: false - - id: ae4jjq6tvKtKDuV5LmN6UU - sortOrder: 7 + - id: dWB4fK7wTrFpDE2uYLjcsf + sortOrder: 8 fieldKey: order_id label: Order ID type: STRING @@ -50331,8 +50419,8 @@ items: dynamic: false allowNull: false hidden: false - - id: mMXnYVFA6st2AN5zAiKbQ3 - sortOrder: 8 + - id: uKYhVJUjWoQKAxQKJC2XhC + sortOrder: 9 fieldKey: value label: Value type: NUMBER @@ -50346,8 +50434,8 @@ items: dynamic: false allowNull: false hidden: false - - id: qiT3nfRCah7N4LH2z98rWN - sortOrder: 9 + - id: mWRfBwNH9L3BzRzyNTXYeh + sortOrder: 10 fieldKey: currency label: Currency type: STRING @@ -50363,8 +50451,8 @@ items: dynamic: false allowNull: false hidden: false - - id: 5i3q12yDWBVLicAQ3nh18Z - sortOrder: 10 + - id: cQ4vGnVvvQPtWjKQA39CH9 + sortOrder: 11 fieldKey: conversion_environment label: Conversion Environment type: STRING @@ -50386,8 +50474,8 @@ items: dynamic: false allowNull: false hidden: false - - id: 8dLiZK3bSe6RtUrkFEimDU - sortOrder: 11 + - id: rXTGRtq539b6K6wJFKrVfb + sortOrder: 12 fieldKey: merchant_id label: Merchant Center ID type: STRING @@ -50399,8 +50487,8 @@ items: dynamic: false allowNull: false hidden: false - - id: jEWR5oqdeH4JnxsdcxdmgP - sortOrder: 12 + - id: ofRuYTLRnHBCQrkMjT4vFp + sortOrder: 13 fieldKey: merchant_country_code label: Merchant Center Feed Country Code type: STRING @@ -50414,8 +50502,8 @@ items: dynamic: false allowNull: false hidden: false - - id: fZ5DtfDDdzvUVE4mJAENra - sortOrder: 13 + - id: 9de93BPGzPbRkCKd1ba4c8 + sortOrder: 14 fieldKey: merchant_language_code label: Merchant Center Feed Language Code type: STRING @@ -50429,8 +50517,8 @@ items: dynamic: false allowNull: false hidden: false - - id: cHPuzWHSXVkdWdc4Lmbf4L - sortOrder: 14 + - id: hhT5KGFrEaupgh2NzC34H9 + sortOrder: 15 fieldKey: local_cost label: Local Transaction Cost type: NUMBER @@ -50444,8 +50532,8 @@ items: dynamic: false allowNull: false hidden: false - - id: dCwt2UYwWdneUqBHVEtvB9 - sortOrder: 15 + - id: 4t7ZBaBNBZsChFPX5Ze5bg + sortOrder: 16 fieldKey: items label: Items type: OBJECT @@ -50466,8 +50554,8 @@ items: dynamic: false allowNull: false hidden: false - - id: eWsx433ufPa6KAkNBLCyst - sortOrder: 16 + - id: 5DSDzpCwrdz1WBras9muFz + sortOrder: 17 fieldKey: custom_variables label: Custom Variables type: OBJECT @@ -50485,8 +50573,8 @@ items: dynamic: false allowNull: false hidden: false - - id: 5GQCzMV1QD7qPVz51pWqNj - sortOrder: 17 + - id: c5u8frYQ7n5NF4BTTv5pYz + sortOrder: 18 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State type: STRING @@ -50506,8 +50594,8 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: bESR75A92UYtWK719PtvFK - sortOrder: 18 + - id: 5A75UCT9ufcku7thQdDRyE + sortOrder: 19 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State type: STRING @@ -50536,7 +50624,7 @@ items: hidden: false defaultTrigger: null fields: - - id: ePU9izWz8B5M1S7KHPNGD7 + - id: 36t2naXDWiYCkGubGPpRXg sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -50549,7 +50637,7 @@ items: dynamic: true allowNull: false hidden: false - - id: 8cv8EQSEYtrY5j3YjAuqQt + - id: eiTY6yJQjKFjALbe8PaFDE sortOrder: 1 fieldKey: caller_id label: Caller ID @@ -50564,7 +50652,7 @@ items: dynamic: false allowNull: false hidden: false - - id: oCibnB7ckUbHpVYwkcdjbr + - id: pUPQB9BKcs2ZvzuzXroJcW sortOrder: 2 fieldKey: call_timestamp label: Call Timestamp @@ -50580,7 +50668,7 @@ items: dynamic: false allowNull: false hidden: false - - id: sbubniSmiEwsk99NPvAP17 + - id: qtxzCiTdQnnPwSLVC23iHs sortOrder: 3 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -50598,7 +50686,7 @@ items: dynamic: false allowNull: false hidden: false - - id: kiESsMLNoZPwh1P3pLhKKg + - id: hoSBGcUgpHhpyX2PzWXJWt sortOrder: 4 fieldKey: value label: Value @@ -50613,7 +50701,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wz8hdDaKi1kdU5ehE1DMSD + - id: bWHQ3apoghBKRPoNzGQUT6 sortOrder: 5 fieldKey: currency label: Currency @@ -50630,7 +50718,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mC38zNcc69MoLu58RDuF5t + - id: kknEn5MBM6e4gjfSAQJcEU sortOrder: 6 fieldKey: custom_variables label: Custom Variables @@ -50649,7 +50737,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tiSxeJBL1r7GXPoWzJ9sMf + - id: tPEWnv8EJ5ndSm4ZDCzoae sortOrder: 7 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -50670,7 +50758,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: dY8P9bfxuKfcgvfogeTTAQ + - id: 5B8pZVQv74BvFVduuHMvUR sortOrder: 8 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -50700,14 +50788,12 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: qTzBXk8erDLfY7LrrDVZ7p + - id: oYWx4MLjrGHNxesq5UjKmP sortOrder: 0 fieldKey: first_name label: First Name type: STRING - description: >- - The user's first name. If not hashed, Segment will normalize and hash - this value. + description: The user's first name.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -50722,14 +50808,12 @@ items: choices: null dynamic: false allowNull: false - - id: qSYSrx4a5oEwgHwhqCP5Em + - id: 5tsgo3sY6YJzHuWtoDC2F9 sortOrder: 1 fieldKey: last_name label: Last Name type: STRING - description: >- - The user's last name. If not hashed, Segment will normalize and hash - this value. + description: The user's last name.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -50744,14 +50828,12 @@ items: choices: null dynamic: false allowNull: false - - id: v3p2zjzcTPXXvMF7PwDamF + - id: uYXUWtApGUqGdRn7eEutHU sortOrder: 2 fieldKey: email label: Email type: STRING - description: >- - The user's email address. If not hashed, Segment will normalize and hash - this value. + description: The user's email address.. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -50766,14 +50848,12 @@ items: choices: null dynamic: false allowNull: false - - id: 3jckXy9Nd4MVYLbwecM616 + - id: 6xKhJLeKbp4yScRy1KfdsY sortOrder: 3 fieldKey: phone label: Phone type: STRING - description: >- - The user's phone number. If not hashed, Segment will convert the phone - number to the E.164 format and hash this value. + description: The user's phone number. . If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -50788,7 +50868,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8SLN4kgeAaqDiM6CWVKWMY + - id: 5Qe6EYpYLapmkckKbWCzCb sortOrder: 4 fieldKey: phone_country_code label: Phone Number Country Code @@ -50803,7 +50883,7 @@ items: choices: null dynamic: false allowNull: false - - id: uWTWyMz5Cek9CcxThA3dEo + - id: 78PGR1jNwSkEBjM6q4MvTG sortOrder: 5 fieldKey: country_code label: Address Country Code @@ -50815,7 +50895,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3N4FfJytbs9qbYZ42CBJuB + - id: ecpaULmas8P8skhnUAHeCW sortOrder: 6 fieldKey: postal_code label: Postal Code @@ -50827,7 +50907,7 @@ items: choices: null dynamic: false allowNull: false - - id: mBmR9pKvzEHA6Qq6xvMVYG + - id: r8pnay8aF4ZonSMyvQXLLh sortOrder: 7 fieldKey: crm_id label: CRM ID @@ -50841,7 +50921,7 @@ items: choices: null dynamic: false allowNull: false - - id: nXjQd6SUoqHxVq7AWxDRp7 + - id: x54HPK2PTQThH39b9447mF sortOrder: 8 fieldKey: mobile_advertising_id label: Mobile Advertising ID @@ -50857,7 +50937,7 @@ items: choices: null dynamic: false allowNull: false - - id: mYstnWFpEtXkqQhMtRZHob + - id: 78bJNidRQAxHGHwgcYpzuc sortOrder: 9 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -50878,7 +50958,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: 3YJPYeNvBz9B8Ec5cxNive + - id: n3eNJDuWRALZ16xmwTJeDE sortOrder: 10 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -50900,7 +50980,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: cgeGrne7XpYwR84bMJ5fSA + - id: 6XxanLabhuWCMA49SD2vvo sortOrder: 15 fieldKey: list_id label: Existing List ID @@ -50914,7 +50994,7 @@ items: choices: null dynamic: true allowNull: false - - id: 4BTPiMi112KzuHu1PUzGC + - id: k1H6jnosoMznT8jYntPJD3 sortOrder: 16 fieldKey: list_name label: List Name @@ -50926,7 +51006,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7L7r6CDVw3jrqcQGYLSvgA + - id: orHqJoznKfo2Ut73CHuF9j sortOrder: 17 fieldKey: external_id_type label: External ID Type @@ -50945,7 +51025,7 @@ items: value: MOBILE_ADVERTISING_ID dynamic: false allowNull: false - - id: dKs5wyZFzPwiLUkFrTZrLx + - id: nktcfbBSZ1RMNoXSLicWsi sortOrder: 18 fieldKey: app_id label: App ID @@ -50960,7 +51040,7 @@ items: choices: null dynamic: false allowNull: false - - id: sguSBaBE8ZoxLbieCFU4C8 + - id: v2aL3TUHMQLCo4WqitoLNs sortOrder: 19 fieldKey: retlOnMappingSave label: Connect to a Google Customer Match User List @@ -50983,7 +51063,7 @@ items: hidden: false defaultTrigger: null fields: - - id: dEx81FLbWtikAkF5DurvH + - id: iK2czbQxfrNBEx4ieFeZeL sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -50995,7 +51075,7 @@ items: choices: null dynamic: true allowNull: false - - id: v8daFL74AKGYB31rRNbfUu + - id: 2B6FkpkzSF7yAN2qS5tZ9U sortOrder: 1 fieldKey: caller_id label: Caller ID @@ -51009,7 +51089,7 @@ items: choices: null dynamic: false allowNull: false - - id: vVck1gKH6LGi3bLbhRveEX + - id: 7r7uv8sPwpQUvWoA9immCV sortOrder: 2 fieldKey: call_timestamp label: Call Timestamp @@ -51024,7 +51104,7 @@ items: choices: null dynamic: false allowNull: false - - id: oRxEHK28TwZG9GiUVtxu1u + - id: vV3m9CwLw82EZhi7Lznihz sortOrder: 3 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -51041,7 +51121,7 @@ items: choices: null dynamic: false allowNull: false - - id: hYQhCFjpsfuu4AzeGQRDji + - id: kNbKxW5wvwGtkYoAaL1Shj sortOrder: 4 fieldKey: value label: Value @@ -51055,7 +51135,7 @@ items: choices: null dynamic: false allowNull: false - - id: giLuEmfnrZF5Pjk9FsjfdN + - id: pV4Qi8vWoNxVRj4zsLyXLd sortOrder: 5 fieldKey: currency label: Currency @@ -51071,7 +51151,7 @@ items: choices: null dynamic: false allowNull: false - - id: uV7oNwBoX4rrarV6ZXZph5 + - id: dfWMUZFHMQGyoUcYkDkjV1 sortOrder: 6 fieldKey: custom_variables label: Custom Variables @@ -51089,7 +51169,7 @@ items: choices: null dynamic: false allowNull: false - - id: rcb3oEVYNuJpRJD3NY1XNb + - id: 6qSBtgsKdXmnx3xXehZrpX sortOrder: 7 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State @@ -51110,7 +51190,7 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: nA99PnL1MBiJGTfKH3hWrM + - id: 8g2pXNZDibSoEAiv28BXjp sortOrder: 8 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State @@ -51140,7 +51220,7 @@ items: hidden: false defaultTrigger: null fields: - - id: fU42aUrxfaqBsXLmQ177Xu + - id: ftB5dK59rUtxbrLZJJg2fw sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -51152,7 +51232,7 @@ items: choices: null dynamic: true allowNull: false - - id: 5CHZ4HqiBzgC1eQrsMnHT + - id: 7fSDcV4MrzWrFdy92phcx8 sortOrder: 1 fieldKey: adjustment_type label: Adjustment Type @@ -51177,7 +51257,7 @@ items: value: ENHANCEMENT dynamic: false allowNull: false - - id: 3NfCKBEjfZZXrAmQi1Rf2N + - id: wsXPaqPP9sS91sFXy3raKs sortOrder: 2 fieldKey: adjustment_timestamp label: Adjustment Timestamp @@ -51195,7 +51275,7 @@ items: choices: null dynamic: false allowNull: false - - id: fLEJD2as84myrhPtr5dsT + - id: 5PNk7cBVbbNZd2T4MuMX9S sortOrder: 3 fieldKey: order_id label: Order ID @@ -51218,7 +51298,7 @@ items: choices: null dynamic: false allowNull: false - - id: unmmebQAsKjYYUB5FTaypM + - id: rynJNWE89FNGFY5XWajjYq sortOrder: 4 fieldKey: gclid label: GCLID @@ -51232,7 +51312,7 @@ items: choices: null dynamic: false allowNull: false - - id: wMqH9Vqux5zZmEZVgMd8Gu + - id: rEkNJ9F6kuCAHSTMEMBwnv sortOrder: 5 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -51248,7 +51328,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7G1QtKCPvqJi5kq9Y7Hdgf + - id: qvuCC98xTZ5d7hpYHi3m3H sortOrder: 6 fieldKey: restatement_value label: Restatement Value @@ -51264,7 +51344,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9x3gkj51CNEn17y4jUQAb3 + - id: s6d6fu9MCjYtoDPS4juEws sortOrder: 7 fieldKey: restatement_currency_code label: Restatement Currency Code @@ -51280,14 +51360,29 @@ items: choices: null dynamic: false allowNull: false - - id: sGZwQtgq8DXags6k5QvFGn + - id: 4B7qJDWmUFs5WbXv5JHEid sortOrder: 8 + fieldKey: phone_country_code + label: Phone Number Country Code + type: STRING + description: >- + The numeric country code to associate with the phone number. If not + provided Segment will default to '+1'. If the country code does not + start with '+' Segment will add it. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ri9Zkyi9PjCGqW6ZT6CH2X + sortOrder: 9 fieldKey: email_address label: Email Address type: STRING description: >- - Email address of the individual who triggered the conversion event. - Segment will hash this value before sending to Google. + Email address of the individual who triggered the conversion event.. If + not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -51302,15 +51397,15 @@ items: choices: null dynamic: false allowNull: false - - id: piGrPcmFYmHfZsN4t2royS - sortOrder: 9 + - id: aBrNHUVHR7YuQ8w3uX5sCj + sortOrder: 10 fieldKey: phone_number label: Phone Number type: STRING description: >- Phone number of the individual who triggered the conversion event, in - E.164 standard format, e.g. +14150000000. Segment will hash this value - before sending to Google. + E.164 standard format, e.g. +14150000000.. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -51325,14 +51420,12 @@ items: choices: null dynamic: false allowNull: false - - id: izUeWKMEP2jergtu3EyqhX - sortOrder: 10 + - id: x37UBLPdGdAGDABwTvgZVu + sortOrder: 11 fieldKey: first_name label: First Name type: STRING - description: >- - First name of the user who performed the conversion. Segment will hash - this value before sending to Google. + description: First name of the user who performed the conversion. placeholder: '' defaultValue: '@if': @@ -51347,14 +51440,14 @@ items: choices: null dynamic: false allowNull: false - - id: nvybcqVmYCKBsKNA9n66R4 - sortOrder: 11 + - id: izXpxqWDy6NypgQUddaGAX + sortOrder: 12 fieldKey: last_name label: Last Name type: STRING description: >- - Last name of the user who performed the conversion. Segment will hash - this value before sending to Google. + Last name of the user who performed the conversion.. If not hashed, + Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -51369,8 +51462,8 @@ items: choices: null dynamic: false allowNull: false - - id: 4s6ALRg9v4tYGXCjUwKG7j - sortOrder: 12 + - id: keLSebQRviQgGHkYq1B8nq + sortOrder: 13 fieldKey: city label: City type: STRING @@ -51389,8 +51482,8 @@ items: choices: null dynamic: false allowNull: false - - id: fNQQoL6qjjFyy6bKY8uouk - sortOrder: 13 + - id: nD4njBCSVcs4hRXcw3xQKe + sortOrder: 14 fieldKey: state label: State type: STRING @@ -51409,8 +51502,8 @@ items: choices: null dynamic: false allowNull: false - - id: monDqqNjDWHGveF7JYaCAZ - sortOrder: 14 + - id: h7zFzhYqkgPhGMVKtn2rdN + sortOrder: 15 fieldKey: country label: Country type: STRING @@ -51431,8 +51524,8 @@ items: choices: null dynamic: false allowNull: false - - id: setoLhpkny5rATrg67pY7H - sortOrder: 15 + - id: q4VVU1fb7Bam1eFjbFGXBx + sortOrder: 16 fieldKey: postal_code label: Postal Code type: STRING @@ -51451,14 +51544,14 @@ items: choices: null dynamic: false allowNull: false - - id: 4Wd9maUekqS2JbPkKUxXja - sortOrder: 16 + - id: 8yjWCuuqfW1L9Nv5bp8Vmg + sortOrder: 17 fieldKey: street_address label: Street Address type: STRING description: >- - Street address of the user who performed the conversion. Segment will - hash this value before sending to Google. + Street address of the user who performed the conversion.. If not hashed, + Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -51473,8 +51566,8 @@ items: choices: null dynamic: false allowNull: false - - id: t98kQJHborToikAjmQjFeG - sortOrder: 17 + - id: 3RKf52666fTYDuy1ZGoFpk + sortOrder: 18 fieldKey: user_agent label: User Agent type: STRING @@ -51500,7 +51593,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 4HmGyAYGL57SbTfEgQ1VzQ + - id: agUPAYq9kc9qAULZPSDeb9 sortOrder: 0 fieldKey: conversion_action label: Conversion Action ID @@ -51512,7 +51605,7 @@ items: choices: null dynamic: true allowNull: false - - id: mAFxUikeT9XwKNWhxSJaty + - id: afTs4g78isy3Hr6VAce51E sortOrder: 1 fieldKey: gclid label: GCLID @@ -51524,7 +51617,7 @@ items: choices: null dynamic: false allowNull: false - - id: eHEV9RjtT4kgWoSihhpZje + - id: hRUWoiuH1vqC7z29zJjuCe sortOrder: 2 fieldKey: gbraid label: GBRAID @@ -51538,7 +51631,7 @@ items: choices: null dynamic: false allowNull: false - - id: dGmcbzReGzgH2LkH5AvsE4 + - id: mA7K9ad1vrdG8YFhWxqJsy sortOrder: 3 fieldKey: wbraid label: WBRAID @@ -51552,7 +51645,7 @@ items: choices: null dynamic: false allowNull: false - - id: rduwYT6UtpoGmRMDkUEedA + - id: 2V9bH39nGa6pPpPey3STjX sortOrder: 4 fieldKey: conversion_timestamp label: Conversion Timestamp @@ -51569,14 +51662,14 @@ items: choices: null dynamic: false allowNull: false - - id: agpG2HBUAXGRLnqn4zLmMV + - id: onr824dVJHtxXJ7wnjejNz sortOrder: 5 fieldKey: email_address label: Email Address type: STRING description: >- - Email address of the individual who triggered the conversion event. - Segment will hash this value before sending to Google. + Email address of the individual who triggered the conversion event. If + not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -51591,15 +51684,30 @@ items: choices: null dynamic: false allowNull: false - - id: RzF9Gh82VtH3zJrWL7cH8 + - id: 9xDSRz3KtKW6DsitAcMeaz sortOrder: 6 + fieldKey: phone_country_code + label: Phone Number Country Code + type: STRING + description: >- + The numeric country code to associate with the phone number. If not + provided Segment will default to '+1'. If the country code does not + start with '+' Segment will add it. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: vdUEWcZ8dzmzdQohi4zgGR + sortOrder: 7 fieldKey: phone_number label: Phone Number type: STRING description: >- Phone number of the individual who triggered the conversion event, in - E.164 standard format, e.g. +14150000000. Segment will hash this value - before sending to Google. + E.164 standard format, e.g. +14150000000. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -51614,8 +51722,8 @@ items: choices: null dynamic: false allowNull: false - - id: kddB1uCKRRsgohaSMHoYNq - sortOrder: 7 + - id: tbzUQ2EKguSVmZQaDNfiGj + sortOrder: 8 fieldKey: order_id label: Order ID type: STRING @@ -51636,8 +51744,8 @@ items: choices: null dynamic: false allowNull: false - - id: 8YPRpCnPLB5u4ur8kbGixm - sortOrder: 8 + - id: f6GR6d1CURdCum2HpS1dXx + sortOrder: 9 fieldKey: value label: Value type: NUMBER @@ -51650,8 +51758,8 @@ items: choices: null dynamic: false allowNull: false - - id: iiH6kqUgqt97CBBziBQTMh - sortOrder: 9 + - id: 6UiH5aqDgoxeY4PPXWCPSb + sortOrder: 10 fieldKey: currency label: Currency type: STRING @@ -51666,8 +51774,8 @@ items: choices: null dynamic: false allowNull: false - - id: ey9HiJaiyXiTAF8P7PasT9 - sortOrder: 10 + - id: hWvr6ksYikSJ17EoaM1xQi + sortOrder: 11 fieldKey: conversion_environment label: Conversion Environment type: STRING @@ -51688,8 +51796,8 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: n9xyGKoAxwqgs1uZqKeSq5 - sortOrder: 11 + - id: qtmYgcMDwRgtX7HVd7Udkd + sortOrder: 12 fieldKey: merchant_id label: Merchant Center ID type: STRING @@ -51700,8 +51808,8 @@ items: choices: null dynamic: false allowNull: false - - id: 2sxDYgizfQFrQDsJGURquK - sortOrder: 12 + - id: iW4cp8bvR5Ex844MEZDp9X + sortOrder: 13 fieldKey: merchant_country_code label: Merchant Center Feed Country Code type: STRING @@ -51714,8 +51822,8 @@ items: choices: null dynamic: false allowNull: false - - id: pLmJvrL2dKNpUvM6TNxtJW - sortOrder: 13 + - id: m5sn8RVSm7MJVnZGQ1eAwj + sortOrder: 14 fieldKey: merchant_language_code label: Merchant Center Feed Language Code type: STRING @@ -51728,8 +51836,8 @@ items: choices: null dynamic: false allowNull: false - - id: v3uHVwwr8BXfDQGYGUZGdA - sortOrder: 14 + - id: qWhU7tizVz238mWpbXc2v4 + sortOrder: 15 fieldKey: local_cost label: Local Transaction Cost type: NUMBER @@ -51742,8 +51850,8 @@ items: choices: null dynamic: false allowNull: false - - id: 5Q2istMHUnrFyqpsC8q3rV - sortOrder: 15 + - id: oNzuEsJWSLLWAywSaxAY6Z + sortOrder: 16 fieldKey: items label: Items type: OBJECT @@ -51763,8 +51871,8 @@ items: choices: null dynamic: false allowNull: false - - id: uH5ZQthbZ88i4NvJvDGmgQ - sortOrder: 16 + - id: i7CzF8DTXj85uQ3okX9Dxe + sortOrder: 17 fieldKey: custom_variables label: Custom Variables type: OBJECT @@ -51781,8 +51889,8 @@ items: choices: null dynamic: false allowNull: false - - id: kQ7oFB7hCP4dEb1WzV9E5S - sortOrder: 17 + - id: 9xsEC4giYEJkHCKmnUAXAH + sortOrder: 18 fieldKey: ad_user_data_consent_state label: Ad User Data Consent State type: STRING @@ -51802,8 +51910,8 @@ items: value: UNSPECIFIED dynamic: false allowNull: false - - id: pXnaWZhRTsZStSNRXW2KSi - sortOrder: 18 + - id: gLwkA9NYWsNRRBf3QGyeHi + sortOrder: 19 fieldKey: ad_personalization_consent_state label: Ad Personalization Consent State type: STRING @@ -70130,7 +70238,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" and event != "Cart Updated" fields: - - id: uagAHBf16yEVixBTHEVGzK + - id: m9pyjCg2ARTNrbmTPVeyxp sortOrder: 0 fieldKey: email label: Email Address @@ -70151,7 +70259,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fkFgJQj6iD3VB5shgnoXEp + - id: u88j55coNKMGob5A2PLYwE sortOrder: 1 fieldKey: userId label: User ID @@ -70166,7 +70274,7 @@ items: dynamic: false allowNull: false hidden: false - - id: oTT6acRsG7rnPXWVnLuqwB + - id: fbKMMajEaECXTSrpDHY5cy sortOrder: 2 fieldKey: eventName label: Event name @@ -70181,7 +70289,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7yVcFVKts14tBtgYGzbq4X + - id: 51f9eoAeouNnAjjmrpsvzT sortOrder: 3 fieldKey: dataFields label: Event Data Fields @@ -70196,7 +70304,7 @@ items: dynamic: false allowNull: false hidden: false - - id: qtwSkFsmfkBFnAoKFf88P + - id: hVws5hSyD9QEmDNxFoqd8F sortOrder: 4 fieldKey: id label: Event ID @@ -70211,7 +70319,7 @@ items: dynamic: false allowNull: false hidden: false - - id: dWPxLsWpe32FZhMbpLKvq5 + - id: ffmF8PA7WRdPeHvUN2po6N sortOrder: 5 fieldKey: createdAt label: Timestamp @@ -70226,7 +70334,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8V5rJMi2asReRYokswBhSQ + - id: q4qegdFqpsmTs2G5i82Rsr sortOrder: 6 fieldKey: campaignId label: Campaign ID @@ -70241,7 +70349,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ioE6Rd13Y8f8i7kRm8YHpV + - id: mSQyypKSg83hHtzMq78E5Y sortOrder: 7 fieldKey: templateId label: Template ID @@ -70256,7 +70364,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2mntQJwHx4QANyP2Mtb5EN + - id: 4S83mDXcwLMHntbZ2y4zmk sortOrder: 8 fieldKey: enable_batching label: Enable Batching @@ -70279,7 +70387,7 @@ items: hidden: false defaultTrigger: type = "track" and event == "Cart Updated" fields: - - id: gX6RQteoLkjPs2Zrs4z4mY + - id: hbrgq6xQ4WTbuNJ7iMXZwi sortOrder: 0 fieldKey: user label: User Data @@ -70308,7 +70416,7 @@ items: dynamic: false allowNull: false hidden: false - - id: aa8EbkGoiCunjmNebxb5Az + - id: i6FrPmxVriVxD1XkeXagbc sortOrder: 1 fieldKey: items label: Cart items @@ -70352,7 +70460,7 @@ items: hidden: false defaultTrigger: type = "track" and event == "Order Completed" fields: - - id: xkTE8hk54UTNJ3yypuumhQ + - id: rvSJjQ51dFX81RLn1Bg12A sortOrder: 0 fieldKey: id label: Order ID @@ -70371,7 +70479,7 @@ items: dynamic: false allowNull: false hidden: false - - id: a5F6VyENwoFBLUG5qcwXjs + - id: ijec45m9AeQo25Ti8T7uk5 sortOrder: 1 fieldKey: user label: User Data @@ -70400,7 +70508,7 @@ items: dynamic: false allowNull: false hidden: false - - id: x1yPxUvBY8GWA24SfMtGNC + - id: iunsPL8S6vWHFp4nj1QHte sortOrder: 2 fieldKey: dataFields label: Event Data Fields @@ -70415,7 +70523,7 @@ items: dynamic: false allowNull: false hidden: false - - id: twyWydPDxY96JmSEKpRVca + - id: oXN6cJy6XvBJhfK7SnrAbv sortOrder: 3 fieldKey: items label: Cart items @@ -70451,7 +70559,7 @@ items: dynamic: false allowNull: false hidden: false - - id: aLot9kLy4w9rt7mA686gH9 + - id: 485PsfJzgfzyArGLvqT3B3 sortOrder: 4 fieldKey: total label: Total @@ -70466,7 +70574,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fvcLGURCPBK697FWfozPLU + - id: fKAatFAeAkGrGrsWFW17YK sortOrder: 5 fieldKey: createdAt label: Timestamp @@ -70481,7 +70589,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 35EL1uaQi1UFG2GS44SGwW + - id: qmS6DSJDab1gTYMGq7KH6d sortOrder: 6 fieldKey: campaignId label: Campaign ID @@ -70496,7 +70604,7 @@ items: dynamic: false allowNull: false hidden: false - - id: owi85j9Ug1HNQQJ5daaHTx + - id: wWYfRfzYigoK3bHuCRsdsE sortOrder: 7 fieldKey: templateId label: Template ID @@ -70519,7 +70627,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: cEpTtsRuTBpNWghMVpmEzv + - id: bud7p7v15JFu6BdydgGmF3 sortOrder: 0 fieldKey: email label: Email Address @@ -70534,7 +70642,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8Fk9rCjqjGhDrvnvLYpC3e + - id: dF7JYfzhRSVf3H5o8iNmCF sortOrder: 1 fieldKey: userId label: User ID @@ -70549,7 +70657,7 @@ items: dynamic: false allowNull: false hidden: false - - id: r9KLpoLkpFAirBUEFeHuHA + - id: aJJ3Z4EbBNN6jfHz7yuMqT sortOrder: 2 fieldKey: dataFields label: User Data Fields @@ -70564,7 +70672,7 @@ items: dynamic: false allowNull: false hidden: false - - id: r8HtLj4j9VCxE8yiY7KuNk + - id: bj7ru4KHJjwhc2Rx4mQSxR sortOrder: 3 fieldKey: phoneNumber label: User Phone Number @@ -70581,7 +70689,7 @@ items: dynamic: false allowNull: true hidden: false - - id: ottN1aR7P5eqxVDRwYaLGj + - id: jCeusC18sDFKujpJwqNvh2 sortOrder: 4 fieldKey: mergeNestedObjects label: Merge Nested Objects @@ -70598,7 +70706,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pr2XnTsYdBCQx39iUXXLEZ + - id: jQ1e4qVCmfnyY9BERSpsmc sortOrder: 5 fieldKey: enable_batching label: Enable Batching @@ -70614,47 +70722,6 @@ items: dynamic: false allowNull: false presets: - - actionId: 455R6caawb6HFBsewGmtS3 - name: Update Cart Calls - fields: - user: - email: - '@if': - exists: - '@path': $.properties.email - then: - '@path': $.properties.email - else: - '@path': $.context.traits.email - userId: - '@path': $.userId - dataFields: - '@path': $.context.traits - phoneNumber: - '@path': $.context.traits.phone - mergeNestedObjects: false - items: - '@arrayPath': - - $.properties.products - - id: - '@path': product_id - sku: - '@path': sku - categories: - '@path': category - name: - '@path': name - price: - '@path': price - quantity: - '@path': quantity - url: - '@path': url - imageUrl: - '@path': image_url - description: - '@path': description - trigger: type = "track" and event = "Cart Updated" - actionId: hgu8jn8qk4wt7VZD4P67uV name: Order Completed Calls fields: @@ -70751,6 +70818,47 @@ items: enable_batching: true batch_size: 1001 trigger: type = "track" and event != "Order Completed" and event != "Cart Updated" + - actionId: 455R6caawb6HFBsewGmtS3 + name: Update Cart Calls + fields: + user: + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + userId: + '@path': $.userId + dataFields: + '@path': $.context.traits + phoneNumber: + '@path': $.context.traits.phone + mergeNestedObjects: false + items: + '@arrayPath': + - $.properties.products + - id: + '@path': product_id + sku: + '@path': sku + categories: + '@path': category + name: + '@path': name + price: + '@path': price + quantity: + '@path': quantity + url: + '@path': url + imageUrl: + '@path': image_url + description: + '@path': description + trigger: type = "track" and event = "Cart Updated" partnerOwned: true - id: 62fec615a42fa3dbfd208ce7 display_name: Iterate Web (Actions) @@ -72134,7 +72242,7 @@ items: type: boolean defaultValue: true description: Indicates if SSL should be enabled. - required: true + required: false label: SSL Enabled - name: ssl_key type: string @@ -72151,7 +72259,7 @@ items: description: >- Whether to reject unauthorized CAs or not. This can be useful when testing, but is unadvised in Production. - required: true + required: false label: SSL - Reject Unauthorized Certificate Authority - name: username type: string @@ -72172,7 +72280,7 @@ items: type = "track" or type = "identify" or type = "page" or type = "screen" or type = "group" fields: - - id: iGoSy97kN5Jagq7RCWiqh9 + - id: rpZx7yusdJ9rDLNZWpqKbp sortOrder: 0 fieldKey: topic label: Topic @@ -72186,7 +72294,7 @@ items: choices: null dynamic: true allowNull: false - - id: pq2rTH6nhfdJKc9skbVF3y + - id: jek3rN3NM43ABDQwNGDj6T sortOrder: 1 fieldKey: payload label: Payload @@ -72200,7 +72308,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8o9pF9931iv1T657Z6fMJr + - id: 6wcAra8MykYWL5WbsLYtSb sortOrder: 2 fieldKey: headers label: Headers @@ -72214,7 +72322,7 @@ items: choices: null dynamic: false allowNull: false - - id: wEGVh8neXojm1kJHX78GfM + - id: mvT1o1a3d5974wRxa181HV sortOrder: 3 fieldKey: partition label: Partition @@ -72226,7 +72334,7 @@ items: choices: null dynamic: false allowNull: false - - id: w1QoTBCDDL64zV5Gof2Ukk + - id: eXphzZzwSWdBg46Be7dXVN sortOrder: 4 fieldKey: default_partition label: Default Partition @@ -72238,7 +72346,7 @@ items: choices: null dynamic: false allowNull: false - - id: iUYVDApt8vV7SUEJ8WUENi + - id: 6TULjFrtM8YnhWkHTmCRhh sortOrder: 5 fieldKey: key label: Message Key @@ -72250,7 +72358,7 @@ items: choices: null dynamic: false allowNull: false - - id: rgJqFN42iDcaDzDTGrMzgE + - id: mo6Msbirr6sPEMvspmeafb sortOrder: 6 fieldKey: enable_batching label: Enable Batching? @@ -73656,7 +73764,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: sfJutwMmbwkKTspmyTGVSe + - id: 2XgVp3JEkB7YLC72hhweKt sortOrder: 0 fieldKey: email label: Email @@ -73672,7 +73780,7 @@ items: choices: null dynamic: false allowNull: false - - id: cpcUGZbqFZo8GoSC6Az4HE + - id: o9TvdcDRP1sJ5YMDdxNoY1 sortOrder: 1 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -73684,7 +73792,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5kLCFKvd6zTdfV54YXuQoM + - id: 968L6DBDbk3iykHYtWFYPi sortOrder: 2 fieldKey: phone_number label: Phone Number @@ -73701,7 +73809,7 @@ items: choices: null dynamic: false allowNull: false - - id: sgRwqFXwzwESkMzaH39jry + - id: fzK43uYjunnNqXKZ7hUByF sortOrder: 3 fieldKey: country_code label: Country Code @@ -74210,7 +74318,7 @@ items: value: ZW dynamic: false allowNull: false - - id: p3yZ8Mm9bG1szU2jcp4yny + - id: pQKBfpNBLVU3XDLENro8cP sortOrder: 4 fieldKey: external_id label: External ID @@ -74225,7 +74333,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4C9pT1Ue8SRkE885dc9j1F + - id: ohoDzvreZk8KsCr2HMJeha sortOrder: 5 fieldKey: first_name label: First Name @@ -74239,7 +74347,7 @@ items: choices: null dynamic: false allowNull: false - - id: njXWyxUsSABNvvxiWWmTDs + - id: q7YqGidKdzavEVo7ckyq88 sortOrder: 6 fieldKey: last_name label: Last Name @@ -74253,7 +74361,7 @@ items: choices: null dynamic: false allowNull: false - - id: cd39z5DUkk5Kw6n6DQCAjW + - id: czocTshjGXdaEue3j4FT3j sortOrder: 7 fieldKey: organization label: Organization @@ -74269,7 +74377,7 @@ items: choices: null dynamic: false allowNull: false - - id: cSoeoqsCSF9RnYszST78oj + - id: 88WPvSc8NAmyrC7Yj68p3w sortOrder: 8 fieldKey: title label: Title @@ -74283,7 +74391,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8LLTQEYBGyP4CNLzPZtBC6 + - id: 3tuUtkwTRx5rFq1oeZsW3q sortOrder: 9 fieldKey: image label: Image @@ -74297,7 +74405,7 @@ items: choices: null dynamic: false allowNull: false - - id: wbU9qKxu9aT3HSHUBneB63 + - id: obVNHopBLvnjzxYZKDQp2Z sortOrder: 10 fieldKey: location label: Location @@ -74320,7 +74428,7 @@ items: choices: null dynamic: false allowNull: false - - id: ou3if9DFYqHHXn5NUTRFyA + - id: kPR5TfvLXHRUQnUQ9e6jFy sortOrder: 11 fieldKey: properties label: Properties @@ -74336,7 +74444,7 @@ items: choices: null dynamic: false allowNull: false - - id: jfqWWrwbDMws4fJ7pfxm9e + - id: t1c1wZHKox3qZDb1GeGfEY sortOrder: 12 fieldKey: list_id label: List @@ -74348,7 +74456,7 @@ items: choices: null dynamic: true allowNull: false - - id: 4fuNLcrfAAvrvNzxXUBv64 + - id: v13sRRHoWprkrExaQH7MWL sortOrder: 15 fieldKey: list_identifier label: Existing List ID @@ -74362,7 +74470,7 @@ items: choices: null dynamic: true allowNull: false - - id: bj4DFxMRFcMA8cbWcZEtcc + - id: jFvsmTMox9PXTDp5Lr8r1A sortOrder: 16 fieldKey: list_name label: Name of list to create @@ -74374,7 +74482,7 @@ items: choices: null dynamic: false allowNull: false - - id: agEv2LBYa9wEpwTcnH5y1b + - id: jGNGwBmCxRWzgj8b57yWLh sortOrder: 17 fieldKey: retlOnMappingSave label: Connect to a static list in Klaviyo @@ -74397,7 +74505,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: uLv882XG8i4mo33EyNkNiU + - id: ctiLZLWKDyqqCrMcMqDnXw sortOrder: 0 fieldKey: profile label: Profile @@ -74409,7 +74517,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7PEkpbpthvrRGfzePStJ8W + - id: rGHU9KUw8KmxbK1u2pwZpX sortOrder: 1 fieldKey: properties label: Properties @@ -74423,7 +74531,7 @@ items: choices: null dynamic: false allowNull: false - - id: bmejabW7A1wujLop5W875a + - id: jnJP5XD9E3eRabuobwTeV8 sortOrder: 2 fieldKey: time label: Time @@ -74442,7 +74550,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4kVgkg2vuCLDA9AixnnXrF + - id: jSLoepXPrbCX2B3epFYywV sortOrder: 3 fieldKey: value label: Value @@ -74456,7 +74564,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3Zofr5GHYHoDk8qCAnnjcs + - id: uiVcqaCCMWmLMwxZk2s9HJ sortOrder: 4 fieldKey: unique_id label: Unique ID @@ -74476,7 +74584,7 @@ items: choices: null dynamic: false allowNull: false - - id: m72ShCaYcSEa4uV9p2eTM4 + - id: ueGDd8PbMmLJEGzcWQqnd3 sortOrder: 5 fieldKey: products label: Products @@ -74488,7 +74596,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4jqBYLqnH4P7StZgTC5WyD + - id: dscn8qTcNy2wviaTHD11EK sortOrder: 6 fieldKey: event_name label: Event Name @@ -74503,7 +74611,7 @@ items: choices: null dynamic: false allowNull: false - - id: m4Qwv9ve4eexKmKU522ZCM + - id: dUtP3jnWnVdiZ9xVz5YgNj sortOrder: 7 fieldKey: product_event_name label: Product Event Name @@ -74527,7 +74635,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: 7pCGioKr3Enx3LSgSgBC7R + - id: wKkHxrMwAkkZk9py6WrMF1 sortOrder: 0 fieldKey: profile label: Profile @@ -74539,7 +74647,7 @@ items: choices: null dynamic: false allowNull: false - - id: efRPAHKwREsRGrPWUxNkFb + - id: ksGsoNpVPHWf51xWntP6Zi sortOrder: 1 fieldKey: metric_name label: Metric Name @@ -74553,7 +74661,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8G6KQ2i2KKySoefMYhQeBj + - id: vrd2oot3LGXGwMtuUKh5ma sortOrder: 2 fieldKey: properties label: Properties @@ -74567,7 +74675,7 @@ items: choices: null dynamic: false allowNull: false - - id: uywVJxTfTahzz7bUKmQHDU + - id: mM47ns3rBozpPHwdCAXqxS sortOrder: 3 fieldKey: time label: Time @@ -74586,7 +74694,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2iSFDwymh7bujwRUH3VEQq + - id: ffnm73PrVbrwWFFHk9xMeQ sortOrder: 4 fieldKey: value label: Value @@ -74600,7 +74708,7 @@ items: choices: null dynamic: false allowNull: false - - id: dw5o3MzreSnRZWA7ewpUwa + - id: eEors7aQdh2f6Ex6adav2L sortOrder: 5 fieldKey: unique_id label: Unique ID @@ -74620,7 +74728,7 @@ items: choices: null dynamic: false allowNull: false - - id: pu3uQZmi65TESnF2TgZueG + - id: xeG1x3znizXTufEUcfEqLC sortOrder: 6 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -74641,7 +74749,7 @@ items: hidden: false defaultTrigger: event = "Audience Exited" fields: - - id: xw1TUwE2VuqqyxxvutZkj4 + - id: pXVCQSRnupZcx7tiwcbSJq sortOrder: 0 fieldKey: email label: Email @@ -74655,7 +74763,7 @@ items: choices: null dynamic: false allowNull: false - - id: kWC2ZtEzPqiRyUwDPgPSAJ + - id: stXtMjgTbF8HBG3k8akVk7 sortOrder: 1 fieldKey: external_id label: External ID @@ -74669,7 +74777,7 @@ items: choices: null dynamic: false allowNull: false - - id: cvvARSBcM4YyPcPbJysoTk + - id: Ujcur5Eg1rwTjQbPSKdCx sortOrder: 3 fieldKey: phone_number label: Phone Number @@ -74686,7 +74794,7 @@ items: choices: null dynamic: false allowNull: false - - id: rs46m3Lao6TNukKL2NQNoo + - id: kM73bukH6vgu6rTzvYTQB5 sortOrder: 4 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -74699,7 +74807,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9k3runy7zZdeyEVRZazsKG + - id: hTnTKLuJChNNWuoynK579s sortOrder: 5 fieldKey: country_code label: Country Code @@ -75216,7 +75324,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: bsMS7Ku21SMfUoXTkBE9vQ + - id: qhnVHthxB4AzNDVofTY217 sortOrder: 0 fieldKey: email label: Email @@ -75230,7 +75338,7 @@ items: choices: null dynamic: false allowNull: false - - id: k5gQ7Eni2jEdraSd39HXED + - id: e2xowXkFRXwshM2m55WyNg sortOrder: 1 fieldKey: phone_number label: Phone Number @@ -75247,7 +75355,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6qDS9AQ97pxCSWH4hQjAoq + - id: 6mxEbgKJu7LnS8Uj761AuB sortOrder: 3 fieldKey: external_id label: External ID @@ -75261,7 +75369,7 @@ items: choices: null dynamic: false allowNull: false - - id: hLLkpw5i6gaxtdb3FZFRSc + - id: o45v2DzAndKRvfNrmif4Dw sortOrder: 4 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -75274,7 +75382,7 @@ items: choices: null dynamic: false allowNull: false - - id: xnmZPFkdjbQDVUf8yi83Hr + - id: i8SM1XZuQVD2C9FkSyefC5 sortOrder: 6 fieldKey: first_name label: First Name @@ -75288,7 +75396,7 @@ items: choices: null dynamic: false allowNull: false - - id: Z8vDWZ6ZAVbSbTLxNE2vV + - id: bUzPoH1zg1zomd13qDpqvv sortOrder: 7 fieldKey: last_name label: Last Name @@ -75302,7 +75410,7 @@ items: choices: null dynamic: false allowNull: false - - id: oqajqJV9vqDv7zQj4hb38Z + - id: fU8AoNQcnBLANEtDEZ7wLv sortOrder: 8 fieldKey: image label: Image @@ -75316,7 +75424,7 @@ items: choices: null dynamic: false allowNull: false - - id: nuEehyrCeuT2Cty34vXDn7 + - id: 5CPJqQhZFA1PmEykERZWJa sortOrder: 9 fieldKey: title label: Title @@ -75330,7 +75438,7 @@ items: choices: null dynamic: false allowNull: false - - id: oiSfHmZYKx8VWcrrq57BNB + - id: pKTDj74oGVKfhqBNb6Efor sortOrder: 10 fieldKey: organization label: Organization @@ -75346,7 +75454,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8jMzCMRghHPfAMy57qUVJT + - id: jR1JWM3pKtqsWXUdwoWGcb sortOrder: 11 fieldKey: location label: Location @@ -75369,7 +75477,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7rrPFZNW4BzLFPEYjJzoND + - id: wkphnqCUdBU1VfPcaTp9o4 sortOrder: 12 fieldKey: properties label: Properties @@ -75385,7 +75493,7 @@ items: choices: null dynamic: false allowNull: false - - id: 41yrek8Qkeqv8iDhkuYDyg + - id: TLvzsng9hsDhWm8MUBXF sortOrder: 13 fieldKey: country_code label: Country Code @@ -75902,7 +76010,7 @@ items: hidden: false defaultTrigger: type = "Identify" fields: - - id: nWinxDi7aqh7q5UJycrwRC + - id: ngoNmC1iuLzgBFJ3s9fVcK sortOrder: 0 fieldKey: email label: Email @@ -75916,7 +76024,7 @@ items: choices: null dynamic: false allowNull: false - - id: sfhLJszXyptwVchLgXRovz + - id: gZ6zgfkXFaeHVzkBAWuDPh sortOrder: 1 fieldKey: external_id label: External ID @@ -75931,7 +76039,7 @@ items: choices: null dynamic: false allowNull: false - - id: pXrKaCt2KgwptgphZxzH94 + - id: hybeDqRQ4U4hXNfyQwYGg1 sortOrder: 2 fieldKey: list_id label: List @@ -75943,7 +76051,7 @@ items: choices: null dynamic: true allowNull: false - - id: rPsUyyVtXZ27whDEb2Pc9Q + - id: fDEp2eMExqrPPko2QE8L1Z sortOrder: 3 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -75956,7 +76064,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5aD5PtDDxkEuZ3cwPJYNkQ + - id: 2cvDKUD2URE5PCUjkGVkom sortOrder: 5 fieldKey: phone_number label: Phone Number @@ -75973,7 +76081,7 @@ items: choices: null dynamic: false allowNull: false - - id: 27BUDVXVRE3yypNZKVXjaZ + - id: dJwKkXPiTkhFzPKvGQZhrh sortOrder: 6 fieldKey: country_code label: Country Code @@ -76490,7 +76598,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "User Subscribed" fields: - - id: jbf7JcVKLCDcYGb2zNvjHP + - id: x8wgkHNxwAGRQip2hktkPu sortOrder: 0 fieldKey: email label: Email @@ -76512,7 +76620,7 @@ items: choices: null dynamic: false allowNull: false - - id: i5ZRW1JdBmsDBMqZy5WFVR + - id: iTE8BR1x2WApp8AZ9kv21F sortOrder: 1 fieldKey: phone_number label: Phone Number @@ -76534,7 +76642,7 @@ items: choices: null dynamic: false allowNull: false - - id: cYQVJC4Tvsm2b7GpJNjftn + - id: cU6V6QCm9y9MtTxgnda67N sortOrder: 2 fieldKey: country_code label: Country Code @@ -77043,7 +77151,7 @@ items: value: ZW dynamic: false allowNull: false - - id: gjTHJG7WmdCP1p58TBFwUm + - id: uHfMqAyyMwHuahcsdS4baw sortOrder: 3 fieldKey: list_id label: List Id @@ -77058,7 +77166,7 @@ items: choices: null dynamic: true allowNull: false - - id: azUK1sQU2VryEJZPsk5s1t + - id: aK2YiDhgZ9R6MXJfxvM4ui sortOrder: 4 fieldKey: custom_source label: Custom Source ($source) @@ -77075,7 +77183,7 @@ items: choices: null dynamic: false allowNull: false - - id: ozQzr77g5UhYk51HhMkurR + - id: mbW6nFUQBZmkftmTjGjdb6 sortOrder: 5 fieldKey: consented_at label: Consented At @@ -77089,7 +77197,7 @@ items: choices: null dynamic: false allowNull: false - - id: qNmH2MgadTbhkgFNuibJMh + - id: rdB6kbVSeTQyLaBa2zWjHd sortOrder: 6 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -77109,7 +77217,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "User Unsubscribed" fields: - - id: fPPxWxSds5nrJs5pwPNsDs + - id: 3aeD5eeARkQhzfUBzZ57uT sortOrder: 0 fieldKey: email label: Email @@ -77131,7 +77239,7 @@ items: choices: null dynamic: false allowNull: false - - id: 725yqtJq7AWxBqZD3L2f1y + - id: tZKE598uEcCbTGhPUdMUwA sortOrder: 1 fieldKey: phone_number label: Phone Number @@ -77153,7 +77261,7 @@ items: choices: null dynamic: false allowNull: false - - id: tywxjK23RyWyr2KHDymyU5 + - id: jpYHKZ4rNuvmJQzFV7dfwZ sortOrder: 2 fieldKey: country_code label: Country Code @@ -77662,7 +77770,7 @@ items: value: ZW dynamic: false allowNull: false - - id: 6DvEZq7x6ZPGwTX2U2qKG1 + - id: fLvJ6LQmLLj9HUcuQnMUoU sortOrder: 3 fieldKey: list_id label: List Id @@ -77676,7 +77784,7 @@ items: choices: null dynamic: true allowNull: false - - id: 2hTNNwHXKE3o7xaCqHvPP1 + - id: wDJtajggf9nUL891fzvnr sortOrder: 4 fieldKey: enable_batching label: Batch Data to Klaviyo @@ -79180,7 +79288,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" or event = "Audience Exited" fields: - - id: 31x86t1JVzBRXmYopJ99dB + - id: 7511VyvY4NS4w9dtpSTfdh sortOrder: 0 fieldKey: dmp_segment_name label: DMP Segment Display Name @@ -79198,7 +79306,7 @@ items: dynamic: false allowNull: false hidden: false - - id: g2pB2e7ByWVu2irQiNeWRo + - id: xzNE674njRGb54csuz8w2k sortOrder: 1 fieldKey: enable_batching label: Enable Batching @@ -79212,12 +79320,14 @@ items: dynamic: false allowNull: false hidden: false - - id: f9EJ7eUp7Lkyg4nxkeKE4g + - id: jaRpaeYSg3CVGZYedFipFY sortOrder: 2 fieldKey: email label: User Email type: STRING - description: The user's email address to send to LinkedIn. + description: >- + The user's email address to send to LinkedIn. If not hashed, Segment + will hash this value. placeholder: '' defaultValue: '@if': @@ -79232,7 +79342,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4CdHQoyh3SotcuC4nDmS7N + - id: p4zXdsFeV2q3pXL4XSpbjx sortOrder: 3 fieldKey: first_name label: User First Name @@ -79246,7 +79356,7 @@ items: choices: null dynamic: false allowNull: false - - id: tYJxbjPtrefdUXR5tu3Biz + - id: gSC9KCcNN6r5c1VxLszdJa sortOrder: 4 fieldKey: last_name label: User Last Name @@ -79260,7 +79370,7 @@ items: choices: null dynamic: false allowNull: false - - id: mF4DscEQPPgkyigDiwX5z2 + - id: gcYH9oH6d8FutpRsmWvzmT sortOrder: 5 fieldKey: title label: User Title @@ -79274,7 +79384,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5zbJnVkjFMpLotz4ViyRWg + - id: nHG9m4eH8i7FfrNMRY87F4 sortOrder: 6 fieldKey: company label: User Company @@ -79288,7 +79398,7 @@ items: choices: null dynamic: false allowNull: false - - id: e5ghKrbSdhFV5BvYBNQRPn + - id: nwXuuLFxX4RQoEaai3Bezs sortOrder: 7 fieldKey: country label: User Country @@ -79304,7 +79414,7 @@ items: choices: null dynamic: false allowNull: false - - id: dxDocTVte7NTURTzWjha1T + - id: 3J6d7CWpHKLCaf9cUJton9 sortOrder: 10 fieldKey: personas_audience_key label: Segment Engage Audience Key @@ -79320,7 +79430,7 @@ items: dynamic: false allowNull: false hidden: false - - id: nxKHSRMYwgcr6oxHgM6YDm + - id: w8KuaMrKHmQeyaw7KBg8sb sortOrder: 12 fieldKey: dmp_user_action label: DMP User Action @@ -79401,7 +79511,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: 42FpF8bpQGBeiS1c5Ei6nV + - id: 7o75eA6RHceZPoKFoJxAKt sortOrder: 0 fieldKey: conversionHappenedAt label: Timestamp @@ -79418,7 +79528,7 @@ items: choices: null dynamic: false allowNull: false - - id: fwQrCfKGbxobzQuQPVVV6i + - id: pos31aCSbkTEEnSF1JXudv sortOrder: 1 fieldKey: conversionValue label: Conversion Value @@ -79437,7 +79547,7 @@ items: choices: null dynamic: false allowNull: false - - id: ibGkEYTmsjezLPa9r6xkGW + - id: hQW44davugg3iViBGLQ6WH sortOrder: 2 fieldKey: eventId label: Event ID @@ -79453,7 +79563,7 @@ items: choices: null dynamic: false allowNull: false - - id: e59G2PdVfVxuK8ArFb8vtz + - id: aMKi4zSDQkSuXLrUpi5Ati sortOrder: 3 fieldKey: email label: Email @@ -79461,7 +79571,8 @@ items: description: >- Email address of the contact associated with the conversion event. Segment will hash this value before sending it to LinkedIn. One of email - or LinkedIn UUID or Axciom ID or Oracle ID is required. + or LinkedIn UUID or Axciom ID or Oracle ID is required. If not hashed, + Segment will hash this value. placeholder: '' defaultValue: '@path': $.traits.email @@ -79470,7 +79581,7 @@ items: choices: null dynamic: false allowNull: false - - id: mhRmHLyPRuYvLUT48B8m7B + - id: tcpxzK36MLK5aagpQFb3FG sortOrder: 4 fieldKey: linkedInUUID label: LinkedIn First Party Ads Tracking UUID @@ -79487,7 +79598,7 @@ items: choices: null dynamic: false allowNull: false - - id: xpvKHCBVjQkUaWeXwxYyg9 + - id: bGcfUiV2mN93edSs5sD94e sortOrder: 5 fieldKey: acxiomID label: Acxiom ID @@ -79501,7 +79612,7 @@ items: choices: null dynamic: false allowNull: false - - id: v9w3yfyJ2bg37jGRiJ9Lk4 + - id: phQ7enzPKdunMvQLT7MU9A sortOrder: 6 fieldKey: oracleID label: Oracle ID @@ -79516,7 +79627,7 @@ items: choices: null dynamic: false allowNull: false - - id: fyB1K6Ka5qrQXSyjQzrL7H + - id: qHwAjKSrNmZa3MVCw1xt1E sortOrder: 7 fieldKey: userInfo label: User Info @@ -79530,7 +79641,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6HNBcsMKvTC3WnRaijcepq + - id: 2GgCAmNJF9eqkcuS7CcUkh sortOrder: 10 fieldKey: adAccountId label: Ad Account @@ -79546,7 +79657,7 @@ items: choices: null dynamic: true allowNull: false - - id: rGqujESKqpFpztKoiCGd8n + - id: wJkL7ahpM6jhhiMLgYBNZq sortOrder: 11 fieldKey: campaignId label: Add Campaigns to Conversion @@ -79562,7 +79673,7 @@ items: choices: null dynamic: true allowNull: false - - id: jg6PLNEV15hvZ3SSc2Dw6f + - id: 9EWjFkVeeqUQBC5vwQRFSP sortOrder: 12 fieldKey: conversionRuleId label: Existing Conversion Rule ID @@ -79576,7 +79687,7 @@ items: choices: null dynamic: true allowNull: false - - id: 6PMK8XxBrTwH8U7C8BDBuX + - id: h8EvRqZaSUu7ohPGjRtYRD sortOrder: 13 fieldKey: name label: Name @@ -79588,7 +79699,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2YFQJPZnRrAwDcXudvBAW8 + - id: 3an5jd315q2ctBijeBQf63 sortOrder: 14 fieldKey: conversionType label: Conversion Type @@ -79672,7 +79783,7 @@ items: value: SALES_QUALIFIED_LEAD dynamic: false allowNull: false - - id: aSPPViR6v55DSK5QxFrgLD + - id: xnWVinzaqE6eEfUDbRHk8u sortOrder: 15 fieldKey: attribution_type label: Attribution Type @@ -79688,7 +79799,7 @@ items: value: LAST_TOUCH_BY_CONVERSION dynamic: false allowNull: false - - id: 6p72MMWfiRmSG8VPUtJvQJ + - id: gdDQRiLx5TqrcsVj6qwpZh sortOrder: 16 fieldKey: post_click_attribution_window_size label: Post-Click Attribution Window Size @@ -79712,7 +79823,7 @@ items: value: 90 dynamic: false allowNull: false - - id: j2gsfN9TUS5J6Lzq9hAH76 + - id: f2Bx1JXXKwC1vScuKcZdRi sortOrder: 17 fieldKey: view_through_attribution_window_size label: View-Through Attribution Window Size @@ -79736,7 +79847,7 @@ items: value: 90 dynamic: false allowNull: false - - id: rKWWXHyhi28APAqpRhhhg4 + - id: dzvm3hAiiCrY5tNy1uYiF5 sortOrder: 18 fieldKey: onMappingSave label: Create a Conversion Rule @@ -80449,7 +80560,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: 5rTm1rFp2E6jbedzgTUKfo + - id: usqJEAgk51ReirFFURVLmJ sortOrder: 0 fieldKey: sftp_username label: Username @@ -80462,7 +80573,7 @@ items: dynamic: false allowNull: false hidden: false - - id: v16LuCW8kxhbZ9dTHc3mzT + - id: uhDMwkvXwTSCjtWBgqHEWg sortOrder: 1 fieldKey: sftp_password label: Password @@ -80475,7 +80586,7 @@ items: dynamic: false allowNull: false hidden: false - - id: aD1QbViRxuCu7iePoK1165 + - id: 6cVpBc42HMD7SUWoLwt8Qs sortOrder: 2 fieldKey: sftp_folder_path label: Folder Path @@ -80492,7 +80603,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hro3Ltj6KUhbZt9sQuLyq7 + - id: 3pmmVzcFWmHzSL2yYNQriy sortOrder: 3 fieldKey: audience_key label: LiveRamp Audience Key @@ -80511,7 +80622,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ueC19cjphKdnUeCDhNWAYp + - id: esrVbhGstvSY944NsR34mn sortOrder: 4 fieldKey: identifier_data label: Identifier Data @@ -80524,7 +80635,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vwkg7i7fwTXRACTNRn7tPK + - id: dCqHg42bUEWdYtdUkWUBFG sortOrder: 5 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -80540,7 +80651,7 @@ items: dynamic: false allowNull: false hidden: false - - id: gn2ujzRoJs4Am8WsvdJisL + - id: 2oJMEgLR8HnZ1RKUhqgMam sortOrder: 6 fieldKey: delimiter label: Delimeter @@ -80554,12 +80665,14 @@ items: dynamic: false allowNull: false hidden: false - - id: vBy4kGuQBMjWkbd3A3mT5x + - id: 9ZwpEMLLkB4rC76hohFMPy sortOrder: 7 fieldKey: filename label: Filename type: STRING - description: Name of the CSV file to upload for LiveRamp ingestion. + description: >- + Name of the CSV file to upload for LiveRamp ingestion. For multiple + subscriptions, make sure to use a unique filename for each subscription. placeholder: '' defaultValue: '@template': '{{properties.audience_key}}_PII.csv' @@ -80577,7 +80690,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: 21FEA7jGQaAEXpg19CdFn1 + - id: mxfANQd9Cnza5iXWnZmF1k sortOrder: 0 fieldKey: s3_aws_access_key label: AWS Access Key ID @@ -80590,7 +80703,7 @@ items: dynamic: false allowNull: false hidden: false - - id: cczCyRM5K7FYjpj9zBvWd1 + - id: ay1kmzFSMsGJH6BvFtf5rU sortOrder: 1 fieldKey: s3_aws_secret_key label: AWS Secret Access Key @@ -80603,7 +80716,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vnA9VJ6CDHZGqjBxpDMhT8 + - id: 6vgzFX9P6x7BDQQgpDTv9e sortOrder: 2 fieldKey: s3_aws_bucket_name label: AWS Bucket Name @@ -80616,7 +80729,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tYaja92j71JmG4iNfVMs4Z + - id: abTZeZmSYAgmFv8Kn34STA sortOrder: 3 fieldKey: s3_aws_region label: AWS Region (S3 only) @@ -80629,7 +80742,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 22vLyjbARosFNik9Tg2Xwy + - id: v3Py1oFSUxsgFRNFtr18Hk sortOrder: 4 fieldKey: audience_key label: LiveRamp Audience Key @@ -80648,7 +80761,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 87DSVvR72XEywDM2xMeZfa + - id: pLC9UR3MZP6y3AwUndbBQ8 sortOrder: 5 fieldKey: identifier_data label: Identifier Data @@ -80661,7 +80774,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ZpWqf5qF1Lzbjv4VpDo2S + - id: 5aksemwJx5duYQAPGq2spY sortOrder: 6 fieldKey: unhashed_identifier_data label: Hashable Identifier Data @@ -80677,7 +80790,7 @@ items: dynamic: false allowNull: false hidden: false - - id: b86EDNN1zjrWkWCcgVYE7w + - id: tB2EPnyewnESAHcppyX3i8 sortOrder: 7 fieldKey: delimiter label: Delimeter @@ -80691,12 +80804,14 @@ items: dynamic: false allowNull: false hidden: false - - id: krLXKewE9KQ9qCsWt63C + - id: wqTtbxeb946gRQ2a4rdS7E sortOrder: 8 fieldKey: filename label: Filename type: STRING - description: Name of the CSV file to upload for LiveRamp ingestion. + description: >- + Name of the CSV file to upload for LiveRamp ingestion. For multiple + subscriptions, make sure to use a unique filename for each subscription. placeholder: '' defaultValue: '@template': '{{properties.audience_key}}.csv' @@ -82047,7 +82162,7 @@ items: hidden: false defaultTrigger: event = "Audience Exited" fields: - - id: rZQYk7KTZJGqN6aEnDRj4T + - id: kFN99cdX689BV5U5VS7Q8J sortOrder: 1 fieldKey: lookup_field label: Lookup Field @@ -82082,7 +82197,7 @@ items: value: sfdcOpptyId dynamic: false allowNull: false - - id: x2j17x8ZXGANk78LPqeTJ7 + - id: vBRbiC8BHDtB7enVgPZqE sortOrder: 2 fieldKey: field_value label: Field Value @@ -82102,7 +82217,7 @@ items: choices: null dynamic: false allowNull: false - - id: rcyo4Q3Lxae46pv7URLhZJ + - id: eVcN1ZhazXHQNW6oLmWvj sortOrder: 4 fieldKey: batch_size label: Batch Size @@ -82118,7 +82233,7 @@ items: dynamic: false allowNull: false hidden: false - - id: uunAd146J5CNzCund2suZV + - id: XtMNbkHsjy9qHwH1XA2B2 sortOrder: 5 fieldKey: event_name label: Event Name @@ -82140,7 +82255,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: 4ib3HFmng1UMWZifYjkzN4 + - id: 78CdtzSjG9xjeqoCwtbSuM sortOrder: 1 fieldKey: lookup_field label: Lookup Field @@ -82175,7 +82290,7 @@ items: value: sfdcOpptyId dynamic: false allowNull: false - - id: 6Baef19bnYvmwaevBDjHqe + - id: seZmn7MWMwW27UfCRLWXY1 sortOrder: 2 fieldKey: data label: Lead Info Fields @@ -82200,7 +82315,7 @@ items: choices: null dynamic: false allowNull: false - - id: i2GFP1bxYAWdNqn4Q8j4fn + - id: 3G2RsCoTHdvjYWMdRqBPHf sortOrder: 4 fieldKey: batch_size label: Batch Size @@ -82216,7 +82331,7 @@ items: dynamic: false allowNull: false hidden: false - - id: x7bgHxppRnALpyzC2nYdmp + - id: 3LrU8X1LAY2Zkgo15dmRhN sortOrder: 5 fieldKey: event_name label: Event Name @@ -82230,7 +82345,7 @@ items: choices: null dynamic: false allowNull: false - - id: oq4tZj36PH9XyyJriYDFu6 + - id: k4RpuaRacwd2kGKbeAQa2k sortOrder: 6 fieldKey: list_id label: Existing List ID @@ -82244,7 +82359,7 @@ items: choices: null dynamic: false allowNull: false - - id: am2WyzAsWKZ95qmqJu3YBM + - id: hkBYKMx9cgRhG2rzrv9gGU sortOrder: 7 fieldKey: list_name label: List Name @@ -82256,7 +82371,7 @@ items: choices: null dynamic: false allowNull: false - - id: fV5pgx5qraXV6TDBCZ9tTZ + - id: rJug22tdausgzyaCC15scC sortOrder: 8 fieldKey: retlOnMappingSave label: Connect to a static list in Marketo @@ -90004,7 +90119,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: gaoUZPQZpURjeHcjj7mALm + - id: sWtUU45JDUQZ5FCL92HJ8C sortOrder: 0 fieldKey: user_identifiers label: User identifiers @@ -90032,12 +90147,16 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId required: true multiple: false choices: null dynamic: false allowNull: false - - id: xw1ikonZfaWKAjdatV2xv + - id: kgdLx9q7Jq1t8VM4LPDiWJ sortOrder: 1 fieldKey: company label: Company Name @@ -90051,7 +90170,7 @@ items: choices: null dynamic: false allowNull: false - - id: fMjdXqJDHsT4rfrRt8tESH + - id: 4bYsSx3pXPHvsMxRPv51f1 sortOrder: 2 fieldKey: title label: Title @@ -90065,7 +90184,7 @@ items: choices: null dynamic: false allowNull: false - - id: iybbwS7cUeZfWeBWf285xV + - id: eqjC7oBPuB6xaXCUfRGju1 sortOrder: 3 fieldKey: name label: Name @@ -90079,7 +90198,7 @@ items: choices: null dynamic: false allowNull: false - - id: jQQuEDs5didv1HvgJ4uLU6 + - id: 9wBFCgQFsSJUZzHSxc2qF9 sortOrder: 4 fieldKey: firstname label: First Name @@ -90093,7 +90212,7 @@ items: choices: null dynamic: false allowNull: false - - id: 212jp4XFL3FnzzTZoufV7E + - id: x6k4L2itAPMrFsbUfxgHuB sortOrder: 5 fieldKey: lastname label: Last Name @@ -90107,7 +90226,7 @@ items: choices: null dynamic: false allowNull: false - - id: aJG9xokgqjjg1EeC9nwocS + - id: e3uzYhjnjfpqprzUpQyc1a sortOrder: 6 fieldKey: gender label: Gender @@ -90121,7 +90240,7 @@ items: choices: null dynamic: false allowNull: false - - id: piPkDaZDvsNvxmXNn2ebcc + - id: 23w7GDVXndkJ2Qi5ovCF2s sortOrder: 7 fieldKey: DOB label: Birthday @@ -90135,7 +90254,7 @@ items: choices: null dynamic: false allowNull: false - - id: sqYqZHz4KbKwfqDRyjZALQ + - id: tjju6UnfFpRaEsW5LduNE2 sortOrder: 8 fieldKey: phone label: Phone @@ -90149,7 +90268,7 @@ items: choices: null dynamic: false allowNull: false - - id: msHxKMpN3tcXpwduiBDnPp + - id: rXpqNfQt3UucQnc57HA7jP sortOrder: 9 fieldKey: age label: Age @@ -90163,7 +90282,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5qM5kK9b9d8ZnUV26RPXZC + - id: 9pGCjbJ2CjzBdkzWaihLiv sortOrder: 10 fieldKey: address label: Address @@ -90186,7 +90305,7 @@ items: choices: null dynamic: false allowNull: false - - id: jhJfvsfEGTGZzEC6dpdRZK + - id: 5tDd9irhQKJGCWVb1WZF1z sortOrder: 11 fieldKey: avatar label: avatar @@ -90200,7 +90319,7 @@ items: choices: null dynamic: false allowNull: false - - id: uc5tzWoN6FeAq2hgAovLFo + - id: 5vfbfoGi34VxHjy9WVEK7L sortOrder: 12 fieldKey: additional_traits label: Addition User Traits @@ -90220,7 +90339,7 @@ items: hidden: false defaultTrigger: null fields: - - id: iff8iAHVoS5CExhSuge4ZQ + - id: ty3D3VLGGD3X5UYLTZ764e sortOrder: 0 fieldKey: user_identifiers label: User identifiers @@ -90248,12 +90367,16 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.context.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId required: true multiple: false choices: null dynamic: false allowNull: false - - id: 8f4YNXHK5CtFnCUnvGV6Q9 + - id: tHij7D1fg8H3KUuC6hqFf sortOrder: 1 fieldKey: event_action label: Optimizely Event Action @@ -90265,7 +90388,7 @@ items: choices: null dynamic: false allowNull: false - - id: xg2H1RYJ2FiHTfPYkzStjL + - id: aWDvskPwGeqZPdD7HCkNDg sortOrder: 2 fieldKey: campaign label: Campaign Name @@ -90279,7 +90402,7 @@ items: choices: null dynamic: false allowNull: false - - id: sJaWbY1CPvCm3eYW86zSQL + - id: rFyE5wvxoYHdxSYoCde5bp sortOrder: 3 fieldKey: campaign_id label: Campaign ID @@ -90293,7 +90416,7 @@ items: choices: null dynamic: false allowNull: false - - id: if66b7vsHktLPQSYbhR5ca + - id: qJb5GuwUGmc7RYQErzSBjy sortOrder: 4 fieldKey: link_url label: Link URL @@ -90307,7 +90430,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4tBBsWt6KutdAoKM4rr2jk + - id: 8SsyoKcvYqJBH1AuGps1AP sortOrder: 5 fieldKey: timestamp label: Timestamp @@ -90329,7 +90452,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 7oERk4PHbNESX5V4irBxUW + - id: 5ByVEAaN4d1UdTGSyBN81f sortOrder: 0 fieldKey: user_identifiers label: User identifiers @@ -90357,12 +90480,16 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId required: true multiple: false choices: null dynamic: false allowNull: false - - id: bEjPGknXCxxyQbcYQFYA93 + - id: ADTWeEnk85sTSCZuZXwD4 sortOrder: 1 fieldKey: event_type label: Optimizely Event Type @@ -90376,7 +90503,7 @@ items: choices: null dynamic: false allowNull: false - - id: u3z41Dt5qHkuJEoA9mS4r8 + - id: qbTEuuwM5CBve8L5gvi2Fq sortOrder: 2 fieldKey: event_action label: Optimizely Event Action @@ -90388,7 +90515,7 @@ items: choices: null dynamic: false allowNull: false - - id: bb6d3kFwvzX225Sqhjwkjy + - id: seCKLjbxhZqiqPkQxrVKNy sortOrder: 3 fieldKey: products label: Product details @@ -90409,7 +90536,7 @@ items: choices: null dynamic: false allowNull: false - - id: wpTXtX1NZbkZTtDpd4CdNm + - id: e1iyvMzZCRFy5ohAAWuct5 sortOrder: 4 fieldKey: order_id label: Order ID @@ -90423,7 +90550,7 @@ items: choices: null dynamic: false allowNull: false - - id: deZWVgeJdUbxALrawUmG5j + - id: mgYJ1HGrftbYTHbFrZmt3R sortOrder: 5 fieldKey: total label: Order Total @@ -90437,7 +90564,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5kxuyG37oHoBxFCpvgDVpG + - id: rFy9rXhHvhMYWs31Hy2mYa sortOrder: 6 fieldKey: timestamp label: Timestamp @@ -90459,7 +90586,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 9SvrqpiESGuWqLFVfNzHob + - id: heW1fP9ZggtrUhZeNEuYmk sortOrder: 0 fieldKey: user_identifiers label: User identifiers @@ -90487,12 +90614,16 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId required: true multiple: false choices: null dynamic: false allowNull: false - - id: wmufL5LBhvXk8pZoEeQP7z + - id: jeRXqeaks1TxHfM57n1jPg sortOrder: 1 fieldKey: event_type label: Optimizely Event Type @@ -90506,7 +90637,7 @@ items: choices: null dynamic: false allowNull: false - - id: 44BrCsz1Jiq6Tp8GF74euQ + - id: izuwbaiu8g9Vfu39ka9xU6 sortOrder: 2 fieldKey: event_action label: Optimizely Event Action @@ -90518,7 +90649,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9egos4J7DtbQTaLTwdgPoU + - id: k2QWpArvTsnuDwkJGrkod4 sortOrder: 3 fieldKey: data label: Event Properties @@ -90532,7 +90663,7 @@ items: choices: null dynamic: false allowNull: false - - id: obpagJcURrkD7AdJgNhboT + - id: 9Z927KoQweF4eR81mURyPG sortOrder: 4 fieldKey: timestamp label: Timestamp @@ -90548,7 +90679,7 @@ items: allowNull: false presets: - actionId: hcqEnue2U8oG3e3iVHW5KV - name: Unsubscribed + name: Email Link Clicked fields: user_identifiers: anonymousId: @@ -90571,6 +90702,10 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.context.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId campaign: '@path': $.properties.campaign_name campaign_id: @@ -90581,52 +90716,10 @@ items: '@path': $.timestamp enable_batching: true batch_size: 100 - event_action: unsubscribe - trigger: type = "track" and event = "Unsubscribed" - - actionId: meD4xgcJ8b3f29gWudiuFQ - name: Order Completed - fields: - user_identifiers: - anonymousId: - '@path': $.anonymousId - userId: - '@path': $.userId - email: - '@if': - exists: - '@path': $.properties.email - then: - '@path': $.properties.email - else: - '@path': $.traits.email - optimizely_vuid: - '@if': - exists: - '@path': $.properties.optimizely_vuid - then: - '@path': $.properties.optimizely_vuid - else: - '@path': $.traits.optimizely_vuid - event_type: order - products: - '@arrayPath': - - $.properties.products - - product_id: - '@path': $.product_id - qty: - '@path': $.quantity - order_id: - '@path': $.properties.order_id - total: - '@path': $.properties.total - timestamp: - '@path': $.timestamp - enable_batching: true - batch_size: 100 - event_action: purchase - trigger: type = "track" and event = "Order Completed" + event_action: click + trigger: type = "track" and event = "Email Link Clicked" - actionId: hcqEnue2U8oG3e3iVHW5KV - name: Email Sent + name: Email Opened fields: user_identifiers: anonymousId: @@ -90649,6 +90742,10 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.context.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId campaign: '@path': $.properties.campaign_name campaign_id: @@ -90659,8 +90756,8 @@ items: '@path': $.timestamp enable_batching: true batch_size: 100 - event_action: sent - trigger: type = "track" and event = "Email Sent" + event_action: open + trigger: type = "track" and event = "Email Opened" - actionId: meD4xgcJ8b3f29gWudiuFQ name: Product Added fields: @@ -90685,6 +90782,10 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId event_type: product products: '@arrayPath': @@ -90704,7 +90805,7 @@ items: event_action: add_to_cart trigger: type = "track" and event = "Product Added" - actionId: meD4xgcJ8b3f29gWudiuFQ - name: Product Viewed + name: Order Completed fields: user_identifiers: anonymousId: @@ -90727,10 +90828,14 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.traits.optimizely_vuid - event_type: product + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId + event_type: order products: '@arrayPath': - - $.properties + - $.properties.products - product_id: '@path': $.product_id qty: @@ -90743,10 +90848,10 @@ items: '@path': $.timestamp enable_batching: true batch_size: 100 - event_action: detail - trigger: type = "track" and event = "Product Viewed" + event_action: purchase + trigger: type = "track" and event = "Order Completed" - actionId: hcqEnue2U8oG3e3iVHW5KV - name: Email Marked as Spam + name: Email Sent fields: user_identifiers: anonymousId: @@ -90769,6 +90874,10 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.context.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId campaign: '@path': $.properties.campaign_name campaign_id: @@ -90779,8 +90888,8 @@ items: '@path': $.timestamp enable_batching: true batch_size: 100 - event_action: spam_report - trigger: type = "track" and event = "Email Marked as Spam" + event_action: sent + trigger: type = "track" and event = "Email Sent" - actionId: meD4xgcJ8b3f29gWudiuFQ name: Product Removed fields: @@ -90805,6 +90914,10 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId event_type: product products: '@arrayPath': @@ -90824,7 +90937,7 @@ items: event_action: remove_from_cart trigger: type = "track" and event = "Product Removed" - actionId: hcqEnue2U8oG3e3iVHW5KV - name: Email Link Clicked + name: Email Marked as Spam fields: user_identifiers: anonymousId: @@ -90847,6 +90960,10 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.context.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId campaign: '@path': $.properties.campaign_name campaign_id: @@ -90857,10 +90974,56 @@ items: '@path': $.timestamp enable_batching: true batch_size: 100 - event_action: click - trigger: type = "track" and event = "Email Link Clicked" + event_action: spam_report + trigger: type = "track" and event = "Email Marked as Spam" + - actionId: meD4xgcJ8b3f29gWudiuFQ + name: Product Viewed + fields: + user_identifiers: + anonymousId: + '@path': $.anonymousId + userId: + '@path': $.userId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + optimizely_vuid: + '@if': + exists: + '@path': $.properties.optimizely_vuid + then: + '@path': $.properties.optimizely_vuid + else: + '@path': $.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId + event_type: product + products: + '@arrayPath': + - $.properties + - product_id: + '@path': $.product_id + qty: + '@path': $.quantity + order_id: + '@path': $.properties.order_id + total: + '@path': $.properties.total + timestamp: + '@path': $.timestamp + enable_batching: true + batch_size: 100 + event_action: detail + trigger: type = "track" and event = "Product Viewed" - actionId: hcqEnue2U8oG3e3iVHW5KV - name: Email Opened + name: Unsubscribed fields: user_identifiers: anonymousId: @@ -90883,6 +91046,10 @@ items: '@path': $.properties.optimizely_vuid else: '@path': $.context.traits.optimizely_vuid + fs_user_id: + '@path': $.userId + web_user_id: + '@path': $.userId campaign: '@path': $.properties.campaign_name campaign_id: @@ -90893,8 +91060,8 @@ items: '@path': $.timestamp enable_batching: true batch_size: 100 - event_action: open - trigger: type = "track" and event = "Email Opened" + event_action: unsubscribe + trigger: type = "track" and event = "Unsubscribed" partnerOwned: true - id: 641d5acea88fa531b9068608 display_name: Optimizely Feature Experimentation (Actions) @@ -93062,7 +93229,7 @@ items: hidden: false defaultTrigger: null fields: - - id: aEHn9FF822LQz1VJTFo4cF + - id: daZ4u4ypp7uCcAUJzc1EXV sortOrder: 0 fieldKey: event_name label: Event Name @@ -93097,7 +93264,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6b5yhJaiCV4JcbpNzg19QW + - id: krn5EG3BQpfXFJYjxumAjr sortOrder: 1 fieldKey: action_source label: Action Source @@ -93121,7 +93288,7 @@ items: dynamic: false allowNull: false hidden: false - - id: th7VPEtnXrQTtbYM7Q7YBK + - id: 72NZMZmAPogBCK7hPnKxHr sortOrder: 2 fieldKey: event_time label: Event Timestamp @@ -93139,7 +93306,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wy5rAiLSLT7dmvyP7uyvFg + - id: 55frE5MRquLGVSDsGg6JUQ sortOrder: 3 fieldKey: event_id label: Event ID @@ -93157,7 +93324,7 @@ items: dynamic: false allowNull: false hidden: false - - id: aYXbDmpMEC1jcr2KCx1Aa2 + - id: otDo8xMWB3k5nTrJtJZnAg sortOrder: 4 fieldKey: event_source_url label: Event Source URL @@ -93172,7 +93339,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 45kr3G9JDLbKJA92hLPfRs + - id: r9Np4WT38vF12UrsXSXJi7 sortOrder: 5 fieldKey: opt_out label: Opt Out @@ -93191,7 +93358,7 @@ items: dynamic: false allowNull: false hidden: false - - id: p4cDvWugsoxKHMYE5BibGm + - id: 7tRqR4eGbtsQq7zaJr7xwR sortOrder: 6 fieldKey: user_data label: User Data @@ -93220,7 +93387,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 7unRF4sDPjvoUAYPqxxSbE + - id: s4xXi9aH5a34hbLbJ66Awy sortOrder: 7 fieldKey: custom_data label: Custom Data @@ -93248,7 +93415,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ssm6fRLgWbviEarf79bQhR + - id: xxTotnmL5kWDMKh7R4BN88 sortOrder: 8 fieldKey: app_id label: App ID @@ -93263,7 +93430,7 @@ items: dynamic: false allowNull: false hidden: false - - id: rf1yajnTC6Qcs9yrwEiDU6 + - id: rmYD1PygTHVsHTMhVQRCvy sortOrder: 9 fieldKey: app_name label: App Name @@ -93278,7 +93445,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4e3j8h1PaDKCybpcaUWkLY + - id: fg8kudb5SQHLmGHSa2PDXn sortOrder: 10 fieldKey: app_version label: App Version @@ -93293,7 +93460,7 @@ items: dynamic: false allowNull: false hidden: false - - id: kECjNaJkRtBA3kCRFS3GUc + - id: aLcf8n8CgPLHjGrUo8Qcnt sortOrder: 11 fieldKey: device_brand label: Device Brand @@ -93308,7 +93475,7 @@ items: dynamic: false allowNull: false hidden: false - - id: aKXQ4EH3geX39V93CrEvNC + - id: 4cYLr587puouZF9KWp8cXK sortOrder: 12 fieldKey: device_carrier label: Device Carrier @@ -93323,7 +93490,7 @@ items: dynamic: false allowNull: false hidden: false - - id: k9ox5UgdkJ3svXdy72WDVo + - id: vyd5SUVhMVinJh1uXBgpvT sortOrder: 13 fieldKey: device_model label: Device Model @@ -93338,7 +93505,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 4jEmn1hxTpF3yiJzuwN3XU + - id: hVnhu9KLpQoptd5fd1ZCZi sortOrder: 14 fieldKey: device_type label: Device Type @@ -93353,7 +93520,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2ZxtkZdguuB3EZjYytEJ9A + - id: efpe1okUXqcTMrdhueV9q3 sortOrder: 15 fieldKey: os_version label: OS Version @@ -93368,7 +93535,7 @@ items: dynamic: false allowNull: false hidden: false - - id: npeU7dK3Qw2ATL2RVdXASY + - id: bc8HTYSVURga8MqPmYtpQ2 sortOrder: 16 fieldKey: wifi label: Wifi @@ -93383,7 +93550,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6MLcLoCjeF7fvT9BuXr16b + - id: bqbvjiFpHMsgjiDEZBsiYn sortOrder: 17 fieldKey: language label: Language @@ -93516,7 +93683,7 @@ items: event_name: add_to_cart trigger: type = "track" AND event = "Product Added" - actionId: vTWg6AaZm9crsPcjoJFJAG - name: Sign Up + name: Page Visit fields: action_source: web event_time: @@ -93572,8 +93739,67 @@ items: '@path': $.context.os.version wifi: '@path': $.context.network.wifi - event_name: signup - trigger: type = "track" AND event = "Signed Up" + event_name: page_visit + trigger: type = "page" + - actionId: vTWg6AaZm9crsPcjoJFJAG + name: Watch Video + fields: + action_source: web + event_time: + '@path': $.timestamp + event_id: + '@path': $.messageId + event_source_url: + '@path': $.context.page.url + opt_out: true + user_data: + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + client_ip_address: + '@path': $.context.ip + client_user_agent: + '@path': $.context.userAgent + custom_data: + value: + '@if': + exists: + '@path': $.properties.price + then: + '@path': $.properties.price + else: + '@path': $.properties.value + search_string: + '@path': $.properties.query + order_id: + '@path': $.properties.order_id + currency: + '@path': $.properties.currency + app_id: + '@path': context.app.id + app_name: + '@path': $.context.app.name + app_version: + '@path': $.context.app.version + device_brand: + '@path': $.context.device.brand + device_carrier: + '@path': context.device.carrier + device_model: + '@path': $.context.device.model + device_type: + '@path': $.context.device.type + os_version: + '@path': $.context.os.version + wifi: + '@path': $.context.network.wifi + event_name: watch_video + trigger: type = "track" AND event = "Product Video Watched" - actionId: vTWg6AaZm9crsPcjoJFJAG name: Lead fields: @@ -93693,66 +93919,7 @@ items: event_name: checkout trigger: type = "track" AND event = "Checkout" - actionId: vTWg6AaZm9crsPcjoJFJAG - name: Watch Video - fields: - action_source: web - event_time: - '@path': $.timestamp - event_id: - '@path': $.messageId - event_source_url: - '@path': $.context.page.url - opt_out: true - user_data: - email: - '@if': - exists: - '@path': $.properties.email - then: - '@path': $.properties.email - else: - '@path': $.traits.email - client_ip_address: - '@path': $.context.ip - client_user_agent: - '@path': $.context.userAgent - custom_data: - value: - '@if': - exists: - '@path': $.properties.price - then: - '@path': $.properties.price - else: - '@path': $.properties.value - search_string: - '@path': $.properties.query - order_id: - '@path': $.properties.order_id - currency: - '@path': $.properties.currency - app_id: - '@path': context.app.id - app_name: - '@path': $.context.app.name - app_version: - '@path': $.context.app.version - device_brand: - '@path': $.context.device.brand - device_carrier: - '@path': context.device.carrier - device_model: - '@path': $.context.device.model - device_type: - '@path': $.context.device.type - os_version: - '@path': $.context.os.version - wifi: - '@path': $.context.network.wifi - event_name: watch_video - trigger: type = "track" AND event = "Product Video Watched" - - actionId: vTWg6AaZm9crsPcjoJFJAG - name: Page Visit + name: View Category fields: action_source: web event_time: @@ -93808,10 +93975,10 @@ items: '@path': $.context.os.version wifi: '@path': $.context.network.wifi - event_name: page_visit - trigger: type = "page" + event_name: view_category + trigger: type = "track" AND event = "Product Category Viewed" - actionId: vTWg6AaZm9crsPcjoJFJAG - name: View Category + name: Sign Up fields: action_source: web event_time: @@ -93867,8 +94034,8 @@ items: '@path': $.context.os.version wifi: '@path': $.context.network.wifi - event_name: view_category - trigger: type = "track" AND event = "Product Category Viewed" + event_name: signup + trigger: type = "track" AND event = "Signed Up" partnerOwned: false - id: 59526d7f70a3e552b957555c display_name: Pinterest Tag @@ -98448,7 +98615,7 @@ items: hidden: false defaultTrigger: null fields: - - id: aAQyZrqLEBTPFtxTxga7VK + - id: bkj5tFLGYYUiPY2f1A9M2d sortOrder: 0 fieldKey: event_at label: Event At @@ -98462,7 +98629,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9mKsZybYzcQ6viqBg8wRga + - id: 7bWSmYWNwYbXg3FLao9RUW sortOrder: 1 fieldKey: custom_event_name label: Custom Event Name @@ -98477,7 +98644,7 @@ items: choices: null dynamic: false allowNull: false - - id: tcoHhKYLeCXb3C5a4EntNY + - id: rfgWTwMXzLWZDHvRNoLbnr sortOrder: 2 fieldKey: click_id label: Click ID @@ -98497,7 +98664,7 @@ items: choices: null dynamic: false allowNull: false - - id: gEHfLhxFDfVYK8ny1jatvF + - id: jSWHf5xLWx34E85KbYtM9u sortOrder: 3 fieldKey: products label: Products @@ -98518,7 +98685,7 @@ items: choices: null dynamic: false allowNull: false - - id: qKziEgd5D2MYAU4VanNj8R + - id: sqwXUiv52YqAmtuUkKV58u sortOrder: 4 fieldKey: user label: User @@ -98563,7 +98730,7 @@ items: choices: null dynamic: false allowNull: false - - id: dc5q2p9NbpVRMEoBmd7QnZ + - id: iY6Tyje3mVsXRZP341DsB5 sortOrder: 5 fieldKey: data_processing_options label: Data Processing Options @@ -98577,7 +98744,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4Pv1h8Z7BXV8wfncTyiVDd + - id: rJUy5Ev4LwiP3UPYRb7W6d sortOrder: 6 fieldKey: screen_dimensions label: Screen Dimensions @@ -98594,7 +98761,7 @@ items: choices: null dynamic: false allowNull: false - - id: cbX3pmhtnX2yCiZhiNYKSi + - id: 3UzgaNM4QxhSrRz4p6UxD3 sortOrder: 7 fieldKey: event_metadata label: Event Metadata @@ -98613,14 +98780,14 @@ items: choices: null dynamic: false allowNull: false - - id: isVL7M8X95eHrj548dZU7k + - id: 9PRCZnsWEPYqdUySXj5zsv sortOrder: 8 fieldKey: conversion_id label: Conversion ID type: STRING description: >- The unique conversion ID that corresponds to a distinct conversion - event. + event. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.properties.conversion_id @@ -98629,7 +98796,7 @@ items: choices: null dynamic: false allowNull: false - - id: rB9V8Qkika5mUX3aezsoUA + - id: 8MEzhANpPAfDv4iBEKoERH sortOrder: 9 fieldKey: enable_batching label: Enable Batching? @@ -98649,7 +98816,7 @@ items: hidden: false defaultTrigger: null fields: - - id: qs6YcGLDh1kioTrsmegbRf + - id: iWuQgqszpXr3tskaFW16QS sortOrder: 0 fieldKey: event_at label: Event At @@ -98663,7 +98830,7 @@ items: choices: null dynamic: false allowNull: false - - id: j3Potu3JT6yRt4Y7xRsjcV + - id: 7b6RetuCvPXYZCUxjrehgj sortOrder: 1 fieldKey: tracking_type label: Tracking Type @@ -98693,7 +98860,7 @@ items: value: SignUp dynamic: false allowNull: false - - id: t9mphWkHxxaMaL352qo5ZU + - id: gbV2U49Wdo37KHzHQSNqdW sortOrder: 2 fieldKey: click_id label: Click ID @@ -98713,7 +98880,7 @@ items: choices: null dynamic: false allowNull: false - - id: RZMGG8gKZSYDhMZLrpnep + - id: aqqV1QWj6i3HTcSEUmPbhm sortOrder: 3 fieldKey: products label: Products @@ -98734,7 +98901,7 @@ items: choices: null dynamic: false allowNull: false - - id: nW79bFX1kJ42mdCnw2PJMN + - id: 7dSi4F3nWkuChBEQcCDcce sortOrder: 4 fieldKey: user label: User @@ -98779,7 +98946,7 @@ items: choices: null dynamic: false allowNull: false - - id: wjRE8WndouTvWLNn7iQZjA + - id: trDJwFyLBr4F4yPvpFmhQT sortOrder: 5 fieldKey: data_processing_options label: Data Processing Options @@ -98793,7 +98960,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3KZ3mucFhVFxvvzMmoUB8C + - id: oVCutm8Y1sNrj9UEkYJkjL sortOrder: 6 fieldKey: screen_dimensions label: Screen Dimensions @@ -98810,7 +98977,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3x8uhrPzqsxxTKtBmnDEee + - id: dVLC5ZvaYZjL9yVd2rB4Qd sortOrder: 7 fieldKey: event_metadata label: Event Metadata @@ -98829,14 +98996,14 @@ items: choices: null dynamic: false allowNull: false - - id: c79JpTw8MtZPfxdbKGnPDt + - id: 5KBnnXxe9P8RGQErBDsGyx sortOrder: 8 fieldKey: conversion_id label: Conversion ID type: STRING description: >- The unique conversion ID that corresponds to a distinct conversion - event. + event. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.properties.conversion_id @@ -98845,7 +99012,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5Ky1bwtusgHX9GfK8FCoZi + - id: 2TM6bAKjgk8tLR3edSVUwP sortOrder: 9 fieldKey: enable_batching label: Enable Batching? @@ -98868,8 +99035,14 @@ items: type = "alias" fields: [] presets: + - actionId: tDkyLVC3tBcVFSi63svYkd + name: Reddit Browser Plugin + fields: {} + trigger: >- + type = "track" or type = "identify" or type = "group" or type = "page" or + type = "alias" - actionId: oKfDyMn39WEUWwEU4puB6Z - name: Purchase + name: Sign Up fields: event_at: '@path': $.timestamp @@ -98931,16 +99104,14 @@ items: event_metadata: currency: '@path': $.properties.currency - item_count: - '@path': $.properties.quantity value_decimal: - '@path': $.properties.total + '@path': $.properties.price conversion_id: '@path': $.properties.conversion_id - tracking_type: Purchase - trigger: type = "track" and event = "Order Completed" + tracking_type: SignUp + trigger: type = "track" and event = "Signed Up" - actionId: oKfDyMn39WEUWwEU4puB6Z - name: Add to Cart + name: Lead fields: event_at: '@path': $.timestamp @@ -99002,144 +99173,12 @@ items: event_metadata: currency: '@path': $.properties.currency - item_count: - '@path': $.properties.quantity value_decimal: - '@path': $.properties.total - conversion_id: - '@path': $.properties.conversion_id - tracking_type: AddToCart - trigger: type = "track" and event = "Product Added" - - actionId: oKfDyMn39WEUWwEU4puB6Z - name: View Content - fields: - event_at: - '@path': $.timestamp - click_id: - '@if': - exists: - '@path': $.integrations.Reddit Conversions Api.click_id - then: - '@path': $.integrations.Reddit Conversions Api.click_id - else: - '@path': $.properties.click_id - products: - '@arrayPath': - - $.properties.products - - category: - '@path': $.category - id: - '@path': $.product_id - name: - '@path': $.name - user: - advertising_id: - '@path': $.context.device.advertisingId - device_type: - '@path': $.context.device.type - email: - '@if': - exists: - '@path': $.context.traits.email - then: - '@path': $.context.traits.email - else: - '@path': $.properties.email - external_id: - '@if': - exists: - '@path': $.userId - then: - '@path': $.userId - else: - '@path': $.anonymousId - ip_address: - '@path': $.context.ip - user_agent: - '@path': $.context.userAgent - uuid: - '@if': - exists: - '@path': $.integrations.Reddit Conversions Api.uuid - then: - '@path': $.integrations.Reddit Conversions Api.uuid - else: - '@path': $.properties.uuid - screen_dimensions: - height: - '@path': $.context.screen.height - width: - '@path': $.context.screen.width - event_metadata: {} - conversion_id: - '@path': $.properties.conversion_id - tracking_type: ViewContent - trigger: type = "track" and event = "Product Viewed" - - actionId: oKfDyMn39WEUWwEU4puB6Z - name: Page Visit - fields: - event_at: - '@path': $.timestamp - click_id: - '@if': - exists: - '@path': $.integrations.Reddit Conversions Api.click_id - then: - '@path': $.integrations.Reddit Conversions Api.click_id - else: - '@path': $.properties.click_id - products: - '@arrayPath': - - $.properties.products - - category: - '@path': $.category - id: - '@path': $.product_id - name: - '@path': $.name - user: - advertising_id: - '@path': $.context.device.advertisingId - device_type: - '@path': $.context.device.type - email: - '@if': - exists: - '@path': $.context.traits.email - then: - '@path': $.context.traits.email - else: - '@path': $.properties.email - external_id: - '@if': - exists: - '@path': $.userId - then: - '@path': $.userId - else: - '@path': $.anonymousId - ip_address: - '@path': $.context.ip - user_agent: - '@path': $.context.userAgent - uuid: - '@if': - exists: - '@path': $.integrations.Reddit Conversions Api.uuid - then: - '@path': $.integrations.Reddit Conversions Api.uuid - else: - '@path': $.properties.uuid - screen_dimensions: - height: - '@path': $.context.screen.height - width: - '@path': $.context.screen.width - event_metadata: {} + '@path': $.properties.price conversion_id: '@path': $.properties.conversion_id - tracking_type: PageVisit - trigger: type = "page" + tracking_type: Lead + trigger: type = "track" and event = "Lead Generated" - actionId: oKfDyMn39WEUWwEU4puB6Z name: Add to Wishlist fields: @@ -99211,14 +99250,8 @@ items: '@path': $.properties.conversion_id tracking_type: AddToWishlist trigger: type = "track" and event = "Product Added to Wishlist" - - actionId: tDkyLVC3tBcVFSi63svYkd - name: Reddit Browser Plugin - fields: {} - trigger: >- - type = "track" or type = "identify" or type = "group" or type = "page" or - type = "alias" - actionId: oKfDyMn39WEUWwEU4puB6Z - name: Search + name: Add to Cart fields: event_at: '@path': $.timestamp @@ -99277,13 +99310,19 @@ items: '@path': $.context.screen.height width: '@path': $.context.screen.width - event_metadata: {} + event_metadata: + currency: + '@path': $.properties.currency + item_count: + '@path': $.properties.quantity + value_decimal: + '@path': $.properties.total conversion_id: '@path': $.properties.conversion_id - tracking_type: Search - trigger: type = "track" and event = "Products Searched" + tracking_type: AddToCart + trigger: type = "track" and event = "Product Added" - actionId: oKfDyMn39WEUWwEU4puB6Z - name: Sign Up + name: View Content fields: event_at: '@path': $.timestamp @@ -99342,17 +99381,143 @@ items: '@path': $.context.screen.height width: '@path': $.context.screen.width - event_metadata: - currency: - '@path': $.properties.currency - value_decimal: - '@path': $.properties.price + event_metadata: {} conversion_id: '@path': $.properties.conversion_id - tracking_type: SignUp - trigger: type = "track" and event = "Signed Up" + tracking_type: ViewContent + trigger: type = "track" and event = "Product Viewed" - actionId: oKfDyMn39WEUWwEU4puB6Z - name: Lead + name: Page Visit + fields: + event_at: + '@path': $.timestamp + click_id: + '@if': + exists: + '@path': $.integrations.Reddit Conversions Api.click_id + then: + '@path': $.integrations.Reddit Conversions Api.click_id + else: + '@path': $.properties.click_id + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + external_id: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + ip_address: + '@path': $.context.ip + user_agent: + '@path': $.context.userAgent + uuid: + '@if': + exists: + '@path': $.integrations.Reddit Conversions Api.uuid + then: + '@path': $.integrations.Reddit Conversions Api.uuid + else: + '@path': $.properties.uuid + screen_dimensions: + height: + '@path': $.context.screen.height + width: + '@path': $.context.screen.width + event_metadata: {} + conversion_id: + '@path': $.properties.conversion_id + tracking_type: PageVisit + trigger: type = "page" + - actionId: oKfDyMn39WEUWwEU4puB6Z + name: Search + fields: + event_at: + '@path': $.timestamp + click_id: + '@if': + exists: + '@path': $.integrations.Reddit Conversions Api.click_id + then: + '@path': $.integrations.Reddit Conversions Api.click_id + else: + '@path': $.properties.click_id + products: + '@arrayPath': + - $.properties.products + - category: + '@path': $.category + id: + '@path': $.product_id + name: + '@path': $.name + user: + advertising_id: + '@path': $.context.device.advertisingId + device_type: + '@path': $.context.device.type + email: + '@if': + exists: + '@path': $.context.traits.email + then: + '@path': $.context.traits.email + else: + '@path': $.properties.email + external_id: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + ip_address: + '@path': $.context.ip + user_agent: + '@path': $.context.userAgent + uuid: + '@if': + exists: + '@path': $.integrations.Reddit Conversions Api.uuid + then: + '@path': $.integrations.Reddit Conversions Api.uuid + else: + '@path': $.properties.uuid + screen_dimensions: + height: + '@path': $.context.screen.height + width: + '@path': $.context.screen.width + event_metadata: {} + conversion_id: + '@path': $.properties.conversion_id + tracking_type: Search + trigger: type = "track" and event = "Products Searched" + - actionId: oKfDyMn39WEUWwEU4puB6Z + name: Purchase fields: event_at: '@path': $.timestamp @@ -99414,12 +99579,14 @@ items: event_metadata: currency: '@path': $.properties.currency + item_count: + '@path': $.properties.quantity value_decimal: - '@path': $.properties.price + '@path': $.properties.total conversion_id: '@path': $.properties.conversion_id - tracking_type: Lead - trigger: type = "track" and event = "Lead Generated" + tracking_type: Purchase + trigger: type = "track" and event = "Order Completed" partnerOwned: true - id: 5cacbf88fa2aed000104edcc display_name: Refersion @@ -106046,7 +106213,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: oiXto9Ga3x9ZjmnVCKQg3m + - id: 7bcUDgjmbVCwE79YLWzN9Q sortOrder: 0 fieldKey: contactKey label: Contact Key @@ -106072,7 +106239,7 @@ items: hidden: false defaultTrigger: null fields: - - id: aLcHAWVXuPT2m6EqqaooGd + - id: wB4GwXmo6BVQAhRopCcyYZ sortOrder: 0 fieldKey: eventDefinitionKey label: Event Definition Key @@ -106086,7 +106253,7 @@ items: choices: null dynamic: false allowNull: false - - id: ffKH5kYww6CaBjNgx2Ex8A + - id: 85Zaq8eDPfKZVkyPX8EdRp sortOrder: 1 fieldKey: contactKey label: Contact Key @@ -106100,7 +106267,7 @@ items: choices: null dynamic: false allowNull: false - - id: xbtTMVBmWPAPHDLJEhhsfp + - id: rDwpaCDgtgAj9K9eTVu5KT sortOrder: 2 fieldKey: data label: Event Data @@ -106127,7 +106294,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 2LSnRWWZaiixnT3yp9LhVD + - id: rJ8t3SNQwreVFTqwmZRB2q sortOrder: 0 fieldKey: key label: Data Extension Key @@ -106142,7 +106309,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2BhFd19YmCQGWdNETqaKD1 + - id: pwTAP6HA2brVctvwzoCY9t sortOrder: 1 fieldKey: id label: Data Extension ID @@ -106157,7 +106324,7 @@ items: choices: null dynamic: false allowNull: false - - id: nKnByfL5D8dYQcKksvGUBu + - id: sg8cHv3HeuoMfxf1FUL7on sortOrder: 2 fieldKey: keys label: Data Extension Primary Keys @@ -106174,7 +106341,7 @@ items: choices: null dynamic: false allowNull: false - - id: kAhwakJxjyE5zdpAZZ7kK4 + - id: c4arDnmkkUgnAouYAGRJXq sortOrder: 3 fieldKey: values label: Data Extension Fields @@ -106192,7 +106359,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3aYydqS6fdHTQGYLEiNXAZ + - id: fQX5mLRvmbcJWQkm6UgAfR sortOrder: 4 fieldKey: enable_batching label: Batch data to SFMC @@ -106215,7 +106382,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: guKt4p6edmrdqcmAdg1LCR + - id: cRB4mpG2673nwJkpsKKhud sortOrder: 0 fieldKey: key label: Data Extension Key @@ -106230,7 +106397,7 @@ items: choices: null dynamic: false allowNull: false - - id: 4ZtgpCXSPTFM146NRzarz9 + - id: ahyjmWLu24HAekxwLKhYN4 sortOrder: 1 fieldKey: id label: Data Extension ID @@ -106245,7 +106412,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9nWih4PiFHHY4M9qykDRan + - id: 9LmLt2Dxduisbd9t8AdbhR sortOrder: 2 fieldKey: keys label: Data Extension Primary Keys @@ -106265,7 +106432,7 @@ items: choices: null dynamic: false allowNull: false - - id: kxvdgvYwVJcYvw9XETmQv1 + - id: xcAmN3NasKGtgMF5gN4ZM6 sortOrder: 3 fieldKey: values label: Contact Fields @@ -106282,7 +106449,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5sHM4HiXoYJFF4QWrHq6Mh + - id: p9yt1KGUFEca1kF1a6jXH5 sortOrder: 4 fieldKey: enable_batching label: Batch data to SFMC @@ -106295,6 +106462,680 @@ items: choices: null dynamic: false allowNull: false + - 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. + platform: CLOUD + hidden: false + defaultTrigger: null + fields: + - id: rmgeYjf8zx8CxrPHi3Ng1Q + sortOrder: 0 + fieldKey: keys + label: Data Extension Primary Keys + type: OBJECT + description: >- + The primary key(s) that uniquely identify a row in the data extension. + On the left-hand side, input the SFMC key name. On the right-hand side, + map the Segment field that contains the corresponding value. When + multiple primary keys are provided, SFMC will update an existing row if + all primary keys match, otherwise a new row will be created + placeholder: '' + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: 7RBWa4CrPJNyTYkfE1dLd2 + sortOrder: 1 + fieldKey: values + label: Data Extension Fields + type: OBJECT + description: >- + The fields in the data extension that contain data about an event, such + as Product Name, Revenue, Event Time, etc. Fields must be created in the + data extension before sending data for it. On the left-hand side, input + the SFMC field name exactly how it appears in the data extension. On the + right-hand side, map the Segment field that contains the corresponding + value. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: 8BvhrUXiey5iutkfuKCxKk + sortOrder: 2 + fieldKey: enable_batching + label: Batch data to SFMC + type: BOOLEAN + description: If true, data is batched before sending to the SFMC Data Extension. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: shtWQ25AGQcpE1tdmP1n9G + sortOrder: 4 + fieldKey: operation + label: Operation + type: STRING + description: >- + Whether to create a new data extension or select an existing one for + data delivery. + placeholder: '' + required: true + multiple: false + choices: + - label: Create a new Data Extension + value: create + - label: Select an existing Data Extension + value: select + dynamic: false + allowNull: false + - id: 4DbMJDATSkDtK8LYRJR45B + sortOrder: 5 + fieldKey: dataExtensionId + label: Data Extension ID + type: STRING + description: The identifier for the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: 9HQGivpCgKw5pNcQvxMDa3 + sortOrder: 6 + fieldKey: categoryId + label: Category ID (Folder ID) + type: STRING + description: The identifier for the folder that contains the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: suxU3f7Tpi5gs23Kqcg2w7 + sortOrder: 7 + fieldKey: name + label: Data Extension Name + type: STRING + description: The name of the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 26EAQuxkb5rdDL9CgUpuKG + sortOrder: 8 + fieldKey: description + label: Data Extension Description + type: STRING + description: The description of the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tYQvYiMxZxDFCjhEu56PyL + sortOrder: 9 + fieldKey: isSendable + label: Is Sendable + type: BOOLEAN + description: >- + Indicates whether the custom object can be used to send messages. If the + value of this property is true, then the custom object is sendable + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2T5WVnJJBoBS71pXebXtuX + sortOrder: 10 + fieldKey: sendableCustomObjectField + label: Sendable Custom Object Field + type: STRING + description: >- + The field on this data extension which is sendable. This must be a field + that is present on this data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: b5CeLAQ6gs4WKyfVMeEgzS + sortOrder: 11 + fieldKey: sendableSubscriberField + label: Sendable Subscriber Field + type: STRING + description: >- + The relationship with "Subscribers" for the Sendable Custom Object + Field. + placeholder: '' + required: false + multiple: false + choices: + - label: Subscriber Key + value: _SubscriberKey + - label: Subscriber ID + value: _SubscriberID + dynamic: false + allowNull: false + - id: 6YHFzPAwH7H8mwDTxtbhk + sortOrder: 12 + fieldKey: columns + label: Data Extension Fields + type: OBJECT + description: A list of fields to create in the data extension. + placeholder: '' + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: bTKKS7Lw93ETX8WvPokCsU + sortOrder: 13 + fieldKey: retlOnMappingSave + label: Create or Select Data Extension + type: OBJECT + description: >- + Connect to an existing data extension or create a new one in Salesforce + Marketing Cloud. + defaultValue: null + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: false + - id: vk4qzR1jutUuga82iQFmcV + sortOrder: 14 + fieldKey: operation + label: Operation + type: STRING + description: >- + Whether to create a new data extension or select an existing one for + data delivery. + placeholder: '' + required: true + multiple: false + choices: + - label: Create a new Data Extension + value: create + - label: Select an existing Data Extension + value: select + dynamic: false + allowNull: false + - id: qbaCm2NMPzxZfEJCGfDMjt + sortOrder: 15 + fieldKey: dataExtensionId + label: Data Extension ID + type: STRING + description: The identifier for the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: hff9VkRMW2TCC2yWPfD5Tb + sortOrder: 16 + fieldKey: categoryId + label: Category ID (Folder ID) + type: STRING + description: The identifier for the folder that contains the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: dAjP9ByPaFExBEUctT9nPq + sortOrder: 17 + fieldKey: name + label: Data Extension Name + type: STRING + description: The name of the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qmdGzHA1NGusRFMd5uoFd5 + sortOrder: 18 + fieldKey: description + label: Data Extension Description + type: STRING + description: The description of the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: tMUcq99j4VdoFZnbX3w1RM + sortOrder: 19 + fieldKey: isSendable + label: Is Sendable + type: BOOLEAN + description: >- + Indicates whether the custom object can be used to send messages. If the + value of this property is true, then the custom object is sendable + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ssrHTeEKAv269uxcdRaYMt + sortOrder: 20 + fieldKey: sendableCustomObjectField + label: Sendable Custom Object Field + type: STRING + description: >- + The field on this data extension which is sendable. This must be a field + that is present on this data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: qp6bPgwiB83vBHemFXBsJX + sortOrder: 21 + fieldKey: sendableSubscriberField + label: Sendable Subscriber Field + type: STRING + description: >- + The relationship with "Subscribers" for the Sendable Custom Object + Field. + placeholder: '' + required: false + multiple: false + choices: + - label: Subscriber Key + value: _SubscriberKey + - label: Subscriber ID + value: _SubscriberID + dynamic: false + allowNull: false + - id: 4jgm72jg3sXSV6bpWS5j23 + sortOrder: 22 + fieldKey: columns + label: Data Extension Fields + type: OBJECT + description: A list of fields to create in the data extension. + placeholder: '' + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: mt6hTj8jiUs3Jk4ZF5pWRj + sortOrder: 23 + fieldKey: onMappingSave + label: Create or Select Data Extension + type: OBJECT + description: >- + Connect to an existing data extension or create a new one in Salesforce + Marketing Cloud. + defaultValue: null + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: false + - id: 451LG7JMoSEQQZaB4ENmfp + name: Send Contact to Data Extension (V2) + slug: contactDataExtensionV2 + description: >- + Upsert contact data as rows into an existing data extension in Salesforce + Marketing Cloud. + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" + fields: + - id: nHJELWgpAfybPmzdkiBzhD + sortOrder: 0 + fieldKey: keys + label: Data Extension Primary Keys + type: OBJECT + description: >- + The primary key(s) that uniquely identify a row in the data extension. + On the left-hand side, input the SFMC key name. On the right-hand side, + map the Segment field that contains the corresponding value. When + multiple primary keys are provided, SFMC will update an existing row if + all primary keys match, otherwise a new row will be created + placeholder: '' + defaultValue: + contactKey: + '@path': $.userId + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: c5sL6KM65fucNpcWfXYurR + sortOrder: 1 + fieldKey: values + label: Contact Fields + type: OBJECT + description: >- + The fields in the data extension that contain data about a contact, such + as Email, Last Name, etc. Fields must be created in the data extension + before sending data for it. On the left-hand side, input the SFMC field + name exactly how it appears in the data extension. On the right-hand + side, map the Segment field that contains the corresponding value. + placeholder: '' + required: true + multiple: false + choices: null + dynamic: true + allowNull: false + - id: 844ctQZXVLtWJ26Fx8TPNK + sortOrder: 2 + fieldKey: enable_batching + label: Batch data to SFMC + type: BOOLEAN + description: If true, data is batched before sending to the SFMC Data Extension. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: sB8Dvkoio4a4AG2rkGcg6B + sortOrder: 4 + fieldKey: operation + label: Operation + type: STRING + description: >- + Whether to create a new data extension or select an existing one for + data delivery. + placeholder: '' + required: true + multiple: false + choices: + - label: Create a new Data Extension + value: create + - label: Select an existing Data Extension + value: select + dynamic: false + allowNull: false + - id: JfbT7D7L7YYAESN3AL6zA + sortOrder: 5 + fieldKey: dataExtensionId + label: Data Extension ID + type: STRING + description: The identifier for the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: dHLENaRwJiwaarUCvPpahi + sortOrder: 6 + fieldKey: categoryId + label: Category ID (Folder ID) + type: STRING + description: The identifier for the folder that contains the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: kdGyRB8vLpTr1UaoathKFt + sortOrder: 7 + fieldKey: name + label: Data Extension Name + type: STRING + description: The name of the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: n1bg8W6QDZFbqwBM69d9y3 + sortOrder: 8 + fieldKey: description + label: Data Extension Description + type: STRING + description: The description of the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: eBPeJJJeoDe7rztA8nMPfJ + sortOrder: 9 + fieldKey: isSendable + label: Is Sendable + type: BOOLEAN + description: >- + Indicates whether the custom object can be used to send messages. If the + value of this property is true, then the custom object is sendable + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hd5Zykihm9PTmiXjfMHT75 + sortOrder: 10 + fieldKey: sendableCustomObjectField + label: Sendable Custom Object Field + type: STRING + description: >- + The field on this data extension which is sendable. This must be a field + that is present on this data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: iTxYgoESWBjr98ZT7Cqv6t + sortOrder: 11 + fieldKey: sendableSubscriberField + label: Sendable Subscriber Field + type: STRING + description: >- + The relationship with "Subscribers" for the Sendable Custom Object + Field. + placeholder: '' + required: false + multiple: false + choices: + - label: Subscriber Key + value: _SubscriberKey + - label: Subscriber ID + value: _SubscriberID + dynamic: false + allowNull: false + - id: pxx9XUV664rTK51ZMWoxs7 + sortOrder: 12 + fieldKey: columns + label: Data Extension Fields + type: OBJECT + description: A list of fields to create in the data extension. + placeholder: '' + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: eycpCdFAVUbFRjx69Y5swJ + sortOrder: 13 + fieldKey: retlOnMappingSave + label: Create or Select Data Extension + type: OBJECT + description: >- + Connect to an existing data extension or create a new one in Salesforce + Marketing Cloud. + defaultValue: null + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: false + - id: vEMuUkY8WJgwmaRpx451k5 + sortOrder: 14 + fieldKey: operation + label: Operation + type: STRING + description: >- + Whether to create a new data extension or select an existing one for + data delivery. + placeholder: '' + required: true + multiple: false + choices: + - label: Create a new Data Extension + value: create + - label: Select an existing Data Extension + value: select + dynamic: false + allowNull: false + - id: cEaf3ptqCuU2739uoHSMAe + sortOrder: 15 + fieldKey: dataExtensionId + label: Data Extension ID + type: STRING + description: The identifier for the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: 2XMuaNAMaGRii6Hq5K6UzV + sortOrder: 16 + fieldKey: categoryId + label: Category ID (Folder ID) + type: STRING + description: The identifier for the folder that contains the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: true + allowNull: false + - id: sUxep19wmuPGp6QZkE2TnS + sortOrder: 17 + fieldKey: name + label: Data Extension Name + type: STRING + description: The name of the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fKmViPQn4eQLX5aqgMPeLW + sortOrder: 18 + fieldKey: description + label: Data Extension Description + type: STRING + description: The description of the data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: kjJL4n4WhgB1ygCWJWfaTy + sortOrder: 19 + fieldKey: isSendable + label: Is Sendable + type: BOOLEAN + description: >- + Indicates whether the custom object can be used to send messages. If the + value of this property is true, then the custom object is sendable + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: cJmx59Qi6hUq7eqkfoA74t + sortOrder: 20 + fieldKey: sendableCustomObjectField + label: Sendable Custom Object Field + type: STRING + description: >- + The field on this data extension which is sendable. This must be a field + that is present on this data extension. + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 9rLexRWHxFyZDfdtpFhVpD + sortOrder: 21 + fieldKey: sendableSubscriberField + label: Sendable Subscriber Field + type: STRING + description: >- + The relationship with "Subscribers" for the Sendable Custom Object + Field. + placeholder: '' + required: false + multiple: false + choices: + - label: Subscriber Key + value: _SubscriberKey + - label: Subscriber ID + value: _SubscriberID + dynamic: false + allowNull: false + - id: h1PuRt8zm8pLEzTZq7TuQn + sortOrder: 22 + fieldKey: columns + label: Data Extension Fields + type: OBJECT + description: A list of fields to create in the data extension. + placeholder: '' + required: false + multiple: true + choices: null + dynamic: false + allowNull: false + - id: kzQErgZKER7tbhSwf1cgrX + sortOrder: 23 + fieldKey: onMappingSave + label: Create or Select Data Extension + type: OBJECT + description: >- + Connect to an existing data extension or create a new one in Salesforce + Marketing Cloud. + defaultValue: null + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + hidden: false presets: [] partnerOwned: false - id: 560a21320a20f4e22f0fb5ca @@ -110429,7 +111270,7 @@ items: regions: - us-west-2 - eu-west-1 - url: connections/destinations/catalog/sendgrid + url: connections/destinations/catalog/actions-sendgrid previous_names: - Sendgrid Marketing Campaigns - SendGrid Marketing Campaigns @@ -110471,6 +111312,14 @@ items: mobile: false server: true settings: + - name: endpoint + type: select + defaultValue: https://api.sendgrid.com + description: >- + The regional processing endpoint for your SendGrid account. [See more + details](https://www.twilio.com/en-us/blog/send-emails-in-eu?_gl=1*7hyri9*_gcl_au*MTg0MTQwMjAzNi4xNzQzMDAyNzc4*_ga*MTk4OTI2MDk1LjE3NDMwMDI3Nzg.*_ga_8W5LR442LD*MTc0MzY3NTc2NC41LjAuMTc0MzY3NTc2NC4wLjAuMA..) + required: false + label: Regional Processing Endpoint - name: sendGridApiKey type: password defaultValue: '' @@ -110486,7 +111335,7 @@ items: hidden: false defaultTrigger: null fields: - - id: bFLGgga7TQzPzCjbWKn1n3 + - id: bKgk7VAGChyRDAByDkoDDS sortOrder: 0 fieldKey: enable_batching label: Batch Data to SendGrid Contacts PUT API @@ -110503,7 +111352,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6GcqcDcgTMX8MGUXYpHqJS + - id: iNsbwYbUxcZwCDgy44n2yV sortOrder: 1 fieldKey: first_name label: First Name @@ -110524,7 +111373,7 @@ items: dynamic: false allowNull: true hidden: false - - id: 6BsL9y5fxGHuRNcyKqFEyz + - id: ufAcUUhzMiKirpdSvb74iD sortOrder: 2 fieldKey: last_name label: Last Name @@ -110545,7 +111394,7 @@ items: dynamic: false allowNull: true hidden: false - - id: 9EjdEn8rEAP8HHauNLKBnZ + - id: 9yMxCBvTo7JojAANboLFnF sortOrder: 3 fieldKey: country label: Country @@ -110566,7 +111415,7 @@ items: dynamic: false allowNull: true hidden: false - - id: aY1t6mbbA5Nor5Tyrnq1NA + - id: xzuieQSYQpBFEMUfaUbwSN sortOrder: 4 fieldKey: postal_code label: Postal Code @@ -110587,7 +111436,7 @@ items: dynamic: false allowNull: true hidden: false - - id: 34w7bvDj4fXH561wiSJatG + - id: 9VhSb8sUG8588bVYYs9L5y sortOrder: 5 fieldKey: city label: City @@ -110608,7 +111457,7 @@ items: dynamic: false allowNull: true hidden: false - - id: aLqWa9oTFwKdmwCbdZf1WY + - id: 8DhnVUXHtNHKyQZGJCBKY2 sortOrder: 6 fieldKey: state label: State @@ -110629,7 +111478,7 @@ items: dynamic: false allowNull: true hidden: false - - id: 3nsR53Yp634dDRk5B4hMvK + - id: 6hoPRD8u4oGViyKNLcarZi sortOrder: 7 fieldKey: address_line_1 label: Address Line 1 @@ -110650,7 +111499,7 @@ items: dynamic: false allowNull: true hidden: false - - id: 9HH1q6wyccibKY3JA75Kob + - id: f7tzmi9DAzjsuTFyTB6R2j sortOrder: 8 fieldKey: address_line_2 label: Address Line 2 @@ -110671,7 +111520,7 @@ items: dynamic: false allowNull: true hidden: false - - id: iWNo8cZDLi9rTgk7VkaEXn + - id: sur13nsSSbN8WYtfCtxscV sortOrder: 9 fieldKey: phone_number label: Phone Number @@ -110694,7 +111543,7 @@ items: dynamic: false allowNull: true hidden: false - - id: d16gw85ZGJKsXiGGZaiZR3 + - id: uSDxaRetSb6ohz2A961Eoo sortOrder: 10 fieldKey: whatsapp label: WhatsApp @@ -110715,7 +111564,7 @@ items: dynamic: false allowNull: true hidden: false - - id: iGtuq8qmPo3Xxrqsw5RVHd + - id: ixE6NsLdXBhjL4oUHyP4sN sortOrder: 11 fieldKey: line label: Line @@ -110736,7 +111585,7 @@ items: dynamic: false allowNull: true hidden: false - - id: 7v2xZmyJPDt5etCrF4ybD + - id: apfCvxSyZTHZw5kp2BDQQW sortOrder: 12 fieldKey: facebook label: Facebook @@ -110757,7 +111606,7 @@ items: dynamic: false allowNull: true hidden: false - - id: qnPrkiNh7nYTvAWFi1qwPX + - id: f5QkZJ29cN1t58rKAYBWsx sortOrder: 13 fieldKey: unique_name label: Unique Name @@ -110778,7 +111627,7 @@ items: dynamic: false allowNull: true hidden: false - - id: dqMd51yeqXjwshZsRo4gVV + - id: qcgKnMwQzk44RSK42ZWVMH sortOrder: 14 fieldKey: primary_email label: Email Address @@ -110799,7 +111648,7 @@ items: dynamic: false allowNull: true hidden: false - - id: 94WhZQcGQBT4igaWL9riEA + - id: rJ6MNEosZsTcbf84PSBmgd sortOrder: 15 fieldKey: phone_number_id label: Phone Number ID @@ -110821,7 +111670,7 @@ items: choices: null dynamic: false allowNull: true - - id: 7ee6DUkSN2QpJPe9qZuSEF + - id: tpQRYyjjGLgz8mbyUMgJ8e sortOrder: 16 fieldKey: external_id label: External ID @@ -110841,7 +111690,7 @@ items: choices: null dynamic: false allowNull: true - - id: bBKqZE2R2NiZ5w2LRs4RXm + - id: pVuL4kC4FHwxSnon44Swhu sortOrder: 17 fieldKey: anonymous_id label: 'Anonymous ID ' @@ -110855,7 +111704,7 @@ items: choices: null dynamic: false allowNull: true - - id: bJvyNSETQ6AWtT3iQVuitA + - id: 2A2cbrgDKj2PtWQbCaMGPJ sortOrder: 18 fieldKey: customFields label: Other Fields @@ -110885,7 +111734,7 @@ items: hidden: false defaultTrigger: null fields: - - id: aW9Lt8XH6Bmj9spQReQyR + - id: ok8bmX6n11X9o7gUeFYw8N sortOrder: 0 fieldKey: domain label: Validated Domain @@ -110901,7 +111750,7 @@ items: choices: null dynamic: true allowNull: false - - id: ji5pjSRom1ZpULM43DQhaw + - id: sWZP3C1aKep982wDAtj4zp sortOrder: 1 fieldKey: from label: From @@ -110913,7 +111762,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8XmTfnJkTnuwZeSdCtS1Wa + - id: oLdT7QoL1TT5gmPajD3ANs sortOrder: 2 fieldKey: to label: To @@ -110930,7 +111779,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7F8cYTcaD2t2rgwwsTtuPV + - id: v1hkZSJjwk7nzEVVpGoAf4 sortOrder: 3 fieldKey: cc label: CC @@ -110942,7 +111791,7 @@ items: choices: null dynamic: false allowNull: false - - id: d3ZahtXUdj3UBbqHkpjVyT + - id: fPdgXQpummcWvkrKAusAU sortOrder: 4 fieldKey: bcc label: BCC @@ -110954,7 +111803,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7u2UCSi9UcMNNvLqJhttV1 + - id: vmj6XTgYGb8mjSXqcLMwTN sortOrder: 5 fieldKey: headers label: Headers @@ -110966,7 +111815,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3QpaChrgZ5pkWjJs8GkvJb + - id: nXSFBUhrGkRvByqXp4QLiK sortOrder: 6 fieldKey: dynamic_template_data label: Dynamic Template Data @@ -110981,7 +111830,7 @@ items: choices: null dynamic: true allowNull: false - - id: oiTYPEhgQDgaAusZZPv3Zb + - id: 7nFVym6ksGejsE4eekhydM sortOrder: 7 fieldKey: template_id label: Dynamic Template @@ -110993,7 +111842,7 @@ items: choices: null dynamic: true allowNull: false - - id: 5WP4pF1Bqcj7pfXorNpgzb + - id: jv8L2bFyjS8jmZJC7zf6Y sortOrder: 8 fieldKey: custom_args label: Custom Args @@ -111005,7 +111854,7 @@ items: choices: null dynamic: false allowNull: false - - id: tdtTExuhQZJUqYJmr3BbvE + - id: pVLHvejcLaV8TcwbxHnqbr sortOrder: 9 fieldKey: send_at label: Send At @@ -111019,7 +111868,7 @@ items: choices: null dynamic: false allowNull: false - - id: hM2amnTaNahSeuBsX5vbcQ + - id: jsXa7quh19zZ4ftSRQcM7K sortOrder: 10 fieldKey: reply_to label: Reply To @@ -111033,7 +111882,7 @@ items: choices: null dynamic: false allowNull: false - - id: jsS35apCqNJQJwm2efNhwP + - id: 227WSk9Lk5uUrk1o5N3avt sortOrder: 11 fieldKey: categories label: Categories @@ -111045,7 +111894,7 @@ items: choices: null dynamic: false allowNull: false - - id: uSMCVVccHskqn1SLaPJfwX + - id: qykX9GDPP7ayg3ywJZrE5L sortOrder: 12 fieldKey: ip_pool_name label: IP Pool @@ -111057,7 +111906,7 @@ items: choices: null dynamic: true allowNull: false - - id: kdXDdsbaLJZz6gZm61q35b + - id: ozmFQpbsncQ1E52nK8w9eL sortOrder: 13 fieldKey: group_id label: Group ID @@ -112452,7 +113301,7 @@ items: hidden: false defaultTrigger: null fields: - - id: gXyFzQFEz9ZU3eCYBNSBRv + - id: dnHqM68JQoXdXepAmDnsmN sortOrder: 0 fieldKey: event_name label: Event Name @@ -112468,7 +113317,7 @@ items: choices: null dynamic: false allowNull: false - - id: jsX7khJkSpfRfFkEQDCGBg + - id: dGjHDFXpwoHjJvZmwksgAX sortOrder: 1 fieldKey: event_id label: Event ID @@ -112488,7 +113337,7 @@ items: choices: null dynamic: false allowNull: false - - id: sUo5VQNrGkfZic4atzZ6sf + - id: gfHoAwZRchvP32jWyBWfd9 sortOrder: 2 fieldKey: event_time label: Event Timestamp @@ -112504,7 +113353,7 @@ items: choices: null dynamic: false allowNull: false - - id: ikbyD35JubLdAoe9wpehSH + - id: sXQcCjL4Notsf1nhNSNmZY sortOrder: 3 fieldKey: action_source label: Action Source @@ -112532,7 +113381,7 @@ items: value: other dynamic: false allowNull: false - - id: mdvhvoXCyRjm8oNNAJUbBy + - id: ygXAAeWNkLotaL9CyGhsP sortOrder: 4 fieldKey: user_data label: User Data @@ -112648,7 +113497,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8NmUiD3L4MX4kb3952kJNq + - id: 2ew5HVyQPqCUb5SATZUQVh sortOrder: 5 fieldKey: app_data label: App Data @@ -112685,7 +113534,7 @@ items: choices: null dynamic: false allowNull: false - - id: wLq3rVd1L9BAmrq8mM4EVi + - id: vQ3JwFeYSHPoxL42YJafye sortOrder: 6 fieldKey: custom_data label: Custom Data @@ -112714,7 +113563,7 @@ items: choices: null dynamic: false allowNull: false - - id: oKWu9ifRgYxpTZPUFtr7Bw + - id: tmbXUg3G31HPU3Yfk56LJb sortOrder: 7 fieldKey: data_processing_options label: Data Processing Options @@ -112729,7 +113578,7 @@ items: choices: null dynamic: false allowNull: false - - id: gbWCWfNt5CDfnKd3CbSMgB + - id: vY1oAo4CRyLuArzH544AyK sortOrder: 8 fieldKey: data_processing_options_country label: Data Processing Country @@ -112750,7 +113599,7 @@ items: value: 1 dynamic: false allowNull: false - - id: tXQayV51x5bjhioQjYbvNa + - id: btSgS9NfKPK2eTeNmd2vck sortOrder: 9 fieldKey: data_processing_options_state label: Data Processing State @@ -112771,7 +113620,7 @@ items: value: 1000 dynamic: false allowNull: false - - id: hv7duzTpRy6zuESPucCwQq + - id: 9sanPEREQwrfWnmH93DA18 sortOrder: 10 fieldKey: event_source_url label: Event Source URL @@ -112785,7 +113634,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8vT9JnKtEStUZnpcZeXbVF + - id: 3AJ73S5NayBdWx48rm6Na2 sortOrder: 11 fieldKey: products label: Products @@ -112809,7 +113658,7 @@ items: choices: null dynamic: false allowNull: false - - id: orQuaDBv7EnzCBbxhZersU + - id: v2dPrvfwBi4xiEen6Qorqp sortOrder: 12 fieldKey: brands label: '[Deprecated] Brand' @@ -112821,7 +113670,7 @@ items: choices: null dynamic: false allowNull: false - - id: jb6ecVW7GGo33ivJ9HA6HD + - id: ubx26SKsM6tHqYukcV8iyY sortOrder: 13 fieldKey: click_id label: '[Deprecated] Click ID' @@ -112833,7 +113682,7 @@ items: choices: null dynamic: false allowNull: false - - id: kYwVr9u2HzdqLnrHkzQqiK + - id: gC2rrQHQtZ9YgFTr4RR4qb sortOrder: 14 fieldKey: client_dedup_id label: '[Deprecated] Client Deduplication ID' @@ -112845,7 +113694,7 @@ items: choices: null dynamic: false allowNull: false - - id: gvzAiPUDohLrxNtFix9jcB + - id: jbvBBmSwTNjq9gujRRstcd sortOrder: 15 fieldKey: currency label: '[Deprecated] Currency' @@ -112857,7 +113706,7 @@ items: choices: null dynamic: false allowNull: false - - id: eZBijvwki2pWFGgNUYPTU3 + - id: 2oDWWqtEjA6tsc7Ysk5xnc sortOrder: 16 fieldKey: description label: '[Deprecated] Description' @@ -112869,7 +113718,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8PetoUGcXznScCs5FMBCN2 + - id: 8bboUew4g6ZcEGcKko8sAx sortOrder: 17 fieldKey: device_model label: '[Deprecated] Device Model' @@ -112881,19 +113730,21 @@ items: choices: null dynamic: false allowNull: false - - id: 6cLEM47jbuhR18Ffj3pzFZ + - id: 6SGTR9E8pAqHqaTSC9H8iE sortOrder: 18 fieldKey: email label: '[Deprecated] Email' type: STRING - description: Deprecated. Use User Data email field. + description: >- + Deprecated. Use User Data email field. If not hashed, Segment will hash + this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: hrU46qLyWJ8U8sMtW5RYgg + - id: pKbRR9DM6ExXFFaa1kX9nA sortOrder: 19 fieldKey: event_conversion_type label: '[Deprecated] Event Conversion Type' @@ -112911,7 +113762,7 @@ items: value: MOBILE_APP dynamic: false allowNull: false - - id: wSkFM4ojcwPGVYi74yw1pU + - id: 6kJN774QRtnHYy8rYAW9yy sortOrder: 20 fieldKey: event_tag label: '[Deprecated] Event Tag' @@ -112923,7 +113774,7 @@ items: choices: null dynamic: false allowNull: false - - id: ojwH4tZSwEGy6kMqBYNSVs + - id: 6KHXvz7jZ9u3BSWn3bET4J sortOrder: 21 fieldKey: event_type label: '[Deprecated] Event Type' @@ -112935,7 +113786,7 @@ items: choices: null dynamic: false allowNull: false - - id: q4tFZW28BRHGP71CwxCDqr + - id: ch1Z4XSrSM89gzFixnwTfX sortOrder: 22 fieldKey: idfv label: '[Deprecated] Identifier for Vendor' @@ -112947,7 +113798,7 @@ items: choices: null dynamic: false allowNull: false - - id: 38MzvjT2Vwi3c1hqfLZHwf + - id: uFdgLTzszN4y9CWuFWpFvC sortOrder: 23 fieldKey: ip_address label: '[Deprecated] IP Address' @@ -112959,7 +113810,7 @@ items: choices: null dynamic: false allowNull: false - - id: oeQouqLHbco5P4Db13an9V + - id: j9KfQ93GGA9ZVfvnobMSEi sortOrder: 24 fieldKey: item_category label: '[Deprecated] Item Category' @@ -112971,7 +113822,7 @@ items: choices: null dynamic: false allowNull: false - - id: g89fygDQoLC1vig96wTTwk + - id: eowjYhTNBX8t16JVkp7KTJ sortOrder: 25 fieldKey: item_ids label: '[Deprecated] Item ID' @@ -112983,7 +113834,7 @@ items: choices: null dynamic: false allowNull: false - - id: 24C6nYG3RzA3vAvJpdL8DG + - id: sT6rYQuBzb1RUwA1312NHA sortOrder: 26 fieldKey: level label: '[Deprecated] Level' @@ -112995,7 +113846,7 @@ items: choices: null dynamic: false allowNull: false - - id: 96YigVuX8TSWoqSHMqNYjW + - id: biJrPNKCABS3bXWaAeevdA sortOrder: 27 fieldKey: mobile_ad_id label: '[Deprecated] Mobile Ad Identifier' @@ -113007,7 +113858,7 @@ items: choices: null dynamic: false allowNull: false - - id: ftvgEZNhocNiQntbpzqVxc + - id: rD1NZJU3drQDkJrFxwB6Xj sortOrder: 28 fieldKey: number_items label: '[Deprecated] Number of Items' @@ -113019,7 +113870,7 @@ items: choices: null dynamic: false allowNull: false - - id: v6WhB1cjUYNT9pq1tsKvK4 + - id: ogdLhYr6DgwqhZtb6ifvXH sortOrder: 29 fieldKey: os_version label: '[Deprecated] OS Version' @@ -113031,7 +113882,7 @@ items: choices: null dynamic: false allowNull: false - - id: epZYx7TS1GiGhCJtLSXoRu + - id: ho8W6YYkw1xR7LhpswXFiN sortOrder: 30 fieldKey: page_url label: '[Deprecated] Page URL' @@ -113043,19 +113894,21 @@ items: choices: null dynamic: false allowNull: false - - id: 6KWfARxq4hdVzEkeTDkuk + - id: skB2HWcxqz3HGAtBiPTxk2 sortOrder: 31 fieldKey: phone_number label: '[Deprecated] Phone Number' type: STRING - description: Deprecated. Use User Data phone field. + description: >- + Deprecated. Use User Data phone field. If not hashed, Segment will hash + this value. placeholder: '' required: false multiple: false choices: null dynamic: false allowNull: false - - id: eRLNVCC7jjKEvDmjz3rQ5S + - id: fqH4Ub54vHCQFerXreD4TN sortOrder: 32 fieldKey: price label: '[Deprecated] Price' @@ -113067,7 +113920,7 @@ items: choices: null dynamic: false allowNull: false - - id: qcz54TQYRXtqacSrNcTuXW + - id: wyTiDPwJYfBFewAVCkwBBQ sortOrder: 33 fieldKey: search_string label: '[Deprecated] Search String' @@ -113079,7 +113932,7 @@ items: choices: null dynamic: false allowNull: false - - id: aNv35X4iS8SsqAWe19bfy5 + - id: 8rK3nxqGPhKkfdnDTGur5X sortOrder: 34 fieldKey: sign_up_method label: '[Deprecated] Sign Up Method' @@ -113091,7 +113944,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2ZVcpqyaDLconXk1RksYC3 + - id: xqszNRgpifhBZoX8DvcF4y sortOrder: 35 fieldKey: timestamp label: '[Deprecated] Event Timestamp' @@ -113103,7 +113956,7 @@ items: choices: null dynamic: false allowNull: false - - id: 3gKWJVqPjxdHG2vGojxyJp + - id: 2L3QwhwWPC1wkrmrjmz3qa sortOrder: 36 fieldKey: transaction_id label: '[Deprecated] Transaction ID' @@ -113115,7 +113968,7 @@ items: choices: null dynamic: false allowNull: false - - id: 77K13r8USLMDaw8LTfw8eq + - id: f9W6Kt7vFrQ6tmmvsbQmBc sortOrder: 37 fieldKey: user_agent label: '[Deprecated] User Agent' @@ -113127,7 +113980,7 @@ items: choices: null dynamic: false allowNull: false - - id: uKuMCgVNd6hdyGJbj8Fr6A + - id: oUxiTHV2T465uWrS5gukeL sortOrder: 38 fieldKey: uuid_c1 label: '[Deprecated] uuid_c1 Cookie' @@ -113153,9 +114006,9 @@ items: fields: [] presets: - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: Purchase + name: Share fields: - event_name: PURCHASE + event_name: SHARE action_source: website event_id: '@path': $.messageId @@ -113313,11 +114166,11 @@ items: '@path': category brand: '@path': brand - trigger: event = "Order Completed" + trigger: event = "Product Shared" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: Sign Up + name: Start Checkout fields: - event_name: SIGN_UP + event_name: START_CHECKOUT action_source: website event_id: '@path': $.messageId @@ -113475,7 +114328,13 @@ items: '@path': category brand: '@path': brand - trigger: event = "Signed Up" + trigger: event = "Checkout Started" + - actionId: 7SEWxzhedEAS9y5joDwrub + name: Snap Browser Plugin + fields: {} + trigger: >- + type = "track" or type = "identify" or type = "group" or type = "page" or + type = "alias" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 name: Add Billing fields: @@ -113639,171 +114498,9 @@ items: '@path': brand trigger: event = "Payment Info Entered" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: App Open - fields: - event_name: APP_OPEN - action_source: website - event_id: - '@path': $.messageId - event_time: - '@path': $.timestamp - user_data: - externalId: - '@if': - exists: - '@path': $.userId - then: - '@path': $.userId - else: - '@path': $.anonymousId - email: - '@if': - exists: - '@path': $.properties.email - then: - '@path': $.properties.email - else: - '@path': $.traits.email - phone: - '@if': - exists: - '@path': $.properties.phone - then: - '@path': $.properties.phone - else: - '@path': $.traits.phone - gender: - '@if': - exists: - '@path': $.context.traits.gender - then: - '@path': $.context.traits.gender - else: - '@path': $.properties.gender - dateOfBirth: - '@if': - exists: - '@path': $.context.traits.birthday - then: - '@path': $.context.traits.birthday - else: - '@path': $.properties.birthday - lastName: - '@if': - exists: - '@path': $.context.traits.last_name - then: - '@path': $.context.traits.last_name - else: - '@path': $.properties.last_name - firstName: - '@if': - exists: - '@path': $.context.traits.first_name - then: - '@path': $.context.traits.first_name - else: - '@path': $.properties.first_name - 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: - '@if': - exists: - '@path': $.context.traits.address.postalCode - then: - '@path': $.context.traits.address.postalCode - else: - '@path': $.properties.address.postalCode - client_ip_address: - '@path': $.context.ip - client_user_agent: - '@path': $.context.userAgent - idfv: - '@path': $.context.device.id - madid: - '@path': $.context.device.advertisingId - sc_click_id: - '@path': $.integrations.Snap Conversions Api.click_id - sc_cookie1: - '@path': $.integrations.Snap Conversions Api.uuid_c1 - app_data: - application_tracking_enabled: - '@path': $.context.device.adTrackingEnabled - packageName: - '@path': $.context.app.namespace - longVersion: - '@path': $.context.app.version - osVersion: - '@path': $.context.os.version - deviceName: - '@path': $.context.device.model - locale: - '@path': $.context.locale - carrier: - '@path': $.context.network.carrier - width: - '@path': $.context.screen.width - height: - '@path': $.context.screen.height - density: - '@path': $.context.screen.density - deviceTimezone: - '@path': $.context.timezone - custom_data: - currency: - '@path': $.properties.currency - num_items: - '@path': $.properties.quantity - order_id: - '@path': $.properties.order_id - search_string: - '@path': $.properties.query - value: - '@if': - exists: - '@path': $.properties.revenue - then: - '@path': $.properties.revenue - else: - '@path': $.properties.total - event_source_url: - '@path': $.context.page.url - products: - '@arrayPath': - - $.properties.products - - item_id: - '@path': product_id - item_category: - '@path': category - brand: - '@path': brand - trigger: event = "Application Opened" - - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: Share + name: View Content fields: - event_name: SHARE + event_name: VIEW_CONTENT action_source: website event_id: '@path': $.messageId @@ -113961,7 +114658,7 @@ items: '@path': category brand: '@path': brand - trigger: event = "Product Shared" + trigger: event = "Product Viewed" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 name: Login fields: @@ -114125,9 +114822,9 @@ items: '@path': brand trigger: event = "Signed In" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: Page View + name: App Open fields: - event_name: PAGE_VIEW + event_name: APP_OPEN action_source: website event_id: '@path': $.messageId @@ -114285,11 +114982,11 @@ items: '@path': category brand: '@path': brand - trigger: type = "page" + trigger: event = "Application Opened" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: List View + name: Add to Cart fields: - event_name: LIST_VIEW + event_name: ADD_CART action_source: website event_id: '@path': $.messageId @@ -114447,11 +115144,11 @@ items: '@path': category brand: '@path': brand - trigger: event = "Product List Viewed" + trigger: event = "Product Added" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: Add to Cart + name: Search fields: - event_name: ADD_CART + event_name: SEARCH action_source: website event_id: '@path': $.messageId @@ -114609,11 +115306,335 @@ items: '@path': category brand: '@path': brand - trigger: event = "Product Added" + trigger: event = "Products Searched" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: Search + name: Purchase fields: - event_name: SEARCH + event_name: PURCHASE + action_source: website + event_id: + '@path': $.messageId + event_time: + '@path': $.timestamp + user_data: + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + phone: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.traits.phone + gender: + '@if': + exists: + '@path': $.context.traits.gender + then: + '@path': $.context.traits.gender + else: + '@path': $.properties.gender + dateOfBirth: + '@if': + exists: + '@path': $.context.traits.birthday + then: + '@path': $.context.traits.birthday + else: + '@path': $.properties.birthday + lastName: + '@if': + exists: + '@path': $.context.traits.last_name + then: + '@path': $.context.traits.last_name + else: + '@path': $.properties.last_name + firstName: + '@if': + exists: + '@path': $.context.traits.first_name + then: + '@path': $.context.traits.first_name + else: + '@path': $.properties.first_name + 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: + '@if': + exists: + '@path': $.context.traits.address.postalCode + then: + '@path': $.context.traits.address.postalCode + else: + '@path': $.properties.address.postalCode + client_ip_address: + '@path': $.context.ip + client_user_agent: + '@path': $.context.userAgent + idfv: + '@path': $.context.device.id + madid: + '@path': $.context.device.advertisingId + sc_click_id: + '@path': $.integrations.Snap Conversions Api.click_id + sc_cookie1: + '@path': $.integrations.Snap Conversions Api.uuid_c1 + app_data: + application_tracking_enabled: + '@path': $.context.device.adTrackingEnabled + packageName: + '@path': $.context.app.namespace + longVersion: + '@path': $.context.app.version + osVersion: + '@path': $.context.os.version + deviceName: + '@path': $.context.device.model + locale: + '@path': $.context.locale + carrier: + '@path': $.context.network.carrier + width: + '@path': $.context.screen.width + height: + '@path': $.context.screen.height + density: + '@path': $.context.screen.density + deviceTimezone: + '@path': $.context.timezone + custom_data: + currency: + '@path': $.properties.currency + num_items: + '@path': $.properties.quantity + order_id: + '@path': $.properties.order_id + search_string: + '@path': $.properties.query + value: + '@if': + exists: + '@path': $.properties.revenue + then: + '@path': $.properties.revenue + else: + '@path': $.properties.total + event_source_url: + '@path': $.context.page.url + products: + '@arrayPath': + - $.properties.products + - item_id: + '@path': product_id + item_category: + '@path': category + brand: + '@path': brand + trigger: event = "Order Completed" + - actionId: 66Yrkz8i3GvgSLVFeJQvN9 + name: App Install + fields: + event_name: APP_INSTALL + action_source: website + event_id: + '@path': $.messageId + event_time: + '@path': $.timestamp + user_data: + externalId: + '@if': + exists: + '@path': $.userId + then: + '@path': $.userId + else: + '@path': $.anonymousId + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.traits.email + phone: + '@if': + exists: + '@path': $.properties.phone + then: + '@path': $.properties.phone + else: + '@path': $.traits.phone + gender: + '@if': + exists: + '@path': $.context.traits.gender + then: + '@path': $.context.traits.gender + else: + '@path': $.properties.gender + dateOfBirth: + '@if': + exists: + '@path': $.context.traits.birthday + then: + '@path': $.context.traits.birthday + else: + '@path': $.properties.birthday + lastName: + '@if': + exists: + '@path': $.context.traits.last_name + then: + '@path': $.context.traits.last_name + else: + '@path': $.properties.last_name + firstName: + '@if': + exists: + '@path': $.context.traits.first_name + then: + '@path': $.context.traits.first_name + else: + '@path': $.properties.first_name + 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: + '@if': + exists: + '@path': $.context.traits.address.postalCode + then: + '@path': $.context.traits.address.postalCode + else: + '@path': $.properties.address.postalCode + client_ip_address: + '@path': $.context.ip + client_user_agent: + '@path': $.context.userAgent + idfv: + '@path': $.context.device.id + madid: + '@path': $.context.device.advertisingId + sc_click_id: + '@path': $.integrations.Snap Conversions Api.click_id + sc_cookie1: + '@path': $.integrations.Snap Conversions Api.uuid_c1 + app_data: + application_tracking_enabled: + '@path': $.context.device.adTrackingEnabled + packageName: + '@path': $.context.app.namespace + longVersion: + '@path': $.context.app.version + osVersion: + '@path': $.context.os.version + deviceName: + '@path': $.context.device.model + locale: + '@path': $.context.locale + carrier: + '@path': $.context.network.carrier + width: + '@path': $.context.screen.width + height: + '@path': $.context.screen.height + density: + '@path': $.context.screen.density + deviceTimezone: + '@path': $.context.timezone + custom_data: + currency: + '@path': $.properties.currency + num_items: + '@path': $.properties.quantity + order_id: + '@path': $.properties.order_id + search_string: + '@path': $.properties.query + value: + '@if': + exists: + '@path': $.properties.revenue + then: + '@path': $.properties.revenue + else: + '@path': $.properties.total + event_source_url: + '@path': $.context.page.url + products: + '@arrayPath': + - $.properties.products + - item_id: + '@path': product_id + item_category: + '@path': category + brand: + '@path': brand + trigger: event = "Application Installed" + - actionId: 66Yrkz8i3GvgSLVFeJQvN9 + name: Page View + fields: + event_name: PAGE_VIEW action_source: website event_id: '@path': $.messageId @@ -114771,17 +115792,11 @@ items: '@path': category brand: '@path': brand - trigger: event = "Products Searched" - - actionId: 7SEWxzhedEAS9y5joDwrub - name: Snap Browser Plugin - fields: {} - trigger: >- - type = "track" or type = "identify" or type = "group" or type = "page" or - type = "alias" + trigger: type = "page" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: View Content + name: List View fields: - event_name: VIEW_CONTENT + event_name: LIST_VIEW action_source: website event_id: '@path': $.messageId @@ -114939,7 +115954,7 @@ items: '@path': category brand: '@path': brand - trigger: event = "Product Viewed" + trigger: event = "Product List Viewed" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 name: Add to Wishlist fields: @@ -115103,171 +116118,9 @@ items: '@path': brand trigger: event = "Product Added to Wishlist" - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: Start Checkout - fields: - event_name: START_CHECKOUT - action_source: website - event_id: - '@path': $.messageId - event_time: - '@path': $.timestamp - user_data: - externalId: - '@if': - exists: - '@path': $.userId - then: - '@path': $.userId - else: - '@path': $.anonymousId - email: - '@if': - exists: - '@path': $.properties.email - then: - '@path': $.properties.email - else: - '@path': $.traits.email - phone: - '@if': - exists: - '@path': $.properties.phone - then: - '@path': $.properties.phone - else: - '@path': $.traits.phone - gender: - '@if': - exists: - '@path': $.context.traits.gender - then: - '@path': $.context.traits.gender - else: - '@path': $.properties.gender - dateOfBirth: - '@if': - exists: - '@path': $.context.traits.birthday - then: - '@path': $.context.traits.birthday - else: - '@path': $.properties.birthday - lastName: - '@if': - exists: - '@path': $.context.traits.last_name - then: - '@path': $.context.traits.last_name - else: - '@path': $.properties.last_name - firstName: - '@if': - exists: - '@path': $.context.traits.first_name - then: - '@path': $.context.traits.first_name - else: - '@path': $.properties.first_name - 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: - '@if': - exists: - '@path': $.context.traits.address.postalCode - then: - '@path': $.context.traits.address.postalCode - else: - '@path': $.properties.address.postalCode - client_ip_address: - '@path': $.context.ip - client_user_agent: - '@path': $.context.userAgent - idfv: - '@path': $.context.device.id - madid: - '@path': $.context.device.advertisingId - sc_click_id: - '@path': $.integrations.Snap Conversions Api.click_id - sc_cookie1: - '@path': $.integrations.Snap Conversions Api.uuid_c1 - app_data: - application_tracking_enabled: - '@path': $.context.device.adTrackingEnabled - packageName: - '@path': $.context.app.namespace - longVersion: - '@path': $.context.app.version - osVersion: - '@path': $.context.os.version - deviceName: - '@path': $.context.device.model - locale: - '@path': $.context.locale - carrier: - '@path': $.context.network.carrier - width: - '@path': $.context.screen.width - height: - '@path': $.context.screen.height - density: - '@path': $.context.screen.density - deviceTimezone: - '@path': $.context.timezone - custom_data: - currency: - '@path': $.properties.currency - num_items: - '@path': $.properties.quantity - order_id: - '@path': $.properties.order_id - search_string: - '@path': $.properties.query - value: - '@if': - exists: - '@path': $.properties.revenue - then: - '@path': $.properties.revenue - else: - '@path': $.properties.total - event_source_url: - '@path': $.context.page.url - products: - '@arrayPath': - - $.properties.products - - item_id: - '@path': product_id - item_category: - '@path': category - brand: - '@path': brand - trigger: event = "Checkout Started" - - actionId: 66Yrkz8i3GvgSLVFeJQvN9 - name: App Install + name: Sign Up fields: - event_name: APP_INSTALL + event_name: SIGN_UP action_source: website event_id: '@path': $.messageId @@ -115425,7 +116278,7 @@ items: '@path': category brand: '@path': brand - trigger: event = "Application Installed" + trigger: event = "Signed Up" partnerOwned: true - id: 54521fdb25e721e32a72eef6 display_name: SnapEngage @@ -117406,7 +118259,7 @@ items: hidden: false defaultTrigger: type = "track" fields: - - id: wzWg4fgD9UyNEre76x3TqP + - id: nHGjJdyXRHs1bV9rjWwsou sortOrder: 3 fieldKey: user_email label: Email address @@ -117427,7 +118280,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mnXZj17ERAxy2Dk7XjXTvw + - id: 4spaVcWVggwupxXCtwaDhU sortOrder: 5 fieldKey: enable_batching label: Batch events @@ -117442,7 +118295,7 @@ items: choices: null dynamic: false allowNull: false - - id: m5G1yerhx8Pfo9C4Y52DTQ + - id: gGtkJyNcXem6VHw39XqBmY sortOrder: 6 fieldKey: device_id label: Mobile Device ID @@ -119315,7 +120168,7 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: rG2TpPbMsU5pCTTED91v6v + - id: jReSYT1FRwVpNWTrtRFstq sortOrder: 0 fieldKey: selected_advertiser_id label: Advertiser ID @@ -119327,7 +120180,7 @@ items: choices: null dynamic: true allowNull: false - - id: 5VV8gdd4okiwKUNNPi6UY4 + - id: 2iUN2BmFJ1roZ9C4M6uXJy sortOrder: 1 fieldKey: audience_id label: Audience ID @@ -119342,12 +120195,14 @@ items: choices: null dynamic: true allowNull: false - - id: 5S4ANNxFrViDc4ppnmDMvf + - id: qtEjaSUuuapw15wenD4ncV sortOrder: 2 fieldKey: email label: User Email type: STRING - description: The user's email address to send to TikTok. + description: >- + The user's email address to send to TikTok.. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -119362,12 +120217,14 @@ items: choices: null dynamic: false allowNull: false - - id: dCtaH5X6dnYxbdiinKwZhJ + - id: ofapusAaUg9RzyhnEwzsMV sortOrder: 3 fieldKey: phone label: User Phone Number type: STRING - description: The user's phone number to send to TikTok. + description: >- + The user's phone number to send to TikTok.. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -119382,14 +120239,14 @@ items: choices: null dynamic: false allowNull: false - - id: nHDkZevb21yAnnxpSp5jCC + - id: asj5QwEts6uvb94zKVPisJ sortOrder: 4 fieldKey: advertising_id label: User Advertising ID type: STRING description: >- The user's mobile advertising ID to send to TikTok. This could be a - GAID, IDFA, or AAID + GAID, IDFA, or AAID. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.device.advertisingId @@ -119398,7 +120255,7 @@ items: choices: null dynamic: false allowNull: false - - id: hFUsbeS5TaBX6FJRXNBJKu + - id: j9mgcjHrKWFRLBzA5ePEyT sortOrder: 5 fieldKey: send_email label: Send Email? @@ -119411,7 +120268,7 @@ items: choices: null dynamic: false allowNull: false - - id: oj9uRPVVFn4KFt8L5axTjQ + - id: fau77AikJqU8VyVgVC9p5s sortOrder: 6 fieldKey: send_phone label: Send Phone Number? @@ -119424,7 +120281,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5G5XArdL6pqur1SGCmMvmH + - id: cNuXum4YBPJ58nQKD8MHTU sortOrder: 7 fieldKey: send_advertising_id label: Send Mobile Advertising ID? @@ -119447,7 +120304,7 @@ items: hidden: false defaultTrigger: event = "Audience Exited" fields: - - id: 68m3rzM5BTWtReLFYAYsEk + - id: nHFQqgCLrtX5L99bqWuntQ sortOrder: 0 fieldKey: selected_advertiser_id label: Advertiser ID @@ -119459,7 +120316,7 @@ items: choices: null dynamic: true allowNull: false - - id: psjszvyZN5XwU8zUjhUbgd + - id: j2FzTKxN6oKeKgvR5UfJsN sortOrder: 1 fieldKey: audience_id label: Audience ID @@ -119474,12 +120331,14 @@ items: choices: null dynamic: true allowNull: false - - id: vaPtvFprRAXtRkZ51Acbkn + - id: wT19e4qmXFqXA28vPWSePm sortOrder: 2 fieldKey: email label: User Email type: STRING - description: The user's email address to send to TikTok. + description: >- + The user's email address to send to TikTok.. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -119494,12 +120353,14 @@ items: choices: null dynamic: false allowNull: false - - id: 5GYqTnSgwcQbPEAisu1cEg + - id: 8FQQLDwUFGxGXki8eduJjZ sortOrder: 3 fieldKey: phone label: User Phone Number type: STRING - description: The user's phone number to send to TikTok. + description: >- + The user's phone number to send to TikTok.. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -119514,14 +120375,14 @@ items: choices: null dynamic: false allowNull: false - - id: 5JG76ksyLTJxek2stDZypK + - id: pv8CvkoKybSvFabsEQ7nb7 sortOrder: 4 fieldKey: advertising_id label: User Advertising ID type: STRING description: >- The user's mobile advertising ID to send to TikTok. This could be a - GAID, IDFA, or AAID + GAID, IDFA, or AAID. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.device.advertisingId @@ -119530,7 +120391,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2Ym8UhsE8nVSJNigAyEKx5 + - id: kcpBAaTGSQ9BD7Z6yeFUoz sortOrder: 5 fieldKey: send_email label: Send Email? @@ -119543,7 +120404,7 @@ items: choices: null dynamic: false allowNull: false - - id: tSxCTyw8AoeG7ihJG1Mk3i + - id: 2rgrccwb6V4TDVZ7bwwDTA sortOrder: 6 fieldKey: send_phone label: Send Phone Number? @@ -119556,7 +120417,7 @@ items: choices: null dynamic: false allowNull: false - - id: grEsbNBqtqEh4SewTNcn2N + - id: srvvFv4LhLMVp4syiq6zu1 sortOrder: 7 fieldKey: send_advertising_id label: Send Mobile Advertising ID? @@ -119582,7 +120443,7 @@ items: hidden: false defaultTrigger: event = "Create Audience" fields: - - id: gyGfKXUuHqoWs4hJyNicGu + - id: eav9jvde8sCPJoRFqLXTLf sortOrder: 0 fieldKey: selected_advertiser_id label: Advertiser ID @@ -119594,7 +120455,7 @@ items: choices: null dynamic: true allowNull: false - - id: mhZXHWX3fDrS5igBQyL4pW + - id: fqndwyDs8zKFmBJSCWu1z1 sortOrder: 1 fieldKey: custom_audience_name label: Custom Audience Name @@ -119617,12 +120478,14 @@ items: hidden: false defaultTrigger: event = "Audience Entered" fields: - - id: hG9FHXK7RiTdLBrsmFYoaP + - id: aog9g9D2eQuS12Kw1Ea1cd sortOrder: 0 fieldKey: email label: User Email type: STRING - description: The user's email address to send to TikTok. + description: >- + The user's email address to send to TikTok.. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -119637,12 +120500,14 @@ items: choices: null dynamic: false allowNull: false - - id: hy6Wc8BH4YY5N2rGgN9tnm + - id: fRiutPaqeJBRZ1tvYJcp9r sortOrder: 1 fieldKey: phone label: User Phone Number type: STRING - description: The user's phone number to send to TikTok. + description: >- + The user's phone number to send to TikTok.. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -119657,14 +120522,14 @@ items: choices: null dynamic: false allowNull: false - - id: cSMfjAyvdBQu2r8pQW5wro + - id: n6N7f7qQ6b1zrhMtg15EvM sortOrder: 2 fieldKey: advertising_id label: User Advertising ID type: STRING description: >- The user's mobile advertising ID to send to TikTok. This could be a - GAID, IDFA, or AAID + GAID, IDFA, or AAID. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.device.advertisingId @@ -119673,7 +120538,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6ypdRaL6JvyTM8nnUuEecu + - id: qJAab2EStRJtC8Tzh3ESM9 sortOrder: 3 fieldKey: send_email label: Send Email? @@ -119686,7 +120551,7 @@ items: choices: null dynamic: false allowNull: false - - id: esR9mUuEQXumTKk8dnGXQz + - id: hxNY3eUM7nBzDNMVy5eUkz sortOrder: 4 fieldKey: send_phone label: Send Phone Number? @@ -119699,7 +120564,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2zrsK8W9qa2Hux9acLwrYh + - id: kahAwwGzWCdCYMhJMRCgaT sortOrder: 5 fieldKey: send_advertising_id label: Send Mobile Advertising ID? @@ -119722,12 +120587,14 @@ items: hidden: false defaultTrigger: event = "Audience Exited" fields: - - id: 59TeVTEyPyys1zM1zYsZ6k + - id: uiPMnuAyvGXJCwuJh5X1GA sortOrder: 0 fieldKey: email label: User Email type: STRING - description: The user's email address to send to TikTok. + description: >- + The user's email address to send to TikTok.. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -119742,12 +120609,14 @@ items: choices: null dynamic: false allowNull: false - - id: a5dvipF2SLVf2gPDHQVuLn + - id: 2KPsgbSfyGRhth71n5vGmC sortOrder: 1 fieldKey: phone label: User Phone Number type: STRING - description: The user's phone number to send to TikTok. + description: >- + The user's phone number to send to TikTok.. If not hashed, Segment will + hash this value. placeholder: '' defaultValue: '@if': @@ -119762,14 +120631,14 @@ items: choices: null dynamic: false allowNull: false - - id: r6kBx4g2A36zYH4c2hBcgx + - id: jUoVwN2v66Rzz9dBhxTpHc sortOrder: 2 fieldKey: advertising_id label: User Advertising ID type: STRING description: >- The user's mobile advertising ID to send to TikTok. This could be a - GAID, IDFA, or AAID + GAID, IDFA, or AAID. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@path': $.context.device.advertisingId @@ -119778,7 +120647,7 @@ items: choices: null dynamic: false allowNull: false - - id: eS9LPCwYnJiAQytu8aYTBf + - id: anE9xsiDk3gad4Hj2Qpmj1 sortOrder: 3 fieldKey: send_email label: Send Email? @@ -119791,7 +120660,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5FK6y4bDT1JBBo7NTj1GAL + - id: pXrxN2KrgRsGajguMcBWAJ sortOrder: 4 fieldKey: send_phone label: Send Phone Number? @@ -119804,7 +120673,7 @@ items: choices: null dynamic: false allowNull: false - - id: 5JCPYuBeorieecwCPr1ARK + - id: tcyrrgCGp29Eo8SUGrcQMg sortOrder: 5 fieldKey: send_advertising_id label: Send Mobile Advertising ID? @@ -119902,7 +120771,7 @@ items: hidden: false defaultTrigger: null fields: - - id: p6VYmAJZHtSZrjD3MzRfE6 + - id: ikKNtZN56gsPQw9gDkWXYM sortOrder: 0 fieldKey: event label: Event Name @@ -119919,7 +120788,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 8rZshfHAVuZr9r4bJoU8ZN + - id: 471ePm6VGUZ1xXRt9voonL sortOrder: 1 fieldKey: event_id label: Event ID @@ -119934,7 +120803,7 @@ items: dynamic: false allowNull: false hidden: false - - id: nEAbq6MPApL259cEskfEZf + - id: jvaV6qTrKsroLUfCAk1kyp sortOrder: 2 fieldKey: timestamp label: Event Timestamp @@ -119949,7 +120818,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pRaoFyJHwHdpTu56jstKTy + - id: hdr5sR1uAQrB8k5uiDKz2J sortOrder: 3 fieldKey: phone_number label: Phone Number @@ -119957,7 +120826,8 @@ items: description: >- A single phone number or array of phone numbers in E.164 standard format. Segment will hash this value before sending to TikTok. e.g. - +14150000000. Segment will hash this value before sending to TikTok. + +14150000000. Segment will hash this value before sending to TikTok. If + not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -119973,14 +120843,15 @@ items: dynamic: false allowNull: false hidden: false - - id: tQ8GcrmLnWwJgxrAsLEULf + - id: 3uZQBkkhDUqi45Pd3Xf9H9 sortOrder: 4 fieldKey: email label: Email type: STRING description: >- A single email address or an array of email addresses. Segment will hash - this value before sending to TikTok. + this value before sending to TikTok. If not hashed, Segment will hash + this value. placeholder: '' defaultValue: '@if': @@ -119996,14 +120867,15 @@ items: dynamic: false allowNull: false hidden: false - - id: 942tSWEms6rHern4XdKrny + - id: p3r3YKmpsptSnkup5GTfnV sortOrder: 5 fieldKey: first_name label: First Name type: STRING description: >- The first name of the customer. The name should be in lowercase without - any punctuation. Special characters are allowed. + any punctuation. Special characters are allowed. If not hashed, Segment + will hash this value. placeholder: '' defaultValue: '@if': @@ -120018,14 +120890,15 @@ items: choices: null dynamic: false allowNull: false - - id: r9ipWT1k8oUDuYrmnKsrdo + - id: 4t66RaPURfzeuqbN9xb4zh sortOrder: 6 fieldKey: last_name label: Last Name type: STRING description: >- The last name of the customer. The name should be in lowercase without - any punctuation. Special characters are allowed. + any punctuation. Special characters are allowed. If not hashed, Segment + will hash this value. placeholder: '' defaultValue: '@if': @@ -120040,7 +120913,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8rZttnJJhDn7nphrRa7Zj + - id: kZcWGJ492r46USemz2NAT1 sortOrder: 7 fieldKey: address label: Address @@ -120085,7 +120958,7 @@ items: choices: null dynamic: false allowNull: false - - id: p7xdCHrrAdn4jSuKtLcjcb + - id: 2pAjQQ2w9iKi4wNGuFVcbX sortOrder: 8 fieldKey: order_id label: Order ID @@ -120099,7 +120972,7 @@ items: choices: null dynamic: false allowNull: false - - id: 7Mp14SXcTG2pCLtkVjpiuE + - id: fMeSdPiJd7PHpxwLde2Vvx sortOrder: 9 fieldKey: shop_id label: Shop ID @@ -120113,7 +120986,7 @@ items: choices: null dynamic: false allowNull: false - - id: cWZ3epng4mHNnpDBRnhyQC + - id: 9C7zFdQRk3JcuGj2tqvz2o sortOrder: 10 fieldKey: external_id label: External ID @@ -120122,7 +120995,7 @@ items: Uniquely identifies the user who triggered the conversion event. Segment will hash this value before sending to TikTok. TikTok Conversions Destination supports both string and string[] types for sending external - ID(s). + ID(s). If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -120138,7 +121011,7 @@ items: dynamic: false allowNull: false hidden: false - - id: ew9jsj26YnomqVWpg4CjvY + - id: qcXGJXfxyjehPQsrSCLs9s sortOrder: 11 fieldKey: ttclid label: TikTok Click ID @@ -120163,7 +121036,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9Vw7DiJosqfjt8eNfyYPNk + - id: 31JPQKQUCDPCW5Edn7K4bK sortOrder: 12 fieldKey: ttp label: TikTok Cookie ID @@ -120191,7 +121064,7 @@ items: choices: null dynamic: false allowNull: false - - id: 8h8YFMzCK9d7MmFYmTpiY7 + - id: rNYKo55shY7CjA1fn36tUM sortOrder: 13 fieldKey: lead_id label: TikTok Lead ID @@ -120209,7 +121082,7 @@ items: dynamic: false allowNull: false hidden: false - - id: b9KkVqKjEA9mYwygnJKVGw + - id: bupMrFsViaREbryNd9ipEb sortOrder: 14 fieldKey: locale label: Locale @@ -120225,7 +121098,7 @@ items: choices: null dynamic: false allowNull: false - - id: kRDKfZzgeeUGRxGsjyDFBi + - id: 73KYNGUqZbsh9oq288SjJR sortOrder: 15 fieldKey: url label: Page URL @@ -120240,7 +121113,7 @@ items: dynamic: false allowNull: false hidden: false - - id: fryHTNXYZ3uv58TeY2xXVD + - id: FnrfrAfpiaWKmbx9Va6sD sortOrder: 16 fieldKey: referrer label: Page Referrer @@ -120255,7 +121128,7 @@ items: dynamic: false allowNull: false hidden: false - - id: hyy8aRYxU1dBhJ67DLgCu3 + - id: cDGhuucvpiriqdRyVstnv8 sortOrder: 17 fieldKey: ip label: IP Address @@ -120270,7 +121143,7 @@ items: dynamic: false allowNull: false hidden: false - - id: m7E59GfCDmXzabNiniWcqf + - id: kExxYNP3wkoEqCtjpode26 sortOrder: 18 fieldKey: user_agent label: User Agent @@ -120285,7 +121158,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 6tyNEHCfQS52yc5qTFx6GB + - id: vFsmjixxSQWFP25hCte7tb sortOrder: 19 fieldKey: contents label: Contents @@ -120298,7 +121171,7 @@ items: dynamic: false allowNull: false hidden: false - - id: f26jVnDptw5zcHd9kSxkwZ + - id: eXAu8dopAd4mxZU6Gy5yvy sortOrder: 20 fieldKey: content_type label: Content Type @@ -120319,7 +121192,7 @@ items: value: product_group dynamic: false allowNull: false - - id: jHB8wbSdeu4VtgKGWBHoq + - id: 23wGdbAApcui7t7AB37Gva sortOrder: 21 fieldKey: currency label: Currency @@ -120334,7 +121207,7 @@ items: dynamic: false allowNull: false hidden: false - - id: vLLaJkxAGazEWSLNXxGHVv + - id: sM48KFh7D16o5rrHe99ds9 sortOrder: 22 fieldKey: value label: Value @@ -120355,7 +121228,7 @@ items: dynamic: false allowNull: false hidden: false - - id: py9sswdMGxLH5ePBHLTnpt + - id: 6tJWCUpHAHvivuEjjFp9cv sortOrder: 23 fieldKey: description label: Description @@ -120368,7 +121241,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mkxciuiPKNp8Gz3BtxDNNP + - id: vqcARpmV14vCjUzz9EHhtu sortOrder: 24 fieldKey: query label: Query @@ -120383,7 +121256,7 @@ items: dynamic: false allowNull: false hidden: false - - id: m5JyaBoFwefuQM2CFcLx9p + - id: 2whtzq1LZqXRRCuyK4F3qU sortOrder: 25 fieldKey: limited_data_use label: Limited Data Use @@ -120403,7 +121276,7 @@ items: choices: null dynamic: false allowNull: false - - id: UMuv15KCWAutSRVK9kLsL + - id: itUv9MxNNVqLgdb7CKRMTi sortOrder: 26 fieldKey: test_event_code label: Test Event Code @@ -120566,7 +121439,7 @@ items: event: AddPaymentInfo trigger: event = "Payment Info Entered" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Download + name: View Content fields: event_id: '@path': $.messageId @@ -120692,10 +121565,25 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: Download - trigger: event = "Download Link Clicked" + contents: + '@arrayPath': + - $.properties + - price: + '@path': $.price + quantity: + '@path': $.quantity + content_category: + '@path': $.category + content_id: + '@path': $.product_id + content_name: + '@path': $.name + brand: + '@path': $.brand + event: ViewContent + trigger: event = "Product Viewed" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Initiate Checkout + name: Submit Form fields: event_id: '@path': $.messageId @@ -120821,25 +121709,10 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - contents: - '@arrayPath': - - $.properties.products - - price: - '@path': $.price - quantity: - '@path': $.quantity - content_category: - '@path': $.category - content_id: - '@path': $.product_id - content_name: - '@path': $.name - brand: - '@path': $.brand - event: InitiateCheckout - trigger: event = "Checkout Started" + event: SubmitForm + trigger: event = "Form Submitted" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Complete Registration + name: Initiate Checkout fields: event_id: '@path': $.messageId @@ -120965,8 +121838,23 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: CompleteRegistration - trigger: event = "Signed Up" + contents: + '@arrayPath': + - $.properties.products + - price: + '@path': $.price + quantity: + '@path': $.quantity + content_category: + '@path': $.category + content_id: + '@path': $.product_id + content_name: + '@path': $.name + brand: + '@path': $.brand + event: InitiateCheckout + trigger: event = "Checkout Started" - actionId: sgzMwUxWm5jPu4SSaGt6cS name: Click Button fields: @@ -121112,7 +122000,7 @@ items: event: ClickButton trigger: event = "Product Clicked" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Contact + name: Download fields: event_id: '@path': $.messageId @@ -121238,10 +122126,10 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: Contact - trigger: event = "Callback Started" + event: Download + trigger: event = "Download Link Clicked" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Place an Order + name: Contact fields: event_id: '@path': $.messageId @@ -121367,25 +122255,10 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - contents: - '@arrayPath': - - $.properties.products - - price: - '@path': $.price - quantity: - '@path': $.quantity - content_category: - '@path': $.category - content_id: - '@path': $.product_id - content_name: - '@path': $.name - brand: - '@path': $.brand - event: PlaceAnOrder - trigger: event = "Order Placed" + event: Contact + trigger: event = "Callback Started" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Search + name: Complete Payment fields: event_id: '@path': $.messageId @@ -121513,7 +122386,7 @@ items: '@path': $.properties.limited_data_use contents: '@arrayPath': - - $.properties + - $.properties.products - price: '@path': $.price quantity: @@ -121526,10 +122399,10 @@ items: '@path': $.name brand: '@path': $.brand - event: Search - trigger: event = "Products Searched" + event: CompletePayment + trigger: event = "Order Completed" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Complete Payment + name: Subscribe fields: event_id: '@path': $.messageId @@ -121655,25 +122528,10 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - contents: - '@arrayPath': - - $.properties.products - - price: - '@path': $.price - quantity: - '@path': $.quantity - content_category: - '@path': $.category - content_id: - '@path': $.product_id - content_name: - '@path': $.name - brand: - '@path': $.brand - event: CompletePayment - trigger: event = "Order Completed" + event: Subscribe + trigger: event = "Subscription Created" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Submit Form + name: Page View fields: event_id: '@path': $.messageId @@ -121799,10 +122657,25 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: SubmitForm - trigger: event = "Form Submitted" + contents: + '@arrayPath': + - $.properties.products + - price: + '@path': $.price + quantity: + '@path': $.quantity + content_category: + '@path': $.category + content_id: + '@path': $.product_id + content_name: + '@path': $.name + brand: + '@path': $.brand + event: PageView + trigger: type="page" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Page View + name: Search fields: event_id: '@path': $.messageId @@ -121930,7 +122803,7 @@ items: '@path': $.properties.limited_data_use contents: '@arrayPath': - - $.properties.products + - $.properties - price: '@path': $.price quantity: @@ -121943,10 +122816,10 @@ items: '@path': $.name brand: '@path': $.brand - event: PageView - trigger: type="page" + event: Search + trigger: event = "Products Searched" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Add to Cart + name: Add to Wishlist fields: event_id: '@path': $.messageId @@ -122087,10 +122960,10 @@ items: '@path': $.name brand: '@path': $.brand - event: AddToCart - trigger: event = "Product Added" + event: AddToWishlist + trigger: event = "Product Added to Wishlist" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: View Content + name: Add to Cart fields: event_id: '@path': $.messageId @@ -122231,10 +123104,10 @@ items: '@path': $.name brand: '@path': $.brand - event: ViewContent - trigger: event = "Product Viewed" + event: AddToCart + trigger: event = "Product Added" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Add to Wishlist + name: Complete Registration fields: event_id: '@path': $.messageId @@ -122360,25 +123233,10 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - contents: - '@arrayPath': - - $.properties - - price: - '@path': $.price - quantity: - '@path': $.quantity - content_category: - '@path': $.category - content_id: - '@path': $.product_id - content_name: - '@path': $.name - brand: - '@path': $.brand - event: AddToWishlist - trigger: event = "Product Added to Wishlist" + event: CompleteRegistration + trigger: event = "Signed Up" - actionId: sgzMwUxWm5jPu4SSaGt6cS - name: Subscribe + name: Place an Order fields: event_id: '@path': $.messageId @@ -122504,8 +123362,23 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: Subscribe - trigger: event = "Subscription Created" + contents: + '@arrayPath': + - $.properties.products + - price: + '@path': $.price + quantity: + '@path': $.quantity + content_category: + '@path': $.category + content_id: + '@path': $.product_id + content_name: + '@path': $.name + brand: + '@path': $.brand + event: PlaceAnOrder + trigger: event = "Order Placed" partnerOwned: true - id: 6447ca8bfaa773a2ba0777a0 display_name: Tiktok Offline Conversions @@ -122588,7 +123461,7 @@ items: hidden: false defaultTrigger: null fields: - - id: s9wfLWJsqxdMy2imEmrkdE + - id: d16g9MCBt7HWKops7i6hLv sortOrder: 0 fieldKey: event label: Event Name @@ -122605,7 +123478,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pzEcpeaUMVjypFTyZcyiVz + - id: rBMktUYiZWi8cjbVdUTy2B sortOrder: 1 fieldKey: event_id label: Event ID @@ -122620,7 +123493,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 2eQAYcasN3p6shqy9w2emy + - id: wMBhwyfPqXZS6zqupUQFeW sortOrder: 2 fieldKey: timestamp label: Event Timestamp @@ -122635,16 +123508,16 @@ items: dynamic: false allowNull: false hidden: false - - id: mfrAP5n6tXfttgFe59JMZj + - id: kh6U2HKxGsgbfxkMw8STMy sortOrder: 3 fieldKey: phone_numbers label: Phone Number type: STRING description: >- A single phone number or array of phone numbers in E.164 standard - format. Segment will hash this value before sending to TikTok. At least - one phone number value is required if both Email and External ID fields - are empty. + format. At least one phone number value is required if both Email and + External ID fields are empty. If not hashed, Segment will hash this + value. placeholder: '' defaultValue: '@if': @@ -122660,15 +123533,15 @@ items: dynamic: false allowNull: false hidden: false - - id: jgGL8PXHXgecuxcH16EHjv + - id: 2R9rZ9WpSPLjZTZEt6xrr sortOrder: 4 fieldKey: email_addresses label: Email type: STRING description: >- - A single email address or an array of email addresses. Segment will hash - this value before sending to TikTok. At least one email value is - required if both Phone Number and External ID fields are empty. + A single email address or an array of email addresses. At least one + email value is required if both Phone Number and External ID fields are + empty. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -122684,7 +123557,7 @@ items: dynamic: false allowNull: false hidden: false - - id: bLuY4N9zdMt1zkJ624ojqx + - id: 4ZxZW5tEckApWjeixGnU6E sortOrder: 5 fieldKey: order_id label: Order ID @@ -122699,7 +123572,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wXEqmYds82wkusSCoL87TN + - id: kfafhELZ9KEugDTqprivEb sortOrder: 6 fieldKey: shop_id label: Shop ID @@ -122714,17 +123587,17 @@ items: dynamic: false allowNull: false hidden: false - - id: mH8JjiHmy5AKLNxaTKJyMd + - id: uEeQ6pvLR1QuBVVYkgo5S5 sortOrder: 7 fieldKey: external_ids label: External ID type: STRING description: >- - Uniquely identifies the user who triggered the conversion event. Segment - will hash this value before sending to TikTok. TikTok Offline - Conversions Destination supports both string and string[] types for - sending external ID(s). At least one external ID value is required if - both Email and Phone Number fields are empty. + Uniquely identifies the user who triggered the conversion event. TikTok + Offline Conversions Destination supports both string and string[] types + for sending external ID(s). At least one external ID value is required + if both Email and Phone Number fields are empty. If not hashed, Segment + will hash this value. placeholder: '' defaultValue: '@if': @@ -122739,7 +123612,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2rWbAnaVVg6NtRxF2g1Gqs + - id: YTxUx9dEUKZHa2wbQVE7y sortOrder: 8 fieldKey: ttclid label: TikTok Click ID @@ -122763,7 +123636,7 @@ items: choices: null dynamic: false allowNull: false - - id: 831kbyHgvR8Z5JSq7tnofz + - id: nwcKjnpJKRrCmduqd1A3u6 sortOrder: 9 fieldKey: ttp label: TikTok Cookie ID @@ -122791,7 +123664,7 @@ items: choices: null dynamic: false allowNull: false - - id: j1jZraZdMNLmWz2tDizFjK + - id: wakXSmjesAKSpeXwUYsBd1 sortOrder: 10 fieldKey: lead_id label: TikTok Lead ID @@ -122808,7 +123681,7 @@ items: choices: null dynamic: false allowNull: false - - id: 245pziMtBZ4R9wvPePtsWL + - id: vQSmUhQqdeMYjTyoASms59 sortOrder: 11 fieldKey: locale label: Locale @@ -122824,7 +123697,7 @@ items: choices: null dynamic: false allowNull: false - - id: hnggKkCd3RCipKWpNekefN + - id: 3CcD5igBVT85oi6yZHUa7W sortOrder: 12 fieldKey: url label: Page URL @@ -122838,7 +123711,7 @@ items: choices: null dynamic: false allowNull: false - - id: jmTo4epDCFA5m4AUoRontD + - id: jANdpLnPf9NgiDZeFwesvZ sortOrder: 13 fieldKey: referrer label: Page Referrer @@ -122852,7 +123725,7 @@ items: choices: null dynamic: false allowNull: false - - id: hTAQgXapqRQSCiUjx61Uoa + - id: i3NUykXxzA2aQzcc69JpzX sortOrder: 14 fieldKey: ip label: IP Address @@ -122866,7 +123739,7 @@ items: choices: null dynamic: false allowNull: false - - id: piBnVfP2DDW3geeq5qweMX + - id: wG2k2yGY87ZEYtj7pZTHsN sortOrder: 15 fieldKey: user_agent label: User Agent @@ -122880,7 +123753,7 @@ items: choices: null dynamic: false allowNull: false - - id: g9t4h69MpWu6VF3vAY7hHa + - id: 3Zr7vvPvxPpEBZhsvBF543 sortOrder: 16 fieldKey: contents label: Contents @@ -122892,7 +123765,7 @@ items: choices: null dynamic: false allowNull: false - - id: gbH3Uotrmf23okgKpTfgJS + - id: aaruiynnatTKDo1app26vk sortOrder: 17 fieldKey: content_type label: Content Type @@ -122913,7 +123786,7 @@ items: value: product_group dynamic: false allowNull: false - - id: fLyz2Za5p2DfXMq2bfzKuJ + - id: dQYBxs3ThnAPnmUfPDuftk sortOrder: 18 fieldKey: currency label: Currency @@ -122927,7 +123800,7 @@ items: choices: null dynamic: false allowNull: false - - id: hmon4Q14tyzyEk7kFwVSt + - id: tZbNitDzJ9DkktLmyEDCda sortOrder: 19 fieldKey: value label: Value @@ -122947,7 +123820,7 @@ items: choices: null dynamic: false allowNull: false - - id: sJiBMhcZkqM8xmyTvQjQUd + - id: n6d5tyf4FXrC6qg332KAmx sortOrder: 20 fieldKey: description label: Description @@ -122959,7 +123832,7 @@ items: choices: null dynamic: false allowNull: false - - id: c4D36av3HWzX4UnnffSH3E + - id: cqx53pwGGoA8jGWu89PoHZ sortOrder: 21 fieldKey: query label: Query @@ -122973,7 +123846,7 @@ items: choices: null dynamic: false allowNull: false - - id: kQWSh8g6VK6aCtRrz9xd46 + - id: uQeq3LHzhfJL9ARXL8XpMD sortOrder: 22 fieldKey: limited_data_use label: Limited Data Use @@ -122993,7 +123866,7 @@ items: choices: null dynamic: false allowNull: false - - id: fTKFBeLv92WTxD53CUkKvy + - id: 8xyVsb8PUtnHD68kDMUF3h sortOrder: 23 fieldKey: test_event_code label: Test Event Code @@ -123020,7 +123893,7 @@ items: hidden: false defaultTrigger: null fields: - - id: 27pooPcdRMqkoDC5SM31Ad + - id: wnHH28HQ9NEYG45FviqYhM sortOrder: 0 fieldKey: event label: Event Name @@ -123037,7 +123910,7 @@ items: dynamic: false allowNull: false hidden: false - - id: iNaKSW6iAtthhGLhqEgEDF + - id: uxy6TFkPMLBLUSYKvu1qut sortOrder: 1 fieldKey: event_id label: Event ID @@ -123052,7 +123925,7 @@ items: dynamic: false allowNull: false hidden: false - - id: tptUBnqFkfchD5EpTbT8tT + - id: pUA1LokryxpKw1Q7wLnvjY sortOrder: 2 fieldKey: timestamp label: Event Timestamp @@ -123067,16 +123940,16 @@ items: dynamic: false allowNull: false hidden: false - - id: ogVeX6hboDVXFpNVEPCvRA + - id: dwGP7nbGP3vBuZySDfXC5c sortOrder: 3 fieldKey: phone_numbers label: Phone Number type: STRING description: >- A single phone number or array of phone numbers in E.164 standard - format. Segment will hash this value before sending to TikTok. At least - one phone number value is required if both Email and External ID fields - are empty. + format. At least one phone number value is required if both Email and + External ID fields are empty. If not hashed, Segment will hash this + value. placeholder: '' defaultValue: '@if': @@ -123092,15 +123965,15 @@ items: dynamic: false allowNull: false hidden: false - - id: 2Z9orj6ikucGeBPaf5F5HE + - id: gaRqWFg9d57jXJ75LRGRxj sortOrder: 4 fieldKey: email_addresses label: Email type: STRING description: >- - A single email address or an array of email addresses. Segment will hash - this value before sending to TikTok. At least one email value is - required if both Phone Number and External ID fields are empty. + A single email address or an array of email addresses. At least one + email value is required if both Phone Number and External ID fields are + empty. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -123116,7 +123989,7 @@ items: dynamic: false allowNull: false hidden: false - - id: wVi4fGZTtPwgpBYFmHwCtD + - id: coBchzVkLxC6s2zQTQAAv8 sortOrder: 5 fieldKey: order_id label: Order ID @@ -123131,7 +124004,7 @@ items: dynamic: false allowNull: false hidden: false - - id: nUw2kpCCCUbobZanf4LUKc + - id: qt4miatL4fJhhmuXytD8B3 sortOrder: 6 fieldKey: shop_id label: Shop ID @@ -123146,17 +124019,17 @@ items: dynamic: false allowNull: false hidden: false - - id: 32pVTyY2apqwRxR9rSzX7z + - id: hHn3avD12wTqGBWmxRGpDj sortOrder: 7 fieldKey: external_ids label: External ID type: STRING description: >- - Uniquely identifies the user who triggered the conversion event. Segment - will hash this value before sending to TikTok. TikTok Offline - Conversions Destination supports both string and string[] types for - sending external ID(s). At least one external ID value is required if - both Email and Phone Number fields are empty. + Uniquely identifies the user who triggered the conversion event. TikTok + Offline Conversions Destination supports both string and string[] types + for sending external ID(s). At least one external ID value is required + if both Email and Phone Number fields are empty. If not hashed, Segment + will hash this value. placeholder: '' defaultValue: '@if': @@ -123171,7 +124044,7 @@ items: choices: null dynamic: false allowNull: false - - id: epG7TUBouKaqV56aFJ8ikJ + - id: c8mRkFW6NSVmsVzHtihtQe sortOrder: 8 fieldKey: ttclid label: TikTok Click ID @@ -123195,7 +124068,7 @@ items: choices: null dynamic: false allowNull: false - - id: t6Zp8Qz8PzL8cN9bwwLcaP + - id: 7XHCGF9UiEGe82jAff3rpk sortOrder: 9 fieldKey: ttp label: TikTok Cookie ID @@ -123223,7 +124096,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2XmsxeQ5fQtL3rJAvHv4LV + - id: duQk3GQzz1tFK8bXYGFmrb sortOrder: 10 fieldKey: lead_id label: TikTok Lead ID @@ -123240,7 +124113,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6T4Y35HGweKUfHAhbypNkF + - id: 6a4DkQBeapMnkx3D7BzuUz sortOrder: 11 fieldKey: locale label: Locale @@ -123256,7 +124129,7 @@ items: choices: null dynamic: false allowNull: false - - id: rsdpcJcMQ8JUpvaEfx1vVd + - id: acNNmoJMyoB285mRb8XQW1 sortOrder: 12 fieldKey: url label: Page URL @@ -123270,7 +124143,7 @@ items: choices: null dynamic: false allowNull: false - - id: v3BYAGJYm7rkeRz3DjA4Jh + - id: oXgqT5shyLBWB7eh5uNtn3 sortOrder: 13 fieldKey: referrer label: Page Referrer @@ -123284,7 +124157,7 @@ items: choices: null dynamic: false allowNull: false - - id: fPouw3Q9yotcp4oTtjY1PC + - id: s3DHLDh4h4kgurRo4JsWQV sortOrder: 14 fieldKey: ip label: IP Address @@ -123298,7 +124171,7 @@ items: choices: null dynamic: false allowNull: false - - id: ezFBoy5JRhruHGKwNfppPP + - id: bfH6yMfgU8f1KAm1jiU1TH sortOrder: 15 fieldKey: user_agent label: User Agent @@ -123312,7 +124185,7 @@ items: choices: null dynamic: false allowNull: false - - id: szQ9Qo9F1VJG5jZpkwiroW + - id: ceFAfKGjPEvU8PcnxvDqPo sortOrder: 16 fieldKey: contents label: Contents @@ -123325,7 +124198,7 @@ items: dynamic: false allowNull: false hidden: false - - id: 9NMQ91KSw7xg6eQsj4Vkos + - id: 3GLCfgf8ixAKX2ByYTBgo9 sortOrder: 17 fieldKey: content_type label: Content Type @@ -123346,7 +124219,7 @@ items: value: product_group dynamic: false allowNull: false - - id: fAmPEBmf66wUmfLp9bXEkU + - id: mqK5VGBHfmpAwN87FuHyFC sortOrder: 18 fieldKey: currency label: Currency @@ -123361,7 +124234,7 @@ items: dynamic: false allowNull: false hidden: false - - id: mJukjmDBcHNEjDG1LbXAjL + - id: x8L5WbqMzC2B9y3VzP3rHn sortOrder: 19 fieldKey: value label: Value @@ -123382,7 +124255,7 @@ items: dynamic: false allowNull: false hidden: false - - id: pM7aDN882gtQGum3Wd3q7G + - id: ptkT6aFm2WAiz1ZUcjkQ1a sortOrder: 20 fieldKey: description label: Description @@ -123394,7 +124267,7 @@ items: choices: null dynamic: false allowNull: false - - id: fn3DUoSwAocAevjDj4ZRVD + - id: 7Ubp4geY2tYhA8hDhutvU9 sortOrder: 21 fieldKey: query label: Query @@ -123408,7 +124281,7 @@ items: choices: null dynamic: false allowNull: false - - id: ur4nvqoF46BpbDDrasMpiK + - id: qyQWYj8iSL2U8TFPwrtBjc sortOrder: 22 fieldKey: limited_data_use label: Limited Data Use @@ -123428,7 +124301,7 @@ items: choices: null dynamic: false allowNull: false - - id: rCc3Vwpc4AvQyABHKdPL5D + - id: vBbinYZjhi4MLnPursSaP4 sortOrder: 23 fieldKey: test_event_code label: Test Event Code @@ -123454,7 +124327,7 @@ items: hidden: false defaultTrigger: null fields: - - id: gJ18DdBmuqTAuRANUzqTM9 + - id: aWKa1qQiVGezdsG7jQcUfj sortOrder: 0 fieldKey: event label: Event Name @@ -123470,7 +124343,7 @@ items: choices: null dynamic: false allowNull: false - - id: e3YzQowU2AYM2Ck7zgkHAV + - id: nNPnqey8iLQ85DYHk7RiDX sortOrder: 1 fieldKey: event_id label: Event ID @@ -123484,7 +124357,7 @@ items: choices: null dynamic: false allowNull: false - - id: wB4viumZZwFA9HhVVoLVLR + - id: p8L1QnJypbJioNvq5QyXYk sortOrder: 2 fieldKey: timestamp label: Event Timestamp @@ -123498,16 +124371,16 @@ items: choices: null dynamic: false allowNull: false - - id: fz7MS3REhy6iFJrDfXm9y5 + - id: aHp3LoLcmwprgqVjVs5kHG sortOrder: 3 fieldKey: phone_numbers label: Phone Number type: STRING description: >- A single phone number or array of phone numbers in E.164 standard - format. Segment will hash this value before sending to TikTok. At least - one phone number value is required if both Email and External ID fields - are empty. + format. At least one phone number value is required if both Email and + External ID fields are empty. If not hashed, Segment will hash this + value. placeholder: '' defaultValue: '@if': @@ -123522,15 +124395,15 @@ items: choices: null dynamic: false allowNull: false - - id: oxhoRAu5sHdEuytfKdj2dT + - id: n8bNc37PaLVy1NVTYiNhtt sortOrder: 4 fieldKey: email_addresses label: Email type: STRING description: >- - A single email address or an array of email addresses. Segment will hash - this value before sending to TikTok. At least one email value is - required if both Phone Number and External ID fields are empty. + A single email address or an array of email addresses. At least one + email value is required if both Phone Number and External ID fields are + empty. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -123545,7 +124418,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6CEZfX55bd5KzbXmxS5GcC + - id: tESizE4ZuBAJCHBBX7i6Kc sortOrder: 5 fieldKey: order_id label: Order ID @@ -123559,7 +124432,7 @@ items: choices: null dynamic: false allowNull: false - - id: qNH5iUZqKwzFE57k4XqXng + - id: xr3Tfy1d6WGwohXwA5iaBc sortOrder: 6 fieldKey: shop_id label: Shop ID @@ -123573,17 +124446,17 @@ items: choices: null dynamic: false allowNull: false - - id: pFsPJGQSCJNcCsocUNNyqv + - id: didoCJDTQLUKo7kqqCB9pZ sortOrder: 7 fieldKey: external_ids label: External ID type: STRING description: >- - Uniquely identifies the user who triggered the conversion event. Segment - will hash this value before sending to TikTok. TikTok Offline - Conversions Destination supports both string and string[] types for - sending external ID(s). At least one external ID value is required if - both Email and Phone Number fields are empty. + Uniquely identifies the user who triggered the conversion event. TikTok + Offline Conversions Destination supports both string and string[] types + for sending external ID(s). At least one external ID value is required + if both Email and Phone Number fields are empty. If not hashed, Segment + will hash this value. placeholder: '' defaultValue: '@if': @@ -123598,7 +124471,7 @@ items: choices: null dynamic: false allowNull: false - - id: vYesAvzZiQ9ChyAnKURNTj + - id: wMXDS63k9vn8HDjoLyzA6B sortOrder: 8 fieldKey: ttclid label: TikTok Click ID @@ -123622,7 +124495,7 @@ items: choices: null dynamic: false allowNull: false - - id: 6QKzHuVVBMGtbAGFaYWkss + - id: ukL3ETd9HnrJuMWxSYp137 sortOrder: 9 fieldKey: ttp label: TikTok Cookie ID @@ -123650,7 +124523,7 @@ items: choices: null dynamic: false allowNull: false - - id: nyTTJwYGN3AKfuPR9SYe9Q + - id: hrnABEdkDowjGwwzYyTeP8 sortOrder: 10 fieldKey: lead_id label: TikTok Lead ID @@ -123667,7 +124540,7 @@ items: choices: null dynamic: false allowNull: false - - id: f7nnAueFxchH6aa922rwCC + - id: rCenHSMyTucNvUru9jSB51 sortOrder: 11 fieldKey: locale label: Locale @@ -123683,7 +124556,7 @@ items: choices: null dynamic: false allowNull: false - - id: xjunBUyQUuLW9WsHTF6uKQ + - id: 5ft78hZBYZrUynCeu8KJwX sortOrder: 12 fieldKey: url label: Page URL @@ -123697,7 +124570,7 @@ items: choices: null dynamic: false allowNull: false - - id: bWhd1EDMT5MqnPxwvsDYDQ + - id: jXsGaUFvWb8fpvABWZnsGS sortOrder: 13 fieldKey: referrer label: Page Referrer @@ -123711,7 +124584,7 @@ items: choices: null dynamic: false allowNull: false - - id: h3PX7dX1zh9zXrk8aXcZE4 + - id: aAqtAKGUwSbbJ4x4ywL85 sortOrder: 14 fieldKey: ip label: IP Address @@ -123725,7 +124598,7 @@ items: choices: null dynamic: false allowNull: false - - id: dvFJM76GxPqYKZZjFgpb4d + - id: dUFxknokjL9tuuVzg8fYVo sortOrder: 15 fieldKey: user_agent label: User Agent @@ -123739,7 +124612,7 @@ items: choices: null dynamic: false allowNull: false - - id: dW7Ls16yyDcVo3PLoeK8MZ + - id: jtHAqwzA2h5eseguhZu2C2 sortOrder: 16 fieldKey: contents label: Contents @@ -123751,7 +124624,7 @@ items: choices: null dynamic: false allowNull: false - - id: nYh3pwVwKLJFv1x7g7ueyV + - id: pnErtwBXMKzjHebjqUPpRE sortOrder: 17 fieldKey: content_type label: Content Type @@ -123772,7 +124645,7 @@ items: value: product_group dynamic: false allowNull: false - - id: ws9rj45sHwqj5STNNGqUFB + - id: 7GVQN54jUTK4N9dodTAFMj sortOrder: 18 fieldKey: currency label: Currency @@ -123786,7 +124659,7 @@ items: choices: null dynamic: false allowNull: false - - id: ucK8kvynKyu14nKPMAoFUg + - id: wgmhT1JakxwbkjZfxqdwfR sortOrder: 19 fieldKey: value label: Value @@ -123806,7 +124679,7 @@ items: choices: null dynamic: false allowNull: false - - id: s68gc38yyU4TuRQQt3JmiG + - id: wqEM1kExPCSavXEDot6VX1 sortOrder: 20 fieldKey: description label: Description @@ -123818,7 +124691,7 @@ items: choices: null dynamic: false allowNull: false - - id: cPqQheXbSCNBns6CSe38eD + - id: fii44uxLP5hCJgGSkAPdt6 sortOrder: 21 fieldKey: query label: Query @@ -123832,7 +124705,7 @@ items: choices: null dynamic: false allowNull: false - - id: 9J2u9RunaxvJKfVTPuokf9 + - id: sGCmGhLsHQvANxp4wVUoLR sortOrder: 22 fieldKey: limited_data_use label: Limited Data Use @@ -123852,7 +124725,7 @@ items: choices: null dynamic: false allowNull: false - - id: cXA31HgyFRDBTnFxen7QUs + - id: xAEDctt39F2WxTrUnDopVE sortOrder: 23 fieldKey: test_event_code label: Test Event Code @@ -123870,7 +124743,7 @@ items: allowNull: false presets: - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Download + name: Complete Registration fields: event_id: '@path': $.messageId @@ -123947,8 +124820,8 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: Download - trigger: event = "Download Link Clicked" + event: CompleteRegistration + trigger: event = "Signed Up" - actionId: ahuzGWXfbLEWcMhc73Cjtx name: Page View fields: @@ -124045,7 +124918,7 @@ items: event: PageView trigger: type="page" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Search + name: Add Payment Info fields: event_id: '@path': $.messageId @@ -124124,7 +124997,7 @@ items: '@path': $.properties.limited_data_use contents: '@arrayPath': - - $.properties + - $.properties.products - price: '@path': $.price quantity: @@ -124137,10 +125010,10 @@ items: '@path': $.name brand: '@path': $.brand - event: Search - trigger: event = "Products Searched" + event: AddPaymentInfo + trigger: event = "Payment Info Entered" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Complete Registration + name: Download fields: event_id: '@path': $.messageId @@ -124217,10 +125090,10 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: CompleteRegistration - trigger: event = "Signed Up" + event: Download + trigger: event = "Download Link Clicked" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: View Content + name: Add to Cart fields: event_id: '@path': $.messageId @@ -124312,10 +125185,10 @@ items: '@path': $.name brand: '@path': $.brand - event: ViewContent - trigger: event = "Product Viewed" + event: AddToCart + trigger: event = "Product Added" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Place an Order + name: View Content fields: event_id: '@path': $.messageId @@ -124394,7 +125267,7 @@ items: '@path': $.properties.limited_data_use contents: '@arrayPath': - - $.properties.products + - $.properties - price: '@path': $.price quantity: @@ -124407,10 +125280,10 @@ items: '@path': $.name brand: '@path': $.brand - event: PlaceAnOrder - trigger: event = "Order Placed" + event: ViewContent + trigger: event = "Product Viewed" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Initiate Checkout + name: Complete Payment fields: event_id: '@path': $.messageId @@ -124502,8 +125375,8 @@ items: '@path': $.name brand: '@path': $.brand - event: InitiateCheckout - trigger: event = "Checkout Started" + event: CompletePayment + trigger: event = "Order Completed" - actionId: ahuzGWXfbLEWcMhc73Cjtx name: Click Button fields: @@ -124600,7 +125473,7 @@ items: event: ClickButton trigger: event = "Product Clicked" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Contact + name: Submit Form fields: event_id: '@path': $.messageId @@ -124677,10 +125550,10 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: Contact - trigger: event = "Callback Started" + event: SubmitForm + trigger: event = "Form Submitted" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Complete Payment + name: Add to Wishlist fields: event_id: '@path': $.messageId @@ -124759,7 +125632,7 @@ items: '@path': $.properties.limited_data_use contents: '@arrayPath': - - $.properties.products + - $.properties - price: '@path': $.price quantity: @@ -124772,10 +125645,10 @@ items: '@path': $.name brand: '@path': $.brand - event: CompletePayment - trigger: event = "Order Completed" + event: AddToWishlist + trigger: event = "Product Added to Wishlist" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Submit Form + name: Subscribe fields: event_id: '@path': $.messageId @@ -124852,10 +125725,10 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: SubmitForm - trigger: event = "Form Submitted" + event: Subscribe + trigger: event = "Subscription Created" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Add to Cart + name: Place an Order fields: event_id: '@path': $.messageId @@ -124934,7 +125807,7 @@ items: '@path': $.properties.limited_data_use contents: '@arrayPath': - - $.properties + - $.properties.products - price: '@path': $.price quantity: @@ -124947,10 +125820,10 @@ items: '@path': $.name brand: '@path': $.brand - event: AddToCart - trigger: event = "Product Added" + event: PlaceAnOrder + trigger: event = "Order Placed" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Add Payment Info + name: Contact fields: event_id: '@path': $.messageId @@ -125027,25 +125900,10 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - contents: - '@arrayPath': - - $.properties.products - - price: - '@path': $.price - quantity: - '@path': $.quantity - content_category: - '@path': $.category - content_id: - '@path': $.product_id - content_name: - '@path': $.name - brand: - '@path': $.brand - event: AddPaymentInfo - trigger: event = "Payment Info Entered" + event: Contact + trigger: event = "Callback Started" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Subscribe + name: Search fields: event_id: '@path': $.messageId @@ -125122,10 +125980,25 @@ items: '@path': $.properties.query limited_data_use: '@path': $.properties.limited_data_use - event: Subscribe - trigger: event = "Subscription Created" + contents: + '@arrayPath': + - $.properties + - price: + '@path': $.price + quantity: + '@path': $.quantity + content_category: + '@path': $.category + content_id: + '@path': $.product_id + content_name: + '@path': $.name + brand: + '@path': $.brand + event: Search + trigger: event = "Products Searched" - actionId: ahuzGWXfbLEWcMhc73Cjtx - name: Add to Wishlist + name: Initiate Checkout fields: event_id: '@path': $.messageId @@ -125204,7 +126077,7 @@ items: '@path': $.properties.limited_data_use contents: '@arrayPath': - - $.properties + - $.properties.products - price: '@path': $.price quantity: @@ -125217,8 +126090,8 @@ items: '@path': $.name brand: '@path': $.brand - event: AddToWishlist - trigger: event = "Product Added to Wishlist" + event: InitiateCheckout + trigger: event = "Checkout Started" partnerOwned: true - id: 64c1690a9f08c84a420aba78 display_name: TikTok Pixel @@ -136125,7 +136998,7 @@ items: hidden: false defaultTrigger: type = "identify" or type = "track" fields: - - id: r6v1uXXna8YtX1bnAK9D3s + - id: 3ag9naVrqYJPkSyxcBzf6W sortOrder: 2 fieldKey: event_attributes label: Event traits or properties. Do not modify this setting @@ -136145,12 +137018,12 @@ items: choices: null dynamic: false allowNull: false - - id: dvj7KJjyJn2rMGNAqFqvcK + - id: nLUDjX11nZfKoxoFNVVkSg sortOrder: 4 fieldKey: phone label: User Phone type: STRING - description: Phone number of a user + description: Phone number of a user. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -136166,12 +137039,12 @@ items: dynamic: false allowNull: false hidden: false - - id: v7rVk86FcoX2bw4xv7Akiy + - id: gpXeSiNPQxSnUe5cpM3Mn3 sortOrder: 5 fieldKey: email label: User Email type: STRING - description: Email address of a user + description: Email address of a user. If not hashed, Segment will hash this value. placeholder: '' defaultValue: '@if': @@ -136187,7 +137060,7 @@ items: dynamic: false allowNull: false hidden: false - - id: jv38sxTP1g3gZdDKZrZT6t + - id: je6smNPqzjivPgYywun49Z sortOrder: 6 fieldKey: advertising_id label: User Mobile Advertising ID @@ -136202,7 +137075,7 @@ items: dynamic: false allowNull: false hidden: false - - id: atxvg5JrdVBo4FKMoFajcd + - id: pxzXMivCqJeGQptqcEzUKU sortOrder: 7 fieldKey: device_type label: User Mobile Device Type @@ -136217,7 +137090,7 @@ items: dynamic: false allowNull: false hidden: false - - id: nC7zjH4edvvTbcaEts1jGb + - id: vSnf2afQmQHyuaSAoPEvEF sortOrder: 8 fieldKey: gdpr_settings label: GDPR Settings diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index ef26d1c6dd..98f8b93312 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-03-06 +# destination data last updated 2025-04-24 items: - id: 54521fd925e721e32a72eee1 display_name: Pardot diff --git a/src/_data/catalog/regional-supported.yml b/src/_data/catalog/regional-supported.yml index d7185db944..fdfd71f47f 100644 --- a/src/_data/catalog/regional-supported.yml +++ b/src/_data/catalog/regional-supported.yml @@ -285,6 +285,15 @@ sources: - us endpoints: - us + - id: UYaQxaZO3a + display_name: Editable Profile Source Metadata + hidden: false + slug: editable-profile-source-metadata + url: connections/sources/catalog/cloud-apps/editable-profile-source-metadata + regions: + - us + endpoints: + - us - id: VETiUX9u66 display_name: Elastic Path hidden: false diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 2c222fd03b..19058f5719 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-03-06 +# source categories last updated 2025-04-24 items: - display_name: A/B Testing slug: a-b-testing @@ -23,6 +23,8 @@ items: slug: feature-flagging - display_name: Helpdesk slug: helpdesk + - display_name: INTERNAL + slug: internal - display_name: Learning Management System slug: learning-management-system - display_name: Livechat diff --git a/src/_data/catalog/sources.yml b/src/_data/catalog/sources.yml index a095f04ade..cbb8203ced 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-03-06 +# sources last updated 2025-04-24 items: - id: 8HWbgPTt3k display_name: .NET @@ -14,7 +14,9 @@ items: - us - eu source_type: server - description: '' + description: >- + The hassle-free way to add Segment analytics to your .Net app (Unity, + Xamarin, Net, CSharp, C#) logo: url: https://cdn.filepicker.io/api/file/niuGBxqqSQCLvBDIFxpY categories: @@ -207,7 +209,7 @@ items: source_type: mobile description: >- The hassle-free way to add Segment analytics to your swift app (iOS, - macOS, tvOS). + macOS, tvOS, ipadOS). logo: url: https://cdn.filepicker.io/api/file/qWgSP5cpS7eeW2voq13u categories: @@ -644,6 +646,24 @@ items: - Attribution status: PUBLIC_BETA partnerOwned: false + - id: UYaQxaZO3a + display_name: Editable Profile Source Metadata + isCloudEventSource: false + slug: editable-profile-source-metadata + url: connections/sources/catalog/cloud-apps/editable-profile-source-metadata + hidden: false + regions: + - us + endpoints: + - us + source_type: cloud-app + description: this is internal source to track the editable profile feature internally. + logo: + url: https://cdn.filepicker.io/api/file/618XEphQoWXwBKQGOWNw + categories: + - INTERNAL + status: PUBLIC + partnerOwned: false - id: VETiUX9u66 display_name: Elastic Path isCloudEventSource: true @@ -2439,7 +2459,9 @@ items: endpoints: - us source_type: mobile - description: The hassle-free way to add Segment analytics to your Unity app. + description: >- + The hassle-free way to add Segment analytics to your Unity app (Unity, + Xamarin, Net, CSharp, C#) logo: url: https://cdn.filepicker.io/api/file/TrFnszJ7Rj6LNZTt4kP5 categories: @@ -2588,7 +2610,9 @@ items: - us - eu source_type: mobile - description: '' + description: >- + The hassle-free way to add Segment analytics to your Xamarin app (Unity, + Xamarin, Net, CSharp, C#) logo: url: https://cdn.filepicker.io/api/file/dx6hyOr7S7qEZkTtzNMj categories: diff --git a/src/_data/sidenav/main.yml b/src/_data/sidenav/main.yml index 73cfdfc36f..0e442607d6 100644 --- a/src/_data/sidenav/main.yml +++ b/src/_data/sidenav/main.yml @@ -414,8 +414,6 @@ sections: title: Introduction - path: '/engage/quickstart' title: Foundations Onboarding - - path: '/engage/onboarding' - title: Premier Onboarding - path: '/engage/use-cases' title: Use Cases - section_title: User Subscriptions @@ -599,6 +597,17 @@ sections: title: HIPAA Eligible Segment - path: /privacy/faq title: Privacy FAQs +- section_title: Monitor + section: + - path: /monitor + title: Monitor Overview + - section_title: Alerts + slug: /monitor/alerts + section: + - path: /monitor/alerts + title: Alerts Overview + - path: /monitor/alerts/default-alerts + title: Default Alerts - section_title: Protocols section: - path: /protocols diff --git a/src/_includes/content/destination-maintenance.md b/src/_includes/content/destination-maintenance.md index c60d47ccfe..7915b56e86 100644 --- a/src/_includes/content/destination-maintenance.md +++ b/src/_includes/content/destination-maintenance.md @@ -11,5 +11,5 @@ {% endif %} <div class="premonition warning"><div class="fa fa-check-square"></div><div class="content"><p class="header">{{page.title | replace: 'Destination', ''}} (Classic) is in Maintenance mode</p> -<p markdown=1>The {{name}} (Classic) Destination has entered maintenance mode. Future updates are limited to security updates and bug fixes. {{blurb}}</p> +<p markdown=1>The {{name}} Destination has entered maintenance mode. Future updates are limited to security updates and bug fixes. {{blurb}}</p> </div></div> \ No newline at end of file diff --git a/src/_includes/icons/monitor.svg b/src/_includes/icons/monitor.svg new file mode 100644 index 0000000000..9df585d496 --- /dev/null +++ b/src/_includes/icons/monitor.svg @@ -0,0 +1,3 @@ +<svg viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"> +<path fill-rule="evenodd" clip-rule="evenodd" d="M10.0046 4C12.4097 4.01096 14.7103 4.95468 16.3934 6.62074C18.0862 8.27781 19.0249 10.5228 19.0002 12.8551V14.3636C18.9991 15.2669 18.2442 15.9989 17.3127 16H2.68774C1.75625 15.9989 1.00142 15.2669 1.00024 14.3636V12.853C0.963891 7.99977 4.99098 4.03653 10.0046 4ZM10.0002 13.2748L9.99192 13.2736C9.0639 13.2789 8.31409 14.0092 8.31274 14.9091H11.6877C11.6864 14.0092 10.9367 13.2789 10.0087 13.2735L10.0002 13.2748ZM17.8752 14.3636C17.875 14.6648 17.6233 14.9088 17.3127 14.9091H12.8127C12.8105 13.683 11.9656 12.6087 10.7467 12.2824L12.2212 7.9929C12.3192 7.70727 12.1601 7.39866 11.8656 7.3034C11.5711 7.20814 11.2527 7.36226 11.1542 7.64773L9.58422 12.2151C8.20856 12.4153 7.19018 13.5602 7.18774 14.9091H2.68774C2.3772 14.9088 2.12553 14.6648 2.12524 14.3636V12.8474C2.0809 10.0904 3.57254 7.52431 6.02789 6.1336C8.48323 4.74289 11.521 4.74354 13.9757 6.13532C16.4304 7.52709 17.9209 10.0939 17.8752 12.8509V14.3636ZM4.64415 11.6375C4.64821 11.6369 4.65227 11.6364 4.65649 11.6364C5.08616 11.6054 5.46175 11.9149 5.49941 12.3311C5.53708 12.7473 5.22283 13.1156 4.79417 13.1577C4.36551 13.1997 3.98158 12.8999 3.93255 12.4848C3.88351 12.0697 4.18757 11.6935 4.61494 11.6404L4.62295 11.6396H4.62295C4.62631 11.6392 4.62966 11.6388 4.63309 11.6387C4.63686 11.6386 4.6405 11.638 4.64414 11.6375L4.64415 11.6375ZM6.62524 9.7294C6.62524 10.1813 6.24748 10.5476 5.78149 10.5476C5.3155 10.5476 4.93774 10.1813 4.93774 9.7294C4.93774 9.27753 5.3155 8.91122 5.78149 8.91122C6.24748 8.91122 6.62524 9.27753 6.62524 9.7294ZM15.344 13.2727C15.81 13.2727 16.1877 12.9064 16.1877 12.4545C16.1877 12.0027 15.81 11.6364 15.344 11.6364C14.878 11.6364 14.5002 12.0027 14.5002 12.4545C14.5002 12.9064 14.878 13.2727 15.344 13.2727ZM15.0627 9.7294C15.0615 9.30535 14.7256 8.95284 14.2898 8.91815C14.2702 8.91513 14.2504 8.91319 14.2305 8.91234C14.2289 8.91232 14.2273 8.91212 14.2257 8.91189L14.2249 8.91178C14.223 8.9115 14.221 8.91122 14.219 8.91122C13.753 8.91122 13.3752 9.27753 13.3752 9.7294C13.3752 10.1813 13.753 10.5476 14.219 10.5476C14.685 10.5476 15.0627 10.1813 15.0627 9.7294ZM7.96409 6.736C8.00883 6.73026 8.05416 6.73026 8.0989 6.736C8.55032 6.77108 8.89267 7.14548 8.87457 7.58427C8.85647 8.02307 8.48436 8.36975 8.03149 8.36975C7.57862 8.36975 7.20652 8.02307 7.18842 7.58427C7.17032 7.14548 7.51267 6.77108 7.96409 6.736Z" fill="#606B85"/> +</svg> diff --git a/src/connections/alerting.md b/src/connections/alerting.md index c838645131..690fe781ec 100644 --- a/src/connections/alerting.md +++ b/src/connections/alerting.md @@ -34,7 +34,6 @@ To delete a source volume alert, select the icon in the Actions column for the a > info "Deleting alerts created by other users requires Workspace Owner permissions" > All users can delete source volume alerts that they created, but only those with Workspace Owner permissions can delete alerts created by other users. - ## Successful delivery rate alerts You can create an alert that notifies you when the volume of events successfully received by your destination in the last 24 hours falls below a percentage you set. For example, if you set a percentage of 99%, Segment notifies you if your destination had a successful delivery rate of 98% or below. @@ -57,5 +56,4 @@ To delete a successful delivery rate alert, select the icon in the Actions colum > info "Deleting alerts created by other users requires Workspace Owner permissions" > All users can delete successful delivery alerts that they created, but only those with Workspace Owner permissions can delete alerts created by other users. - -Segment generates delivery alerts for failed deliveries and successful deliveries, which are the last two stages of the delivery pipeline. As a result, alerts are based on Segment's attempts to send qualified events to your destination, excluding those filtered out by business rules (like protocols, destination filters, or mappings). +Segment generates delivery alerts for failed deliveries and successful deliveries, which are the last two stages of the delivery pipeline. As a result, alerts are based on Segment's attempts to send qualified events to your destination, excluding those filtered out by business rules (like protocols, destination filters, or mappings). \ No newline at end of file diff --git a/src/connections/auto-instrumentation/configuration.md b/src/connections/auto-instrumentation/configuration.md index cb1e143e5c..d0a9c7b6db 100644 --- a/src/connections/auto-instrumentation/configuration.md +++ b/src/connections/auto-instrumentation/configuration.md @@ -26,6 +26,9 @@ After you set up the Signals SDK to capture the signals you want to target, you 1. In your Segment workspace, go to to **Connections > Auto-Instrumentation** and click on a source. 2. Click **Create Rules**. +> info "Where's the Event Builder tab?" +> The Event Builder tab only appears after you've installed the Auto-Instrumentation snippet in your site or app. If you don’t see the tab, double check your implementation or reach out to your Segment CSM. + ### Using the Rules Editor The Rules Editor is where you define rules that transform raw signal data into analytics events. In the editor, you write functions that convert signals into events and then call them in the `processSignal()` function. diff --git a/src/connections/auto-instrumentation/event-builder.md b/src/connections/auto-instrumentation/event-builder.md new file mode 100644 index 0000000000..c52f14a8de --- /dev/null +++ b/src/connections/auto-instrumentation/event-builder.md @@ -0,0 +1,89 @@ +--- +title: Auto-Instrumentation Event Builder +hidden: true +--- + +The Event Builder provides a no-code way to define analytics events based on signals collected by Auto-Instrumentation. + +You can use it to create Track, Identify, Page, and other event types directly from your Segment workspace. + +> info "Auto-Instrumentation Private Beta" +> Auto-Instrumentation is currently in Private Beta and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. Segment is actively iterating on and improving the Auto-Instrumentation user experience. + +## Access the Event Builder + +The Event Builder appears as a tab within each source, next to the Debugger. If you don't see the Event Builder tab, first confirm that you've installed the required Auto-Instrumentation SDK. + +If you've installed the SDK but still don't see the Event Builder tab, reach out to your Segment account manager to verify your workspace is included in the Auto-Instrumentation Private Beta. + + + +> info "Event Builder during Private Beta" +> During Private Beta, both the Event Builder and the legacy Auto-Instrumentation tab appear in the navigation. Segment will remove the legacy tab once all customers have migrated to the Event Builder experience. + +## Generate activity + +To populate the Event Builder with signals, you first need to open your website or app with a special query parameter that enables signal detection. + +1. Visit your site or app in a browser, and add `?segment_signals_debug=true` to the end of the URL. + For example: `https://www.your-website.com?segment_signals_debug=true`. +2. Interact with your app as a user would: click buttons, navigate between pages or screens, submit forms, and so on. +3. Return to the Event Builder tab in Segment to view the signals being collected in real time. + + + + +> info "Enable signal detection" +> Segment only detects signals when you access your site using the `?segment_signals_debug=true` query parameter. If you visit your site without it, signals won't show up in the Event Builder. + +Segment collects and displays activity as signals. These signals are grouped into types, like: + +- Interaction: clicks, taps, and UI interactions. +- Navigation: screen changes and page transitions +- Network: requests and responses +- `LocalData`, Instrumentation, and `UserDefined`: additional signal types from the SDK. + +### How signals relate to events + +Segment separates signal collection from event creation. Signals represent raw user interactions, like a button click or screen view. Events, on the other hand, are analytics calls you define based on those signals. This two-step process lets you observe user behavior first, and then decide how and when to turn that behavior into structured analytics events, without needing to modify your code. + +Signal detection is active for 24 hours after you generate activity. Detected signals are available in the Event Builder for 72 hours. + +## Create an event + +You can create events by selecting individual signals or combining multiple signals in sequence. + +Follow these steps to create an event: + +1. Find the signal you want to use and click **Configure event**. +2. Add one or more conditions. The order matters; Segment evaluates them in the order you add them. + - For example, to track a successful login, first select a **button click** signal, then the **network response** signal. +3. Select properties from the signal(s) to include in your event. +4. Map those properties to your targeted Segment event fields. +5. Name your event. This name will appear in the Debugger and downstream tools. +6. Click **Publish event rules** to activate the event in your workspace. + - You must publish each rule before Segment starts collecting data for the event. + +For example, suppose a user taps an "Add to Cart" button. You can define an `Add to Cart` event by combining the button click signal with a network response signal that includes product details. You can then map properties like product name, ID, and price directly from the network response to your event. + +Once published, your event rules appear in the **Event Rules** tab of the Event Builder. From this tab, you can view all of your published rules and delete rules you no longer need. + + + +## Choose an event type + +When you define an event in the Event Builder, you assign it a type that determines how Segment and your connected destinations process it. These event types (Track, Identify, Page, and Screen) follow the same structure and behavior defined in the [Segment Spec](/docs/connections/spec/). + +| Event type | Description | +| ---------- | ----------------------------------------------------------------------------------------------------------- | +| Track | Custom event tracking. Use this for user actions like `Product Viewed`, `Add to Cart`, or `Signup Started`. | +| Identify | User identification. Use this to associate traits (like `email`, `userId`, or `plan`) with a known user. | +| Page | Web page view tracking. Use this to record visits to pages on your website. | +| Screen | Mobile screen view tracking. Use this to record views of screens in your mobile app. | + +For example, to track a login flow, you might define an Identify event that maps traits like `userId` and `email` from a network response signal. To track cart activity, you could define a Track event like `Checkout Started` with properties like cart value, item count, and currency. + +Segment uses the event name and any mapped properties to format each event according to the Segment Spec. Events you create in the Event Builder behave the same way as events sent through Segment SDKs or APIs. + +> info "Event type behavior in destinations" +> While Segment handles these event types consistently, downstream tools may treat them differently. For example, Identify events often update user profiles, while Page or Screen events may be handled as pageviews instead of custom events. \ No newline at end of file diff --git a/src/connections/auto-instrumentation/images/detecting_activity.png b/src/connections/auto-instrumentation/images/detecting_activity.png new file mode 100644 index 0000000000..daa6774561 Binary files /dev/null and b/src/connections/auto-instrumentation/images/detecting_activity.png differ diff --git a/src/connections/auto-instrumentation/images/event_builder_tab.png b/src/connections/auto-instrumentation/images/event_builder_tab.png new file mode 100644 index 0000000000..8de6f6e78f Binary files /dev/null and b/src/connections/auto-instrumentation/images/event_builder_tab.png differ diff --git a/src/connections/auto-instrumentation/images/event_rules.png b/src/connections/auto-instrumentation/images/event_rules.png new file mode 100644 index 0000000000..98000b46f2 Binary files /dev/null and b/src/connections/auto-instrumentation/images/event_rules.png differ diff --git a/src/connections/auto-instrumentation/index.md b/src/connections/auto-instrumentation/index.md index 5045ffa336..28e0b014aa 100644 --- a/src/connections/auto-instrumentation/index.md +++ b/src/connections/auto-instrumentation/index.md @@ -24,35 +24,36 @@ redirect_from: - '/docs/connections/auto-instrumentation/setup/' --- -Auto-Instrumentation simplifies tracking in your websites and apps by eliminating the need for a traditional Segment instrumentation. +Auto-Instrumentation simplifies tracking in your websites and apps by removing the need for a traditional Segment instrumentation. -> info "Auto-Instrumentation Pilot" -> Auto-Instrumentation is currently in pilot and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. Segment is actively iterating on and improving the Auto-Instrumentation user experience. +> info "Auto-Instrumentation Private Beta" +> Auto-Instrumentation is currently in private beta and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. Segment is actively iterating on and improving the Auto-Instrumentation user experience. > success "Enable Auto-Instrumentation in your workspace" > To enable Auto-Instrumentation in your Segment workspace, reach out to your dedicated account manager. ## Background -Gathering actionable and timely data is crucial to the success of your business. However, collecting this data in real time has historically proven to be challenging. - -As your business needs change, keeping instrumentation up-to-date across all of your digital properties can be time-consuming, often taking weeks or months. This delay can lead to lost insights, frustration for your marketers and developers, and open-ended support of your Segment instrumentation. +Collecting high-quality analytics data is essential, but traditional tracking setups often fall behind as business needs change. Instrumentation updates can take weeks or months, and these delays reduce visibility and increase the burden on engineering teams. ## Auto-Instrumentation as a solution With just a few lines of code, Auto-Instrumentation handles device tracking for you, helping you focus on collecting the data that's essential to your business and letting your marketers and data analysts gather and update data without relying on engineering teams. -Some Auto-Instrumentation advantages include: +Key Auto-Instrumentation benefits include: + +- **No-code event creation**: Use the Event Builder tab to define events based on user activity; no JavaScript required. +- **Fast iteration**: Update your tracking configuration at any time, without deploying new app versions. +- **Fewer dependencies**: Reduce the need for engineering support while still maintaining reliable event tracking. -- **JavaScript-based instrumentation logic**: Configure and refine your instrumentation logic entirely within JavaScript, simplifying the development process and reducing dependencies on other environments. -- **Rapid iteration**: Update your instrumentation logic without the need to constantly release new versions of your mobile app, enabling faster iterations and improvements. -- **Bypass update delays**: Avoid the typical delays associated with app update cycles and app store approvals. Auto-Instrumentation lets you update your tracking setups or fix errors immediately, ensuring your data collection remains accurate and timely. +> info "Event Builder during Private Beta" +> During the Auto-Instrumentation Private Beta, both the Event Builder and the legacy Auto-Instrumentation tab appear in the Segment UI. Segment will remove the legacy tab once all customers have migrated to the Event Builder experience. ## How it works -Once you integrate the Analytics SDK and Signals SDK into your website or application, Segment begins to passively monitor user activity like button clicks, page navigation, and network data. Segment captures these events as "signals" and sends them to your Auto-Instrumentation source in real time. +After you install the required SDKs and enable Auto-Instrumentation, Segment detects activity like button clicks, navigation, and network calls. Segment captures these events as signals, which appear in the Event Builder. -In Segment, the Auto-Instrumentation source lets you view raw signals. You can then [use this data to create detailed analytics events](/docs/connections/auto-instrumentation/configuration/) based on those signals, enriching your insights into user behavior and application performance. +You can group signals into complete analytics events, assign names, and map custom properties. You can then [use this data to create detailed analytics events](/docs/connections/auto-instrumentation/configuration/) based on those signals, enriching your insights into user behavior and application performance. ## Setup Guides diff --git a/src/connections/auto-instrumentation/kotlin-setup.md b/src/connections/auto-instrumentation/kotlin-setup.md index b2c44a6f86..acb8f587e9 100644 --- a/src/connections/auto-instrumentation/kotlin-setup.md +++ b/src/connections/auto-instrumentation/kotlin-setup.md @@ -79,18 +79,15 @@ Next, you'll need to add the Signals SDKs to your Kotlin application. ## Step 3: Verify and deploy events -Next, you'll need to verify signal emission and [create rules](/docs/connections/auto-instrumentation/configuration/#example-rule-implementations) to convert those signals into events: - -1. In your Segment workspace, return to **Connections > Auto-Instrumentation** and click on the new source you created. -2. Verify that signals appear as expected on the dashboard. - -  - -3. Click **Create Rules**. -4. In the Rules Editor, add a rule that converts signal data into an event. -5. Click **Preview**, then click **Save & Deploy**. - -Segment displays `Rule updated successfully` to verify that it saved your rule. +After integrating the SDK and running your app, verify that Segment is collecting signals: + +1. In your Segment workspace, go to **Connections > Sources** and select the source you created for Auto-Instrumentation. +2. In the source overview, look for the **Event Builder** tab. If the tab doesn’t appear: + - Make sure you've installed the SDK correctly. + - Reach out to your Segment CSM to confirm that your workspace has the necessary feature flags enabled. +3. Launch your app [in debug mode](https://github.com/segmentio/analytics-next/tree/master/packages/signals/signals#sending-and-viewing-signals-on-segmentcom-debug-mode){:target="_blank"}, for example, by running the app from Android Studio on a simulator or test device. This enables signal collection so you can see activity in the Event Builder. +4. Use the app as a user would: navigate between screens, tap buttons, trigger network requests. Signals appear in real time as you interact with the app. +5. In the Event Builder, find a signal and click **Configure event** to define a new event. After configuring the event, click **Publish event rules**. ## Configuration Options diff --git a/src/connections/auto-instrumentation/swift-setup.md b/src/connections/auto-instrumentation/swift-setup.md index 7c1695188b..78bbbc2327 100644 --- a/src/connections/auto-instrumentation/swift-setup.md +++ b/src/connections/auto-instrumentation/swift-setup.md @@ -30,7 +30,7 @@ Next, you'll need to add the Signals SDKs to your Swift applicatiion. 1. Use Swift Package Manager to add the Signals SDK from the following repository: ```zsh - https://github.com/segmentio/Signals-swift.git + https://github.com/segment-integrations/analytics-swift-live.git ``` 2. Add the initialization code and configuration options: @@ -77,18 +77,15 @@ typealias SecureField = SignalSecureField ``` ## Step 3: Verify and deploy events -Next, you'll need to verify signal emission and [create rules](/docs/connections/auto-instrumentation/configuration/#example-rule-implementations) to convert those signals into events: +After integrating the SDK and running your app, verify that Segment is collecting signals: -1. In your Segment workspace, return to **Connections > Auto-Instrumentation** and click on the new source you created. -2. Verify that signals appear as expected on the dashboard. - -  - -3. Click **Create Rules**. -4. In the Rules Editor, add a rule that converts signal data into an event. -5. Click **Preview**, then click **Save & Deploy**. - -Segment displays `Rule updated successfully` to verify that it saved your rule. +1. In your Segment workspace, go to **Connections > Sources** and select the source you created for Auto-Instrumentation. +2. In the source overview, look for the **Event Builder** tab. If the tab doesn’t appear: + - Make sure you've installed the SDK correctly. + - Reach out to your Segment CSM to confirm that your workspace has the necessary feature flags enabled. +3. Launch your app [in debug mode](https://github.com/segmentio/analytics-next/tree/master/packages/signals/signals#sending-and-viewing-signals-on-segmentcom-debug-mode){:target="_blank"}. This enables signal collection so you can see activity in the Event Builder. +4. Use the app as a user would: navigate between screens, tap buttons, trigger network requests. Signals appear in real time as you interact with the app. +5. In the Event Builder, find a signal and click **Configure event** to define a new event. After configuring the event, click **Publish event rules**. ## Configuration Options diff --git a/src/connections/auto-instrumentation/web-setup.md b/src/connections/auto-instrumentation/web-setup.md index acb2da05c7..97f759ca56 100644 --- a/src/connections/auto-instrumentation/web-setup.md +++ b/src/connections/auto-instrumentation/web-setup.md @@ -65,18 +65,18 @@ Verify that you replaced `<WRITE_KEY>` with the actual write key you copied in S ## Step 3: Verify and deploy events -Next, you'll need to verify signal emission and [create rules](/docs/connections/auto-instrumentation/configuration/#example-rule-implementations) to convert those signals into events: +After integrating the SDK and running your app, verify that Segment is collecting signals: + +1. In your Segment workspace, return to **Connections > Sources**, then select the source you created for Auto-Instrumentation. +2. In the source overview, look for the **Event Builder** tab. If the tab doesn’t appear: + - Make sure you've installed the SDK correctly. + - Reach out to your Segment CSM to confirm that your workspace has the necessary feature flags enabled. +  +3. Open the **Event Builder** and follow the on-screen instructions to start signal detection. + - To collect signals in the UI, visit your site in a browser using the query string:`?segment_signals_debug=true` +4. Interact with your app to trigger signals: click buttons, navigate pages, submit forms, and so on. Segment collects and displays these as signals in real time. +5. From the signals list, click **Configure event** to define a new event based on one or more signals. After configuring the event, click **Publish event rules**. -1. In your Segment workspace, return to **Connections > Auto-Instrumentation** and click on the new source you created. -2. Verify that signals appear as expected on the dashboard. - -  - -3. Click **Create Rules**. -4. In the Rules Editor, add a rule that converts signal data into an event. -5. Click **Preview**, then click **Save & Deploy**. - -Segment displays `Rule updated successfully` to verify that it saved your rule. ### Debugging #### Enable debug mode diff --git a/src/connections/delivery-overview.md b/src/connections/delivery-overview.md index e36d513d90..cc64ab5474 100644 --- a/src/connections/delivery-overview.md +++ b/src/connections/delivery-overview.md @@ -4,13 +4,6 @@ title: Delivery Overview Delivery Overview is a visual observability tool designed to help Segment users diagnose event delivery issues for any cloud-streaming destination receiving events from cloud-streaming sources. -> info "Delivery Overview for RETL destinations and Engage Audience Syncs currently in development" -> This means that Segment is actively developing Delivery Overview features for RETL destinations and Engage Audience syncs. Some functionality may change before Delivery Overview for these integrations becomes generally available. -> -> Delivery Overview is generally available for streaming connections (cloud-streaming sources and cloud-streaming destinations) and in public beta for storage destinations. Some metrics specific to storage destinations, like selective syncs, failed row counts, and total rows seen, are not yet available. -> All users of Delivery Overview have access to the Event Delivery tab, and can configure delivery alerts for their destinations. - - ## Key features Delivery Overview has three core features: @@ -63,6 +56,21 @@ The following image shows a storage destination with 23 partially successful syn  +#### Destinations connected to Engage Destinations + +> info "Delivery Overview for Engage Destinations is in Public Beta" +> During the Public Beta, you can filter your pipeline view by audience. + +Destinations connected to an Audience have the following steps in the pipeline view: +- **Events from audience**<sup>*</sup>: Events that Segment created for your activation. The number of events for each compute depends on the changes detected in your audience membership. +- **Filtered at source**: Events discarded by Protocols: either by the [schema settings](/docs/protocols/enforce/schema-configuration/) or [Tracking Plans](/docs/protocols/tracking-plan/create/). +- **Filtered at destination**: If any events aren’t eligible to be sent (for example, due to destination filters, insert function logic, and so on), Segment displays them at this step. +- **Events pending retry**: A step that reveals the number of events that are awaiting retry. Unlike the other steps, you cannot click into this step to view the breakdown table. +- **Failed delivery**: Events that Segment _attempted_ to deliver to your destination, but that ultimately _failed_ to be delivered. Failed delivery might indicate an issue with the destination, like invalid credentials, rate limits, or other error statuses received during delivery. +- **Successful delivery**: Events that Segment successfully delivered to your destination. You’ll see these events in your downstream integrations. + +<sup>*</sup>_The "Events from audience" step is currently only available for Linked Audiences._ + ### Breakdown table The breakdown table provides you with greater detail about the selected events. diff --git a/src/connections/destinations/actions.md b/src/connections/destinations/actions.md index e235093fa9..50b5f0e810 100644 --- a/src/connections/destinations/actions.md +++ b/src/connections/destinations/actions.md @@ -210,6 +210,14 @@ The coalesce function takes a primary value and uses it if it is available. If t The replace function allows you to replace a string, integer, or boolean with a new value. You have the option to replace up to two values within a single field. +### Concatenate function + +To combine two values in the event variable field, you can concatenate them using plain text and variables together. For example, to prepend the country code to a phone number, enter `+1{{Phone Number}}`. + +Segment evaluates this field as a string, so placing text next to a variable automatically concatenates them. + + + ### Flatten function The flatten function allows you to flatten a nested object to an object with a depth of 1. Keys are delimited by the configured separator. For example, an object like {a: { b: { c: 1 }, d: 2 } } will be converted to { 'a.b.c': 1, 'a.d': 2 }. @@ -219,7 +227,6 @@ The flatten function allows you to flatten a nested object to an object with a d > info "" > Self-service users can add a maximum of two conditions per Trigger. - Mapping fields are case-sensitive. The following type filters and operators are available to help you build conditions: - **Event type** (`is`/`is not`). This allows you to filter by the [event types in the Segment Spec](/docs/connections/spec). diff --git a/src/connections/destinations/catalog/actions-hubspot-cloud/index.md b/src/connections/destinations/catalog/actions-hubspot-cloud/index.md index 4d8c70ccf8..8f1a219b6d 100644 --- a/src/connections/destinations/catalog/actions-hubspot-cloud/index.md +++ b/src/connections/destinations/catalog/actions-hubspot-cloud/index.md @@ -16,13 +16,18 @@ HubSpot is an all-in-one marketing tool that helps attract new leads and convert When you use the HubSpot Cloud Mode (Actions) destination, Segment sends your data to [HubSpot's REST API](https://developers.hubspot.com/docs/api/overview){:target="_blank"}. -> warning "" -> The **Upsert Company** action is not compatible with the Mapping Tester on the mappings page if Associate Contact is set to **Yes**. As a result, Segment recommends using the Event Tester or other tools to test and troubleshoot creating and updating companies in HubSpot. -> -> Note that for the company to contact association to work, you are required to trigger an Upsert Contact action before triggering an Upsert Company action. Contacts created with batch endpoint can not be associated to a Company from the Upsert Company Action. +Keep in mind that: +* The **Upsert Company** action is not compatible with the Mapping Tester on the mappings page if Associate Contact is set to **Yes**. As a result, Segment recommends using the Event Tester or other tools to test and troubleshoot creating and updating companies in HubSpot. For the company to contact association to work, you are required to trigger an Upsert Contact action before triggering an Upsert Company action. Contacts created with batch endpoint can not be associated to a Company from the Upsert Company Action. +* **Behavioral Events (Legacy)** are only supported with [Hubspot Classic Destination](/docs/connections/destinations/catalog/hubspot/). > warning "" -> **Behavioral Events (Legacy)** are only supported with [Hubspot Classic Destination](/docs/connections/destinations/catalog/hubspot/). +> As of April 29, 2025, HubSpot no longer supports referencing custom object types by their base names. Instead, you must reference all custom objects by using their short-hand custom object type name, `fullyQualifiedName`, or `objectTypeId`. To avoid issues, update the following fields: +> +>- **Object Type** and **ObjectType to associate** in the **Upsert Custom Object Record** action +>- **Object Type** in the **Custom Event V2** action +>- **Object Type** and **To Object Type** in the **Custom Object V2** action +> +> For further details, refer to the [HubSpot documentation](https://developers.hubspot.com/changelog/breaking-change-removed-support-for-referencing-custom-object-types-by-base-name){:target="_blank"}. ## Benefits of HubSpot Cloud Mode (Actions) vs HubSpot Classic diff --git a/src/connections/destinations/catalog/actions-kafka/index.md b/src/connections/destinations/catalog/actions-kafka/index.md index 40b380f2f5..3748bd60c4 100644 --- a/src/connections/destinations/catalog/actions-kafka/index.md +++ b/src/connections/destinations/catalog/actions-kafka/index.md @@ -30,9 +30,6 @@ The way you've configured your Kafka Cluster informs the authentication and encr <li> <b>Plain</b> or <b>SCRAM-SHA-256 / 512</b> authentication: provide values for <b>Username</b> and <b>Password</b> fields. </li> - <li> - <b>AWS</b> authentication: provide values for <b>AWS Access Key ID</b> and <b>AWS Secret Key</b> fields, and optionally for the <b>AWS Authorization Identity</b> field. - </li> <li> <b>Client Certificate</b> authentication: provide values for the <b>SSL Client Key</b> and <b>SSL Client Certificate</b> fields. </li> diff --git a/src/connections/destinations/catalog/actions-klaviyo/index.md b/src/connections/destinations/catalog/actions-klaviyo/index.md index 0521bb9f3f..763ae25b4b 100644 --- a/src/connections/destinations/catalog/actions-klaviyo/index.md +++ b/src/connections/destinations/catalog/actions-klaviyo/index.md @@ -107,10 +107,6 @@ Some customers experience 403 errors when sending audience data to Klaviyo throu To reduce the number of `403` errors that you encounter, enable [IP Allowlisting](/docs/connections/destinations/#ip-allowlisting) for your workspace. For more information the range of IP addresses Klaviyo uses for integration traffic, see Klaviyo's [How to allowlist Klaviyo integration traffic IP addresses](https://help.klaviyo.com/hc/en-us/articles/19143781289115){:target="_blank”} documentation. -#### Can I send Engage Audiences to a pre-created Klaviyo List? - -No. Engage audiences are designed to initiate the creation of new lists in Klaviyo when you use the "Add Profile to List - Engage" mapping. You cannot link Engage lists to existing Klaviyo lists and cannot edit the List ID for Engage audiences. - #### How can I unsuppress a profile when adding it to a list? When adding a user to a list, our action make use of the [Bulk Profile Import](https://developers.klaviyo.com/en/reference/spawn_bulk_profile_import_job){:target="_blank”} endpoint (when batching is enabled), and the [Add Profile To List](https://developers.klaviyo.com/en/reference/create_list_relationships){:target="_blank”} endpoint for non-batched requests. Both of which will not update a users suppression status if they were previously suppressed. diff --git a/src/connections/destinations/catalog/actions-rokt-audiences/index.md b/src/connections/destinations/catalog/actions-rokt-audiences/index.md index 48d452acb7..d43edb36c6 100644 --- a/src/connections/destinations/catalog/actions-rokt-audiences/index.md +++ b/src/connections/destinations/catalog/actions-rokt-audiences/index.md @@ -6,6 +6,7 @@ hide-dossier: false private: false hidden: false id: 643697130067c2f408ff28ca +redirect_from: "/connections/destinations/catalog/rokt-audiences-actions/" --- {% include content/plan-grid.md name="actions" %} diff --git a/src/connections/destinations/catalog/actions-salesforce-marketing-cloud/index.md b/src/connections/destinations/catalog/actions-salesforce-marketing-cloud/index.md index 18e13a6bb4..a313b17911 100644 --- a/src/connections/destinations/catalog/actions-salesforce-marketing-cloud/index.md +++ b/src/connections/destinations/catalog/actions-salesforce-marketing-cloud/index.md @@ -53,7 +53,10 @@ Once you save the API integration and add permissions, you will see a Summary pa 3. Click **Configure Salesforce Marketing Cloud (Actions)** in the top-right corner of the screen. 4. Select the source that will send data to SFMC and follow the steps to name your destination. 5. On the **Settings** tab, input your SFMC Account ID (MID). In the Installed Package you created above, locate your Subdomain, Client ID, and Client Secret and input these settings. Your Subdomain can be found under "REST Base URI." Your Subdomain should be a 28-character string starting with the letters `mc`. Do not include the `.rest.marketingcloudapis.com` part of the URL. -6. Follow the steps in the Destinations Actions documentation on [Customizing mappings](/docs/connections/destinations/actions/#customize-mappings). +6. Go to the **Mappings** tab and selelct **+ New Mapping**. +7. Follow the mapping setup flow to create your mappings. + * If you select one of the V2 actions involving data extensions, you can create a new data extension or connect to an existing one within Segment. +8. (*Optional*) Follow the steps in the Destinations Actions documentation on [customizing mappings](/docs/connections/destinations/actions/#customize-mappings) to customize your mappings. 7. Enable the destination and configured mappings. {% include components/actions-fields.html settings="true"%} @@ -77,11 +80,13 @@ The batch feature is only compatible with the "Send Contact to Data Extension" a To use the SFMC Journey Builder to send marketing campaigns to your users, you need to have data about those users in SFMC. The most common way to send data to SFMC is to send Segment data to an SFMC data extension. Data extensions are tables that contain your data. When you send a contact or event to a data extension, it will appear as a "row" in your data extension. Any metadata about the particular contact or event are considered attributes and will appear as a "column" in your data extension. -Data extensions and attributes must be created **before** sending data. You can create a data extension in your SFMC account by navigating to **Audience Builder > Contact Builder > Data Extensions > Create**. Segment recommends creating a single data extension to store all contact data, and individual data extensions for each event type you plan to send. Once a data extension is created, you can add attributes for any traits or properties you plan to send. You must include at least one Primary Key attribute that will be used to uniquely identify each row. +If you're using an action that isn't labeled with **(V2)**, data extensions and attributes must be created **before** sending data. You can create a data extension in your SFMC account by navigating to **Audience Builder > Contact Builder > Data Extensions > Create**. Segment recommends creating a single data extension to store all contact data, and individual data extensions for each event type you plan to send. Once a data extension is created, you can add attributes for any traits or properties you plan to send. You must include at least one Primary Key attribute that will be used to uniquely identify each row. > info "" > You can include more than one Data Extension Primary Key if needed. For example, you might use more than one primary key if you want to track which store locations a user visited, but you don't care how many times the users visited each location. In this case, you could use `Contact Key` and `Store Location` as Primary Keys. Then, SFMC only deduplicates if *both* Contact Key (the user) and Store Location are the same. This means you would record the stores individual users visited, but not how many times they visited each one. +If you select an action labeled with **(V2)**, you can create new data extensions directly within Segment. You can define a name, folder, description, and customize your fields by setting the type, length, nullable, and primary key options. You can also search and select existing data extensions by searching for the ID within Segment to map fields more seamlessly. + API events are another way to send your Segment events to SFMC. API events can trigger an email or push notification campaign immediately when they receive data from Segment. You can create an API event in your SFMC account by navigating to **Journey Builder > Events > + New Event > API Event**. ### Sending Engage Audiences & Computed Traits to SFMC diff --git a/src/connections/destinations/catalog/actions-stackadapt-audiences/index.md b/src/connections/destinations/catalog/actions-stackadapt-audiences/index.md index 5af4925171..efc13d9fee 100644 --- a/src/connections/destinations/catalog/actions-stackadapt-audiences/index.md +++ b/src/connections/destinations/catalog/actions-stackadapt-audiences/index.md @@ -11,13 +11,13 @@ hidden: true [StackAdapt](https://www.stackadapt.com/){:target="_blank"} is a programmatic advertising platform specializing in audience engagement. StackAdapt enables marketers to deliver high-performing advertising campaigns across channels through real-time bidding, detailed audience targeting, and data-driven insights. StackAdapt’s integration with Twilio Engage helps you sync user data to optimize targeting and improve your campaign outcomes. -This destination is maintained by StackAdapt. For any issues with the destination, please [submit a ticket to StackFAdapt's support team](https://support.stackadapt.com/hc/en-us/requests/new?ticket_form_id=360006572593){:target="_blank"}. +This destination is maintained by StackAdapt. For any issues with the destination, please [submit a ticket to StackAdapt's support team](https://support.stackadapt.com/hc/en-us/requests/new?ticket_form_id=360006572593){:target="_blank"}. ## Getting started ### Getting your StackAdapt GraphQL Token -If you do not have an existing StackAdapt API key, [reach out to the StackAdapt team for help](https://support.stackadapt.com/hc/en-us/requests/new?ticket_form_id=360006572593){:target="_blank"}. +If you do not have an existing StackAdapt read & write API key, [reach out to the StackAdapt team for help](https://support.stackadapt.com/hc/en-us/requests/new?ticket_form_id=360006572593){:target="_blank"}. ### Setting up the StackAdapt Audience destination in Segment Engage @@ -42,7 +42,9 @@ To sync an Engage audience with StackAdapt: 4. On the Mappings tab, click **New Mapping** and select **Forward Audience Event**. 5. Under Define event trigger, click **Add Condition** and add this condition: Event Type is `Track` or `Identify`. 6. Under **Map fields**, select the advertiser you want to sync the audience with. You can identify a specific advertiser by finding its ID in StackAdapt. -  + > When you're on StackAdapt platform, navigate to `Execute` (or `Overview`), then click on `Advertiser`. Next, select an advertiser from the `Filter` section at the top. You can find the advertiser ID in the URL after `advertiser=`. + + On StackAdapt platform: diff --git a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md index 00b9b4b75c..c8a092e50a 100644 --- a/src/connections/destinations/catalog/actions-tiktok-audiences/index.md +++ b/src/connections/destinations/catalog/actions-tiktok-audiences/index.md @@ -23,7 +23,9 @@ By using Segment's TikTok Audiences destination, you can increase traffic and dr ### Prerequisites -Before connecting to the TikTok Audiences destination, you must have a [TikTok Ads Manager](https://www.tiktok.com/business/en-US/solutions/ads-manager){:target="_blank"} account. +Before connecting to the TikTok Audiences destination, you must have a [TikTok Ads Manager](https://www.tiktok.com/business/en-US/solutions/ads-manager){:target="_blank"} account, with either Admin or Operator permissions to create and manage campaigns in TikTok. + +For more details on account and access level permissions, refer to [TikTok's documentation](https://ads.tiktok.com/help/article/how-to-assign-asset-level-permissions?lang=en){:target="_blank"}. ### TikTok Audience Segments diff --git a/src/connections/destinations/catalog/facebook-offline-conversions/index.md b/src/connections/destinations/catalog/facebook-offline-conversions/index.md index 388c05465f..092d34e722 100644 --- a/src/connections/destinations/catalog/facebook-offline-conversions/index.md +++ b/src/connections/destinations/catalog/facebook-offline-conversions/index.md @@ -6,6 +6,9 @@ id: 58ae54dc70a3e552b95415f6 --- [Facebook Offline Conversions](https://www.facebook.com/business/help/1782327938668950?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank”} enables offline event tracking, so marketers can run campaigns, upload transaction data, and compare in-store transactions. +> info "Offline Conversions API deprecation" +> Meta will [discontinue the Offline Conversions API](https://developers.facebook.com/docs/graph-api/changelog/version17.0#offline-conversions-api){:target="_blank"} in May 2025. As a result, this destination will stop accepting data at that time and will no longer be available for use. To continue sending offline conversion events to Meta, migrate to the [Facebook Conversions API (Actions)](/docs/connections/destinations/catalog/actions-facebook-conversions-api/#purchase) destination, which supports offline event tracking. + > info "Customer Information Parameters Requirements" > As of Facebook Marketing API v13.0+, Facebook began enforcing new requirements for customer information parameters (match keys). To ensure your events don't throw an error, Segment recommends that you review [Facebook’s new requirements](https://developers.facebook.com/docs/graph-api/changelog/version13.0#conversions-api){:target="_blank"}. diff --git a/src/connections/destinations/catalog/facebook-pixel/index.md b/src/connections/destinations/catalog/facebook-pixel/index.md index 5fb11ea0f1..579c00566a 100644 --- a/src/connections/destinations/catalog/facebook-pixel/index.md +++ b/src/connections/destinations/catalog/facebook-pixel/index.md @@ -110,7 +110,7 @@ In addition, Segment sends the following event types as Standard events: - `Products Searched`, which Segment sends as `Search` - `Checkout Started`, which Segment sends as `InitiateCheckout` -Facebook requires a currency for `Purchase` events. If you leave it out a currency, Segment will set a default value of `USD`. +Facebook requires a currency for `Purchase` events. If you leave out a currency, Segment will set a default value of `USD`. You can set custom properties for the events listed above. Use the setting "Standard Events custom properties" to list all the properties you want to send. @@ -193,7 +193,7 @@ If you're using real estate, travel, or automotive [Dynamic Ads](https://www.fac For most implementations, Segment recommends leaving these mappings blank. By default, Segment sets `content_type` to "product". -The same mapping can be used to change the `content_id` from the default value (product_id or the sku) to anything specific for Meta Pixel. For more information about required Meta Pixel events, see Meta's [Required Meta Pixel events and parameters for Advantage+ catalog ads](https://www.facebook.com/business/help/606577526529702?id=1205376682832142){:target="_blank”} documentation. +The same mapping can be used to change the `content_ids` from the default value (product_id or the sku) to anything specific for Meta Pixel. For more information about required Meta Pixel events, see Meta's [Required Meta Pixel events and parameters for Advantage+ catalog ads](https://www.facebook.com/business/help/606577526529702?id=1205376682832142){:target="_blank”} documentation. ## Troubleshooting diff --git a/src/connections/destinations/catalog/hubspot/index.md b/src/connections/destinations/catalog/hubspot/index.md index 69d8579b80..532d0f20c1 100644 --- a/src/connections/destinations/catalog/hubspot/index.md +++ b/src/connections/destinations/catalog/hubspot/index.md @@ -223,7 +223,7 @@ When using any of Segment's server-side sources, a connector infers `traits.life ### Loading Forms SDK -Segment gives you the option to load the [HubSpot Forms SDK](https://developers.hubspot.com/docs/methods/forms/advanced_form_options){:target="_blank"} alongside their tracking library. Enable the **Load Forms SDK** setting when you your HubSpot integration. +Segment gives you the option to load the [HubSpot Forms SDK](https://developers.hubspot.com/docs/methods/forms/advanced_form_options){:target="_blank"} alongside HubSpot's tracking library. Enable the **Load Forms SDK** setting for your HubSpot integration. > info "" > The Forms SDK expects to load synchronously but analytics.js loads asynchronously. To interact with the API, run code inside an [analytics.ready](/docs/connections/sources/catalog/libraries/website/javascript/#ready) callback. For example: diff --git a/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md b/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md index f1ce669279..c778b278e7 100644 --- a/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md +++ b/src/connections/destinations/catalog/personas-facebook-custom-audiences/index.md @@ -151,4 +151,4 @@ Most likely, this is due to your Facebook account needing to be reauthorized, so Note, emails must be in a plain text format. Facebook also provides these guidelines for the emails that you send to them: trim leading, trail whitespace, and convert all characters to lowercase. ### Do you support LTV audiences? -Facebook has a feature called [value-based audiences](https://developers.facebook.com/docs/marketing-api/audiences/guides/value-based-lookalike-audiences/){:target="_blank"} where you can send an additional field like LTV, to tell Facebook how to optimize their advertising based on a customer's value. +Facebook has a feature called [value-based audiences](https://developers.facebook.com/docs/marketing-api/audiences/guides/value-based-lookalike-audiences/){:target="_blank"} where you can send an additional field like LTV, to tell Facebook how to optimize their advertising based on a customer's value. The Facebook Custom Audiences destination does not support value based audiences. If you're interested in this feature, [contact Segment support](https://segment.com/help/contact/){:target="_blank"}. diff --git a/src/connections/destinations/images/mapping-concatenation.png b/src/connections/destinations/images/mapping-concatenation.png new file mode 100644 index 0000000000..5dfba562b1 Binary files /dev/null and b/src/connections/destinations/images/mapping-concatenation.png differ diff --git a/src/connections/destinations/index.md b/src/connections/destinations/index.md index 04c8485b98..fea7094e95 100644 --- a/src/connections/destinations/index.md +++ b/src/connections/destinations/index.md @@ -220,6 +220,18 @@ The following destinations support bulk batching: > info "You must manually configure bulk batches for Actions destinations" > To support bulk batching for the Actions Webhook destination, you must set `enable-batching: true` and `batch_size: >= 1000`. +### Hashing +Segment automatically hashes personally identifiable information (PII). This simplifies implementation for teams with data privacy requirements and eliminates issues with double-hashing that can result in failed matching at destinations. + +Segment supports these 2 types of data for hashing: +* **Plain text data:** When you send plain text values to destinations that require hashed values, Segment automatically normalizes and hashes these values. +* **Pre-hashed data:** If you already hash your data before sending it to Segment, Segment is able to detect that the data is hashed, and will pass your pre-hashed data directly to the destination, avoiding double-hashing. + +> info "" +> If you choose to hash data yourself, ensure you follow each destination's specific hashing requirements. Fields that support automatic hashing detection will display a tooltip indicating *"If not hashed, Segment will hash this value."* + +For destination-specific hashing requirements, refer to the destination's API documentation. + ## IP Allowlisting IP Allowlisting uses a NAT gateway to route traffic from Segment's servers to your destination through a limited range of IP addresses, which can prevent malicious actors from establishing TCP and UDP connections with your integrations. diff --git a/src/connections/functions/destination-functions.md b/src/connections/functions/destination-functions.md index ae56dfd98f..f109a68a4a 100644 --- a/src/connections/functions/destination-functions.md +++ b/src/connections/functions/destination-functions.md @@ -79,6 +79,12 @@ To change which event type the handler listens to, you can rename it to the name > info "" > Functions' runtime includes a `fetch()` polyfill using a `node-fetch` package. Check out the [node-fetch documentation](https://www.npmjs.com/package/node-fetch){:target="_blank"} for usage examples. +### Variable scoping + +When declaring settings variables, declare them in the function handler rather than globally in your function. This prevents you from leaking the settings values across other function instances. + +The handler for destination functions is event-specific. For example, you might have an `onTrack()`or `onIdentify()` function handler. + ### Errors and error handling {% include content/functions/errors-and-error-handling.md %} diff --git a/src/connections/functions/insert-functions.md b/src/connections/functions/insert-functions.md index e364ba6c94..f40678d9df 100644 --- a/src/connections/functions/insert-functions.md +++ b/src/connections/functions/insert-functions.md @@ -111,6 +111,12 @@ To ensure the Destination processes an event payload modified by the function, r > info "" > Functions' runtime includes a `fetch()` polyfill using a `node-fetch` package. Check out the [node-fetch documentation](https://www.npmjs.com/package/node-fetch){:target="_blank"} for usage examples. +### Variable scoping + +When declaring settings variables, make sure to declare them in the function handler rather than globally in your function. This prevents you leaking the settings values across other function instances. + +The handler for insert functions is event-specific, for example, `onTrack()`, `onIdentify()`, and so on. + ### Errors and error handling Segment considers a function's execution successful if it finishes without error. You can `throw` an error to create a failure on purpose. Use these errors to validate event data before processing it to ensure the function works as expected. @@ -176,8 +182,7 @@ async function onIdentify(event) { ``` If you don't supply a function for an event type, Segment throws an `EventNotSupported` error by default. - -You can read more about [error handling](#destination-insert-functions-logs-and-errors) below. +See [errors and error handling](#errors-and-error-handling) for more information on supported error types and how to troubleshoot them. ## Runtime and dependencies diff --git a/src/connections/functions/source-functions.md b/src/connections/functions/source-functions.md index 43ca32fc88..86bc3ccf36 100644 --- a/src/connections/functions/source-functions.md +++ b/src/connections/functions/source-functions.md @@ -261,6 +261,12 @@ The `Segment.set()` method accepts an object with the following fields: > warning "" > When you use the `set()` method, you won't see events in the Source Debugger. Segment only sends events to connected warehouses. +### Variable scoping + +Declare settings variables in the function handler, rather than globally in your function. This prevents you from leaking the settings values across other function instances. + +The handler for Source functions is `onRequest()`. + ### Runtime and dependencies {% include content/functions/runtime.md %} diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md index c47619e20a..88ffe7ce51 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/databricks-setup.md @@ -12,24 +12,26 @@ At a high level, when you set up Databricks for Reverse ETL, the configured serv ## Required permissions * Make sure the service principal you use to connect to Segment has permissions to use that warehouse. In the Databricks console go to **SQL warehouses** and select the warehouse you're using. Navigate to **Overview > Permissions** and make sure the service principal you use to connect to Segment has *can use* permissions. +Note the Service Principal UUID from the [User Management Page](https://accounts.cloud.databricks.com/user-management/serviceprincipals/){:target="_blank”} (under Service Principals) for the following SQL operations. + * To grant access to read data from the tables used in the model query, run: ``` - GRANT USAGE ON SCHEMA <schema_name> TO `<service principal you are using to connect to Segment>`; - GRANT SELECT, READ_METADATA ON SCHEMA <schema_name> TO `<service principal you are using to connect to Segment>`; + GRANT USAGE ON SCHEMA <schema_name> TO `<service principal ID you are using to connect to Segment>`; + GRANT SELECT, READ_METADATA ON SCHEMA <schema_name> TO `<service principal ID you are using to connect to Segment>`; ``` * To grant Segment access to create a schema to keep track of the running syncs, run: ``` - GRANT CREATE on catalog <name of the catalog, usually hive_metastore or main if using unity-catalog> TO `<service principal you are using to connect to Segment>`; + GRANT CREATE on catalog <name of the catalog, usually hive_metastore or main if using unity-catalog> TO `<service principal ID you are using to connect to Segment>`; ``` * If you want to create the schema yourself instead and then give Segment access to it, run: ``` CREATE SCHEMA IF NOT EXISTS __segment_reverse_etl; - GRANT ALL PRIVILEGES ON SCHEMA __segment_reverse_etl TO `<service principal you are using to connect to Segment>`; + GRANT ALL PRIVILEGES ON SCHEMA __segment_reverse_etl TO `<service principal ID you are using to connect to Segment>`; ``` ## Set up guide diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md index 04695300ea..2a6689f0a8 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/postgres-setup.md @@ -31,6 +31,15 @@ To set up Postgres with Reverse ETL: -- allows the "segment" user to create new schemas on the specified database. (this is the name you chose when provisioning your cluster) GRANT CREATE ON DATABASE "<enter database name here>" TO "segment"; + + -- create Segment schema + CREATE SCHEMA __segment_reverse_etl; + + -- Allow user to use the Segment schema + GRANT USAGE ON SCHEMA __segment_reverse_etl TO segment; + + -- Grant all privileges on all existing tables in the Segment schema + GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA __segment_reverse_etl TO segment; ``` 4. Make sure the user has correct access permissions to the database. 5. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl/setup/#step-1-add-a-source) section to finish adding Postgres as a source. @@ -40,4 +49,10 @@ To set up Postgres with Reverse ETL: * Give the `segment` user write permissions for the Segment managed schema (`__SEGMENT_REVERSE_ETL`), which keeps track of changes to the query results. -After you've successfully added your Postgres source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. \ No newline at end of file +After you've successfully added your Postgres source, [add a model](/docs/connections/reverse-etl/setup/#step-2-add-a-model) and follow the rest of the steps in the Reverse ETL setup guide. + +### How to use the same user for a Postgres destination and Reverse ETL source +If you’re using the same database user for both a Segment [Postgres warehouse destination](/docs/connections/storage/catalog/postgres/) (where Segment writes data into Postgres) and Reverse ETL source (where Segment reads data from Postgres), make sure the user has: +- SELECT or READ access on all source tables for Reverse ETL +- CREATE SCHEMA `__SEGMENT_REVERSE_ETL` permission (or ability to use an existing schema) +- INSERT, UPDATE, and DELETE permissions on tables within `__SEGMENT_REVERSE_ETL` diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md index 6ae2d4bdc0..c32f6f6aca 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/redshift-setup.md @@ -15,12 +15,21 @@ To set up Redshift with Reverse ETL: 2. Follow the [networking instructions](/docs/connections/storage/catalog/redshift/#networking) to configure the correct network and security settings. 3. Run the SQL commands below to create a user named `segment`. - ```ts + ```sql -- create a user named "segment" that Segment will use when connecting to your Redshift cluster. CREATE USER segment PASSWORD '<enter password here>'; -- allows the "segment" user to create new schemas on the specified database. (this is the name you chose when provisioning your cluster) GRANT CREATE ON DATABASE "<enter database name here>" TO "segment"; + + -- create Segment schema + CREATE SCHEMA __segment_reverse_etl; + + -- Allow user to use the Segment schema + GRANT USAGE ON SCHEMA __segment_reverse_etl TO segment; + + -- Grant all privileges on all current tables in the Segment schema + GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA __segment_reverse_etl TO segment; ``` 4. Follow the steps listed in the [Add a source](/docs/connections/reverse-etl/setup/#step-1-add-a-source) section to finish adding Redshift as your source. diff --git a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md index 697b375900..2768240b68 100644 --- a/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md +++ b/src/connections/reverse-etl/reverse-etl-source-setup-guides/snowflake-setup.md @@ -55,6 +55,7 @@ Follow the instructions below to set up the Segment Snowflake connector. Segment -- database access GRANT USAGE ON DATABASE segment_reverse_etl TO ROLE segment_reverse_etl; GRANT CREATE SCHEMA ON DATABASE segment_reverse_etl TO ROLE segment_reverse_etl; + GRANT CREATE TABLE ON SCHEMA __segment_reverse_etl TO ROLE segment_reverse_etl; ``` 6. Enter and run one of the following code snippets below to create the user Segment uses to run queries. For added security, Segment recommends creating a user that authenticates using a key pair. diff --git a/src/connections/reverse-etl/system.md b/src/connections/reverse-etl/system.md index cf7c8613a0..c24aaec4fe 100644 --- a/src/connections/reverse-etl/system.md +++ b/src/connections/reverse-etl/system.md @@ -16,6 +16,37 @@ For Segment to compute the data changes within your warehouse, Segment needs to > warning "" > There may be cost implications to having Segment query your warehouse tables. +## Reverse ETL schema +When using Reverse ETL with Segment, several system tables are created within the `__segment_reverse_etl` schema in your warehouse. These tables are crucial for managing the sync process efficiently and tracking state information. Below are the details of the system tables in this schema: + +### Records table + +`records_<subscription_id>` table is located within the ` __segment_reverse_etl` schema. + +This table contains two key columns: + +- `record_id`: A unique identifier for each record. +- `checksum`: A checksum value that is used to detect changes to a record since the last sync. +The records table helps in determining new and updated rows by comparing the checksum values during each sync. If a record’s checksum changes, it indicates that the record has been modified and should be included in the next sync. This ensures that only the necessary updates are processed, reducing the amount of data transferred. + +### Checkpoint table + +The `checkpoints_<subscription_id>` tables are located within the __segment_reverse_etl schema. + +This table contains the following columns: + +- `source_id`: Identifies the source from which the data is being synced. +- `model_id`: Identifies the specific model or query that is used to pull data. +- `checkpoint`: Stores a timestamp value that represents the last sync point for a particular model. + +The checkpoints table is used for timestamp-based checkpointing between syncs. This enables Segment to track the last successful sync for each model and avoid duplicating data when syncing, ensuring incremental and efficient data updates. + +### Important Considerations + +Do not modify or delete these tables. Altering or deleting the records and checkpoints tables can cause unpredictable behavior in the sync process. These tables are essential for maintaining the integrity of data during Reverse ETL operations. +State management: The `__segment_reverse_etl` schema and its associated tables (records and checkpoints) manage the state of each sync, ensuring that only necessary data changes are synced and that the sync process can resume where it left off. + + ## Limits To provide consistent performance and reliability at scale, Segment enforces default use and rate limits for Reverse ETL. diff --git a/src/connections/sources/catalog/cloud-apps/hubspot-profiles/index.md b/src/connections/sources/catalog/cloud-apps/hubspot-profiles/index.md new file mode 100644 index 0000000000..7cf41a897e --- /dev/null +++ b/src/connections/sources/catalog/cloud-apps/hubspot-profiles/index.md @@ -0,0 +1,99 @@ +--- +title: Connect HubSpot to Segment Profiles +plan: unify +--- + +This guide explains how to set up HubSpot as a source and connect it to Segment Profiles. + +Once configured, this integration lets you send HubSpot data directly to Segment Profiles, eliminating the need for a data warehouse and enabling faster data synchronization and profile enrichment. + +> info "Public Beta" +> The HubSpot/Segment Profiles integration is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. + +## Prerequisites + +Before you begin, make sure that you have the following: + +- A Segment workspace with [Unify](/docs/unify/) enabled and [Identity Resolution](/docs/unify/identity-resolution/) configured. +- Administrator access to your HubSpot account. + +## Integration steps + +Follow the steps in this section to connect HubSpot to Segment Profiles. + +### 1. Add HubSpot as a source + +To start syncing HubSpot data, first add HubSpot as a source to your workspace. + +1. From your Segment workspace, go to **Connections > Catalog** and search for **HubSpot**. +2. Select **HubSpot**, then click **Add Source**. +3. Enter a name for your HubSpot source and add an optional label. +4. Log in to HubSpot and choose the account you want to sync data from. +5. Once you've authenticated, return to Segment and click **Next**. +6. Verify the **Schema name**, then click **Next**. +7. In the **Selective Sync** settings: + - Set a start date for the initial sync (or leave it blank for a full historical sync). + - Keep the default sync frequency (every three hours) or adjust it by contacting friends@segment.com. + - Choose the collections to sync. + +After adding the source, go to **Settings > Basic settings** and toggle **Enable source**. The first sync begins immediately. + +### 2. Add a Segment Profiles destination + +Next, add a Segment Profiles destination. + +1. From your HubSpot source, go to the **Models** tab and click **Add destination**. +2. Select **Segment Profiles**, then click **Add destination**. +3. Enter a name for the destination, then click **Create destination**. + +### 3. Create a data model + +A data model defines how HubSpot data maps to Segment Profiles. + +1. In the HubSpot source, go to the **Models** tab and click **Create Model**. +2. Select the collections and columns to sync. +3. Preview the data in real time and validate the schema. +4. Name the model and click **Next** to save it. + +### 4. Map HubSpot data to Segment Profiles + +Now, configure mappings to determine how HubSpot data updates Segment Profiles. + +1. In the **Models** tab of your HubSpot source, click **Add mapping**. +2. Segment redirects you to the Segment Profiles destination. Click **Add mapping**. +3. Select your data model and define the mapping rules: + - Choose the Profile Space to update. + - Map HubSpot fields to Segment Profile fields. + - **You must map either the User ID, Anonymous ID, or Group ID field.** +4. Test the mapping with real HubSpot data. +5. Save the configuration. + + +### 5. Enable destination mapping and finish setup + +Finish the setup process by enabling the destination mapping. + +1. From the **Overview** tab of the Segment Profiles destination, toggle **Mapping Status** to **Enabled**. +2. Return to your HubSpot source and verify that **Settings > Basic settings** is enabled. + +Once complete, HubSpot data syncs to Segment Profiles automatically. + +## Data synchronization + +After connecting HubSpot to the Segment Profiles destination, the integration begins syncing data: + +- New or updated records in HubSpot get sent to Segment Profiles based on your mapping configuration. +- The first sync includes historical data based on your selected start date. +- Future syncs run at the default interval of every three hours. + +If you change the start date after the first sync, Segment doesn’t retroactively sync data unless you manually trigger a full sync. Changes to synced collections apply only to future syncs. Data you previously synced from removed collections stays in your workspace. + +## Best practices + +Keep the following in mind when working with the HubSpot/Segment Profiles integration: + +- Start with a small dataset to validate mappings before expanding to all HubSpot objects. +- Regularly review your mappings to make sure they reflect any schema changes in HubSpot or Segment Profiles. +- Monitor both your HubSpot source and Segment Profiles destination for errors and data discrepancies. + +Each data model supports mapping from one HubSpot collection at a time. For complex use cases requiring multiple collections, create separate data models and mappings. diff --git a/src/connections/sources/catalog/cloud-apps/hubspot/index.md b/src/connections/sources/catalog/cloud-apps/hubspot/index.md index b87b3e0db3..8eab0aa3ea 100644 --- a/src/connections/sources/catalog/cloud-apps/hubspot/index.md +++ b/src/connections/sources/catalog/cloud-apps/hubspot/index.md @@ -18,10 +18,11 @@ Are you trying to set up HubSpot as a destination to receive data from Segment? **Note**: You can add multiple instances if you have multiple HubSpot accounts. That's why we allow you to customize the source's nickname and schema name! -4. Finally, connect an account with **admin API permissions** to access your HubSpot data. This account should be an active user on a Professional or Enterprise plan. Check out [HubSpot's docs on how to get your API Key](http://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key){:target="_blank"}. +4. Configure the Selective Sync settings. You can specify a start date for the initial sync, adjust the default sync frequency, and select which collections to sync. -Voila! We'll begin syncing your HubSpot data into Segment momentarily, and it will be written to your warehouse at your next Warehouse run. +5. Connect an account with **admin API permissions** to access your HubSpot data. This account should be an active user on a Professional or Enterprise plan. Check out [HubSpot's docs on how to get your API Key](http://knowledge.hubspot.com/articles/kcs_article/integrations/how-do-i-get-my-hubspot-api-key){:target="_blank"}. +Voila! We'll begin syncing your HubSpot data into Segment momentarily, and it will be written to your warehouse at your next Warehouse run. ## Components @@ -31,12 +32,12 @@ The HubSpot source is built with a sync component, which means Segment makes req Our sync component uses an upsert API, so the data in your warehouse loaded using sync will reflect the latest state of the corresponding resource in HubSpot. For example, if `deals` goes from `open` to `closed` between syncs, on its next sync that deal's status will be `closed`. -The source syncs and warehouse syncs are independent processes. Source runs pull your data into the Segment Hub, and warehouse runs flush that data to your warehouse. Sources will sync with Segment every 3 hours. Depending on your Warehouses plan, we will push the Source data to your warehouse on the interval associated with your billing plan. +The source syncs and warehouse syncs are independent processes. Source runs pull your data into the Segment Hub, and warehouse runs flush that data to your warehouse. You can set the start date of the first sync. After the first sync, sources sync with Segment every 3 hours. Depending on your Warehouses plan, Segment pushes the Source data to your warehouse on the interval associated with your billing plan. ## Collections -Collections are the groupings of resources we pull from your source. In your warehouse, each collection gets its own table. +Collections are the groupings of resources we pull from your source. You can select which collections are included in your sync. In your warehouse, each collection gets its own table. ### Event History diff --git a/src/connections/sources/catalog/libraries/mobile/android/android-faqs.md b/src/connections/sources/catalog/libraries/mobile/android/android-faqs.md index 5ae67b2af6..f4be8545ab 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/android-faqs.md +++ b/src/connections/sources/catalog/libraries/mobile/android/android-faqs.md @@ -1,8 +1,14 @@ --- title: 'Analytics-Android frequently asked questions' strat: android +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-Android in March 2026" +> End-of-support for the Analytics-Android SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) SDK. If you'd like to upgrade to Analytics-Kotlin, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/migration/). + ## What is the latest version of the library? Analytics-Android is published to [Maven Central](http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.segment.analytics.android%22%20AND%20a%3A%22analytics%22) where you can see all published releases. diff --git a/src/connections/sources/catalog/libraries/mobile/android/changelog.md b/src/connections/sources/catalog/libraries/mobile/android/changelog.md index 7a2bc56345..651dd6b48d 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/changelog.md +++ b/src/connections/sources/catalog/libraries/mobile/android/changelog.md @@ -2,5 +2,8 @@ title: Analytics-Android Changelog repo: analytics-android strat: android +custom_ranking: + heading: 0 + position: 99999 --- {% include content/changelog.html %} \ No newline at end of file diff --git a/src/connections/sources/catalog/libraries/mobile/android/index.md b/src/connections/sources/catalog/libraries/mobile/android/index.md index 818392abc1..34470ffb10 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/index.md +++ b/src/connections/sources/catalog/libraries/mobile/android/index.md @@ -2,16 +2,19 @@ title: 'Analytics-Android' strat: android repo: analytics-android -support_type: maintenance +support_type: community id: wXNairW5xX +custom_ranking: + heading: 0 + position: 99999 --- Analytics-Android makes it easier for you to send data to any tool without having to learn, test or implement a new API every time. Analytics-Android only supports any Android device running API 14 (Android 4.0) and higher. This includes Amazon Fire devices. -> info "Analytics-Kotlin" -> The Analytics-Kotlin library is in General Availability. You can use Analytics-Kotlin for [mobile](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) or [server](/docs/connections/sources/catalog/libraries/server/kotlin) applications. If you'd like to upgrade to Analytics-Kotlin, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/migration/). Segment's future development efforts concentrate on the new Analytics-Kotlin SDK, and will only ship security updates for the Analytics-Android SDK. +> warning "End-of-Support for Analytics-Android in March 2026" +> End-of-support for the Analytics-Android SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) SDK. If you'd like to upgrade to Analytics-Kotlin, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/migration/). > success "" > In addition to the documentation here, you can also [read the Javadocs for all versions of Analytics-Android on Javadoc.io](https://javadoc.io/doc/com.segment.analytics.android/analytics/latest/index.html). diff --git a/src/connections/sources/catalog/libraries/mobile/android/middleware.md b/src/connections/sources/catalog/libraries/mobile/android/middleware.md index a336962f35..b786f26601 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/middleware.md +++ b/src/connections/sources/catalog/libraries/mobile/android/middleware.md @@ -1,8 +1,14 @@ --- title: 'Middleware for Analytics-Android' strat: android +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-Android in March 2026" +> End-of-support for the Analytics-Android SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) SDK. If you'd like to upgrade to Analytics-Kotlin, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/migration/). + Middlewares are a powerful mechanism that can augment the events collected by the SDK. A middleware is a simple function that is invoked by the Segment SDK and can be used to monitor, modify, augment or reject events. Source Middleware are available on analytics-android 4.3.0 and later. Destination Middleware are available on analytics-android 4.7.0 and later. You can register source middleware during construction with the `.useSourceMiddleware` method on the builder. These middleware are invoked for all events, including automatically tracked events, and external event sources like Adjust and Optimizely. diff --git a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md index f26b9eccbc..e75e23018b 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/quickstart.md +++ b/src/connections/sources/catalog/libraries/mobile/android/quickstart.md @@ -2,8 +2,14 @@ title: 'Quickstart: Analytics-Android' hidden: true strat: android +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-Android in March 2026" +> End-of-support for the Analytics-Android SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) SDK. If you'd like to upgrade to Analytics-Kotlin, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/migration/). + [](https://maven-badges.herokuapp.com/maven-central/com.segment.analytics.android/analytics) This tutorial will help you start sending analytics data from your Android app to Segment and any of our destinations, using our Android library. As soon as you're set up you'll be able to turn on any new destinations with the flip of a switch! diff --git a/src/connections/sources/catalog/libraries/mobile/android/troubleshooting.md b/src/connections/sources/catalog/libraries/mobile/android/troubleshooting.md index b7d4d3b611..802b3b23ee 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/troubleshooting.md +++ b/src/connections/sources/catalog/libraries/mobile/android/troubleshooting.md @@ -1,8 +1,14 @@ --- title: 'Troubleshooting Analytics-Android' strat: android +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-Android in March 2026" +> End-of-support for the Analytics-Android SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) SDK. If you'd like to upgrade to Analytics-Kotlin, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/migration/). + ## No events in my debugger 1. Check that you followed all of the [Getting Started](/docs/connections/sources/catalog/libraries/mobile/android/#getting-started) steps correctly diff --git a/src/connections/sources/catalog/libraries/mobile/android/wear.md b/src/connections/sources/catalog/libraries/mobile/android/wear.md index 4e8727560d..e9ec90f0ee 100644 --- a/src/connections/sources/catalog/libraries/mobile/android/wear.md +++ b/src/connections/sources/catalog/libraries/mobile/android/wear.md @@ -2,8 +2,14 @@ title: 'Analytics-Android Wear' strat: android hidden: true +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-Android in March 2026" +> End-of-support for the Analytics-Android SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) SDK. If you'd like to upgrade to Analytics-Kotlin, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/migration/). + Analytics-Android Wear makes it simple to send your data to any tool without having to learn, test, or implement a new API every time. All of Segment's client libraries are open-source, so you can [view Analytics-Android on GitHub](https://github.com/segmentio/analytics-android), or check out our [browser and server-side libraries](/docs/connections/sources/catalog/) too. diff --git a/src/connections/sources/catalog/libraries/mobile/ios/changelog.md b/src/connections/sources/catalog/libraries/mobile/ios/changelog.md index e364e2df7a..85a8312245 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/changelog.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/changelog.md @@ -2,5 +2,8 @@ title: Analytics-iOS Changelog repo: analytics-ios strat: ios +custom_ranking: + heading: 0 + position: 99999 --- {% include content/changelog.html %} \ No newline at end of file diff --git a/src/connections/sources/catalog/libraries/mobile/ios/index.md b/src/connections/sources/catalog/libraries/mobile/ios/index.md index 2d224e2cb4..4e8d09d9c6 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/index.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/index.md @@ -2,21 +2,24 @@ title: Analytics-iOS strat: ios repo: analytics-ios -support_type: maintenance +support_type: community id: UBrsG9RVzw +custom_ranking: + heading: 0 + position: 99999 --- With Analytics-iOS, you can send your data to analytics or marketing tool, without needing to learn, test, or implement a new API with each update or addition. <br /> <br /> <br /> +> warning "End-of-Support for Analytics-iOS in March 2026" +> End-of-support for the Analytics-iOS SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Swift](/docs/connections/sources/catalog/libraries/mobile/swift/){:target="_blank”} SDK. If you'd like to migrate to Analytics-Swift, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/swift/migration/){:target="_blank”}. + > info "Watchkit extensions currently unsupported" > Segment does not currently support tracking of watchkit extensions for the Apple Watch. [Email Segment](https://segment.com/requests/integrations/){:target="_blank”}. if you're interested in a Watchkit SDK. For now Segment recommends tracking watch interactions using the iPhone app code. -> info "Analytics-Swift" -> The [Analytics-Swift](/docs/connections/sources/catalog/libraries/mobile/swift/){:target="_blank”}. library is in General Availability. If you'd like to migrate to Analytics-Swift, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/swift/migration/){:target="_blank”}.. Segment's future development efforts concentrate on the new Analytics-Kotlin SDK, and will only ship security updates for the Analytics-Android SDK. - ## Analytics-iOS and Unique Identifiers One of the most important parts of any analytics platform is the ability to consistently and accurately identify users. To do this, the platform must assign and persist some form of identification on the device, so you can analyze user actions effectively. This is especially important for funnel conversion analysis and retention analysis. diff --git a/src/connections/sources/catalog/libraries/mobile/ios/ios-faqs.md b/src/connections/sources/catalog/libraries/mobile/ios/ios-faqs.md index 3edf802f60..93004e11aa 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/ios-faqs.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/ios-faqs.md @@ -1,8 +1,14 @@ --- title: Analytics-iOS Frequently asked questions strat: ios +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-iOS in March 2026" +> End-of-support for the Analytics-iOS SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Swift](/docs/connections/sources/catalog/libraries/mobile/swift/){:target="_blank”} SDK. If you'd like to migrate to Analytics-Swift, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/swift/migration/){:target="_blank”}. + ## How big is the Segment SDK? The core Segment SDK is extremely lightweight. It weighs in at about 212KB. diff --git a/src/connections/sources/catalog/libraries/mobile/ios/ios14-guide.md b/src/connections/sources/catalog/libraries/mobile/ios/ios14-guide.md index 78ce64d22a..c05be97519 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/ios14-guide.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/ios14-guide.md @@ -1,8 +1,14 @@ --- title: iOS 14 Guide strat: ios +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-iOS in March 2026" +> End-of-support for the Analytics-iOS SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Swift](/docs/connections/sources/catalog/libraries/mobile/swift/){:target="_blank”} SDK. If you'd like to migrate to Analytics-Swift, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/swift/migration/){:target="_blank”}. + > warning "" > You should update your `analytics-ios` and device-mode destinations to adapt to iOS 14 changes explained in this guide. For information about iOS 14.5, see [What's new in iOS 14.5](#whats-new-with-ios-145) below. diff --git a/src/connections/sources/catalog/libraries/mobile/ios/middleware.md b/src/connections/sources/catalog/libraries/mobile/ios/middleware.md index 7afe275a69..129d4654bc 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/middleware.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/middleware.md @@ -1,8 +1,14 @@ --- title: Middleware for iOS strat: ios +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-iOS in March 2026" +> End-of-support (EoS) for the Analytics-iOS SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Swift](/docs/connections/sources/catalog/libraries/mobile/swift/){:target="_blank”} SDK. If you'd like to migrate to Analytics-Swift, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/swift/migration/){:target="_blank”}. + Middlewares are simple functions invoked by the Segment libraries, which give you a way to add information to the events you collect using the Segment SDKs. They can be used to monitor, modify, or reject events. Source Middlewares are available on `analytics-ios` 3.6.0 and later. You can access the middleware API in both Objective-C and Swift. diff --git a/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md b/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md index 6ff95a8a3f..8e393b8acc 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/quickstart.md @@ -2,8 +2,14 @@ title: 'Quickstart: iOS' hidden: true strat: ios +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-iOS in March 2026" +> End-of-support for the Analytics-iOS SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Swift](/docs/connections/sources/catalog/libraries/mobile/swift/){:target="_blank”} SDK. If you'd like to migrate to Analytics-Swift, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/swift/migration/){:target="_blank”}. + This tutorial gets you started sending data from your iOS app to Segment. When you're done you can turn on [any of Segment's destinations](/docs/connections/destinations/) with the flip of a switch! No more waiting for App Store approval. If you want to dive deeper at any point, check out the [iOS Library Reference](/docs/connections/sources/catalog/libraries/mobile/ios/). diff --git a/src/connections/sources/catalog/libraries/mobile/ios/troubleshooting.md b/src/connections/sources/catalog/libraries/mobile/ios/troubleshooting.md index 4f51dd8f55..6557997b51 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/troubleshooting.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/troubleshooting.md @@ -1,8 +1,14 @@ --- title: Troubleshooting Analytics-iOS strat: ios +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics-iOS in March 2026" +> End-of-support for the Analytics-iOS SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-Swift](/docs/connections/sources/catalog/libraries/mobile/swift/){:target="_blank”} SDK. If you'd like to migrate to Analytics-Swift, see the [migration guide](/docs/connections/sources/catalog/libraries/mobile/swift/migration/){:target="_blank”}. + ## Target has transitive dependencies that include static binaries This was due to an old [CocoaPods limitation](https://github.com/CocoaPods/CocoaPods/issues/2926). diff --git a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-destination-filters.md b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-destination-filters.md index 7b83cf3b75..5bf3c57fdc 100644 --- a/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-destination-filters.md +++ b/src/connections/sources/catalog/libraries/mobile/kotlin-android/kotlin-android-destination-filters.md @@ -13,9 +13,9 @@ Use Analytics-Kotlin (Android) to configure [destination filters](/docs/connecti To get started with destination filters on mobile device-mode destinations using Kotlin: -1. Download and install the dependency. +1. Download and install the dependency, replacing `latest_version` with the current version: ```java - implementation 'com.segment.analytics.kotlin:destination-filters:0.1.1' + implementation 'com.segment.analytics.kotlin:destination-filters:<latest_version>' ``` 2. Add the plugin. diff --git a/src/connections/sources/catalog/libraries/mobile/react-native/index.md b/src/connections/sources/catalog/libraries/mobile/react-native/index.md index c0a0ce9a87..545fb13ec0 100644 --- a/src/connections/sources/catalog/libraries/mobile/react-native/index.md +++ b/src/connections/sources/catalog/libraries/mobile/react-native/index.md @@ -88,7 +88,7 @@ These are the options you can apply to configure the client: | `storePersistor` | undefined | A custom persistor for the store that `analytics-react-native` uses. Must match [`Persistor`](https://github.com/segmentio/analytics-react-native/blob/master/packages/sovran/src/persistor/persistor.ts#L1-L18) interface exported from [sovran-react-native](https://github.com/segmentio/analytics-react-native/blob/master/packages/sovran). | | `proxy` | undefined | `proxy` is a batch url to post to instead of 'https://api.segment.io/v1/b'. | | `errorHandler` | undefined | Create custom actions when errors happen, see [Handling errors](#handling-errors) | - +| `useSegmentEndpoints` | false | Set to `true` to automatically append the Segment endpoints when using `proxy` or `cdnProxy` to send or fetch settings. Otherwise, `proxy` or `cdnProxy` will be used as is. | ## Adding Plugins to the Client diff --git a/src/connections/sources/catalog/libraries/mobile/xamarin/analytics-xamarin.md b/src/connections/sources/catalog/libraries/mobile/xamarin/analytics-xamarin.md new file mode 100644 index 0000000000..03d79299f9 --- /dev/null +++ b/src/connections/sources/catalog/libraries/mobile/xamarin/analytics-xamarin.md @@ -0,0 +1,422 @@ +--- +title: Analytics for Xamarin +sourceTitle: 'Xamarin' +sourceCategory: 'Mobile' +id: wcssVcPJrc +hidden: true +support_type: community +--- + +> warning "End-of-Support for Analytics.Xamarin in March 2026" +> End-of-support for the Analytics.Xamarin SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-CSharp](/docs/connections/sources/catalog/libraries/server/csharp/) SDK. If you'd like to migrate to Analytics-CSharp, see the [migration guide](/docs/connections/sources/catalog/libraries/server/csharp/migration-guide/). + +Segment's [Xamarin](http://xamarin.com/) Portable Class Library ([PCL](http://developer.xamarin.com/guides/cross-platform/application_fundamentals/pcl/)) is the best way to integrate analytics into your Xamarin application. It lets you record analytics data from your C#, F#, and .NET code, and supports `PCL Profile 4.0 - Profile136`, which targets the following platforms: + +- .NET Framework 4 or later +- Windows Phone 8 or later +- Silverlight 5 +- Windows 8 +- Windows Phone Silverlight 8 +- Windows Store apps (Windows 8) +- Xamarin.Android +- Xamarin.iOS + +The library issues requests that hit our servers, and then we route your data to any analytics service you enable on our destinations page. This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/Analytics.Xamarin). + +**Note:** Since Xamarin requires Segment's library to be portable to different builds, Segment can only enable server-side destinations, as opposed to bundling select native SDKs like we do for iOS and Android. Look for the "Server" icon when selecting destinations. For tools for which we offer both bundled and server-side destinations, like Mixpanel, Amplitude, and Google Analytics, Segment's Xamarin library will only be able to use their server-side functionality. + +## Getting Started + +Clone `Analytics.Xamarin` from [GitHub](https://github.com/segmentio/Analytics.Xamarin)... + +```bash +git clone https://github.com/segmentio/Analytics.Xamarin.git +``` + +Import the `Analytics.Xamarin` project into Xamarin Studio, and add it as a reference to your code. + +Now you'll need to initialize the library. + +```csharp +using Segment; + +// initialize with your Segment source write key ... +Analytics.Initialize("YOUR_WRITE_KEY"); +``` + +You only need to initialize once at the start of your program. You can then keep using the `Analytics` singleton anywhere in your code. + +The default initialization settings are production-ready and queue messages on another thread before sending any requests. In development you might want to use [development settings](/docs/connections/sources/catalog/libraries/mobile/xamarin/#development-settings). + +## Identify + +`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. + +We recommend calling `identify` a single time when the user's account is first created, and only identifying again later when their traits change. + +Example `identify` call: + +```csharp +Analytics.Client.Identify("019mr8mf4r", new Traits() { + { "name", "Tom Smykowski" }, + { "email", "tom@example.com" }, + { "friends", 29 } +}); +``` + +This example call identifies Tom by his unique User ID (the one you know him by in your database) and label him with `name`, `email` and `friends` traits. + +The `identify` call has the following fields: + +<table class="api-table"> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> + <tr> + <td>`Traits` _Traits, optional_</td> + <td>A dictionary of traits you know about the user. Things like: `email`, `name` or `friends`.</td> + </tr> + <tr> + <td>`options` _Options, optional_</td> + <td>An `Options` object lets you set a [timestamp](#historical-import), [enable or disable destinations](#selecting-destinations), or [send additional context](#context).</td> + </tr> +</table> + +Find details on the **identify method payload** in our [Spec](/docs/connections/spec/identify/). + +## Track + +`track` lets you record the actions your users perform. Every action triggers what we call an "event", which can also have associated properties. + +You'll want to track events that are indicators of success for your site, like **Signed Up**, **Item Purchased** or **Article Bookmarked**. + +To get started, we recommend tracking just a few important events. You can always add more later! + +Example `track` call: + +```csharp +Analytics.Client.Track("019mr8mf4r", "Item Purchased", new Properties() { + { "revenue", 39.95 }, + { "shipping", "2-day" } +}); +``` +This example `track` call tells us that your user just triggered the **Item Purchased** event with a revenue of $39.95 and chose your hypothetical '2-day' shipping. + +`track` event properties can be anything you want to record. + +The `track` call has the following fields: + +<table class="api-table"> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> + <tr> + <td>`event` _String_</td> + <td>The name of the event you're tracking. We recommend human-readable names like <strong>Played Song</strong> or <strong>Updated Status</strong>.</td> + </tr> + <tr> + <td>`properties` _Properties, optional_</td> + <td>A dictionary of properties for the event. If the event was <strong>Added to Cart</strong>, it might have properties like `price` or `product`.</td> + </tr> + <tr> + <td>`options` _Options, optional_</td> + <td>An `Options` object lets you set a [timestamp](#historical-import), [enable or disable destinations](#selecting-destinations), or [send additional context](#context).</td> + </tr> +</table> + +Find details on **best practices in event naming** as well as the **`track` method payload** in our [Spec](/docs/connections/spec/track/). + +## Screen + +The [`screen`](/docs/connections/spec/screen/) method lets you you record whenever a user sees a screen of your mobile app, along with optional extra information about the page being viewed. + +You'll want to record a screen event an event whenever the user opens a screen in your app. This could be a view, fragment, dialog or activity depending on your app. + +Not all services support screen, so when it's not supported explicitly, the screen method tracks as an event with the same parameters. + +Example `screen` call: + +```csharp +Analytics.Client.Screen("019mr8mf4r", "Register", new Properties() { + { "type", "facebook" } +}); +``` + +The `screen` call has the following fields: + +<table class="api-table"> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> + <tr> + <td>`name` _String_</td> + <td>The screen name you're tracking. We recommend human-readable names like <strong>Login</strong> or <strong>Register</strong>.</td> + </tr> + <tr> + <td>`category` _String_</td> + <td>The screen category. If you're making a news app, the category could be <strong>Sports</strong>.</td> + </tr> + <tr> + <td>`properties` _Properties, optional_</td> + <td>A dictionary of properties for the screen view. If the screen is <strong>Restaurant Reviews</strong>, it might have properties like `reviewCount` or `restaurantName`.</td> + </tr> + <tr> + <td>`options` _Options, optional_</td> + <td>An `Options` object lets you set a [timestamp](#historical-import), [enable or disable destinations](#selecting-destinations), or [send additional context](#context).</td> + </tr> +</table> + +Find details on the **`screen` payload** in our [Spec](/docs/connections/spec/screen/). + +## Group + +`group` lets you associate an [identified user](/docs/connections/sources/catalog/libraries/server/java/#identify) user with a group. A group could be a company, organization, account, project or team! It also lets you record custom traits about the group, like industry or number of employees. + +This is useful for tools like [Intercom](/docs/connections/destinations/catalog/intercom/), [Preact](/docs/connections/destinations/catalog/preact/) and [Totango](/docs/connections/destinations/catalog/totango/), as it ties the user to a **group** of other users. + +Example `group` call: + +```csharp +Analytics.Client.Group("userId", "groupId", new Traits() { + { "name", "Initech, Inc." }, + { "website", "http://www.example.com" } +}); +``` +The `group` call has the following fields: + +<table class="api-table"> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> + <tr> + <td>`groupId` _String_</td> + <td>The ID for this group in your database.</td> + </tr> + <tr> + <td>`traits` _Traits, optional_</td> + <td>A dictionary of traits you know about the group. Things like: `name` or `website`.</td> + </tr> + <tr> + <td>`options` _Options, optional_</td> + <td>An `Options` object lets you set a [timestamp](#historical-import), [enable or disable destinations](#selecting-destinations), or [send additional context](#context).</td> + </tr> +</table> + +Find more details about `group` including the **`group` payload** in our [Spec](/docs/connections/spec/group/). + +## Alias + +`alias` is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of our destinations. + +In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias), if your user switches IDs, you can use 'alias' to rename the 'userId'. + +Example `alias` call: + +```csharp +Analytics.Client.Alias("previousId", "userId"); +``` + +Here's a full example of how we might use the `alias` call: + +```csharp +// the anonymous user does actions ... +Analytics.Client.Track("anonymous_user", "Anonymous Event"); +// the anonymous user signs up and is aliased +Analytics.Client.Alias("anonymous_user", "identified@example.com"); +// the identified user is identified +Analytics.Client.Identify("identified@example.com", new Traits() { plan: "Free" }); +// the identified user does actions ... +Analytics.Client.Track("identified@example.com", "Identified Action"); +``` + +For more details about `alias`, including the **`alias` call payload**, check out our [Spec](/docs/connections/spec/alias/). + +--- + +## Development Settings + +You can use this initialization during development while testing the library. `SetAsync(false)` will make sure the library makes a request to our servers every time it's called. + +```csharp +Analytics.Initialize("YOUR_WRITE_KEY", new Config().SetAsync(false)); +``` + +Don't forget to set async back to `true` for production, so that you can advantage of asynchronous flushing on a different thread. + +## Options + +An `Options` object lets you: + +1. Set a [timestamp](#historical-import), [enable or disable destinations](#selecting-destinations) +2. [Send additional context](#context) +3. [Send an anoymousId](#anonymous-id) + +## Selecting Destinations + +The `alias`, `group`, `identify`, `page` and `track` calls can all be passed an object of `options` that lets you turn certain destinations on or off. By default all destinations are enabled. + +Here's an example `identify` call with the `options` object shown. + +```csharp +Analytics.Client.Identify("hj2kf92ds212", new Traits() { + { "email", "tom@example.com" }, + { "name", "Tom Smykowski" }, +}, new Options() + .SetIntegration("all", false) + .SetIntegration("Kissmetrics", true) +); +``` + +In this case, we're specifying that we want this identify to only go to Kissmetrics. `"all", false` says that no destination should be enabled unless otherwise specified. `{ "Kissmetrics", true }` turns on Kissmetrics, etc. + +destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (i.e. "AdLearn Open Platform", "awe.sm", "MailChimp", etc.). + +**Note:** Available at the business level, filtering track calls can be done right from the Segment UI on your source schema page. We recommend using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side. + +## Historical Import + +You can import historical data by adding the `timestamp` argument to your `identify` and `track` calls. _Note: If you're tracking things that are happening right now, leave out the timestamp and our servers will timestamp the requests for you._ + +```csharp +Analytics.Client.Track("sadi89e2jd", "Logged Workout", new Properties() { + { "distance", "10 miles" }, + { "city", "Boston" }, +}, new Options() + .SetTimestamp(new DateTime(2010, 1, 18)) +); +``` + +## Context + +If you're running a web server, you might want to send context variables such as `userAgent` or `ip` with your `page` or `screen` calls. You can do so by setting the `Context` in the `Options` object. + +```csharp +Analytics.Client.Page("019mr8mf4r", "Login", new Properties() { + { "path", "/login" }, + { "title", "Initech Login" } +}, new Options() + .SetContext(new Context() { + { "app", "Education App 2" } + })); +``` + +Learn more on the [Context page](/docs/connections/spec/common/#context). + +## Anonymous ID + +By default, the Xamarin library requires all messages to have a `userId`. If you would like to use an `anonymousId`, you can pass it in with options. + +```csharp +Analytics.Client.Page(null, "Login", new Properties(), new Options() + .SetAnonymousId("some-id")); +``` + +## Nested Properties + +You can provide nested properties, like so: + +```csharp +Analytics.Client.Identify("hj2kf92ds212", new Traits() { + { "email", "tom@example.com" }, + { "name", "Tom Smykowski" }, + { "address", new Dict() { + { "street", "123 Fake Street" }, + { "city", "Boston" } + }} +}); +``` + +## Batching + +Our libraries are built to support high performance environments. That means it is safe to use Analytics.Xamarin on a web server that's serving hundreds of requests per second. + +By default (in async mode), this library will start a single seperate thread on initialization, and flush all messages on that thread. That means every method you call **does not** result in an HTTP request, but is queued in memory instead. Messages are flushed in batch in the background, which allows for much faster operation. + +### How do I turn batching off? + +Sometimes you might not want batching (eg. when debugging, or in short-lived programs). You can turn off batching by setting the `async` argument to `false`, and your requests will always be sent in a blocking manner. + +```csharp +Analytics.Initialize("YOUR_WRITE_KEY", new Config().SetAsync(false)); +``` + +### What happens if there are just too many messages? + +If the module detects that it can't flush faster than it's receiving messages, it'll simply stop accepting messages. This means your program will never crash because of a backing up analytics queue. The maximum size of the queue defaults to `10000`, and here's how you can change it: + +```csharp +Analytics.Initialize("YOUR_WRITE_KEY", new Config().SetMaxQueueSize(10000)); +``` + +### How do I flush right now?! + +You can also flush on demand. For example, at the end of your program, you'll want to flush to make sure there's nothing left in the queue. Just call the `Flush` method: + +```csharp +Analytics.Client.Flush(); +``` + +This method will block until all messages are flushed. + +### How do I dispose of the flushing thread at the end of my program? + +The Analytics client implements the `IDisposable` interface, and will turn off its flushing thread when you call `Dispose`. + +```csharp +Analytics.Client.Dispose(); +``` + +## Configuration + +If you hate defaults, than you'll love how configurable the Analytics.Xamarin is. Check out these gizmos: + +```csharp +Analytics.Initialize("YOUR_WRITE_KEY", new Config() + .SetAsync(true) + .SetTimeout(TimeSpan.FromSeconds(10)) + .SetMaxQueueSize(10000)); +``` + +<table class="DefinitionTable"> + <tr> + <td>`SetAsync` _boolean_</td> + <td>`true` to flush on a different thread, `false` to flush immediately on the same thread.</td> + </tr> + <tr> + <td>`SetTimeout` _TimeSpan_</td> + <td>The amount of time to wait before calling the HTTP request a timeout.</td> + </tr> + <tr> + <td>`SetMaxQueueSize` _int_</td> + <td>The maximum number of messages to allow into the queue before no new message are accepted.</td> + </tr> +</table> + +## Logging + +`Analytics.Xamarin` has detailed logging, which you can enable by attaching your own handler, like so: + +```csharp +using Segment; + +Segment.Logger.Handlers += Logging_Handler; + +void Logging_Handler(Level level, string message, Dict args) { + if (args != null) { + foreach (string key in args.Keys) { + message += String.Format(" {0}: {1},", "" + key, "" + args[key]); + } + } + Console.WriteLine(String.Format("[Analytics] [{0}] {1}", level, message)); +} +``` + +## Anonymizing IP + +We collect IP address for client-side (iOS, Android, Analytics.js and Xamarin) events automatically. + +If you don't want us to record your tracked users' IP in destinations and S3, you can set your event's `context.ip` field to `0.0.0.0` . Our server won't record the IP address of the client for libraries if the `context.ip` field is already set. \ No newline at end of file diff --git a/src/connections/sources/catalog/libraries/mobile/xamarin/index.md b/src/connections/sources/catalog/libraries/mobile/xamarin/index.md index 92137a2088..28bea0b8f1 100644 --- a/src/connections/sources/catalog/libraries/mobile/xamarin/index.md +++ b/src/connections/sources/catalog/libraries/mobile/xamarin/index.md @@ -4,7 +4,14 @@ sourceTitle: 'Xamarin' sourceCategory: 'Mobile' id: wcssVcPJrc support_type: community +custom_ranking: + heading: 0 + position: 99999 --- + +> warning "End-of-Support for Analytics.Xamarin in March 2026" +> End-of-support for the Analytics.Xamarin SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-CSharp](/docs/connections/sources/catalog/libraries/server/csharp/) SDK. If you'd like to migrate to Analytics-CSharp, see the [migration guide](/docs/connections/sources/catalog/libraries/server/csharp/migration-guide/). + Segment's [Xamarin](http://xamarin.com/) Portable Class Library ([PCL](http://developer.xamarin.com/guides/cross-platform/application_fundamentals/pcl/)) is the best way to integrate analytics into your Xamarin application. It lets you record analytics data from your C#, F#, and .NET code, and supports `PCL Profile 4.0 - Profile136`, which targets the following platforms: - .NET Framework 4 or later @@ -20,9 +27,6 @@ The library issues requests that hit our servers, and then we route your data to **Note:** Since Xamarin requires Segment's library to be portable to different builds, Segment can only enable server-side destinations, as opposed to bundling select native SDKs like we do for iOS and Android. Look for the "Server" icon when selecting destinations. For tools for which we offer both bundled and server-side destinations, like Mixpanel, Amplitude, and Google Analytics, Segment's Xamarin library will only be able to use their server-side functionality. -> info "Analytics-CSharp (C#)" -> With [Analytics-CSharp](/docs/connections/sources/catalog/libraries/server/csharp/), you can add Segment analytics to your C# based app which includes Xamarin. If you'd like to migrate to use Analytics-CSharp, see the [Analytics-CSharp migration guide](/docs/connections/sources/catalog/libraries/server/csharp/migration-guide/). - ## Getting Started Clone `Analytics.Xamarin` from [GitHub](https://github.com/segmentio/Analytics.Xamarin)... diff --git a/src/connections/sources/catalog/libraries/server/csharp/index.md b/src/connections/sources/catalog/libraries/server/csharp/index.md index 493245910a..e7428dde74 100644 --- a/src/connections/sources/catalog/libraries/server/csharp/index.md +++ b/src/connections/sources/catalog/libraries/server/csharp/index.md @@ -2,15 +2,24 @@ title: Analytics-CSharp (C#) strat: csharp support_type: flagship +tags: + - C# + - C-sharp + - .NET + - NET + - Xamarin + - Unity + - ASP.NET id: redirect_from: - - '/connections/sources/catalog/libraries/mobile/unity' - - '/connections/sources/catalog/libraries/mobile/csharp/' + - '/connections/sources/catalog/libraries/mobile/unity/' + - '/connections/sources/catalog/libraries/mobile/csharp/' + - '/connections/sources/catalog/libraries/mobile/xamarin/' + - '/connections/sources/catalog/libraries/server/net/' --- With Analytics-CSharp, you can add Segment analytics to your C# based app which includes Unity, Xamarin, .NET. Analytics-CSharp helps you measure your users, product, and business. It unlocks insights into your app's funnel, core business metrics, and whether you have product-market fit. The Analytics-CSharp library is open-source [on GitHub](https://github.com/segmentio/analytics-csharp){:target="_blank"}. - ### Supported platforms These platforms support Analytics-CSharp: * .NET/.NET core/.NET framework @@ -23,7 +32,7 @@ These platforms support Analytics-CSharp: * Unity * iOS * Android - * PC, Mac, Linux + * PC, Mac, Linux ## Getting started @@ -59,19 +68,22 @@ To get started with the Analytics-CSharp library: > info "" > Segment's SDK is designed to be disposable, meaning Segment disposes of objects when the analytics instance is disposed. Segment avoids using singletons for configurations or HTTP clients to prevent memory management issues. If you want to use singletons, create your own HTTP client provider with a singleton HTTP client for better control and management. -| Option Name | Description | -|-----------------------------|---------------| - | `writeKey` *required* | This is your Segment write key. | -| `flushAt` | The default is set to `20`. <br> The count of events at which Segment flushes events. | -| `flushInterval` | The default is set to `30` (seconds). <br> The interval in seconds at which Segment flushes events. | -| `defaultSettings` | The default is set to `{}`. <br> The settings object used as fallback in case of network failure. | -| `autoAddSegmentDestination` | The default is set to `true`. <br> This automatically adds the Segment Destination plugin. You can set this to `false` if you want to manually add the Segment Destination plugin. | - | `apiHost` | The default is set to `api.segment.io/v1`. <br> This sets a default API Host to which Segment sends events. | -| `cdnHost` | The default is set to `cdn-settings.segment.com/v1`. <br> This sets a default cdnHost to which Segment fetches settings. | -| `analyticsErrorHandler` | The default is set to `null`. <br>This sets an error handler to handle errors happened in analytics. | - | `storageProvider` | The default is set to `DefaultStorageProvider`. <br>This sets how you want your data to be stored. `DefaultStorageProvider` is used by default which stores data to local storage. `InMemoryStorageProvider` is also provided in the library. You can also write your own storage solution by implementing `IStorageProvider` and `IStorage`. | -| `httpClientProvider` | The default is set to `DefaultHTTPClientProvider`. <br>This sets a http client provider for analytics use to do network activities. The default provider uses System.Net.Http for network activities. | -| `flushPolicies` | The default is set to `null`. <br>This sets custom flush policies to tell analytics when and how to flush. By default, it converts `flushAt` and `flushInterval` to `CountFlushPolicy` and `FrequencyFlushPolicy`. If a value is given, it overwrites `flushAt` and `flushInterval`. | + + +Option Name | Description +----------------------------|--------------- +`writeKey` *required* | This is your Segment write key. +`flushAt` | The default is set to `20`. <br/> The count of events at which Segment flushes events. +`flushInterval` | The default is set to `30` (seconds). <br/> The interval in seconds at which Segment flushes events. +`defaultSettings` | The default is set to `{}`. <br/> The settings object used as fallback in case of network failure. +`autoAddSegmentDestination` | The default is set to `true`. <br/> This automatically adds the Segment Destination plugin. You can set this to `false` if you want to manually add the Segment Destination plugin. +`apiHost` | The default is set to `api.segment.io/v1`. <br/> This sets a default API Host to which Segment sends events. +`cdnHost` | The default is set to `cdn-settings.segment.com/v1`. <br/> This sets a default cdnHost to which Segment fetches settings. +`analyticsErrorHandler` | The default is set to `null`. <br/>This sets an error handler to handle errors happened in analytics. +`storageProvider` | The default is set to `DefaultStorageProvider`. <br/>This sets how you want your data to be stored. `DefaultStorageProvider` is used by default which stores data to local storage. `InMemoryStorageProvider` is also provided in the library. You can also write your own storage solution by implementing `IStorageProvider` and `IStorage`. +`httpClientProvider` | The default is set to `DefaultHTTPClientProvider`. <br/>This sets a http client provider for analytics use to do network activities. The default provider uses System.Net.Http for network activities. +`flushPolicies` | The default is set to `null`. <br/>This sets custom flush policies to tell analytics when and how to flush. By default, it converts `flushAt` and `flushInterval` to `CountFlushPolicy` and `FrequencyFlushPolicy`. If a value is given, it overwrites `flushAt` and `flushInterval`. +`eventPipelineProvider` | The default is `EventPipelineProvider`. <br/>This sets a custom event pipeline to define how Analytics handles events. The default `EventPipelineProvider` processes events asynchronously. Use `SyncEventPipelineProvider` to make manual flush operations synchronous. ## Tracking Methods @@ -329,6 +341,21 @@ The `reset` method clears the SDK’s internal stores for the current user and g analytics.Reset() ``` +## Enrichment Closure +To modify the properties of an event, you can either write an enrichment plugin that applies changes to all events, or pass an enrichment closure to the analytics call to apply changes to a specific event. + +```c# + analytics.Track("MyEvent", properties, @event => + { + if (@event is TrackEvent trackEvent) + { + // update properties of this event + trackEvent.UserId = "foo"; + } + + return @event; + }); +``` ## Flush policies To more granularly control when events are uploaded you can use `FlushPolicies`. @@ -378,7 +405,7 @@ For example, you might want to disable flushes if you detect the user has no net ### Create your own flush policies -You can create a custom FlushPolicy special for your application needs by implementing the `IFlushPolicy` interface. You can also extend the `FlushPolicyBase` class that already creates and handles the `shouldFlush` value reset. +You can create a custom FlushPolicy special for your application needs by implementing the `IFlushPolicy` interface. You can also extend the `IFlushPolicy` class that already creates and handles the `shouldFlush` value reset. A `FlushPolicy` only needs to implement two of these methods: - `Schedule`: Executed when the flush policy is enabled and added to the client. This is a good place to start background operations, make async calls, configure things before execution diff --git a/src/connections/sources/catalog/libraries/server/csharp/migration-guide.md b/src/connections/sources/catalog/libraries/server/csharp/migration-guide.md index c0ec9d2887..31e68bc75b 100644 --- a/src/connections/sources/catalog/libraries/server/csharp/migration-guide.md +++ b/src/connections/sources/catalog/libraries/server/csharp/migration-guide.md @@ -49,7 +49,16 @@ You can update to Analytics-CSharp in 3 steps: using Segment.Analytics.Compat; ``` -3. *(Optional)* Update calls that resets the anonymous ID. +3. *(Required for .NET users)* Add `UserIdPlugin` to Analytics. + + Analytics-CSharp, by default, attaches an internal state `userId` to each event. The `UserIdPlugin`, instead, attaches the `userId` provided in analytics calls directly to the event. + + <br> After: + ```c# + analytics.Add(new UserIdPlugin()); + ``` + +4. *(Optional)* Update calls that resets the anonymous ID. The old SDK requires you to provide the anonymous ID. The new SDK generates an Anonymous ID for you if you never call `analytics.Identify`. If you call `Identify` and want to go back to anonymous, the new SDK provides a `Reset` function to achieve that. @@ -76,6 +85,104 @@ Change your development settings if you would like to make analytics run synchro <br> After: ```c# var configuration = new Configuration("YOUR WRITE KEY", - useSynchronizeDispatcher: true); + useSynchronizeDispatcher: true, + // provide a defaultSettings in case the SDK failed to fetch settings in test environment + defaultSettings: new Settings + { + Integrations = new JsonObject + { + ["Segment.io"] = new JsonObject + { + ["apiKey"] = "YOUR WRITE KEY" + } + } + } + ); var analytics = new Analytics(configuration); ``` + +## FAQs + +### Should I make Analytics a singleton or scoped in .NET? + +The SDK supports both, but be aware of the implications of choosing one over the other: + +| Feature | Singleton | Scoped | +|--|--|--| +| **Fetch Settings** | Settings are fetched only once at application startup. | Settings are fetched on every request. | +| **Flush** | Supports both async and sync flush. | Requires sync flush. Should flush per event or on page redirect/close to avoid data loss. | +| **Internal State** | The internal state (`userId`, `anonId`, etc.) is shared across sessions and cannot be used. (*This is an overhead we are working to minimize*.) | The internal state is safe to use since a new instance is created per request. | +| **UserId for Events** | Requires adding `UserIdPlugin` and calling analytics APIs with `userId` to associate the correct `userId` with events. | No need for `UserIdPlugin` or passing `userId` in API calls. Instead, call `analytics.Identify()` to update the internal state with the `userId`. Successive events are auto-stamped with that `userId`. | +| **Storage** | Supports both local storage and in-memory storage. | Requires in-memory storage. (*Support for local storage is in progress*.) | + + +In a nutshell, to register Analytics as singleton: + +```c# +var configuration = new Configuration( + writeKey: "YOUR_WRITE_KEY", + // Use in-memory storage to keep the SDK stateless. + // The default storage also works if you want to persist events. + storageProvider: new InMemoryStorageProvider(), + // Use a synchronous pipeline to make manual flush operations synchronized. + eventPipelineProvider: new SyncEventPipelineProvider() +); + +var analytics = new Analytics(configuration); + +// Add UserIdPlugin to associate events with the provided userId. +analytics.Add(new UserIdPlugin()); + +// Call analytics APIs with a userId. The UserIdPlugin will update the event with the provided userId. +analytics.Track("user123", "foo", properties); + +// This is a blocking call due to SyncEventPipelineProvider. +// Use the default EventPipelineProvider for asynchronous flush. +analytics.Flush(); + +// Register Analytics as a singleton. +``` + +To register Analytics as scoped: + +```c# +var configuration = new Configuration( + writeKey: "YOUR_WRITE_KEY", + // Requires in-memory storage. + storageProvider: new InMemoryStorageProvider(), + // Flush per event to prevent data loss in case of a page close. + // Alternatively, manually flush on page close. + flushAt: 1, + // Requires a synchronous flush. + eventPipelineProvider: new SyncEventPipelineProvider() +); + +var analytics = new Analytics(configuration); + +// Update the internal state with a userId. +analytics.Identify("user123"); + +// Subsequent events are auto-stamped with the userId from the internal state. +analytics.Track("foo", properties); + +// This is a blocking call due to SyncEventPipelineProvider. +analytics.Flush(); + +// Register Analytics as scoped. +``` + +### Which JSON library does this SDK use? + +The SDK supports `.netstandard 1.3` and `.netstandard 2.0` and automatically selects the internal JSON library based on the target framework: + +* In `.netstandard 1.3`, the SDK uses `Newtonsoft Json.NET` +* In `.netstandard 2.0`, the SDK uses `System.Text.Json` + +Be ware that both Analytics.NET and Analytics.Xamarin use `Newtonsoft Json.NET`. If you encounter issues where JSON dictionary values are turned into empty arrays, it is likely that: + +1. You are targeting `.netstandard 2.0`. +2. Your properties use`Newtonsoft Json.NET` objects or arrays. + +To resolve this, you can: +* Option 1: Target `.netstandard 1.3` +* Option 2: Upgrade your JSON library to `System.Text.Json` \ No newline at end of file diff --git a/src/connections/sources/catalog/libraries/server/go/index.md b/src/connections/sources/catalog/libraries/server/go/index.md index 9a05cea02e..0dd72b71c7 100644 --- a/src/connections/sources/catalog/libraries/server/go/index.md +++ b/src/connections/sources/catalog/libraries/server/go/index.md @@ -18,7 +18,7 @@ All of Segment's server-side libraries are built for high-performance, so you ca Install `analytics-go` using `go get`: ```bash -go get gopkg.in/segmentio/analytics-go.v3 +go get github.com/segmentio/analytics-go/v3 ``` Then import it and initialize an instance with your source's **Write Key**. Of course, you'll want to replace `YOUR_WRITE_KEY` with your actual **Write Key** which you can find in Segment under your source settings. @@ -26,7 +26,7 @@ Then import it and initialize an instance with your source's **Write Key**. Of c ```go package main -import "gopkg.in/segmentio/analytics-go.v3" +import "github.com/segmentio/analytics-go/v3" func main() { client := analytics.New("YOUR_WRITE_KEY") @@ -414,8 +414,6 @@ for example, with [govendor](https://github.com/kardianos/govendor){:target="_bl govendor fetch github.com/segmentio/analytics-go@v3.0 ``` -Alternatively, you can also use [`gopkg.in`](http://labix.org/gopkg.in){:target="_blank”}. First run `go get gopkg.in/segmentio/analytics-go.v3` and replace your imports with `import "gopkg.in/segmentio/analytics-go.v3"`. - To help with migrating your code, Segment recommends checking out a simple example that is written in [v2](https://github.com/segmentio/analytics-go/blob/v2.0/examples/track.go) and [v3](https://github.com/segmentio/analytics-go/blob/v3.0/examples/track.go) so you can easily see the differences. The first difference you'll notice is that `Client` is now an interface. It has a single method - `Enqueue` that can accept messages of all types. @@ -494,8 +492,8 @@ client.Enqueue(analytics.Track{ UserId: "f4ca124298", Event: "Signed Up", Properties: analytics.NewProperties(). - SetCategory("Enterprise"), - SetCoupon("synapse"), + SetCategory("Enterprise"). + SetCoupon("synapse"). SetDiscount(10), }) ``` diff --git a/src/connections/sources/catalog/libraries/server/java/index.md b/src/connections/sources/catalog/libraries/server/java/index.md index bb5ab58b3c..4fa5569652 100644 --- a/src/connections/sources/catalog/libraries/server/java/index.md +++ b/src/connections/sources/catalog/libraries/server/java/index.md @@ -372,7 +372,7 @@ You can also flush on demand. For example, at the end of your program, you'll wa analytics.flush() ``` -Calling this method will notify the client to upload any events in the queue. +Calling this method notifies the client to upload any events in the queue. If you need a blocking flush implementation, see the [`BlockingFlush` example on GitHub](https://github.com/segmentio/analytics-java/blob/master/analytics-sample/src/main/java/sample/BlockingFlush.java){:target="_blank"}. ## How do I gzip requests? diff --git a/src/connections/sources/catalog/libraries/server/net/analytics-net.md b/src/connections/sources/catalog/libraries/server/net/analytics-net.md new file mode 100644 index 0000000000..92d90c88c3 --- /dev/null +++ b/src/connections/sources/catalog/libraries/server/net/analytics-net.md @@ -0,0 +1,539 @@ +--- +title: Analytics for .NET +repo: analytics.NET +id: 8HWbgPTt3k +hidden: true +support_type: community +--- + +> warning "End-of-Support for Analytics.NET in March 2026" +> End-of-support (EoS) for the Analytics.NET SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-CSharp](/docs/connections/sources/catalog/libraries/server/csharp/) SDK. If you'd like to migrate to Analytics-CSharp, see the [migration guide](/docs/connections/sources/catalog/libraries/server/csharp/migration-guide/). + +Segment's .NET library is the best way to integrate analytics into your .NET application or website. It lets you record analytics data from your ASP.NET, C#, F#, and Visual Basic code. The library issues requests that hit Segment's servers, and then Segment routes your data to any analytics service you enable on our destinations page. This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/Analytics.NET). + +All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make Identify and Track calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers. + +## Getting Started + +### Client-side vs Server-side + +The best analytics installation combines both client-side and server-side tracking. A client-side analytics.js installation allows you to install A/B testing, heat mapping, session recording, and ad optimization tools. A server-side .NET installation allows you to accurately track events that aren't available client-side, such as payments. For best practices, [check out Segment's guide to client-side vs. server-side](/docs/guides/how-to-guides/collect-on-client-or-server/). + + +### Step 1: Add Analytics.js to your ASP.NET Master Page + +1. In your Segment workspace, click Catalog, and search for "Net". +2. Click the .Net tile, then click **Add Source**. +3. Give the new source a label (which you'll use to identify it later), and apply any labels such as `prod` or `test`. + +You will then be presented with an [Analytics.js snippet](/docs/connections/sources/catalog/libraries/website/javascript/quickstart/#step-2-copy-the-segment-snippet). + +Copy the snippet directly into your ASP.NET [Site.master](https://github.com/segmentio/asp.net-example/blob/master/Site.master#L18-L21). + +That snippet will load `analytics.js` onto the page _asynchronously_, so it won't affect your page load speed. + +As soon as that snippet is running on your site, you can start turning on any destinations on your Segment destinations page. In fact, if you reload, you can start seeing Page calls in the [source debugger](/docs/connections/sources/debugger/). + +For more in depth `analytics.js` information, check out Segment's [analytics.js docs](/docs/connections/sources/catalog/libraries/website/javascript/). + +Lots of analytics and marketing tools want to know more information about your users, and what they're doing on your app. In the next section, Segment installs the .NET library and start sending an event every time a new user registers on your site. + +### Step 2: Install Segment's .NET Library + +Your website will use Segment's .NET library to Identify and Track users. You can use [NuGet](http://docs.nuget.org/docs/start-here/using-the-package-manager-console) to install the library. + +```bash +Install-Package Analytics -Version <version> +``` + +**Note:** the Analytics package has a dependency on [Newton.JSON](https://www.newtonsoft.com/json). + +You can also accomplish the same thing in the Visual Studio `Tools` menu, select `Library Package Manager` and then click `Package Manager Console`. + +Now the .NET library needs to know which Segment project you want to send data to. You can initialize the library with your Segment source's `writeKey` in the [Global.asax file](https://github.com/segmentio/asp.net-example/blob/master/Global.asax#L14). Then you can use the `Analytics` singleton in any controller you want: + +```csharp +<%@ Application Language="C#" %> +<%@ Import Namespace="ASP.NET_Example" %> +<%@ Import Namespace="System.Web.Optimization" %> +<%@ Import Namespace="System.Web.Routing" %> +<%@ Import Namespace="Segment" %> + +<script runat="server"> + + void Application_Start(object sender, EventArgs e) + { + RouteConfig.RegisterRoutes(RouteTable.Routes); + BundleConfig.RegisterBundles(BundleTable.Bundles); + // this is your project's write key + Segment.Analytics.Initialize("x24b2rmtvv"); + } + +</script> +``` + +```csharp +using Segment; + +// initialize the project #{source.owner.login}/#{source.slug}... +Analytics.Initialize("YOUR_WRITE_KEY"); +``` + +You only need to initialize once at the start of your program. You can then keep using the `Analytics` singleton anywhere in your code. + +The default initialization settings are production-ready and queue messages on another thread before sending any requests. In development you might want to use [development settings](/docs/connections/sources/catalog/libraries/server/net/#development-settings). + +### Regional configuration +{% include content/regional-config.md %} + +## Identify + +> success "" +> For any of the different methods described on this page, you can replace the properties and traits in the code samples with variables that represent the data collected. + +If you're not familiar with the Segment Specs, take a look to understand what the [Identify](/docs/connections/spec/identify/) method does. + +The Identify call has the following fields: + +<table class="api-table"> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> + <tr> + <td>`Traits` _Traits, optional_</td> + <td>A dictionary of traits you know about the user. Things like: <code>email</code>, <code>name</code> or <code>friends</code>.</td> + </tr> + <tr> + <td>`options` _Options, optional_</td> + <td>A custom object which allows you to set a timestamp, an anonymous cookie id, or enable specific destinations.</td> + </tr> +</table> + +An example call would look like: + +```csharp +Analytics.Client.Identify("019mr8mf4r", new Traits() { + { "name", "#{ user.name }" }, + { "email", "#{ user.email }" }, + { "friends", 29 } +}); +``` + +## Track + +If you're not familiar with the Segment Spec, take a look to understand what the [Track](/docs/connections/spec/track/) method does. + +The Track call has the following fields: + +<table class="api-table"> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> + <tr> + <td>`event` _String_</td> + <td>The name of the event you're tracking. Segment recommends human-readable names like <strong>Song Played</strong> or <strong>Status Updated</strong>.</td> + </tr> + <tr> + <td>`properties` _Properties, optional_</td> + <td>A dictionary of properties for the event. If the event was <strong>Product Added</strong> to cart, it might have properties like <code>price</code> or <code>product</code>.</td> + </tr> + <tr> + <td>`options` _Options, optional_</td> + <td>A custom object which allows you to set a timestamp, an anonymous cookie id, or enable specific destinations.</td> + </tr> +</table> + +An example call would look like: + +```csharp +Analytics.Client.Track("019mr8mf4r", "Item Purchased", new Properties() { + { "revenue", 39.95 }, + { "shipping", "2-day" } +}); +``` + +## Page + +If you're not familiar with the Segment Specs, take a look to understand what the [Page](/docs/connections/spec/page/) method does. + +The Page call has the following fields: + +<table class="api-table"> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> + <tr> + <td>`name` _String_</td> + <td>The webpage name you're tracking. Segment recommends human-readable names like <strong>Login</strong> or <strong>Register</strong>.</td> + </tr> + <tr> + <td>`category` _String_</td> + <td>The webpage category. If you're making a news app, the category could be <strong>Sports</strong>.</td> + </tr> + <tr> + <td>`properties` _Properties, optional_</td> + <td>A dictionary of properties for the webpage visit. If the event was <strong>Login</strong>, it might have properties like <code>path</code> or <code>title</code>.</td> + </tr> + <tr> + <td>`options` _Options, optional_</td> + <td>A custom object which allows you to set a timestamp, an anonymous cookie id, or enable specific destinations.</td> + </tr> +</table> + +Example Page call: + +```csharp +Analytics.Client.Page("019mr8mf4r", "Login", new Properties() { + { "path", "/login" }, + { "title", "Initech Login" } +}); +``` + +## Screen + +If you're not familiar with the Segment Specs, take a look to understand what the [Screen](/docs/connections/spec/screen/) method does. + +The Screen call has the following fields: + +<table class="api-table"> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> + <tr> + <td>`name` _String_</td> + <td>The screen name you're tracking. Segment recommends human-readable names like <strong>Login</strong> or <strong>Register</strong>.</td> + </tr> + <tr> + <td>`category` _String_</td> + <td>The screen category. If you're making a news app, the category could be <strong>Sports</strong>.</td> + </tr> + <tr> + <td>`properties` _Properties, optional_</td> + <td>A dictionary of properties for the screen view. If the screen is <strong>Restaurant Reviews</strong>, it might have properties like <code>reviewCount</code> or <code>restaurantName</code>.</td> + </tr> + <tr> + <td>`options` _Options, optional_</td> + <td>A custom object which allows you to set a timestamp, an anonymous cookie id, or enable specific destinations.</td> + </tr> +</table> + +Example Screen call: + +```csharp +Analytics.Client.Screen("019mr8mf4r", "Register", new Properties() { + { "type", "facebook" } +}); +``` + +## Group + +If you're not familiar with the Segment Specs, take a look to understand what the [Group](/docs/connections/spec/group/) method does. + +The Group call has the following fields: + +<table class="api-table"> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> + <tr> + <td>`groupId` _String_</td> + <td>The ID for this group in your database.</td> + </tr> + <tr> + <td>`traits` _Traits, optional_</td> + <td>A dictionary of traits you know about the group. Things like: <code>ma,e</code> or <code>website</code>.</td> + </tr> + <tr> + <td>`options` _Options, optional_</td> + <td>A custom object which allows you to set a timestamp, an anonymous cookie id, or enable specific destinations.</td> + </tr> +</table> + +Example Group call: + +```csharp +Analytics.Client.Group("userId", "groupId", new Traits() { + { "name", "Initech, Inc." }, + { "website", "http://www.example.com" } +}); +``` + +## Alias + +If you're not familiar with the Segment Specs, take a look to understand what the [Alias](/docs/connections/spec/alias/) method does. + +The Alias call has the following fields: + +<table class="api-table"> + <tr> + <td>`previousId` _String_</td> + <td>The previousId for this user.</td> + </tr> + <tr> + <td>`userId` _String_</td> + <td>The ID for this user in your database.</td> + </tr> +</table> + +Example Alias call: + +```csharp +Analytics.Client.Alias("previousId", "userId") +``` + +Here's a full example of how you might use the Alias call: + +```csharp +// the anonymous user does actions ... +Analytics.Client.Track("anonymous_user", "Anonymous Event"); +// the anonymous user signs up and is aliased +Analytics.Client.Alias("anonymous_user", "identified@example.com"); +// the identified user is identified +Analytics.Client.Identify("identified@example.com", new Traits() { plan: "Free" }); +// the identified user does actions ... +Analytics.Client.Track("identified@example.com", "Identified Action"); +``` + +--- + +## Development Settings + +You can use this initialization during development while testing the library. `SetAsync(false)` will make sure the library makes a request to Segment's servers every time it's called. + +```csharp +Analytics.Initialize("YOUR_WRITE_KEY", new Config().SetAsync(false)); +``` + +Don't forget to set async back to `true` for production, so that you can advantage of asynchronous flushing on a different thread. + + +## Historical Import + +You can import historical data by adding the `timestamp` argument to any of your method calls. This can be helpful if you've just switched to Segment. + +Historical imports can only be done into destinations that can accept historical timestamped data. Most analytics tools like Mixpanel, Amplitude, Kissmetrics, etc. can handle that type of data just fine. One common destination that does not accept historical data is Google Analytics since their API cannot accept historical data. + +**Note:** If you're tracking things that are happening right now, leave out the `timestamp` and Segment's servers will timestamp the requests for you. + +```csharp +Analytics.Client.Track("sadi89e2jd", "Workout Logged", new Properties() { + { "distance", "10 miles" }, + { "city", "Boston" }, +}, new Options() + .SetTimestamp(new DateTime(2010, 1, 18)) +); +``` + +## Selecting Destinations + +The Alias, Group, Identify, Page, and Track calls can all be passed an object of `options` that lets you turn certain destinations on or off. By default all destinations are enabled. + +You can specify which analytics destinations you want each action to go to. + +```csharp +Analytics.Client.Identify("hj2kf92ds212", new Traits() { + { "email", "tom@example.com" }, + { "name", "Tom Smykowski" }, +}, new Options() + .SetIntegration("all", false) + .SetIntegration("Kissmetrics", true) +); +``` + +In this case, you're specifying that you want this identify to only go to Kissmetrics. `"all", false` says that no destination should be enabled unless otherwise specified, and `{ "Kissmetrics", true }` turns on Kissmetrics. + +Destination flags are **case sensitive** and match [the destination's name in the docs](/docs/connections/destinations/) (for example, "AdLearn Open Platform", "awe.sm", or "MailChimp"). + +**Note:** + +- Business Tier users can filter Track calls right from the Segment UI on your source schema page. Segment recommends using the UI if possible since it's a much simpler way of managing your filters and can be updated with no code changes on your side. + +- If you are on a grandfathered plan, events sent server-side that are filtered through the Segment dashboard still count towards your API usage. + +## Context + +If you're running a web server, you might want to send [context variables](https://segment.com/docs/connections/spec/common/#context) such as `userAgent` or `ip` with your `page` or `screen` calls. You can do so by setting the `Context` in the `Options` object. + +```csharp +Analytics.Client.Page("019mr8mf4r", "Login", new Properties() { + { "path", "/login" }, + { "title", "Initech Login" } +}, new Options() + .SetContext (new Context () { + { "userAgent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}, + { "ip", "12.212.12.49" }, + { "language", "en-us" }, + { "Google Analytics", new Dict() { + { "clientId", User.ClientId } + } + } +})); +``` + +## Anonymous ID + +All libraries require all messages to have either a `userId` or `anonymousId`. If you would like to use an `anonymousId`, which you should for anonymous users, you can pass it in with options. + +```csharp +Analytics.Client.Page(null, "Login", new Properties(), new Options() + .SetAnonymousId("some-id")); +``` + +## Nested Properties + +You can provide nested properties, like so: + +```csharp +Analytics.Client.Identify("hj2kf92ds212", new Traits() { + { "email", "tom@example.com" }, + { "name", "Tom Smykowski" }, + { "address", new Dict() { + { "street", "123 Fake Street" }, + { "city", "Boston" } + }} +}); +``` + + +## Batching + +Segment's libraries are built to support high performance environments. That means it is safe to use Analytics.NET on a web server that's serving hundreds of requests per second. + +By default (in async mode), this library starts a single separate thread on initialization, and flushes all messages on that thread. That means every method you call **does not** result in an HTTP request, but is queued in memory instead. Messages are flushed in batch in the background, which allows for much faster operation. + +There is a maximum of `500KB` per batch request and `32KB` per call. + +{% include content/tracking-api-limit.md %} + + + +### How do I turn batching off? + +Sometimes you might not want batching (for example, when debugging, or in short-lived programs). You can turn off batching by setting the `async` argument to `false`, and your requests will always be sent in a blocking manner. + +```csharp +Analytics.Initialize("YOUR_WRITE_KEY", new Config().SetAsync(false)); +``` + + +### What happens if there are just too many messages? + +If the module detects that it can't flush faster than it's receiving messages, it'll simply stop accepting messages. This means your program will never crash because of a backing up analytics queue. The maximum size of the queue defaults to `10000`, and here's how you can change it: + +```csharp +Analytics.Initialize("YOUR_WRITE_KEY", new Config().SetMaxQueueSize(10000)); +``` + + +### How do I flush right now?! + +You can also flush on demand. For example, at the end of your program, you'll want to flush to make sure there's nothing left in the queue. Just call the `Flush` method: + +```csharp +Analytics.Client.Flush(); +``` + +This method will block until all messages are flushed. + + +### How do I dispose of the flushing thread at the end of my program? + +The Analytics client implements the `IDisposable` interface, and will turn off its flushing thread when you call `Dispose`. + +```csharp +Analytics.Client.Dispose(); +``` + + +## Configuration + +If you hate defaults, than you'll love how configurable the Analytics.NET is. Check out these gizmos: + +```csharp +Analytics.Initialize("YOUR_WRITE_KEY", new Config() + .SetAsync(true) + .SetTimeout(TimeSpan.FromSeconds(10)) + .SetHost("https://events.eu1.segmentapis.com") + .SetMaxQueueSize(10000));)); +``` + +<table class="DefinitionTable"> + <tr> + <td>`async` _boolean_</td> + <td><code>true</code> to flush on a different thread, <code>false</code> to flush immediately on the same thread.</td> + </tr> + <tr> + <td>`timeout` _TimeSpan_</td> + <td>The amount of time to wait before calling the HTTP request a timeout.</td> + </tr> + <tr> + <td>`host` _string_</td> + <td>The API host server address - can be set with the EU endpoint "https://events.eu1.segmentapis.com" instead of default server "https://api.segment.io"</td> + </tr> + <tr> + <td>`maxQueueSize` _int_</td> + <td>The maximum number of messages to allow into the queue before no new message are accepted.</td> + </tr> +</table> + + +## Multiple Clients + +Different parts of your app may require different Segment. In that case, you can initialize different `Analytics.Client` instances instead of using the singleton. + +```csharp +Client client = new Client("YOUR_WRITE_KEY", new Config() + .SetAsync(false) + .SetTimeout(TimeSpan.FromSeconds(10)) + .SetMaxQueueSize(10000)); + +client.Track(...); +``` + + +## Troubleshooting + +{% include content/troubleshooting-intro.md %} +{% include content/troubleshooting-server-debugger.md %} +{% include content/server-side-troubleshooting.md %} + +### Logging + +`Analytics.NET` has detailed logging, which you can enable by attaching your own handler, like so: + +```csharp +using Segment; + +Logger.Handlers += LoggingHandler; + +static void LoggingHandler(Logger.Level level, string message, IDictionary<string, object> args) +{ + if (args != null) + { + foreach (string key in args.Keys) + { + message += String.Format(" {0}: {1},", "" + key, "" + args[key]); + } + } + Console.WriteLine(String.Format("[Analytics] [{0}] {1}", level, message)); +} +``` + +Note: the logger requires a minimum version of .NET Core 2.1. + +### Json.NET + +`Analytics.NET` uses [Json.NET](http://json.codeplex.com/) to serialize JSON payloads. If you have an older version of `Json.NET` in your build path, `Analytics.NET` could create incomplete JSON payloads, which can cause strange API responses. If you're seeing issues, try updating `Json.NET`. + + +### Mono + +`Analytics.NET` has been tested and works in Mono. + +### .NET Core +`Analytics.NET` has been tested and works with .NET Core 3.1 and 3.4.2 beta. diff --git a/src/connections/sources/catalog/libraries/server/net/index.md b/src/connections/sources/catalog/libraries/server/net/index.md index bead3e9e5a..53a6d5eee3 100644 --- a/src/connections/sources/catalog/libraries/server/net/index.md +++ b/src/connections/sources/catalog/libraries/server/net/index.md @@ -3,17 +3,18 @@ title: Analytics for .NET repo: analytics.NET id: 8HWbgPTt3k support_type: community -tags: - - C# - - C-sharp +custom_ranking: + heading: 0 + position: 99999 --- + +> warning "End-of-Support for Analytics.NET in March 2026" +> End-of-support (EoS) for the Analytics.NET SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-CSharp](/docs/connections/sources/catalog/libraries/server/csharp/) SDK. If you'd like to migrate to Analytics-CSharp, see the [migration guide](/docs/connections/sources/catalog/libraries/server/csharp/migration-guide/). + Segment's .NET library is the best way to integrate analytics into your .NET application or website. It lets you record analytics data from your ASP.NET, C#, F#, and Visual Basic code. The library issues requests that hit Segment's servers, and then Segment routes your data to any analytics service you enable on our destinations page. This library is open-source, so you can [check it out on GitHub](https://github.com/segmentio/Analytics.NET). All of Segment's server-side libraries are built for high-performance, so you can use them in your web server controller code. This library uses an internal queue to make Identify and Track calls non-blocking and fast. It also batches messages and flushes asynchronously to Segment's servers. -> info "Analytics-CSharp (C#)" -> With [Analytics-CSharp](/docs/connections/sources/catalog/libraries/server/csharp/), you can add Segment analytics to your C# based app which includes .NET. If you'd like to migrate to use Analytics-CSharp, see the [Analytics-CSharp migration guide](/docs/connections/sources/catalog/libraries/server/csharp/migration-guide/). - ## Getting Started ### Client-side vs Server-side diff --git a/src/connections/sources/catalog/libraries/server/net/quickstart.md b/src/connections/sources/catalog/libraries/server/net/quickstart.md index b90cc059c2..937f737bb9 100644 --- a/src/connections/sources/catalog/libraries/server/net/quickstart.md +++ b/src/connections/sources/catalog/libraries/server/net/quickstart.md @@ -1,7 +1,13 @@ --- title: 'Quickstart: ASP.NET' +custom_ranking: + heading: 0 + position: 99999 --- +> warning "End-of-Support for Analytics.NET in March 2026" +> End-of-support for the Analytics.NET SDK is scheduled for March 2026. Segment's future development efforts concentrate on the new [Analytics-CSharp](/docs/connections/sources/catalog/libraries/server/csharp/) SDK. If you'd like to migrate to Analytics-CSharp, see the [migration guide](/docs/connections/sources/catalog/libraries/server/csharp/migration-guide/). + This tutorial will help you start sending analytics data from your ASP.NET app to Segment and any of our destinations, using our .NET and Analytics.js library. As soon as you're set up you'll be able to turn on analytics tools, ad conversion pixels, email tools and lots of other destinations with the flip of a switch! If you want to dive deeper at any point, check out the [.NET library reference](/docs/connections/sources/catalog/libraries/server/net). diff --git a/src/connections/sources/catalog/libraries/server/pixel-tracking-api/index.md b/src/connections/sources/catalog/libraries/server/pixel-tracking-api/index.md index 198a166ca9..66a2b1ba51 100644 --- a/src/connections/sources/catalog/libraries/server/pixel-tracking-api/index.md +++ b/src/connections/sources/catalog/libraries/server/pixel-tracking-api/index.md @@ -55,6 +55,12 @@ Each endpoint *always* responds with a `200 <empty-gif>`, even if an error occur eyJ3cml0ZUtleSI6ICJZT1VSX1dSSVRFX0tFWSIsICJ1c2VySWQiOiAiMDI1cGlrYWNodTAyNSIsICJldmVudCI6ICJFbWFpbCBPcGVuZWQiLCAicHJvcGVydGllcyI6IHsgICAic3ViamVjdCI6ICJUaGUgRWxlY3RyaWMgRGFpbHkiLCAgICJlbWFpbCI6ICJwZWVrQXRNZUBlbWFpbC5wb2tlIiB9fQ ``` +##### If you choose not to encode your payload, send it like this instead: + +``` +https://api.segment.io/v1/pixel/track?userId=user_123&event=Email Opened&properties.subject=The Electric Daily&properties.email=jane.kim@example.com&writeKey=<YOUR_WRITE_KEY> +``` + ##### Add an image tag to your email newsletter with `src` pointing to a Pixel API route: ```html diff --git a/src/connections/sources/catalog/libraries/website/javascript/index.md b/src/connections/sources/catalog/libraries/website/javascript/index.md index ceb0222f42..0c0579d06f 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/index.md +++ b/src/connections/sources/catalog/libraries/website/javascript/index.md @@ -138,10 +138,11 @@ The only required argument on Track calls in Analytics.js is an `event` name str #### Track link -`trackLink` is a helper method that attaches the `track` call as a handler to a link. -With `trackLink`, Analytics.js inserts a timeout of 300 ms to give the `track` call more time. This is useful when a page would redirect before the `track` method could complete all requests. +`trackLink` is a helper method that attaches a Track call as a handler to a link. When a user clicks the link, `trackLink` delays the navigation event by 300ms before proceeding, ensuring the Track request has enough time to send before the page starts unloading. -The `trackLink` method follows the format below. +This is useful when a page redirects too quickly, preventing the Track method from completing all requests. By momentarily holding off navigation, `trackLink` increases the likelihood that tracking data reaches Segment and destinations successfully. + +The `trackLink` method follows the format below: ```js analytics.trackLink(element, event, [properties]) @@ -575,12 +576,24 @@ analytics.load('writekey', { disable: (cdnSettings) => true }) ## Retries -When enabled, Analytics.js automatically retries network and server errors. With persistent retries, Analytics.js can: +Analytics.js automatically retries sending events when there are network or server errors. This helps reduce data loss in cases where the user is offline or the Segment API is temporarily unavailable. + +When retries are enabled, Analytics.js can: + +- **Track users offline.** Events get stored locally and sent once the user comes back online. +- **Handle intermittent network issues.** Events are queued and retried until they’re successfully delivered. + +Here's how retries work: + +- Events are stored in `localStorage` when available, with an in-memory fallback. +- Analytics.js retries up to 10 times, with increasing backoff intervals between attempts. +- A maximum of 100 events can be queued to avoid using too much local storage. + +For more information, see the [destination retries documentation](/docs/connections/destinations/#retries). -- **Support offline tracking**. Analytics.js queues your events and delivers them when the user comes back online. -- **Better handle network issues**. When your application can't connect to the Segment API, Segment continues to store the events on the browser to prevent data loss. +### About the `_metadata` field -Analytics.js stores events in `localStorage` and falls back to in-memory storage when `localStorage` is unavailable. It retries up to 10 times with an incrementally increasing back-off time between each retry. Analytics.js queues up to 100 events at a time to avoid using too much of the device's local storage. See the [destination Retries documentation](/docs/connections/destinations/#retries) to learn more. +Each time an event is retried, Segment recalculates its `_metadata` field. This field helps indicate whether the event was sent to a device-mode destination. If you change your destination settings between retries, the updated `_metadata` may not reflect the original attempt, which could affect downstream debugging or delivery visibility. ## Delivery strategy configuration diff --git a/src/connections/sources/custom-domain.md b/src/connections/sources/custom-domain.md index 0a4061f950..a73533ebe6 100644 --- a/src/connections/sources/custom-domain.md +++ b/src/connections/sources/custom-domain.md @@ -37,6 +37,7 @@ Custom Domain supports the following sources: - [Python](/docs/connections/sources/catalog/libraries/server/python/) - [Ruby](/docs/connections/sources/catalog/libraries/server/ruby/) - [.NET](/docs/connections/sources/catalog/libraries/server/net/) +- [Pixel API](/docs/connections/sources/catalog/libraries/server/pixel-tracking-api/) ## Getting started @@ -73,6 +74,7 @@ For non-Analytics.js sources, you’ll need to update your implementation to use - **Server Sources**: When sending data from server-side implementations, use the `host` configuration parameter to send data to your subdomain instead of the default Segment domain. - **Mobile Sources**: When sending data from mobile implementations, use the `apiHost` configuration parameter to send data to your subdomain instead of the default Segment domain. +- **Pixel API Sources**: When sending data from Pixel implementations, modify the endpoint from Segment's default domain (`https://api.segment.io/v1/pixel/track`) to your custom domain (`https://api.mysubdomain.mydomain.com/v1/pixel/track`). ### Is there a benefit in migrating server-side sources over to client-side with Custom Domain? Server-side tracking is generally more reliable than client-side tracking. For example, when tracking data client-side, you might lose data when users might block all cookies or use tools that interfere with network requests leaving the browser. diff --git a/src/connections/sources/index.md b/src/connections/sources/index.md index 9e461d4da3..e49f710b92 100644 --- a/src/connections/sources/index.md +++ b/src/connections/sources/index.md @@ -123,13 +123,11 @@ Each of these tabs displays an event count, which is the total number of events Segment's Mobile SDKs are the best way to simplify your iOS, Android, and Xamarin app tracking. Try them over server-side sources as the default installation for any mobile app. - [AMP](/docs/connections/sources/catalog/libraries/mobile/amp) -- [Android](/docs/connections/sources/catalog/libraries/mobile/android) -- [Android Wear](/docs/connections/sources/catalog/libraries/mobile/android/wear) -- [iOS](/docs/connections/sources/catalog/libraries/mobile/ios) -- [Kotlin](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) +- [Android (Kotlin)](/docs/connections/sources/catalog/libraries/mobile/kotlin-android/) - [React Native](/docs/connections/sources/catalog/libraries/mobile/react-native) -- [Swift](/docs/connections/sources/catalog/libraries/mobile/swift/) -- [Xamarin](/docs/connections/sources/catalog/libraries/mobile/xamarin) +- [iOS (Swift)](/docs/connections/sources/catalog/libraries/mobile/swift/) +- [Xamarin](/docs/connections/sources/catalog/libraries/server/csharp) +- [Unity](/docs/connections/sources/catalog/libraries/server/csharp/) > info "Analytics-Flutter library" > The Analytics-Flutter library is currently only available in pilot phase and is governed by Segment's [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. If you'd like to try out this library, access the [Analytics-Flutter GitHub repository](https://github.com/segmentio/analytics_flutter){:target="_blank"}. @@ -146,7 +144,7 @@ Segment's server-side sources let you send analytics data directly from your ser - [PHP](/docs/connections/sources/catalog/libraries/server/php/) - [Python](/docs/connections/sources/catalog/libraries/server/python/) - [Ruby](/docs/connections/sources/catalog/libraries/server/ruby/) -- [.NET](/docs/connections/sources/catalog/libraries/server/net/) +- [.NET](/docs/connections/sources/catalog/libraries/server/csharp/) > info "Cloud-mode tracking" > Server-side data management is when tag sends data to the Segment servers, which then passes that data to the destination system. diff --git a/src/engage/audiences/index.md b/src/engage/audiences/index.md index 4fb33cd1e3..a52c924ba3 100644 --- a/src/engage/audiences/index.md +++ b/src/engage/audiences/index.md @@ -66,6 +66,8 @@ With SQL Traits, you can use data in your warehouse to build an audience. By run When you build an audience based on audience membership, you use existing audiences as criteria for creating new audiences. You can include or exclude profiles based on their membership in other audiences, allowing you to generate more specific audience segments. +To see which audiences reference a particular audience in their definitions, select the **Consumers** tab when viewing a classic or linked audience. This tab lists all dependent audiences, to help you understand and manage relationships between your audience segments. + ### Time comparison You can use the following time comparison operators in your audience definition: @@ -104,8 +106,31 @@ See [Account-level Audiences](/docs/engage/audiences/account-audiences) for more You can send audiences and computed traits to third-party services in Segment's [Destinations catalog](/docs/connections/destinations/). +Segment's Connections pipeline first collects and sends events from your Source to your Destination. Built on top of Connections, Engage then uses the same Source events to let you create Audiences and computed traits within Segment. You can then send the Audience or computed trait you've built to your Destination(s). + +> info "" +> Because Engage only sends Audiences and computed traits to Destinations, it doesn't replace a standard event pipeline. Connect a Source directly to a Destination if you want the Destination to receive all events that Segment gathers. + +### Connect your Audience to a Destination + +> warning "Audience Keys" +> Avoid using the same Audience key twice, even if you've deleted the original Audience. + +Once you've previewed your Audience, you can choose to connect it to a Destination or keep the Audience in Segment and export it as a CSV file download. + +If you already have Destinations set up in Segment, you can import the configuration from one of your existing sources to Engage. You can only connect one Destination configuration per Destination type. + +When you create an Audience, Segment starts syncing your Audience to the Destinations you selected. Audiences are either sent to Destinations as a boolean user-property or a user-list, depending on what the Destination supports. Read more about [supported Destinations](/docs/engage/using-engage-data/#compatible-engage-destinations) in the Engage documentation. + +For account-level audiences, you can send either a [Group](/docs/connections/spec/group) call and/or [Identify](/docs/connections/spec/identify) call. Group calls will send one event per account, whereas Identify calls will send an Identify call for each user in the account. This means that even if a user hasn't performed an event, Segment will still set the account-level computed trait on that user. + +Because most marketing tools are still based at the user level, it is often important to map this account-level trait onto each user within an account. See [Account-level Audiences](/docs/engage/audiences/account-audiences) for more information. + For step-by-step instructions on how to connect an audience to a destination, see [Send Audience Data to Destinations](/docs/engage/audiences/send-audience-data/). +> info "Historical data behavior for new destinations" +> When you connect a new destination to an existing audience, Engage backfills historical data if the **Include Historical Data** option is enabled in the audience settings. If this setting is disabled, only new data gets sent. To sync all historical data manually, [contact Support](mailto:friends@segment.com) to request a resync. + ## Understanding compute times Because a number of factors (like system load, backfills, or user bases) determine the complexity of an Audience, some compute times take longer than others. @@ -168,7 +193,7 @@ To create a new Audience or Trait: 2. Configure and preview your Audience or Trait. - A lightning bolt next to `Realtime Enabled` indicates that the computation updates in real-time. -- By default, Segment queries all historical data to set the current value of the computed trait and Audience. Backfill computes historical data up to the point of audience creation. You can uncheck **Include Historical Data** to compute values for the Audience or trait without historical data. With backfill disabled, the trait or Audience only uses the data that arrives after you create it. +- Configure the **Include Historical Event Data** option to limit how far back event data is processed by setting a lookback window (for example, the “last 90 days”). Unchecking **Include Historical Event Data** computes values without historical event data, using only data arriving after audience creation. 3. Select destinations to connect, then review and create your Audience or Trait. @@ -202,6 +227,78 @@ Engage then processes your realtime Audience or Trait edits. While the edit task > warning "" > You can't edit an audience to include anonymous users. If you need to include anonymous profiles, recreate the audience with the appropriate conditions +## Monitor the health of your Audience syncs + +Use Segment's [Delivery Overview](#delivery-overview) and [Alerting](#alerting) features to monitor the health of your Audience syncs and get notifications when event volume spikes or drops. + +### Delivery Overview + +Delivery Overview is a visual observability tool designed to help Segment users diagnose event delivery issues for any event-streaming destination receiving events from Engage Audiences. + +Delivery Overview has three core features: +- [Pipeline view](/docs/connections/delivery-overview/#pipeline-view): A visual overview of each step your data takes during the delivery process - from when your audiences outputs events to when events are successfully delivered to your connected destination. +- [Breakdown table](/docs/connections/delivery-overview/#breakdown-table): If you select a step in the pipeline view, you can see more details about the events that were processed at each pipeline step. +- [Discard table](/docs/connections/delivery-overview/#discard-table): If you select an event in a breakdown table, you can see more details about the events that failed or were filtered out of your process. You can also inspect samples of the discarded events. + +For more information about the breakdown and discard tables, see the [Delivery Overview](/docs/connections/delivery-overview/) documentation. + +To view Delivery Overview for an Audience: +1. From your Segment workspace's home page, navigate to **Engage > Audiences**. +2. Find an Audience, click the **(...)** menu, and select Delivery Overview. +3. On the Delivery Overview page, select the Audience dropdown to filter by a specific Audience, select the Date range dropdown to filter by a specific time period, or use the Show metrics toggle to view your metrics as percentages. + +#### Steps in the pipeline view + +By default, Segment displays Delivery Overview information for all Audiences connected to your destination. You can filter your Delivery Overview pipeline view by an individual Audience for more granular data. + +You can also further refine the data displayed on the pipeline view using the time picker and the metric toggle, located under the destination header. With the time picker, you can specify a time period (last 10 minutes, 1 hour, 24 hours, 7 days, 2 weeks, or a custom date range over the last two weeks) for which you’d like to see data. With the metric toggle, you can switch between seeing metrics represented as percentages (for example, _85% of events_ or _a 133% increase in events_) or as counts (_13 events_ or _an increase of 145 events_.) Delivery Overview shows percentages by default. + +> info "Linked Audiences have additional filtering functionality" +> Linked Audiences users can filter the Delivery Overview event pipeline by [Linked Audience events](/docs/engage/audiences/linked-audiences/#step-2c-define-how-and-when-to-trigger-an-event-to-your-destination). For more information, see the [Linked Audiences](/docs/engage/audiences/linked-audiences/#delivery-overview-for-linked-audiences) documentation. + +Audiences have the following steps in the pipeline view: +- **Events that Segment created for your activation**<sup>*</sup>: The number of events for each compute depends on the changes detected in your audience membership. +- **Filtered at source**: Events discarded by Protocols: either by the [schema settings](/docs/protocols/enforce/schema-configuration/) or [Tracking Plans](/docs/protocols/tracking-plan/create/). +- **Filtered at destination**: If any events aren’t eligible to be sent (for example, due to destination filters, insert function logic, and so on), Segment displays them at this step. +- **Events pending retry**: A step that reveals the number of events that are awaiting retry. Unlike the other steps, you cannot click into this step to view the breakdown table. +- **Failed delivery**: Events that Segment _attempted_ to deliver to your destination, but that ultimately _failed_ to be delivered. Failed delivery might indicate an issue with the destination, like invalid credentials, rate limits, or other error statuses received during delivery. +- **Successful delivery**: Events that Segment successfully delivered to your destination. You’ll see these events in your downstream integrations. + +<sup>*</sup>_The "Events from audience" step is currently only available for Linked Audiences._ + +### Alerting + +Create alerts related to the performance and throughput of Audience syncs and receive in-app, email, and Slack notifications when event volume fluctuations occur. + +> info "Generate a Slack webhook to receive Slack notifications" +> To receive an alert in a Slack channel, you must first create a Slack webhook. For more information about Slack webhooks, see Slack's [Sending messages using incoming webhooks](https://api.slack.com/messaging/webhooks){:target="_blank”} documentation. + +To access Audience alerting, navigate to **Engage > Audiences**, select an Audience, and click the Alerts tab. + +On the Alerts tab, you can create new alerts and view all active alerts for this connection. You can only edit or delete the alerts that you create, unless you have the [Workspace Owner role](/docs/segment-app/iam/roles/). + +#### Activation event health spikes or drops + +You can create an Activation event health spikes or drops alert that notifies you when events sent from your audience to a downstream destination have failures to a destination above a certain threshold. For example, if you set a change percentage of 4% and your destination received 100 events from your Audience over the first 24 hours, Segment would notify you the following day if your destination ingested fewer than 96 or more than 104 events. + +To create an Activation event health spikes or drops alert: +1. From your Segment workspace's home page, navigate to **Engage > Audiences**. +2. Select the Audience you want to create an alert for, select the Alerts tab, and click **Create alert**. +3. On the Create alert sidesheet, select the destination for which you'd like to monitor event health. +4. Enter a percentage threshold to trigger activation event health notifications. +5. Select one or more of the following alert channels: + - **Email**: Select this to receive notifications at the provided email address. + - **Slack**: Select this to send alerts to one or more channels in your workspace. + - **In-app**: Select this to receive notifications in the Segment app. To view your notifications, select the bell next to your user icon in the Segment app. +6. Click **Save**. + +To make changes to an Activation event health spikes or drops alert, select the icon in the Actions column for the alert and click **Edit**. + +To delete a Activation event health spikes or drops alert, select the icon in the Actions column for the alert and click **Delete**. + +> info "Deleting alerts created by other users requires Workspace Owner role" +> All users can delete alerts that they created, but only those with [Workspace Owner role](/docs/segment-app/iam/roles/) can delete alerts created by other users. + ## Access your Audiences using the Profiles API You can access your Audiences using the Profile API by querying the `/traits` endpoint. For example, you can query for `high_value_user` property with the following `GET` request: @@ -277,5 +374,8 @@ The audience builder accepts CSV and TSV lists. This error occurs when creating audiences that reference each other, meaning audience X refers to audience Y in its trigger condition, and later you attempt to modify audience Y's trigger condition to refer back to audience X. To avoid this error, ensure that the audiences do not reference each other in their conditions. +### Can I build an audience based on `context.traits` in a Track event? +No. Traits located in the `context.traits` object of a Track event aren’t available in the Event Properties section of the Audience Builder. You can only use top-level event properties to define event-based audience conditions. + ### How does the historical data flag work? -Including historical data lets you take past information into account. You can only exclude historical data for real-time audiences. For batch audiences, Segment includes historical data by default. +The **Include Historical Event Data** option lets you take past event data into account and control how much of it is considered when creating real-time audiences. You can set a lookback window (for example, the “last 90 days”) to limit the processed event data, or disable it entirely to use only data arriving after creation. For batch audiences, Segment includes historical data by default. \ No newline at end of file diff --git a/src/engage/audiences/linked-audiences-limits.md b/src/engage/audiences/linked-audiences-limits.md index 97adbb5587..23a26a1622 100644 --- a/src/engage/audiences/linked-audiences-limits.md +++ b/src/engage/audiences/linked-audiences-limits.md @@ -40,3 +40,20 @@ Entity columns | Up to 1000 unique values | The maximum number of entity propert Run frequency | 15 minutes (this is the fastest time) | You can’t configure more frequency syncs. You can select **Run Now** to trigger runs, but you’re limited by Profiles Sync for when new data syncs back to the data warehouse. Destination Mappings | Up to 100 mappings | You can set up to 100 action destination mappings per destination instance. +## Warehouse setup and performance guidance + +To get the best performance from Linked Audiences at scale, Segment recommends setting up a dedicated warehouse cluster. This helps avoid resource contention and makes query performance more predictable, especially when running frequent or complex audience syncs. + +Most workloads running on a dedicated cluster should complete within 60 minutes per sync cycle. Staying under this threshold helps keep audiences fresh and aligned with downstream activation schedules. + +Segment has tested Linked Audiences at enterprise scale with over 30 audiences running concurrently, each targeting millions of entities. However, actual performance and cost varies based on how your Data Graph is structured, how many audiences you run at once, and how frequently they sync. Complex joins, deep relationships, and high concurrency can all increase query time and warehouse usage. + +To improve performance and manage compute costs, follow these best practices: + +- Use materialized views when configuring Data Graph to reduce compute overhead. +- Keep your Data Graph focused by avoiding unused entities or overly deep relationship chains. +- Simplify audience conditions and avoid high-cardinality joins when possible. +- Run on a dedicated warehouse cluster if you're operating at enterprise scale. +- Stagger audience sync schedules to reduce concurrency and avoid bottlenecks. + +Following this guidance will help you keep audience syncs running efficiently even as your scale grows. \ No newline at end of file diff --git a/src/engage/audiences/linked-audiences.md b/src/engage/audiences/linked-audiences.md index 15a9ce941e..7f13873dd8 100644 --- a/src/engage/audiences/linked-audiences.md +++ b/src/engage/audiences/linked-audiences.md @@ -242,12 +242,20 @@ With your Linked Audience activated, follow these steps to monitor your activati ### Delivery Overview for Linked Audiences -Delivery Overview shows you four steps in your data activation pipeline: - -- **Events from Audience**: Events that Segment created for your activation. The number of events for each compute depends on the changes detected in your audience membership. -- **Filtered at Destination**: The activation pipeline is rich with features that let you control which events make it to the destination. If any events aren't eligible to be sent (for example, due to destination filters, insert function logic, and so on), Segment will show them in Filtered at Destination. -- **Failed Delivery**: Events that Segment attempted but failed to deliver to your destination. Failed Delivery indicates an issue with the destination, like invalid credentials, rate limits, or other error statuses received during delivery. -- **Successful Delivery**: Events that Segment successfully delivered to your destination. You'll see these events in your downstream integration. +In addition to the standard Audience observability provided by [Delivery Overview](/docs/engage/audiences/#delivery-overview), Linked Audiences can filter Delivery Overview's pipeline view by [Linked Audience events](/docs/engage/audiences/linked-audiences/#step-2c-define-how-and-when-to-trigger-an-event-to-your-destination). + +To filter by events: +1. From your Segment workspace's home page, navigate to **Engage > Audiences**. +2. Find an Audience, click the **(...)** menu, and select Delivery Overview. +3. On the Delivery Overview page, select the Linked audience event dropdown to filter by a specific event. + +Linked Audiences have the following steps in Delivery Overview's pipeline view: +- **Events from audience**: Events that Segment created for your activation. The number of events for each compute depends on the changes detected in your audience membership. +- **Filtered at source**: Events discarded by Protocols: either by the [schema settings](/docs/protocols/enforce/schema-configuration/) or [Tracking Plans](/docs/protocols/tracking-plan/create/). +- **Filtered at destination**: If any events aren’t eligible to be sent (for example, due to destination filters, insert function logic, and so on), Segment displays them at this step. +- **Events pending retry**: A step that reveals the number of events that are awaiting retry. Unlike the other steps, you cannot click into this step to view the breakdown table. +- **Failed delivery**: Events that Segment _attempted_ to deliver to your destination, but that ultimately _failed_ to be delivered. Failed delivery might indicate an issue with the destination, like invalid credentials, rate limits, or other error statuses received during delivery. +- **Successful delivery**: Events that Segment successfully delivered to your destination. You’ll see these events in your downstream integrations. ## Maintaining Linked Audiences diff --git a/src/engage/campaigns/broadcasts.md b/src/engage/campaigns/broadcasts.md index 489a66fda4..55365e2622 100644 --- a/src/engage/campaigns/broadcasts.md +++ b/src/engage/campaigns/broadcasts.md @@ -2,19 +2,8 @@ title: Broadcasts plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. Segment recommends exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers will continue to have access to and support for Engage Premier until Segment announces and end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Broadcasts are one-time email or SMS campaigns that you can send with Twilio Engage. Use broadcasts for single, one-off occasions like the following: diff --git a/src/engage/campaigns/email-campaigns.md b/src/engage/campaigns/email-campaigns.md index 82c9f3515a..6cdf0bf4fa 100644 --- a/src/engage/campaigns/email-campaigns.md +++ b/src/engage/campaigns/email-campaigns.md @@ -2,19 +2,8 @@ title: Email Campaigns plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. Segment recommends exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. With Twilio Engage, you can send email and SMS campaigns to users who have opted in to receive your marketing materials. On this page, you’ll learn how to create and send an email campaign. diff --git a/src/engage/campaigns/index.md b/src/engage/campaigns/index.md index e9bb32f5d5..07d7c1703a 100644 --- a/src/engage/campaigns/index.md +++ b/src/engage/campaigns/index.md @@ -2,19 +2,8 @@ title: Campaigns Overview plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. With Engage, you can build email and SMS marketing campaigns within Journeys. diff --git a/src/engage/campaigns/mobile-push/index.md b/src/engage/campaigns/mobile-push/index.md index 888283c5e3..cb1417f437 100644 --- a/src/engage/campaigns/mobile-push/index.md +++ b/src/engage/campaigns/mobile-push/index.md @@ -2,19 +2,8 @@ title: Mobile Push Onboarding plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. This page walks you through the process of setting up mobile push notifications using Segment, Twilio, and Firebase/Apple Developer. diff --git a/src/engage/campaigns/mobile-push/push-campaigns.md b/src/engage/campaigns/mobile-push/push-campaigns.md index 4842ddacf1..ccf93dba56 100644 --- a/src/engage/campaigns/mobile-push/push-campaigns.md +++ b/src/engage/campaigns/mobile-push/push-campaigns.md @@ -2,19 +2,8 @@ title: Mobile Push Campaigns plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. With Twilio Engage, you can send campaigns to users who have opted in to receive your marketing materials. On this page, you’ll learn how to create and send a mobile push campaign. diff --git a/src/engage/campaigns/sms-campaigns.md b/src/engage/campaigns/sms-campaigns.md index ec9d26f408..7dd367fa70 100644 --- a/src/engage/campaigns/sms-campaigns.md +++ b/src/engage/campaigns/sms-campaigns.md @@ -2,19 +2,8 @@ title: SMS Campaigns plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. With Twilio Engage, you can send email and SMS campaigns to users who have opted in to receive your marketing materials. On this page, you’ll learn how to create and send an SMS campaign. diff --git a/src/engage/campaigns/whatsapp-campaigns.md b/src/engage/campaigns/whatsapp-campaigns.md index 883bda8d14..51ac9cd2bd 100644 --- a/src/engage/campaigns/whatsapp-campaigns.md +++ b/src/engage/campaigns/whatsapp-campaigns.md @@ -2,20 +2,8 @@ title: WhatsApp Campaigns plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> - +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. ## How Engage campaigns work Twilio Engage uses Journeys to send WhatsApp, email, and SMS campaigns. With Journeys, you add conditions and steps that trigger actions like sending a WhatsApp message. diff --git a/src/engage/content/email/editor.md b/src/engage/content/email/editor.md index 43c7b4a56d..4d7d9f71e1 100644 --- a/src/engage/content/email/editor.md +++ b/src/engage/content/email/editor.md @@ -2,19 +2,8 @@ title: Drag and Drop Editor plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Use Twilio Engage to build email templates with a *what you see is what you get* (WYSIWYG) Drag and Drop Editor. Use drag and drop tools to design the template layout and include user profile traits to personalize the message for each recipient. diff --git a/src/engage/content/email/html-editor.md b/src/engage/content/email/html-editor.md index cb7e94ae3b..aca641e407 100644 --- a/src/engage/content/email/html-editor.md +++ b/src/engage/content/email/html-editor.md @@ -2,19 +2,8 @@ title: HTML Editor beta: true --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Use the HTML Editor to design your email template with both code and visual editing capabilities. Build your email template with code, copy and paste existing code, or use the Visual Editor for a code free design experience. diff --git a/src/engage/content/email/template.md b/src/engage/content/email/template.md index f7baf74d1c..da8d32b446 100644 --- a/src/engage/content/email/template.md +++ b/src/engage/content/email/template.md @@ -2,19 +2,8 @@ title: Email Template plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Use Twilio Engage to build personalized email templates to store and use throughout marketing campaigns. diff --git a/src/engage/content/mobile-push.md b/src/engage/content/mobile-push.md index 3d2efa2e51..51ccb881b5 100644 --- a/src/engage/content/mobile-push.md +++ b/src/engage/content/mobile-push.md @@ -2,19 +2,8 @@ title: Mobile Push Template plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. Segment recommends exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Use Twilio Engage to build mobile push templates to include throughout your marketing campaigns. diff --git a/src/engage/content/organization.md b/src/engage/content/organization.md index 33f6cb041b..0170c2efdc 100644 --- a/src/engage/content/organization.md +++ b/src/engage/content/organization.md @@ -3,19 +3,8 @@ title: Organizing Your Templates plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. To add structure to your marketing content, you can organize templates into folders and duplicate them within your Segment space. diff --git a/src/engage/content/sms/template.md b/src/engage/content/sms/template.md index 506d509976..fb5b0c52c2 100644 --- a/src/engage/content/sms/template.md +++ b/src/engage/content/sms/template.md @@ -2,19 +2,8 @@ title: SMS Template plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Use Twilio Engage to build SMS message templates to include throughout your marketing campaigns. diff --git a/src/engage/content/whatsapp.md b/src/engage/content/whatsapp.md index b26ad504e5..f76212869f 100644 --- a/src/engage/content/whatsapp.md +++ b/src/engage/content/whatsapp.md @@ -2,19 +2,8 @@ title: WhatsApp Template plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. With Twilio Engage, you can build personalized WhatsApp templates to store and use throughout marketing campaigns. diff --git a/src/engage/index.md b/src/engage/index.md index 999ea7ccf6..f0cdd3d93a 100644 --- a/src/engage/index.md +++ b/src/engage/index.md @@ -5,9 +5,7 @@ redirect_from: - '/personas/' --- -Powered by real-time data, Twilio Engage is a customizable personalization platform with which you can build, enrich, and activate Audiences. - -Engage Channels builds on top of these Audiences, helping you connect with and market to your customers through email, SMS, and WhatsApp campaigns. +Powered by real-time data, Twilio Engage is a customizable personalization platform with which you can build, enrich, and activate Audiences. ## What can you do with Engage? @@ -24,56 +22,9 @@ Add detail to user profiles with new traits and use them to power personalized m - [**Predictions**:](/docs/unify/traits/predictions/) Predict the likelihood that users will perform custom events tracked in Segment, like LTV, churn, and purchase. #### Build Audiences -Create lists of users or accounts that match specific criteria. For example, after creating an `inactive accounts` audience that lists paid accounts with no logins in 60 days, you can push the audience to your analytics tools or send an SMS, email, or WhatsApp campaign with Engage Channels. Learn more about [Engage audiences](/docs/engage/audiences/). +Create lists of users or accounts that match specific criteria. For example, after creating an `inactive accounts` audience that lists paid accounts with no logins in 60 days, you can push the audience to your analytics tools or send an SMS, email, or WhatsApp campaign with Engage Channels. Learn more about [Engage audiences](/docs/engage/audiences/). #### Sync audiences to downstream tools Once you create your Computed Traits and Audiences, Engage sends them to your Segment Destinations in just a few clicks. You can use these Traits and Audiences to personalize messages across channels, optimize ad spend, and improve targeting. You can also use the [Profile API](/docs/unify/profile-api) to build in-app and onsite personalization. Learn more about [using Engage data](/docs/engage/using-engage-data/) and the [Profile API](/docs/unify/profile-api). -{% include components/reference-button.html href="https://segment.com/customers/drift/" icon="personas.svg" title="Personalizing marketing campaigns" description="Marketing teams use Engage to run real-time multi-channel marketing campaigns based off specific user attributes they've computed in Engage. Read about how Drift used Engage to increase prospect engagement by 150% in two months." %} - -## Market to customers with Engage Premier and Channels - -To send email, SMS, and WhatsApp campaigns with Engage Channels, you'll connect a [Twilio messaging service](https://support.twilio.com/hc/en-us/articles/223181308-Getting-started-with-Messaging-Services){:target="blank"}, [SendGrid subuser account](https://docs.sendgrid.com/ui/account-and-settings/subusers#create-a-subuser){:target="blank"}, and [WhatsApp messaging service](https://www.twilio.com/docs/whatsapp/self-sign-up){:target="blank"} to your Segment Engage space. Use existing accounts, or create new ones. - -View the [onboarding steps](/docs/engage/onboarding/) for more on how to connect Twilio and SendGrid accounts. - -#### Send email, SMS, and WhatsApp messages in Journeys - -Use Engage to build email, SMS, and WhatsApp campaigns within [Journeys](/docs/engage/journeys/). Send campaigns to [subscribed users](#user-subscriptions) based on event behavior and profile traits. With [message analytics](#message-analytics), you can track the performance of your campaigns. - -- **Send Email**: [Build email campaigns](/docs/engage/campaigns/email-campaigns/) with existing templates, or create a new email template within Journeys. Before you send the email, test the template and set [conversion goals](#conversion-goals). - -- **Send SMS messages**: [Build SMS campaigns](/docs/engage/campaigns/sms-campaigns/) to message users in real-time as a step in a Journey. For example, create an abandoned cart campaign that texts users a reminder to complete their purchase, along with a promo code. Add [merge tags](#personalize-with-merge-tags) and set conversion goals. - -- **Send WhatsApp messages**: [Build WhatsApp campaigns](/docs/engage/campaigns/whatsapp-campaigns) that deliver messages to your customers on the world's most used messaging app. - -To learn more, visit the [CSV Uploader](/docs/engage/profiles/csv-upload/) documentation. - -#### Build Email, SMS, and WhatsApp message templates - -Build personalized [email](/docs/engage/content/email/template/), [SMS](/docs/engage/content/sms/template), and [WhatsApp](/docs/engage/content/whatsapp) templates in Twilio Engage for use in your campaigns. Design email templates with a WYSIWYG [Drag and Drop Editor](/docs/engage/content/email/editor/) or the [HTML Editor](/docs/engage/content/email/html-editor/). Engage saves the templates for you to preview, edit, and reuse throughout Journeys. - -#### Personalize with merge tags -Insert real-time user profile traits from merge tags to personalize each message. For example, address recipients by name or highlight new products from a user's favorite brand. - -#### CSV Uploader -Use the CSV uploader to add or update user profiles and [subscription states](/docs/engage/user-subscriptions/). To learn more, visit the [CSV Uploader](/docs/engage/profiles/csv-upload/) documentation. - -#### User subscriptions - -Set user subscription states in two ways: -- [Upload a CSV file](/docs/engage/profiles/csv-upload/) with lists of users along with their phone, email, and WhatsApp subscription states. -- Programmatically with Segment's [Public API](https://api.segmentapis.com/docs/spaces/#replace-messaging-subscriptions-in-spaces){:target="blank"} - -Use Engage to add subscription states to user email addresses and phone numbers. Subscription states help determine which users you can send campaigns to in Engage. You can set user subscription states with a [CSV file upload](/docs/engage/profiles/csv-upload/), or programmatically with Segment's [Public API](https://api.segmentapis.com/docs/spaces/#replace-messaging-subscriptions-in-spaces){:target="blank"}. - -#### Message Analytics -With analytics in Engage, you can monitor real-time conversion data. Track message performance and customer interaction beyond clicks and opens. Use campaign dashboards to view events such as `Email Delivered`, `Unsubscribed`, `Spam Reported`, and more. - -#### Conversion Goals - -For each message step in a Journey, you can set conversion conditions with events and properties in your Segment space. Then, define a duration after message delivery to track goals. - -For example, track users who perform the event **Order Completed** with a promo code that you send them. - -Visit [Message Analytics](/docs/engage/analytics/) to learn more. +{% include components/reference-button.html href="https://segment.com/customers/drift/" icon="personas.svg" title="Personalizing marketing campaigns" description="Marketing teams use Engage to run real-time multi-channel marketing campaigns based off specific user attributes they've computed in Engage. Read about how Drift used Engage to increase prospect engagement by 150% in two months." %} \ No newline at end of file diff --git a/src/engage/journeys/event-triggered-journeys-steps.md b/src/engage/journeys/event-triggered-journeys-steps.md index 18f66b8a07..3adcc1b914 100644 --- a/src/engage/journeys/event-triggered-journeys-steps.md +++ b/src/engage/journeys/event-triggered-journeys-steps.md @@ -8,7 +8,7 @@ plan: engage-foundations Steps are the building blocks of a journey. This page explains the **Hold Until** and **Send to Destination** steps, which enable precise control over journey progression and data delivery. > info "Public Beta" -> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. Event-Triggered Journeys is not currently HIPAA eligible. +> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. ## Hold Until: smart pauses in journeys diff --git a/src/engage/journeys/event-triggered-journeys.md b/src/engage/journeys/event-triggered-journeys.md index 0816956535..94d1e5f579 100644 --- a/src/engage/journeys/event-triggered-journeys.md +++ b/src/engage/journeys/event-triggered-journeys.md @@ -10,7 +10,7 @@ Unlike traditional audience-based journeys that rely on pre-defined user segment On this page, you'll learn how to create an event-triggered journey, configure entry conditions, and work with published event-triggered journeys. > info "Public Beta" -> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. Event-Triggered Journeys is not currently HIPAA eligible. +> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. ## Overview diff --git a/src/engage/journeys/journey-context.md b/src/engage/journeys/journey-context.md index a6d8410e5a..e0443833db 100644 --- a/src/engage/journeys/journey-context.md +++ b/src/engage/journeys/journey-context.md @@ -8,7 +8,7 @@ plan: engage-foundations This page explains Journey context, which can help you dynamically adapt each journey to individual user interactions, creating highly relevant, real-time workflows. > info "Public Beta" -> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. Event-Triggered Journeys is not currently HIPAA eligible. +> Event-Triggered Journeys is in public beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. ## Overview diff --git a/src/engage/onboarding.md b/src/engage/onboarding.md index d31a5f4c2c..5cddc182b1 100644 --- a/src/engage/onboarding.md +++ b/src/engage/onboarding.md @@ -1,22 +1,12 @@ --- title: Twilio Engage Premier Onboarding Guide plan: engage-premier +hidden: true redirect_from: - '/engage/overview/onboarding' --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Twilio Engage brings Segment, Twilio, SendGrid, and WhatsApp together to help you create and send email, SMS, and WhatsApp campaigns to your customers. diff --git a/src/engage/product-limits.md b/src/engage/product-limits.md index c7d74d06ce..059f3736c2 100644 --- a/src/engage/product-limits.md +++ b/src/engage/product-limits.md @@ -26,7 +26,7 @@ To learn more about custom limits and upgrades, contact your dedicated Customer | name | limit | Details | | --------------------------------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Compute Concurrency | 5 new concurrent audiences or computed traits | Segment computes five new audiences or computed traits at a time. Once the limit is reached, Segment queues additional computations until one of the five finishes computing. | -| Edit Concurrency | 2 concurrent audiences or computed traits | You can edit two concurrent audiences or computed traits at a time. Once the limit is reached, Segment queues and locks additional computations until one of the two finishes computing. | +| Edit Concurrency | 5 concurrent audiences or computed traits | You can edit five concurrent audiences or computed traits at a time. Once the limit is reached, Segment queues and locks additional computations until one of the five finishes computing. | | Batch Compute Concurrency Limit | 10 (default) per space | The number of batch computations that can run concurrently per space. When this limit is reached, Segment delays subsequent computations until current computations finish. | | Compute Throughput | 10000 computations per second | Computations include any Track or Identify call that triggers an audience or computed trait re-computation. Once the limit is reached, Segment may slow audience processing. | | Real-time to batch destination sync frequency | 12-15 hours | The frequency with which Segment syncs real-time audiences to batch destinations. | diff --git a/src/engage/user-subscriptions/csv-upload.md b/src/engage/user-subscriptions/csv-upload.md index 1e45bd6987..cabf1cfd38 100644 --- a/src/engage/user-subscriptions/csv-upload.md +++ b/src/engage/user-subscriptions/csv-upload.md @@ -2,19 +2,8 @@ title: Update Subscriptions with a CSV plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Use the CSV Uploader to add or update user subscription states. diff --git a/src/engage/user-subscriptions/index.md b/src/engage/user-subscriptions/index.md index a64c05d47a..b0fbdde585 100644 --- a/src/engage/user-subscriptions/index.md +++ b/src/engage/user-subscriptions/index.md @@ -2,19 +2,8 @@ title: User Subscriptions Overview plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Segment associates [subscription states](/docs/engage/user-subscriptions/set-user-subscriptions/) with each email address and phone number **external id** in your audiences. Subscription states indicate the level of consent end users have given to receive your marketing campaigns. diff --git a/src/engage/user-subscriptions/set-user-subscriptions.md b/src/engage/user-subscriptions/set-user-subscriptions.md index b2b879bc81..80c94ce1ec 100644 --- a/src/engage/user-subscriptions/set-user-subscriptions.md +++ b/src/engage/user-subscriptions/set-user-subscriptions.md @@ -2,19 +2,8 @@ title: Set User Subscriptions plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Segment associates a [user subscription state](/docs/engage/user-subscriptions/subscription-states/) with each email address and phone number in your Engage audiences. Subscription states give you insight into the level of consent a user has given you to receive your Engage campaigns. diff --git a/src/engage/user-subscriptions/subscription-groups.md b/src/engage/user-subscriptions/subscription-groups.md index e581fca676..7342a7419a 100644 --- a/src/engage/user-subscriptions/subscription-groups.md +++ b/src/engage/user-subscriptions/subscription-groups.md @@ -2,19 +2,8 @@ title: Subscription Groups plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Subscription groups let your users choose the emails they want to receive from you. This page introduces subscription groups and explains how you can use them with [Engage email campaigns](/docs/engage/campaigns/email-campaigns/). diff --git a/src/engage/user-subscriptions/subscription-sql.md b/src/engage/user-subscriptions/subscription-sql.md index 5e8941970f..734a0c5488 100644 --- a/src/engage/user-subscriptions/subscription-sql.md +++ b/src/engage/user-subscriptions/subscription-sql.md @@ -3,19 +3,8 @@ title: Subscriptions with SQL Traits plan: engage-premier beta: true --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Use Subscriptions with SQL Traits to connect to your data warehouse and query user subscription data to Engage on a scheduled basis. Use your data warehouse as a single source of truth for subscription statuses and query from warehouses such as BigQuery, Redshift, or Snowflake. diff --git a/src/engage/user-subscriptions/subscription-states.md b/src/engage/user-subscriptions/subscription-states.md index 4e7778abe3..956bd8e11e 100644 --- a/src/engage/user-subscriptions/subscription-states.md +++ b/src/engage/user-subscriptions/subscription-states.md @@ -2,19 +2,8 @@ title: User Subscription States plan: engage-premier --- -> info "" -> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024. Existing Segment customers will continue to have access and support to Engage Premier until an end-of-life (EOL) date is announced. We recommend exploring the following pages in preparation of a migration or future MCM needs: -> ->[Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns) -> ->Preferred ISV Partners: -> ->[Airship Blog](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"} <br> ->[Bloomreach Blog](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"} <br> ->[Braze Blog](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"} <br> ->[Insider Blog](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"} <br> ->[Klaviyo Blog](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"} <br> ->[Twilio Engage Foundations Documentation](/docs/engage/quickstart/) <br> +> info "Engage Premier End of Sale" +> Engage Premier entered an End of Sale (EOS) period effective June 10, 2024 and is no longer available for new customers. Existing Segment customers have access to and support for Engage Premier until Segment announces an end-of-life (EOL) date. Segment recommends exploring [Twilio Marketing Campaigns](https://www.twilio.com/en-us/sendgrid/marketing-campaigns){:target="_blank"}, as well as Segment's preferred ISV partners, including [Airship](https://www.twilio.com/en-us/blog/airship-integrated-customer-experience){:target="_blank"}, [Braze](https://www.twilio.com/en-us/blog/braze-conversational-marketing-campaigns){:target="_blank"}, [Klaviyo](https://www.twilio.com/en-us/blog/klaviyo-powering-smarter-digital-relationships){:target="_blank"}, [Bloomreach](https://www.twilio.com/en-us/blog/bloomreach-ecommerce-personalization){:target="_blank"}, and [Insider](https://www.twilio.com/en-us/blog/insider-cross-channel-customer-experience){:target="_blank"}. Customer profiles in your Segment audiences contain **contact vectors**. A contact vector is a piece of unique, specific contact information associated with a customer, like the customer's email address or phone number. diff --git a/src/guides/regional-segment.md b/src/guides/regional-segment.md index 8c2e1b05a3..c58c76479b 100644 --- a/src/guides/regional-segment.md +++ b/src/guides/regional-segment.md @@ -9,65 +9,157 @@ redirect_from: On July 10, 2023, the European Commission adopted the Adequacy Decision for the EU-US Data Privacy Framework ([DPF](https://commission.europa.eu/document/fa09cbad-dd7d-4684-ae60-be03fcb0fddf_en){:target="_blank"}). This concludes that EU personal data transferred to the United States under the DPF is adequately protected when compared to the protection in the EU. With this adequacy decision in place, personal data can safely flow from the EU to US companies participating in the DPF without additional safeguards in place. -Twilio is certified under the DPF and relies on the DPF as its primary personal data transfer mechanism for EU-US personal data transfer. Twilio will rely on the DPF for any Swiss-US personal data transfers as soon as a corresponding Swiss adequacy decision is made. Twilio understands that interpretations of data residency are multi-faceted and some customers might still want their data to reside in the EU. Twilio Segment therefore offers a data residency solution outside of the DPF. +Twilio is certified under the DPF and relies on it as the primary mechanism for EU–US personal data transfers. Twilio will also rely on the DPF for Swiss–US transfers once a corresponding Swiss adequacy decision is in place. Twilio understands that interpretations of data residency are multi-faceted and some customers might still want their data to reside in the EU. -Segment offers customers the option to lead on data residency by providing regional infrastructure in both Europe and the United States. The default region for all users is in Oregon, United States. You can configure workspaces to use the EU West Data Processing Region to ingest (for supported sources), process, filter, deduplicate, and archive data through Segment-managed archives hosted in AWS S3 buckets located in Dublin, Ireland. The regional infrastructure has the same [rate limits and SLA](/docs/connections/rate-limits/) as the default region. +While the DPF enables compliant transfers, some customers may still require that their data remain within the EU. For those cases, Twilio Segment offers a data residency solution outside of the DPF. -## Regional Data Ingestion +Segment provides regional infrastructure in both the United States and Europe. By default, new workspaces use U.S. infrastructure (based in Oregon). + +If you need EU data residency, you must either create a workspace in the EU or request a migration for an existing workspace. Only EU workspaces store data exclusively in the EU. + +## Ingestion behavior and failover Regional Data Ingestion enables you to send data to Segment from both Device-mode and Cloud-mode sources through regionally hosted API ingest points. The regional infrastructure can fail-over across locations within a region, but never across regions. -### Cloud-event sources +## Set up your sources for EU or US workspaces -{% include content/eu-cloud-event-sources.html %} +Some Segment SDKs require specific endpoint configuration to send data to the correct regional infrastructure. This section provides setup details for mobile SDKs, server-side SDKs, custom integrations, and supported cloud sources. -### Client-side sources -You can configure Segment's client-side SDKs for JavaScript, iOS, Android, and React Native sources to send data to a regional host after you've updated the Data Ingestion Region in that source's settings. Segment's EU instance only supports data ingestion from Dublin, Ireland with the `events.eu1.segmentapis.com/` endpoint. If you are using the Segment EU endpoint with an Analytics-C# source, you must manually append `v1` to the URL. For instance, `events.eu1.segmentapis.com/v1`. +> info "Using Analytics.js?" +> Segment's Analytics.js SDK automatically uses the latest source settings, including the correct ingestion endpoint. You don't need to configure a regional endpoint manually for this SDK. -> info "" -> For workspaces that use the EU West Data Processing region, the Dublin Ingestion region is preselected for all sources. +### SDK configuration summary -To set your Data Ingestion Region: +Use this table as a reference to determine how to configure your source or SDK to send data to the correct endpoint: -1. Go to your source. -2. Select the **Settings** tab. -3. Click **Regional Settings**. -4. Choose your **Data Ingestion Region**. - - If you're in the *US West* data processing region, you can select from: Dublin, Singapore, Oregon, and Sydney. - - If you're in the *EU West* data processing region, Segment's EU instance only supports data ingestion from Dublin with the `events.eu1.segmentapis.com/` endpoint. +| Integration | Endpoint configuration | Notes | +| --------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| iOS / Android / Flutter / Xamarin | `apiHost: "events.eu1.segmentapis.com/v1"` | Set directly in SDK config | +| React Native | `proxy: "https://events.eu1.segmentapis.com/v1"`<br>`useSegmentEndpoints: true` | Both values are required for proper routing | +| Node.js / Python / Java | `host: "https://events.eu1.segmentapis.com"` | Do **not** include `/v1` in host for these SDKs | +| C# SDK | `host: "https://events.eu1.segmentapis.com/v1"` | Manually append `/v1` to the host URL | +| Custom HTTP requests | `https://events.eu1.segmentapis.com/v1` | Write key must belong to an EU workspace | +| Cloud sources | No configuration required | Only [Amazon S3](/docs/connections/sources/catalog/cloud-apps/amazon-s3) and [Iterable](/docs/connections/sources/catalog/cloud-apps/iterable) are supported | -All regions are configured on a **per-source** basis. You'll need to configure the region for each source separately if you don't want to use the default region. +### Configuring Segment sources for mobile SDKs + +To send data from mobile apps to the correct region, you have to update your SDK configuration to use the right endpoint. You must do this even if your source settings are already configured in Segment itself. + +> warning "Use the correct endpoint" +> Beginning April 3, 2025, Segment will reject data sent to the wrong region. Make sure your mobile SDK is configured to send data to the correct endpoint for your workspace region. + +Segment's EU instance only accepts data through its Dublin-based endpoint: + +``` +https://events.eu1.segmentapis.com/v1 +``` + +#### Mobile SDK configuration examples + +Use the examples in this section to configure mobile SDKs to point to the EU endpoint. These examples use JavaScript-style syntax for clarity. Refer to your platform's documentation for exact implementation. + +{% codeexample %} +{% codeexampletab iOS/Android/Xamarin/Flutter %} +```js +const analytics = new Analytics({ + writeKey: '<YOUR_WRITE_KEY>', // Required: your source's write key from Segment + apiHost: "events.eu1.segmentapis.com/v1", // Routes data through EU endpoint + // You can also configure options like flushInterval, debug, or storage providers +}) +``` +{% endcodeexampletab %} + +{% codeexampletab React Native %} +```js +const analytics = new Analytics({ + writeKey: '<YOUR_WRITE_KEY>', // Required: must belong to an EU workspace + proxy: "https://events.eu1.segmentapis.com/v1", // Required for EU data routing + useSegmentEndpoints: true, // Ensures proxy is used instead of default US host + // You can also set options like flushInterval or trackAppLifecycleEvents +}) +``` +{% endcodeexampletab %} +{% endcodeexample %} + +If you're using the Segment EU endpoint with the [Analytics-C# source](/docs/connections/sources/catalog/libraries/server/csharp/), you must manually append `/v1` to the URL (like `events.eu1.segmentapis.com/v1`). + +For workspaces using the `EU WEST` data processing region, the Dublin ingestion region is preselected for all sources. + +Once you finish updating your SDK(s), make sure your [source settings in Segment](#updating-source-settings-in-segment) also reflect the correct region. -All Segment client-side SDKs read this setting and update themselves automatically to send data to new endpoints when the app reloads. You don't need to change code when you switch regions. +### Configure server-side and custom Segment sources -### Server-side and project sources -When you send data from a server-side or project source, you can use the `host` configuration parameter to send data to the desired region: -1. Oregon (Default) — `https://events.segmentapis.com/v1` -2. Dublin — `https://events.eu1.segmentapis.com/` +If you're using Segment’s server-side SDKs (like Node.js, Python, and Java) or making direct HTTP API requests, you’ll need to update the endpoint your data is sent to. This is required to match your workspace’s region and avoid rejected traffic. -> success "" -> If you are using the Segment EU endpoint with an Analytics-C# source, you must manually append `v1` to the URL. For instance, `events.eu1.segmentapis.com/v1`. +> warning "Use the correct endpoint" +> Beginning April 3, 2025, Segment will reject data sent to the wrong region. Make sure your server-side SDKs and custom integrations are configured to send data to the correct endpoint for your workspace region. -Here is an example of how to set the host: +#### Server-side SDK configuration examples -```json -Analytics.Initialize("<YOUR WRITEKEY HERE>", new Config().SetHost("https://events.eu1.segmentapis.com (https://events.eu1.segmentapis.com/)")); +Use this example to configure server-side SDKs like Node.js, Python, and Java: + +```js +// Example configuration — adjust for your SDK's syntax +const analytics = new Analytics({ + writeKey: '<YOUR_WRITE_KEY>', // Required: must belong to an EU workspace + host: "https://events.eu1.segmentapis.com", // EU endpoint — do not include /v1 for these SDKs + // You can configure other options like flushInterval or request retries +}) ``` +> info "Endpoint format for server-side SDKs" +> Most SDKs handle the `/v1` path internally. However, only the C# SDK and custom HTTP requests require you to add `/v1` manually, like `https://events.eu1.segmentapis.com/v1`. + +#### Custom HTTP requests + +If you're sending data using custom HTTP requests or through a proxy and you’ve reused a write key originally issued for a US-based workspace, you’ll need to do the following: + +- Update your request target to: `https://events.eu1.segmentapis.com/v1`. +- Make sure the write key belongs to an EU workspace. + +**Data sent to the EU endpoint using a US-region write key will get rejected**. + +### Cloud-event sources + +{% include content/eu-cloud-event-sources.html %} + +Segment maintains and hosts these sources, and they don't require SDK-level configuration. + +If you're using other cloud sources not listed here, they may only be available in US-based workspaces. Reach out to Segment Support if you're unsure whether a cloud source is supported in the EU. + +## Updating source settings in Segment + +After you’ve configured your SDKs or custom integrations, double-check that your source settings in Segment are using the correct regional endpoint. + +To set your data ingestion region: + +1. Go to your source's **Settings** tab. +2. Click **Regional Settings**. +3. Choose your **Data Ingestion Region**. + - If your workspace is in the *US West* data processing region, you can select from: Dublin, Singapore, Oregon, or Sydney. + - If your workspace is in the *EU West* data processing region, Segment only supports ingestion from Dublin, using the `events.eu1.segmentapis.com/` endpoint. +4. Save your changes. + +All regions are configured on a **per-source** basis. You'll need to configure the region for each source separately if you don't want to use the default region. + +Segment’s client-side SDKs automatically fetch this setting and update themselves the next time the app reloads. However, for mobile apps and critical regional routing, Segment recommends also [setting the endpoint manually in your SDK configuration](#set-up-your-sources-for-eu-or-us-workspaces. + ## Create a new workspace with a different region > info "" > Use [this form](https://segment.typeform.com/to/k5ADnN5e#user_id=xxxxx){:target="_blank"} if you need to transition from your existing US-based workspace to an EU workspace. -To create a workspace with a different data processing region, reach out your Segment account executive, and they will assist you with enabling the feature. Once the feature has been enabled, you'll be able to self-serve and create a new workspace in a different data processing region by following these steps: +Segment workspaces use US data residency by default. If you need EU data residency, reach out to your Segment account executive to enable EU workspace creation. Once the feature is enabled, you can create a new EU workspace by following these steps: 1. Log in to your Segment account. 2. Click **New Workspace**. -3. Select your **Data processing region**. This determines the location in which Segment collects, processes, and stores data that's sent to and from your workspace. You can choose from *US West* or *EU West*. +3. Select your **Data processing region**. This determines where Segment collects, processes, and stores the data sent to and from your workspace. You can choose between US West and EU West. 4. Click **Create workspace**. > info "" -> Once you create a workspace with a specified data processing region, you can't change the region. You must create a new workspace to change the region. +> Once you create a workspace, you can't change its data processing region. You’ll need to create a new workspace if you want to switch regions. + +Sources within EU workspaces deliver Segment data to EU-based AWS storage. ## EU Storage Updates ### Segment Data Lakes (AWS) diff --git a/src/monitor/alerts/default-alerts.md b/src/monitor/alerts/default-alerts.md new file mode 100644 index 0000000000..bd20b502e8 --- /dev/null +++ b/src/monitor/alerts/default-alerts.md @@ -0,0 +1,134 @@ +--- +title: Default Alerts +--- + +Segment's default alerts have a preset trigger and are often used to detect changes users make to the integrations in your workspace. + +On the **Monitor** tab, you can see all of your alerts, separated by product area, in a tabular format. + +> info "Only Workspace Owners can view and edit all alerts" +> Users with other roles can see all alerts in a workspace, but can only edit or see the configured details for alerts that they created. + +You can create alerts for the following product areas: +- [Sources](#source-alerts) +- [Destinations](#destination-alerts) +- [Storage Destinations](#storage-destination-alerts) +- [Protocols](#protocols-alerts) +- [Unify](#unify-alerts) +- [Engage](#engage-alerts) +- [Functions](#functions-alerts) +- [Reverse ETL](#reverse-etl-alerts) +- [Data Graph](#data-graph-alerts) + +The Alerting table includes the following information about each event: +- **Alert name**: The type of alert, for example, "Audience created" or "Audience deleted". +- **Last triggered**: The most recent date and time, in your local time zone, that the alert was triggered. +- **Status**: Either **enabled**, if the alert is currently configured in your workspace, or **disabled**, if you're not configured to receive alerts for an event. +- **Notification channels**: Icons describing what notification channels you'll receive the alerts on - through a Slack webhook, email, or in-app notification. +- **Actions**: By selecting the menu icon for an individual alert, you can edit or delete it from the Alerting page. + +## Create a new alert + +To create a new alert: +1. From the Segment app, navigate to the **Monitor** tab and select **Alerts**. +2. On the **Default** tab, identify the event you'd like to be alerted for and select the menu icon under the **Actions** tab. +3. Click **Enable alert**. + +## Alert descriptions + +View a brief description of each alert type. + +### Source alerts +- **New Event Blocked**: Segment blocked an event not previously specified in your [Source Schema](/docs/connections/sources/schema/) from entering a downstream destination. +- **New Forbidden Event Property**: Segment blocked an event property that was not specified in your [Source Schema](/docs/connections/sources/schema/) from entering a downstream destination. +- **Source Created**: A user in your workspace created a new source. +- **Source Deleted**: A user in your workspace deleted a source. +- **Source Disabled**: A source was disabled, either by a user in your workspace or by Segment. Segment automatically disables a source after 14 days if the source isn't connected to an enabled destination. +- **Source Run Failed**: After Segment fails to extract data from your source 3 consecutive times, you'll be notified. +- **Source Settings Modified**: A user in your workspace modified the settings for one of your sources. + +> info "Custom Source alerts" +> During the Monitor public beta, you can configure custom [source volume alerts](/docs/connections/alerting/#source-volume-alerts), but these alerts won't appear in the Monitor tab. + +## Destination alerts +- **Destination Disabled**: A user in your workspace disabled a destination. +- **Destination Enabled**: A user in your workspace enabled a destination. +- **Destination Filter Created**: A user in your workspace created a [destination filter](/docs/connections/destinations/destination-filters/). +- **Destination Filter Deleted**: A user in your workspace deleted a [destination filter](/docs/connections/destinations/destination-filters/). +- **Destination Filter Disabled**: A user in your workspace disabled a [destination filter](/docs/connections/destinations/destination-filters/). +- **Destination Filter Enabled**: A user in your workspace enabled a [destination filter](/docs/connections/destinations/destination-filters/). +- **Destination Filter Modified**: A user in your workspace modified a [destination filter](/docs/connections/destinations/destination-filters/). +- **Destination Modified**: A user in your workspace made changes to a destination. + +> info "Custom Destination alerts" +> During the Monitor public beta, you can configure custom [Successful delivery rate alerts](/docs/connections/alerting/#successful-delivery-rate-alerts), but these alerts won't appear in the Monitor tab. + +## Storage Destination alerts +- **Storage Destination Created**: A user in your workspace created a new instance of a storage destination. +- **Storage Destination Deleted**: A user in your workspace deleted a storage destination. +- **Storage Destination Disabled**: A user in your workspace disabled a storage destination. +- **Storage Destination Modified**: A user in your workspace modified an existing storage destination. +- **Storage Destination Sync Failed**: Segment failed to sync any rows of data from your source to your storage destination. +- **Storage Destination Sync Partially Succeeded**: Segment encountered some notices and was only able to sync some of your data from your source to your storage destination. +- **Storage Destination Sync Skipped**: Segment skipped a scheduled sync to your storage destination. This might happen if the previous sync wasn't complete by the time the next sync was scheduled to begin. + + +## Protocols alerts +- **Source Connected To Tracking Plan**: A user in your workspace connected a source to one of your Tracking Plans. +- **Source Disconnected From Tracking Plan**: A user in your workspace disconnected a source from one of your Tracking Plans. +- **Tracking Plan Created**: A user in your workspace created a new Tracking Plan. +- **Tracking Plan Deleted**: A user in your workspace deleted a Tracking Plan. +- **Tracking Plan Inferred**: Segment inferred the data type for an event. +- **Tracking Plan Modified**: A user in your workspace modified a Tracking Plan. +- **Tracking Plan New Event Allowed**: An unplanned event was allowed by your [Schema Controls](/docs/protocols/enforce/schema-configuration/). +- **Tracking Plan New Event Blocked**: An unplanned event was allowed by your [Schema Controls](/docs/protocols/enforce/schema-configuration/). +- **Tracking Plan New Group Trait Omitted**: A new trait attached to a Group call was was omitted from an event. +- **Tracking Plan New Identify Trait Omitted**: A new trait attached to a [Identify call was was omitted from an event](/docs/protocols/enforce/schema-configuration/#identify-calls---unplanned-traits). +- **Tracking Plan New Track Property Omitted**: A new trait attached to a [Track call was was omitted from an event](/docs/protocols/enforce/schema-configuration/#track-calls---unplanned-properties). +- **Violations Detected**: Segment detected [data that does not confirm to your Tracking Plan](/docs/protocols/validate/forward-violations/). + +## Unify alerts +- **Computed Trait CSV Downloaded**: A user in your workspace [downloaded a CSV file of all users that have a Computed Trait](/docs/unify/Traits/computed-traits/#downloading-your-computed-trait-as-a-csv-file). +- **Computed Trait Created**: A user in your workspace created a new [Computed Trait](/docs/unify/Traits/computed-traits/#types-of-computed-traits). +- **Computed Trait Deleted**: A user in your workspace deleted an existing [Computed Trait](/docs/unify/Traits/computed-traits/#types-of-computed-traits). +- **Computed Trait Destination Sync Failed**: Segment failed to sync [Computed Trait generated events](/docs/engage/using-engage-data/#computed-trait-generated-events) with your downstream destination. +- **Computed Trait Modified**: A user in your workspace made changes to an existing Computed Trait. +- **Computed Trait Run Failed**: Segment was unable to compute your trait. To resolve this error, please [contact Segment support](https://segment.com/help/contact/){:target="_blank”}. +- **Profiles Sync Historical Backfill Completed**: Segment completed [backfilling profile data from your data warehouse](/docs/unify/profiles-sync/profiles-sync-setup/#using-historical-backfill). +- **Profiles Sync Warehouse Created**: A user in your workspace [connected a data warehouse to Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/#step-2-connect-the-warehouse-and-enable-profiles-sync). +- **Profiles Sync Warehouse Deleted**: A user in your workspace [deleted the data warehouse connected to Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/#disable-or-delete-a-warehouse). +- **Profiles Sync Warehouse Disabled**: A user in your workspace [disabled the data warehouse connected to Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/#disable-or-delete-a-warehouse). +- **Profiles Sync Warehouse Modified**: A user in your workspace [modified the data warehouse connected to Profiles Sync](/docs/unify/profiles-sync/profiles-sync-setup/#settings-and-maintenance). +- **Profiles Sync Warehouse Sync Failed**: Segment failed to sync any of +your identity-resolved profiles to your data warehouse. +- **Source Connected To Space**: A user in your workspace connected a source to your Unify space. +- **Source Disconnected From Space**: A user in your workspace disconnected a source from your Unify space. + +## Engage alerts +- **Audience CSV Downloaded**: A user in your workspace [downloaded an Audience as a CSV file](/docs/engage/audiences/#download-your-audience-as-a-csv-file). +- **Audience Created**: A user in your workspace [created a new Audience](/docs/engage/audiences/#building-an-audience). +- **Audience Deleted**: A user in your workspace deleted an Audience. +- **Audience Destination Sync Failed**: Segment was unable to sync your Audience with a connected destination. +- **Audience Modified**: A user in your workspace modified an Audience. +- **Audience Run Failed**: Segment was unable to compute your Audience. To resolve this error, please [contact Segment support](https://segment.com/help/contact/){:target="_blank”}. + +> info "Custom Engage alerts" +> During the Monitor public beta, you can configure custom [Activation event health spikes or drops](/docs/engage/audiences/#activation-event-health-spikes-or-drops) alerts, but these alerts won't appear in the Monitor tab. + +## Functions alerts +- **Destination Filter Created**: A user in your workspace created a [destination filter](/docs/connections/destinations/destination-filters/). +- **Destination Filter Deleted**: A user in your workspace deleted a [destination filter](/docs/connections/destinations/destination-filters/). +- **Destination Filter Modified**: A user in your workspace modified a [destination filter](/docs/connections/destinations/destination-filters/). +- **Source Function Created**: A user in your workspace created a [source function](/docs/connections/functions/source-functions/). +- **Source Function Deleted**: A user in your workspace deleted a [source function](/docs/connections/functions/source-functions/). +- **Source Function Modified**: A user in your workspace modified a [source function](/docs/connections/functions/source-functions/). + +## Reverse ETL alerts +- **Reverse ETL Sync Failed**: Segment failed to sync any of your records from your warehouse to your downstream destination. +- **Reverse ETL Sync Partial Success**: Segment was able to sync some, but not all, of your records from your data warehouse with your downstream destination. + +> info "Custom Reverse ETL alerts" +> During the Monitor public beta, you can configure custom Reverse ETL alerts for [failed or partially successful syncs](/docs/connections/reverse-etl/manage-retl/#failed-or-partially-successful-syncs) and [mapping-level successful delivery rate fluctuations](/docs/connections/reverse-etl/manage-retl/#mapping-level-successful-delivery-rate-fluctuations), but these alerts won't appear in the Monitor tab. + +## Data Graph alerts +- **Data Graph Breaking Change**: A change in your warehouse broke components of your Data Graph. For more information about breaking changes, see the [Data Graph docs](/docs/unify/data-graph/#detect-warehouse-breaking-changes). \ No newline at end of file diff --git a/src/monitor/alerts/index.md b/src/monitor/alerts/index.md new file mode 100644 index 0000000000..b4f91288b8 --- /dev/null +++ b/src/monitor/alerts/index.md @@ -0,0 +1,19 @@ +--- +title: Alerts +--- +Segment's alerting features allow you to receive in-app, email, and Slack notifications related to the status, performance, and throughput of your Segment integrations. + +> info "Public beta" +> The Monitor hub is in Public Beta. Some functionality may change before it becomes generally available. During the public beta, only default alerts are located in the Monitor tab. + +Segment has two kinds of alerts: +- **Default alerts**: Alerts that have a preset threshold and are often used to detect changes users make to the integrations in your workspace. For example, a _Source created_ alert is a default alert. +- **Custom alerts**: Alerts that allow you to customize the sensitivity of the trigger that activates an alert so you can more accurately detect event volume fluctuations in your sources and destinations. For example, a _Source volume fluctuation_ alert would be a custom alert, as you could select a percentage of fluctuation that would work for your business needs. + +{% include components/reference-button.html + href="/monitor/alerts/default-alerts" + variant="related" + icon="monitor.svg" + title="Default alerts" + description="Learn more about Segment's default alerts." +%} \ No newline at end of file diff --git a/src/monitor/index.md b/src/monitor/index.md new file mode 100644 index 0000000000..27b01e676d --- /dev/null +++ b/src/monitor/index.md @@ -0,0 +1,18 @@ +--- +title: Monitor Overview +--- +With Segment’s alerting capabilities, you can monitor the health of your integrations and diagnose issues that might be present in your data pipeline. <!---, and view a record of all user and system activity that happened in Segment over the past 90 days. ---> + +Receive alerts for the performance and throughput of your Sources and Destinations, fluctuations in events delivered to your Reverse ETL mappings, and the performance and throughput of Audience syncs with Alerting. + +<!---Segment’s Audit Trail provides a high-level view of all changes made in your workspace over the last 90 days. Use the Audit Trail and Audit Forwarding to quickly revert unintentional actions made in Segment to prevent downstream data loss. + +Select a product below to learn about its capabilities, supported destinations, and more. ---> + + {% include components/reference-button.html + href="/docs/monitor/alerts" + icon="megaphone.svg" + title="Alerts" + description="Receive notifications related to the performance and throughput of a Segment connection." + %} + diff --git a/src/privacy/data-retention-policy.md b/src/privacy/data-retention-policy.md index 4c4d0b4c9d..f4cf16e58e 100644 --- a/src/privacy/data-retention-policy.md +++ b/src/privacy/data-retention-policy.md @@ -29,70 +29,55 @@ Segment enforces a data retention period of up to 3 years for Business Tier cust The default data retention period for each of the data types is as follows: -| Tier | Archive Event Data Retention | Profile Event Data Retention | Object Data Retention | Audit | HIPAA Audit | -| ------------ | ---------------------------- | ---------------------------- | --------------------- | ------- | -------------- | +| Tier | Archive Event Data Retention | Profile Event Data Retention | Object Data Retention | Audit | HIPAA Audit | +| ------------ | ---------------------------- | ---------------------------- | --------------------------------- | ------- | -------------- | | **Business** | 3 years | 3 years | 180 days | 3 years | 3 years | | **Team** | 365 days | Not applicable | 90 days | 365 days | Not applicable | | **Free** | 180 days | Not applicable | 60 days | 180 days | Not applicable | -Through the self-serve Data Retention configuration in your workspace, you can configure a custom data retention period through the [Workspace Default Archive Retention Period](#workspace-default-archive-retention-period) setting. +> info "" +> Segment calculates your data retention period for archive event and profile event data starting from the date Segment ingests an event, not from the date an event originally occurred. Object data retention periods are calculated from the date an object was last updated. + +Segment will unrecoverably delete a disabled [Unify Space](/docs/unify/identity-resolution/space-setup/#step-one-create-a-new-dev-space) 90 days after it was disabled. Segment recommends keeping your data for at least 30 days to enable [replays](/docs/guides/what-is-replay/) of your data. To change your data retention settings, open Segment and navigate to **Privacy > Settings > Data Retention**. -### Workspace Default Archive Retention Period - -Select the default retention period for the workspace in this setting. This value applies to all sources in the workspace, unless overridden in the [Source-Level Archive Retention Periods](#source-level-archive-retention-periods) setting. +### Workspace default archive retention period -> warning "7 day Retention Periods will be deprecated on March 6, 2025" -> After March 6, you will no longer be able to set your workspace's retention period to 7 days. All workspaces with 7 day retention periods will be updated to have 14 day retention periods. - -You can select from the following Archive Retention time periods: +Select the default retention period for the workspace in this setting. This value applies to all sources in the workspace. - 14 days - 30 days - 90 days - 180 days - 365 days -- Unlimited (**default**) - -### Source-Level Archive Retention Periods - -> warning "Source-Level Archive Retention Periods will be deprecated on April 15, 2025" -> After April 15, you will no longer be able to override your workspace's default retention period on a source-by-source basis. - -Override the workspace default retention period on a per-source level. - -You can select from the following Archive Retention time periods: - -- Default (This is the default value you set in the [Workspace Default Archive Retention Period](#workspace-default-archive-retention-period)) -- 14 days -- 30 days -- 90 days -- 180 days -- 365 days -- Unlimited - +- 3 years (the default setting starting July 15, 2025) +- Unlimited (deprecated July 15, 2025) ### What data is impacted? With this data retention policy, all data beyond the retention period is unrecoverably deleted from all of Segment and impacts the following: * [Data Replays](/docs/guides/what-is-replay/) will only be available for data within the retention period. Unify, Engage and Linked customers that replay data to recreate Unify Spaces or Profiles may encounter variations in the number of profiles, as well as in the identifiers, traits and properties associated with the profiles, depending on the data available. -* Backfill Data is only available for data within the retention period. +* Backfill Data is only available for data within the retention period, when sources are connected to your warehouse. * [Data residency](/docs/guides/regional-segment/) migrations across regions (US and EU) is only available for data within the retention period. -* Additional impacts to Object data: - * Cloud Object Data (using push) updated using the [Object API](/docs/connections/sources/catalog/libraries/server/object-api/#set), [Bulk API](/docs/connections/sources/catalog/libraries/server/object-bulk-api/), or webhook cloud sources (for example, [SendGrid](/docs/connections/sources/catalog/cloud-apps/sendgrid/#streaming) or [Mandrill](/docs/connections/sources/catalog/cloud-apps/mandrill/#streaming)): Any data older than 180 days is treated as a new record and may not contain any historic properties. To prevent loss of data properties, Segment recommends that you always send full objects with all properties. - * Users and Accounts: Segment aggregates data from Identify and Group events for entities active within the last 180 days. Any data older than 180 days is treated as a new record and won't have historic properties. To prevent loss of data properties, Segment advises customers to migrate to using Profile Sync. +* Additional impacts to Object data: + * [Object API](/docs/connections/sources/catalog/libraries/server/object-api/#set) or [Bulk API](/docs/connections/sources/catalog/libraries/server/object-bulk-api/): Object data not updated within the retention period will be deleted. Any new data will treated as a new record and may not contain any historic properties. To prevent loss of data properties, Segment recommends that you always send full objects with all properties. + * Users and Accounts: Segment aggregates data from Identify and Group events into [Users and Account objects and tables for warehouse destinations](/docs/connections/storage/warehouses/schema/#warehouse-tables) object store records. Any object store records not updated in the last 180 days will be deleted from Segment's object stores. Any new data after object store records are deleted for inactivity is treated as a new object store record. If the source is connected to a Warehouse destination, object store entities are synced into [`<source>.users` and `<source>.accounts` tables](/docs/connections/storage/warehouses/schema/#warehouse-tables), and the existing record in the warehouse will be replaced with the new object store record, resulting in possible loss of attribute data. To prevent loss of attributes, Segment advises customers to migrate to using [Profiles Sync](/docs/unify/profiles-sync/overview/), always send complete Identify and Group calls, or back up your `<source>.users` and `<source>.accounts` tables. * [Computed traits](/docs/unify/Traits/computed-traits/) is built using the available data within the retention period. Recreating these traits may result in different values based on the available data. -* [Profiles](/docs/unify/), [Engage](/docs/engage/) [Audiences](/docs/engage/audiences/) and [Journeys](/docs/engage/journeys/) that are built using Events will use available data within the retention period. Recreating these may result in different Profiles based on the available data. Depending on how the conditions are defined, Profiles may or may not exit Computed traits, Engage Audiences, and Journeys due to the data retention policy, and this may result in mismatches in counts when comparing against a preview. +* [Profiles](/docs/unify/), [Engage](/docs/engage/) [Audiences](/docs/engage/audiences/) and [Journeys](/docs/engage/journeys/) that are built using Events will use available data within the retention period. Recreating these may result in different Profiles based on the available data. + * [Real Time Computation](/docs/engage/audiences/#refresh-real-time-audiences-and-traits) (Audiences, Computed Traits, Journeys): When backfilling with historical data, backfill will use available data within the retention period. Once a computation is live, events that are removed due to data retention will not cause Profiles to enter/exit audiences and will not cause computed trait value changes. However, if you edit the definition or disable then re-enable them, this will cause the computation to re-backfill, which will cause Profiles to enter/exit audiences and computed trait value to change. + * [Batch Computation](/docs/engage/audiences/#real-time-compute-compared-to-batch) (Audiences, Computed Traits): Batch computation always computes based on available data, events removed due to data retention will cause Profile to enter/exit an Audience or computed trait values to change. + ### What data is not impacted? With this policy the following data is not impacted, but may be subject to other policies: -* **Cloud Object Data (using pull)**: This involves Segment fetching object data from third party Cloud Sources. Since Segment always fetches the full objects, the retention policy will have no impact. +* **[Object Cloud Sources](/docs/connections/sources/#object-cloud-sources)**: Segment fetches complete object data from third party Object Cloud Sources. Objects older than the retention period will be deleted. However, since Segment always fetches the complete object, Objects deleted will be fetched and made available again. + * [SendGrid](/docs/connections/sources/catalog/cloud-apps/sendgrid/) is both an Event Source and Object Source, therefore Events from SendGrid have retention period applicable to Archive and Profile stores while Objects from SendGrid have retention period applicable to the Object store retention period. * **Profiles**: Unify Profiles, Identifiers, and Traits created are not subject to this data retention policy. * **Third Party Destinations**: Data in your third party destinations shared by Segment in the course of your implementation remains unaffected. Data stored in a third party system may be subject to the data retention policy of that system. * Anything a user creates in the Segment App, like Audiences, Journeys, Data Graphs, Connections, and more, **are not subject to this data retention policy**. @@ -149,4 +134,4 @@ Segment unrecoverably deletes the workspace after 30 days of inactivity, unless ### Data deletion delays -When data reaches the end of its retention period, deletion is scheduled in accordance with Segment’s data retention policy. While Segment aims to complete the deletion process promptly, there may be occasional delays due to processing times or technical constraints. Segment is committed to initiating data deletions as soon as possible and strives to complete deletions within 7 days of the scheduled date. +When data reaches the end of its retention period, deletion is scheduled in accordance with Segment’s data retention policy. While Segment aims to complete the deletion process promptly, there may be occasional delays due to processing times or technical constraints. Segment is committed to initiating data deletions as soon as possible and strives to complete deletions within 7 days of the scheduled date. \ No newline at end of file diff --git a/src/segment-app/extensions/dbt.md b/src/segment-app/extensions/dbt.md index c22a932f68..4d338ebd97 100644 --- a/src/segment-app/extensions/dbt.md +++ b/src/segment-app/extensions/dbt.md @@ -28,6 +28,7 @@ To set up the dbt extension, you'll need: - an existing dbt account with a Git repository - for job syncs, dbt cloud with jobs already created +- a user with Workspace Owner permissions in Segment ### Git repository and dbt Models setup diff --git a/src/segment-app/extensions/git.md b/src/segment-app/extensions/git.md index 04b87ed6c9..5dae126d31 100644 --- a/src/segment-app/extensions/git.md +++ b/src/segment-app/extensions/git.md @@ -4,9 +4,12 @@ title: Git Sync Extension Segment's Git extension lets you manage versioning by syncing changes you make in your Segment workspace to a Git repository. -Git Sync supports one-way synchronization from Segment to Git. This sync captures the current state of your workspace through a full sync and includes all new records and changes for supported resources. +Git Sync supports synchronization from Segment to Git. When you sync data from Segment to Git, you capture the current state of your workspace through a full sync and includes all new records and changes for supported resources. -Segment doesn't support syncing changes from Git back to Segment. +You can use [bidirectional sync](#bidirectional-sync) to sync data from Git to Segment. After you enable bidirectional sync, Segment automatically listens for pull requests in your repository and manages all related workspace changes. + +> info "Bidirectional sync is in Private Beta" +> Bidirectional sync is in private beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. ## Set up Git Sync @@ -84,6 +87,48 @@ To manage Segment resources using Git and Terraform, follow these steps: For more information on using Terraform, visit [Terraform's documentation](https://developer.hashicorp.com/terraform/docs){:target="_blank"}. +## Bidirectional Sync + +Bidirectional sync builds on top of the Git Sync extension and lets you manage your Segment workspace directly in GitHub. After you configure and enable bidirectional sync, Segment automatically listens for pull requests in your repository and manages all related workspace changes. Segment only applies changes when you comment `segment apply` on pull requests that can be successfully merged. + +> info "Bidirectional sync is in Private Beta" +> Bidirectional sync is in private beta, and Segment is actively working on this feature. Some functionality may change before it becomes generally available. + +Bidirectional sync only supports: +- Explicit values ([secrets](#use-secrets-with-bidirectional-sync) require additional configuration) +- [Segment resources compatible with Git sync](#working-with-git-sync) + +Bidirectional sync does not support variables, references to other resources, or resources from other providers. + +> warning "Bidirectional sync can lead to broad workspace changes, including data loss" +> When using bidirectional sync to manage your Segment resources, verify that your specified plan matches the changes you expected. Unexpected changes can include data loss. + +### Set up bidirectional sync + +To set up bidirectional sync in your workspace: + +1. **Navigate to the Git Sync settings page to verify that your Git Sync integration is set up with Segment's GitHub App integration.** If it isn't, you can change the connection type under **Settings > Extensions > Git Sync > Manage Configuration**. If you were previously using the GitHub App integration, you might need to accept additional GitHub permissions that allow Segment to listen for the relevant events. +2. **Add branch protection to your GitHub repository**. You can update your branch protections by opening GitHub and navigating to **Settings > Rules > Rulesets** and adding the Segment Extensions app to the **Bypass list**. +3. **Navigate to the Segment app and enable Git sync bidirectional sync.** From the Segment app, navigate to **Settings > Extentions > Git Sync** page and enable the **Git sync bidirectional sync** setting. + +### Use bidirectional sync + +To apply changes to your workspace using bidirectional sync: + +1. Create a branch off of the branch specified in your Git Sync configuration, make the changes you'd like to see in your workspace, then submit a pull request with your changes. + - To add a new resource, add a *new* configuration file to the corresponding resource directory. Segment does not support multiple resources within the same file. The name does not matter, as it will be overwritten with a new ID after Segment creates the resource. +2. Segment calculates the changes required to reflect those changes and outputs the planned changes to a comment directly on the pull request. +3. Carefully double check that the planned changes match your desired changes and request approval from any stakeholders required before merging the pull request. +4. Run `segment apply` to apply the planned changes. + +#### Use secrets with bidirectional sync + +To use secrets in your bidirectional sync workflow: + +1. Navigate to **Settings > Extensions > Git Sync > Manage Configuration** and upload your secret to the **Secrets** table. +2. When referencing your secret, use `@@<secret_name>@@` in place of your secret, wherever applicable. Secrets are automatically hidden in a bidirectional sync output, but if you are not using them in a designated secret field, like Source/Destination key settings, for example, they might be written in plaintext to the repository as part of the regular syncing process. +3. Plan and apply the changes as usual. + ## Git Connections Git Connections enable Segment to sync data with your preferred Git repository through supported like SSH and token-based authentication. @@ -114,3 +159,4 @@ This error can occur if there are issues with your Git connection settings or pe - Your credentials have write access to the Git repository, as Segment requires this to sync changes. - Your repository is hosted by GitHub, GitLab, or Bitbucket (Segment doesn't support self-hosted repositories). - Branch protections are disabled on the repository. + diff --git a/src/unify/Traits/predictions/index.md b/src/unify/Traits/predictions/index.md index 69e61c00ea..8a97918676 100644 --- a/src/unify/Traits/predictions/index.md +++ b/src/unify/Traits/predictions/index.md @@ -88,7 +88,7 @@ This table lists the requirements for a trait to compute successfully: | Event Types | Track at least 5 different event types in the Feature Window. | | Historical Data | Ensure these 5 events have data spanning 1.5 times the length of the Target Window. For example, to predict a purchase propensity over the next 60 days, at least 90 days of historical data is required. | | Subset Audience (if applicable) | Ensure the audience contains more than 1 non-anonymous user. | -| User Limit | Ensure that you are making a prediction for fewer than 20 million users. If you track more than 20 million users in your space, define a smaller audience in the **Make a Prediction For** section of the custom predictions builder. | +| User Limit | Ensure that you are making a prediction for fewer than 10 million users. If you track more than 10 million users in your space, define a smaller audience in the **Make a Prediction For** section of the custom predictions builder. | | User Activity | At least 100 users performing the Target Event and at least 100 users not performing the Target Event. | #### Selecting events (optional) diff --git a/src/unify/data-graph/index.md b/src/unify/data-graph/index.md index 242e9e5f10..4860be27e1 100644 --- a/src/unify/data-graph/index.md +++ b/src/unify/data-graph/index.md @@ -19,6 +19,7 @@ To use the Data Graph, you'll need the following: - Workspace Owner or Unify Read-only/Admin and Entities Admin permissions - For Linked Audiences, set up [Profiles Sync](/docs/unify/profiles-sync/) in a Unify space with ready-to-use [data models and tables](/docs/unify/profiles-sync/tables/) in your warehouse. When setting up selective sync, Segment recommends the following settings: - Under **Profile materialized tables**, select all the tables (`user_identifier`, `user_traits`, `profile_merges`) for faster and more cost-efficient Linked Audiences computations in your data warehouse. + - **Make sure to include the unmaterialized tables as well**. Segment needs them during setup to understand your schema. - Under **Track event tables**, select **Sync all Track Call Tables** to enable filtering on event history for Linked Audiences conditions. > info "" @@ -29,7 +30,7 @@ To use the Data Graph, you'll need the following: > Data Graph, Reverse ETL, and Profiles Sync require different warehouse permissions. To get started with the Data Graph, set up the required permissions in your warehouse. Segment supports the following: -- Linked Audiences: [BigQuery](/docs/unify/data-graph/setup-guides/BigQuery-setup/), [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/), and [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/) +- Linked Audiences: [BigQuery](/docs/unify/data-graph/setup-guides/BigQuery-setup/), [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/), [Redshift](/docs/unify/data-graph/setup-guides/redshift-setup/), and [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/) - Linked Events: [BigQuery](/docs/unify/data-graph/setup-guides/BigQuery-setup/), [Databricks](/docs/unify/data-graph/setup-guides/databricks-setup/), [Redshift](/docs/unify/data-graph/setup-guides/redshift-setup/), and [Snowflake](/docs/unify/data-graph/setup-guides/snowflake-setup/) To track the data sent to Segment on previous syncs, Segment uses [Reverse ETL](/docs/connections/reverse-etl/) infrastructure to store diffs in tables within a dedicated schema called `_segment_reverse_etl` in your data warehouse. You can choose which database or project in your warehouse this data lives in. @@ -107,8 +108,8 @@ data_graph { primary_key = "SUB_ID" } - # Define the profile entity, which corresponds to Segment Profiles tables synced via Profiles Sync - # Recommend setting up Profiles Sync materialized views to optimize warehouse compute costs + # Define the profile entity, which corresponds to Segment Profiles tables synced with Profiles Sync + # Use materialized views in Profiles Sync to reduce query costs and speed things up profile { profile_folder = "PRODUCTION.SEGMENT" type = "segment:materialized" @@ -118,7 +119,7 @@ data_graph { relationship "user-accounts" { name = "Premium Accounts" related_entity = "account-entity" - # Join the profile entity with an identifier (e.g. email) on the related entity table + # Join the profile entity with an identifier (like email) on the related entity table # Option to replace with the trait block below to join with a profile trait on the entity table instead external_id { type = "email" @@ -126,14 +127,14 @@ data_graph { } # Define 1:many relationship between accounts and carts - # e.g. an account can be associated with many carts + # for example, an account can be associated with many carts relationship "user-carts" { name = "Shopping Carts" related_entity = "cart-entity" join_on = "account-entity.ID = cart-entity.ACCOUNT_ID" # Define many:many relationship between carts and products - # e.g. there can be multiple carts, and each cart can be associated with multiple products + # for example, there can be multiple carts, and each cart can be associated with multiple products relationship "products" { name = "Purchased Products" related_entity = "product-entity" @@ -157,7 +158,7 @@ data_graph { } # Define 1:many relationship between households and subscriptions - # e.g. a household can be associated with multiple subscriptions + # for example, a household can be associated with multiple subscriptions relationship "user-subscriptions" { name = "Subscriptions" related_entity = "subscription-entity" @@ -203,10 +204,10 @@ data_graph { Next, define the profile. This is a special class of entity that represents Segment Profiles, which corresponds to the Profiles Sync tables and models. For Linked Audiences, this allows marketers to filter on profile traits, event history, etc. There can only be one profile for a Data Graph. -| Parameters | Definition | -| ----------- | --------------------------------------------------------------------- | -| `profile_folder` | Define the fully qualified path of the folder or schema location for the profile tables. | -| `type` | Identify the materialization method of the profile tables defined in your Profiles Sync configuration under [Selective Sync settings](/docs/unify/profiles-sync/profiles-sync-setup/#step-3-set-up-selective-sync): `segment:unmaterialized` or `segment:materialized`.| +| Parameters | Definition | +| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `profile_folder` | Define the fully qualified path of the folder or schema location for the profile tables. | +| `type` | Use `segment:materialized` to sync materialized views with Profiles Sync. Segment recommends this configuration for all Linked Audiences and Data Graph setups. If you can't sync materialized views, [reach out to Segment support](https://segment.com/help/contact/){:target="_blank"} for help. | **Example:** @@ -238,23 +239,24 @@ This is the first level of relationships and a unique type of relationship betwe | Parameters | Definition | | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (e.g. `user-account` or `user_account`) | +| `relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (like `user-account` or `user_account`) | | `name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences, etc. This name can be modified at any time | | `related_entity` | References your already defined entity | To define a profile-to-entity relationship, reference your entity table and depending on your table columns, choose to join on one of the following: -**Option 1 (Most common) - Join on an external ID:** Use the `external_id` block to join the profile entity with an entity table using external IDs from your [Unify ID resolution](/docs/unify/identity-resolution/externalids/) settings. Typically these identifiers are `user_id`, `email`, or `phone` depending on the column in the entity table that you want to join with. -- `type`: Represents the [external ID type](/docs/unify/identity-resolution/externalids/#default-externalids) (`email`, `phone`, `user_id`) in your id-res settings. Depending on if you are using materialized or unmaterialized profiles, these correspond to different columns in your Profiles Sync warehouse tables: - - [Materialized](/docs/unify/profiles-sync/tables/#the-user_identifiers-table) (Recommended): This corresponds to the `type` column in your Profiles Sync `user_identifiers` table. - - [Unmaterialized](/docs/unify/profiles-sync/tables/#the-external_id_mapping_updates-table): This corresponds to the `external_id_type` column in your Profiles Sync `external_id_mapping_updates` table. -- `join_key`: This is the column on the entity table that you are matching to the external identifier. +**Option 1 (Most common) - Join on an external ID:** Use the `external_id` block to join the profile entity with an entity table using external IDs from your [Unify ID resolution](/docs/unify/identity-resolution/externalids/) settings. Typically these identifiers are `user_id`, `email`, or `phone` depending on the structure of your entity table. +- `type`: Represents the [external ID type](/docs/unify/identity-resolution/externalids/#default-externalids) (`email`, `phone`, `user_id`) in your ID resolution settings. + - This maps to the `type` column in the `user_identifiers` table when using materialized views. +- `join_key`: The column on the entity table that matches the external ID. + +> note "" +> Segment recommends using materialized views with Profiles Sync. However, Segment may still reference unmaterialized tables during setup for schema detection. **Option 2 - Join on a profile trait:** Use the `trait` block to join the profile entity with an entity table using [Profile Traits](/docs/unify/#enrich-profiles-with-traits). -- `name`: Represents a trait name in your Unify profiles. Depending on if you are using materialized or unmaterialized profiles, these correspond to different columns in your Profiles Sync warehouse tables: - - [Materialized](/docs/unify/profiles-sync/tables/#the-profile_traits-table) (Recommended): The trait name corresponds to a unique value of the `name` column in your Profiles Sync `user_traits` table. - - [Unmaterialized](/docs/unify/profiles-sync/tables/#the-profile_traits_updates-table): This corresponds to a column in the Profile Sync `profile_trait_updates` table. -- `join_key`: This is the column on the entity table that you are matching to the trait. +- `name`: Represents a trait name in your Unify profiles. + - This maps to the `name` column in the `user_traits` table when using materialized views. +- `join_key`: The column on the entity table that you're matching to the trait. **Example:** ```python @@ -277,7 +279,7 @@ data_graph { name = "Premium Accounts" related_entity = "account-entity" - # Option 1: Join the profile entity with an identifier (e.g. email) on the related entity table + # Option 1: Join the profile entity with an identifier (like email) on the related entity table external_id { type = "email" join_key = "EMAIL_ID" @@ -298,7 +300,7 @@ For 1:many relationships, define the join on between the two entity tables using | Parameters | Definition | | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (e.g. `user-account` or `user_account`) | +| `relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (like `user-account` or `user_account`) | | `name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences, and so on. This name can be modified at any time | | `related_entity` | References your already defined entity | | `join_on` | Defines relationship between the two entity tables `[lefty entity slug].[column name] = [right entity slug].[column name]`. Note that since you’re referencing the entity slug for the join on, you do not need to define the full table reference | @@ -343,19 +345,31 @@ For many:many relationships, define the join on between the two entity tables wi | Parameters | Definition | | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (e.g. `user-account` or `user_account`) | +| `relationship` | An immutable slug for the relationship, and will be treated as a delete if you make changes. The slug must be in all lowercase, and supports dashes or underscores (like `user-account` or `user_account`) | | `name` | A label displayed throughout your Segment space for Linked Events, Linked Audiences, and so on. This name can be modified at any time | | `related_entity` | References your already defined entity | **Junction table spec** -| Parameters | Definition | -| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Parameters |Definition | +| --------------- | --------------------------------- | | `table_ref` | Defines the fully qualified table reference to the join table: `[database name].[schema name].[table name]`. Segment flexibly supports tables, views and materialized views | | `primary_key` | The unique identifier for the given table. Must be a column with unique values per row | | `left_join_on` | Define the relationship between the left entity table and the junction table: `[left entity slug].[column name] = [junction table column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again | | `right_join_on` | Define the relationship between the junction table and the right entity table: `[junction table column name] = [right entity slug].[column name]`. Note that schema and table are implied within the junction table column name, so you do not need to define it again | + +When you define a many-to-many relationship using a junction table, `left_join_on` and `right_join_on` tell Data Graph how to connect each entity to the junction table: + +* Use `left_join_on` to specify which column in the junction table links to the parent (left) entity. + +* Use `right_join_on` to specify which column links to the child (right) entity. + +These fields define the join conditions, but they don’t control how the join is executed. Data Graph always performs inner joins, even if you specify a `left_join_on`. + +If you need behavior similar to a left join (like including unmatched rows), create a view in your warehouse with the logic you’re targeting and reference that view as an entity in your graph. + + **Example:** ```python diff --git a/src/unify/data-graph/linked-events.md b/src/unify/data-graph/linked-events.md index 193f538a40..ea32cb189e 100644 --- a/src/unify/data-graph/linked-events.md +++ b/src/unify/data-graph/linked-events.md @@ -30,9 +30,6 @@ To use Linked Events, you'll need the following: 2. Access to Unify in your workspace. 3. Access to the actions-based destination you'll be using with Linked Events so that you can validate your data. -> info "" -> Segment stores and processes all data in the United States. - > info "" > Profiles Sync isn't required for Linked Events. @@ -162,7 +159,7 @@ To configure your sync schedule: 3. Click **Edit** next to **Sync schedule**. 4. Select the **Schedule type**. You can choose from: * **Manual**: Trigger the sync manually or with Segment's API. - * **Interval**: Sync based on a by-the minute, hourly, or daily cycle. For example, once every 2 hours. + * **Interval**: Sync at predefined intervals: 15 min, 30 min, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, or 1 day * **Day and time**: Sync at specific times on selected days of the week. For example, Mondays at 2:00PM. ### Add entities @@ -216,7 +213,7 @@ To use Linked Events, be sure that you have proper permissions for the Data Ware #### How often do syncs occur? -Segment currently syncs once every hour. +You can configure your syncs to occur at predefined intervals: 15 min, 30 min, 1 hour, 2 hours, 4 hours, 6 hours, 8 hours, 12 hours, or 1 day. See the section on [configuring the sync schedule](#configure-the-sync-schedule) to learn more. #### Which Destinations does Linked Events support? diff --git a/src/unify/data-graph/setup-guides/BigQuery-setup.md b/src/unify/data-graph/setup-guides/BigQuery-setup.md index 53a07c61a3..3fc986648e 100644 --- a/src/unify/data-graph/setup-guides/BigQuery-setup.md +++ b/src/unify/data-graph/setup-guides/BigQuery-setup.md @@ -6,12 +6,11 @@ redirect_from: - '/unify/linked-profiles/setup-guides/BigQuery-setup' --- -> info "" -> BigQuery for Data Graph is in beta and Segment is actively working on this feature. Some functionality may change before it becomes generally available. This feature is governed by Segment’s [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. +> warning "" +> Data Graph, Reverse ETL, and Profiles Sync require different warehouse permissions. Set up your BigQuery data warehouse to Segment for the [Data Graph](/docs/unify/data-graph/data-graph/). - ## Step 1: Roles and permissions > warning "" > You need to be an account admin to set up the Segment BigQuery connector as well as write permissions for the `__segment_reverse_etl` dataset. diff --git a/src/unify/data-graph/setup-guides/databricks-setup.md b/src/unify/data-graph/setup-guides/databricks-setup.md index 202c0a6956..4d106bb684 100644 --- a/src/unify/data-graph/setup-guides/databricks-setup.md +++ b/src/unify/data-graph/setup-guides/databricks-setup.md @@ -5,6 +5,9 @@ redirect_from: - '/unify/linked-profiles/setup-guides/databricks-setup' --- +> warning "" +> Data Graph, Reverse ETL, and Profiles Sync require different warehouse permissions. + On this page, you'll learn how to connect your Databricks data warehouse to Segment for the [Data Graph](/docs/unify/data-graph/data-graph/). ## Databricks credentials diff --git a/src/unify/data-graph/setup-guides/redshift-setup.md b/src/unify/data-graph/setup-guides/redshift-setup.md index 167376e28a..8c0327241d 100644 --- a/src/unify/data-graph/setup-guides/redshift-setup.md +++ b/src/unify/data-graph/setup-guides/redshift-setup.md @@ -6,15 +6,13 @@ redirect_from: - '/unify/linked-profiles/setup-guides/redshift-setup' --- -> info "" -> Redshift for Data Graph is in beta and Segment is actively working on this feature. Some functionality may change before it becomes generally available. This feature is governed by Twilio Segment’s [First Access and Beta Preview Terms](https://www.twilio.com/en-us/legal/tos){:target="_blank"}. +> warning "" +> Data Graph, Reverse ETL, and Profiles Sync require different warehouse permissions. Set up your Redshift data warehouse to Segment for the [Data Graph](/docs/unify/data-graph/). ## Prerequisite -To use Linked Audiences with Redshift, the Data Graph only supports [materialized views](/docs/unify/profiles-sync/tables/#tables-segment-materializes). - If you're setting up Profiles Sync for the first time in the Unify space, go through the setup flow for Selective sync. If Profiles Sync is already set up for your Unify space, follow these steps to configure Profiles Sync for your Unify space: 1. Navigate to **Unify > Profile Sync**. diff --git a/src/unify/data-graph/setup-guides/snowflake-setup.md b/src/unify/data-graph/setup-guides/snowflake-setup.md index f732e4adc5..aea89baece 100644 --- a/src/unify/data-graph/setup-guides/snowflake-setup.md +++ b/src/unify/data-graph/setup-guides/snowflake-setup.md @@ -5,7 +5,7 @@ redirect_from: - '/unify/linked-profiles/setup-guides/snowflake-setup' --- > warning "" -> Data Graph, Reverse ETL, Profiles Sync require different warehouse permissions. +> Data Graph, Reverse ETL, and Profiles Sync require different warehouse permissions. On this page, you'll learn how to connect your Snowflake data warehouse to Segment for the [Data Graph](/docs/unify/data-graph/data-graph/). diff --git a/src/unify/product-limits.md b/src/unify/product-limits.md index 9f7c9c1df5..44979fe2ac 100644 --- a/src/unify/product-limits.md +++ b/src/unify/product-limits.md @@ -42,7 +42,7 @@ Visit Segment's [pricing page](https://segment.com/pricing/){:target="_blank"} t | name | limit | Details | | --------------------------------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Compute Concurrency | 5 new concurrent audiences or computed traits | Segment computes five new audiences or computed traits at a time. Once the limit is reached, Segment queues additional computations until one of the five finishes computing. | -| Edit Concurrency | 2 concurrent audiences or computed traits | You can edit two concurrent audiences or computed traits at a time. Once the limit is reached, Segment queues and locks additional computations until one of the two finishes computing. | +| Edit Concurrency | 5 concurrent audiences or computed traits | You can edit five concurrent audiences or computed traits at a time. Once the limit is reached, Segment queues and locks additional computations until one of the five finishes computing. | | Batch Compute Concurrency Limit | 10 (default) per space | The number of batch computations that can run concurrently per space. When this limit is reached, Segment delays subsequent computations until current computations finish. | | Compute Throughput | 10000 computations per second | Computations include any Track or Identify call that triggers an audience or computed trait re-computation. Once the limit is reached, Segment may slow audience processing. | | Real-time to batch destination sync frequency | 2-3 hours | The frequency with which Segment syncs real-time audiences to batch destinations. |