diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index aca7648e09..0d8784463e 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 2022-07-07 +# destination categories last updated 2022-07-12 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml index aa95dbe8ca..aaf24d8f56 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 2022-07-07 +# destination data last updated 2022-07-12 items: - id: 60b5d0a01f3726b85dc05aab display_name: 2mee @@ -4637,6 +4637,71 @@ items: label: Appcues Id actions: [] presets: [] +- id: 620ff0b76a6f5d2317a7a353 + display_name: Appcues Mobile + name: Appcues Mobile + slug: appcues-mobile + hidden: true + endpoints: + - us + regions: + - us + url: connections/destinations/catalog/appcues-mobile + previous_names: + - AppCues Mobile + - Appcues Mobile + website: http://www.appcues.com/ + status: PUBLIC_BETA + categories: + - Personalization + - Analytics + logo: + url: https://cdn.filepicker.io/api/file/IBwccHUASduVLs7bXegV + mark: + url: https://cdn.filepicker.io/api/file/0tjr8XfET0OWi2NbCskz + methods: + track: true + identify: true + group: true + alias: true + page: true + platforms: + browser: false + mobile: true + server: false + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: true + replay: false + connection_modes: + device: + web: false + mobile: false + server: false + cloud: + web: false + mobile: false + server: false + settings: + - name: accountId + type: string + defaultValue: '' + description: >- + You can find your Account ID on the Studio Settings page of your AppCues + Account. It should be a series of numbers, like `997086`. + required: true + label: Account ID + - name: applicationId + type: string + defaultValue: '' + description: >- + You can find your Application ID once you have registered a mobile App + with Appcues. It should look something like this: + `dfdbfe6f-e7bf-4938-8e82-7d1938e48ab8` + required: true + label: Application ID + actions: [] + presets: [] - id: 54521fd525e721e32a72ee95 display_name: AppNexus name: AppNexus @@ -7146,7 +7211,7 @@ items: label: SDK Endpoint - name: inAppMessageZIndex type: number - defaultValue: '' + defaultValue: 0 description: >- By default, the Braze SDK will show In-App Messages with a z-index of 1040 for the screen overlay, 1050 for the actual in-app message, and 1060 for @@ -7281,7 +7346,7 @@ items: hidden: false defaultTrigger: type = "track" and event != "Order Completed" fields: - - id: 4RY5k3JynjpCkJsYekXVc + - id: imv7W6pNRQq4bWKXPC9U5Z sortOrder: 0 fieldKey: eventName label: Event Name @@ -7295,7 +7360,7 @@ items: choices: null dynamic: false allowNull: false - - id: o25i9gH6WbZpetoCFZ46Pi + - id: wrrNrXwT2i7VbN4Q2Yovgu sortOrder: 1 fieldKey: eventProperties label: Event Properties @@ -7317,7 +7382,7 @@ items: hidden: false defaultTrigger: type = "identify" or type = "group" fields: - - id: onJMADP3ZJDvrP9UcnMCPd + - id: qzPDPSpepcGYNfGQuhvdnK sortOrder: 0 fieldKey: external_id label: External User ID @@ -7331,7 +7396,7 @@ items: choices: null dynamic: false allowNull: false - - id: byofrCE8BHLqZho49A5A1L + - id: e5YSCoPUqxygLXs9yUSPsS sortOrder: 1 fieldKey: country label: Country @@ -7345,7 +7410,7 @@ items: choices: null dynamic: false allowNull: true - - id: qSXVCjNWy5VxGYDs8TrgVp + - id: 7HT5YvP8W3eCN1K1UoUgaD sortOrder: 2 fieldKey: current_location label: Current Location @@ -7357,7 +7422,7 @@ items: choices: null dynamic: false allowNull: true - - id: bqWznToEUe2xGY6ZD6haAM + - id: wL8CzXhHq4yEhwAFu5jfVo sortOrder: 3 fieldKey: custom_attributes label: Custom Attributes @@ -7373,7 +7438,7 @@ items: choices: null dynamic: false allowNull: false - - id: iCkCgdDy7V27Fb344HAMLK + - id: i1QEnwuNf5fx9dPnJakfe sortOrder: 4 fieldKey: dob label: Date of Birth @@ -7385,7 +7450,7 @@ items: choices: null dynamic: false allowNull: true - - id: tSqCdF7ay4hvVqyR5j41kx + - id: jVQQq6RmNfD3thcttCSont sortOrder: 5 fieldKey: email label: Email @@ -7399,7 +7464,7 @@ items: choices: null dynamic: false allowNull: true - - id: sB8UvjexjzDtXVA5FMMX1S + - id: vemKJyVKKo1XmLHnRKXuzb sortOrder: 6 fieldKey: email_subscribe label: Email Subscribe @@ -7414,7 +7479,7 @@ items: choices: null dynamic: false allowNull: false - - id: oAQC6SnhT9pyLyjLmtHioC + - id: 9XQDpJw5csW5pxx4P4kftm sortOrder: 7 fieldKey: first_name label: First Name @@ -7428,7 +7493,7 @@ items: choices: null dynamic: false allowNull: true - - id: e221o1vu4EQGzigzJEJMUf + - id: w3q5P8fHeqoejXfBCYUauD sortOrder: 8 fieldKey: last_name label: Last Name @@ -7442,7 +7507,7 @@ items: choices: null dynamic: false allowNull: false - - id: ksjRPS2pvyvmNSQoh4R6cB + - id: 48yAtS4U4e2CwoNiVy4sok sortOrder: 9 fieldKey: gender label: Gender @@ -7458,7 +7523,7 @@ items: choices: null dynamic: false allowNull: true - - id: s9EsyQ4WUG19iz13iwfdA9 + - id: vGs9PcgXrQLopzJtJARm7u sortOrder: 10 fieldKey: home_city label: Home City @@ -7472,7 +7537,7 @@ items: choices: null dynamic: false allowNull: true - - id: 2rg5jGCC6fcP1v3pq3t35x + - id: wLsqc1Nzyx7xpxKSRtUg6P sortOrder: 11 fieldKey: image_url label: Image URL @@ -7486,7 +7551,7 @@ items: choices: null dynamic: false allowNull: false - - id: vgt2SixvWX596CGom3zjwC + - id: gDzqjZ3rCkgyPXd2929adH sortOrder: 12 fieldKey: language label: Language @@ -7498,7 +7563,7 @@ items: choices: null dynamic: false allowNull: true - - id: 8v6sQdXyR65TrVRtmL9e1N + - id: bkqhWodKDT2yRqYsyMMSd8 sortOrder: 13 fieldKey: phone label: Phone Number @@ -7512,7 +7577,7 @@ items: choices: null dynamic: false allowNull: true - - id: 63D5SRVcj5KtQX7abWuzp9 + - id: hf1xsYArmCgF4s3zE6nHzd sortOrder: 14 fieldKey: push_subscribe label: Push Subscribe @@ -7535,7 +7600,7 @@ items: hidden: false defaultTrigger: type = "track" and event = "Order Completed" fields: - - id: xrKaa8B6E3Aycpz73EJ57v + - id: 6b7Bzkh5YuHYZEsfYK52ew sortOrder: 0 fieldKey: purchaseProperties label: Purchase Properties @@ -7555,7 +7620,7 @@ items: choices: null dynamic: false allowNull: false - - id: 2Ltn6e4SxTokvrrpQgEvt6 + - id: dGHB2DXxuUQhF4LCC7pkT3 sortOrder: 1 fieldKey: products label: Products @@ -7570,14 +7635,6 @@ 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: @@ -7610,6 +7667,14 @@ items: phone: '@path': $.traits.phone 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" - id: 6241e78214aad278a6322f52 display_name: Breyta CRM name: Breyta CRM @@ -10127,7 +10192,7 @@ items: display_name: Criteo Audiences name: Criteo Audiences slug: criteo-audiences - hidden: true + hidden: false endpoints: - us regions: @@ -23536,9 +23601,9 @@ items: categories: - Analytics logo: - url: https://d3hotuclm6if1r.cloudfront.net/logos/heap-default.svg + url: https://cdn.filepicker.io/api/file/yM4FXcuSPmu6jwxpDRAW mark: - url: https://cdn.filepicker.io/api/file/jhJBfmjkQIuqEEOhqNEW + url: https://cdn.filepicker.io/api/file/xwy3Q1kETa8ybge0X6Pl methods: track: true identify: true @@ -23878,6 +23943,7 @@ items: hidden: false endpoints: - us + - eu regions: - us - eu @@ -34060,6 +34126,75 @@ items: label: Pixel Code actions: [] presets: [] +- id: 6268a16ce311a548d8cb1a72 + display_name: Rokt Integration + name: Rokt Integration + slug: rokt-integration + hidden: true + endpoints: + - us + regions: + - us + url: connections/destinations/catalog/rokt-integration + previous_names: + - Rokt Integration + website: https://www.rokt.com/ + status: PUBLIC_BETA + categories: + - Advertising + - Analytics + logo: + url: >- + https://public-segment-devcenter-production.s3.amazonaws.com/b98d690c-7f1d-4df8-b78d-2953620a6bdf.svg + mark: + url: >- + https://public-segment-devcenter-production.s3.amazonaws.com/bfc777e8-bd8b-4685-b138-4b177ba82a3e.svg + methods: + track: true + identify: false + group: false + alias: false + page: false + platforms: + browser: true + mobile: true + server: true + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + connection_modes: + device: + web: false + mobile: false + server: false + cloud: + web: false + mobile: false + server: false + settings: + - name: accountId + type: string + defaultValue: '' + description: >- + For account ID, Refer to [Rokt's + documentation](https://docs.rokt.com/docs/developers/integration-guides/getting-started/account-id/). + required: true + label: Account ID + - name: apiKey + type: string + defaultValue: '' + description: 'You should receive your API Key from your Rokt account manager. ' + required: true + label: API Key + - name: appId + type: string + defaultValue: '' + description: You can get the App ID details from the Rokt platform in profile settings. + required: true + label: App ID + actions: [] + presets: [] - id: 54521fda25e721e32a72eeed display_name: Rollbar name: Rollbar @@ -34595,7 +34730,7 @@ items: hidden: false defaultTrigger: null fields: - - id: uexErRjqBF9YjDupL9Ltpo + - id: d7JYyQAKBmcZmEtdb2cir3 sortOrder: 0 fieldKey: operation label: Operation @@ -34613,14 +34748,28 @@ items: value: update - label: Update or create a record if one doesn't exist value: upsert - - label: Bulk Upsert - value: bulkUpsert - - label: Bulk Update - value: bulkUpdate dynamic: false allowNull: false - - id: uV9V7jQ7KmbyAzeU3esg6X + - id: 52p64fypmJZBCzchJXWdPr sortOrder: 1 + fieldKey: enable_batching + label: Use Salesforce Bulk API + type: BOOLEAN + description: >- + If true, events are sent to [Salesforce’s Bulk API + 2.0](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm) + rather than their streaming REST API. Once enabled, Segment will collect + events into batches of 1000 before sending to Salesforce. *Enabling Bulk + API is not compatible with the `create` operation*. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rur19wHJ27opd8unR7ubWb + sortOrder: 2 fieldKey: traits label: Record Matchers type: OBJECT @@ -34641,8 +34790,8 @@ items: choices: null dynamic: false allowNull: false - - id: m4hJQ8f1rFdvHW68rN5meZ - sortOrder: 2 + - id: dYr7SYKFVWc8hhWue2FKe7 + sortOrder: 3 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id type: OBJECT @@ -34653,8 +34802,8 @@ items: choices: null dynamic: false allowNull: false - - id: eNcAyKVfmfisKAf1FsRQvX - sortOrder: 3 + - id: iAztkwgPadNZBKQyd4LprY + sortOrder: 4 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id type: STRING @@ -34665,8 +34814,8 @@ items: choices: null dynamic: false allowNull: false - - id: 7n8Keh385zENH9r6kocbtp - sortOrder: 4 + - id: ohUCd2skzRkKr9HUYmFYY4 + sortOrder: 5 fieldKey: customObjectName label: Salesforce Object type: STRING @@ -34680,8 +34829,8 @@ items: choices: null dynamic: false allowNull: false - - id: wvUFLdxGnwZTuRvvMdMg5A - sortOrder: 5 + - id: 59Jv2wuf9FSmuyMYSyVJS1 + sortOrder: 6 fieldKey: customFields label: Other Fields type: OBJECT @@ -34700,18 +34849,6 @@ items: choices: null dynamic: false allowNull: false - - id: myMfEiEQcYJ3nQu1VXTwm1 - sortOrder: 6 - 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 - id: 5DAMQ5qUaF2rZoyVNiReCa name: Contact slug: contact @@ -34720,7 +34857,7 @@ items: hidden: false defaultTrigger: null fields: - - id: pBjoQMTp7MFRSQXqU2nLdj + - id: hLjEAxucqiXqF1CVXFMEMA sortOrder: 0 fieldKey: operation label: Operation @@ -34738,14 +34875,28 @@ items: value: update - label: Update or create a record if one doesn't exist value: upsert - - label: Bulk Upsert - value: bulkUpsert - - label: Bulk Update - value: bulkUpdate dynamic: false allowNull: false - - id: 58PrLYs6J2TYq5yP8yuZ91 + - id: rjLqe3kG9sFr9pxe6ub9u8 sortOrder: 1 + fieldKey: enable_batching + label: Use Salesforce Bulk API + type: BOOLEAN + description: >- + If true, events are sent to [Salesforce’s Bulk API + 2.0](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm) + rather than their streaming REST API. Once enabled, Segment will collect + events into batches of 1000 before sending to Salesforce. *Enabling Bulk + API is not compatible with the `create` operation*. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: fXW82LiE72AWvwQvGwp3mN + sortOrder: 2 fieldKey: traits label: Record Matchers type: OBJECT @@ -34766,8 +34917,8 @@ items: choices: null dynamic: false allowNull: false - - id: kMyoYExR2pEUWAKoEEQafT - sortOrder: 2 + - id: uE9xxzH9mfDcfrNyJUygAo + sortOrder: 3 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id type: OBJECT @@ -34778,8 +34929,8 @@ items: choices: null dynamic: false allowNull: false - - id: 2Gffnf1fd5jXPnNWAKm1Pc - sortOrder: 3 + - id: Hch6ra5PRkrKeDrzvZCDF + sortOrder: 4 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id type: STRING @@ -34790,8 +34941,8 @@ items: choices: null dynamic: false allowNull: false - - id: p9hxCD8pjAph3g9m7SiZzs - sortOrder: 4 + - id: vzvkhacAG4ZbVkuaVg8nEp + sortOrder: 5 fieldKey: last_name label: Last Name type: STRING @@ -34812,8 +34963,8 @@ items: choices: null dynamic: false allowNull: false - - id: gxrpAszW8hC6hjr83ZxaZm - sortOrder: 5 + - id: iVkbL1xK39bFxjpgCxjNoL + sortOrder: 6 fieldKey: first_name label: First Name type: STRING @@ -34832,8 +34983,8 @@ items: choices: null dynamic: false allowNull: false - - id: 98Tj9fL9H7yaPTtoxr13xJ - sortOrder: 6 + - id: u7qd9cauPr9unAWj1PcfkS + sortOrder: 7 fieldKey: account_id label: Account ID type: STRING @@ -34847,8 +34998,8 @@ items: choices: null dynamic: false allowNull: false - - id: 6AVRaVbLAWNuKEYW2JmqVy - sortOrder: 7 + - id: aGtsZJ1AhtuNoYPXjYzMLe + sortOrder: 8 fieldKey: email label: Email type: STRING @@ -34867,8 +35018,8 @@ items: choices: null dynamic: false allowNull: false - - id: 293Qc3FYd6UXvG2dzDdFZN - sortOrder: 8 + - id: iA4GiSEtrxQoxW6JKAGPqJ + sortOrder: 9 fieldKey: mailing_city label: Mailing City type: STRING @@ -34887,8 +35038,8 @@ items: choices: null dynamic: false allowNull: false - - id: 7xY27nroTTuUZdA7uzrQ1A - sortOrder: 9 + - id: 6p63SaJoMP4C5rnDfDP57r + sortOrder: 10 fieldKey: mailing_postal_code label: Mailing Postal Code type: STRING @@ -34907,8 +35058,8 @@ items: choices: null dynamic: false allowNull: false - - id: 6fJyPDJvxyDqaSPeLqvqUQ - sortOrder: 10 + - id: n3SMFVWNQKJ4W1puPZJxnx + sortOrder: 11 fieldKey: mailing_country label: Mailing Country type: STRING @@ -34927,8 +35078,8 @@ items: choices: null dynamic: false allowNull: false - - id: pt62hin5bcLeDer7HhYSKi - sortOrder: 11 + - id: vcADv8qXGMRNC95cnVwSeu + sortOrder: 12 fieldKey: mailing_street label: Mailing Street type: STRING @@ -34947,8 +35098,8 @@ items: choices: null dynamic: false allowNull: false - - id: 3JJmwv7TveDhVoqEpVCnz4 - sortOrder: 12 + - id: 7vMDcWkr9BvQBzk6sQvHP1 + sortOrder: 13 fieldKey: mailing_state label: Mailing State type: STRING @@ -34967,8 +35118,8 @@ items: choices: null dynamic: false allowNull: false - - id: jgCczypGe11iLeuBWnwW9m - sortOrder: 13 + - id: sWvdi2khpxDDdQnJ7sXByE + sortOrder: 14 fieldKey: customFields label: Other Fields type: OBJECT @@ -34987,18 +35138,6 @@ items: choices: null dynamic: false allowNull: false - - id: d7hdAjd5ANJESbtR9G6Luq - sortOrder: 14 - 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 - id: 91oYbiQnniVpkfA5AAg7E name: Opportunity slug: opportunity @@ -35007,7 +35146,7 @@ items: hidden: false defaultTrigger: null fields: - - id: eNHnhyPg51qHVY9bZN9dZx + - id: 81Dm6Mmp3ThevqVaon7adw sortOrder: 0 fieldKey: operation label: Operation @@ -35025,14 +35164,28 @@ items: value: update - label: Update or create a record if one doesn't exist value: upsert - - label: Bulk Upsert - value: bulkUpsert - - label: Bulk Update - value: bulkUpdate dynamic: false allowNull: false - - id: kTB1rr7YeUmZm8jJuaYnxR + - id: iapqJZuyvhDZpnH6faD5nd sortOrder: 1 + fieldKey: enable_batching + label: Use Salesforce Bulk API + type: BOOLEAN + description: >- + If true, events are sent to [Salesforce’s Bulk API + 2.0](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm) + rather than their streaming REST API. Once enabled, Segment will collect + events into batches of 1000 before sending to Salesforce. *Enabling Bulk + API is not compatible with the `create` operation*. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 4nymDqTNWa4pjMxFTfWC4U + sortOrder: 2 fieldKey: traits label: Record Matchers type: OBJECT @@ -35053,8 +35206,8 @@ items: choices: null dynamic: false allowNull: false - - id: vgGr4dQ9qqAk2yMe6MZZyt - sortOrder: 2 + - id: 6dKwPWrj7vfyud7zRPw5LH + sortOrder: 3 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id type: OBJECT @@ -35065,8 +35218,8 @@ items: choices: null dynamic: false allowNull: false - - id: qm62AumXyDHjX3S1t4aWgR - sortOrder: 3 + - id: fKcnSnFS6aR6Yw9SK8RSJM + sortOrder: 4 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id type: STRING @@ -35077,8 +35230,8 @@ items: choices: null dynamic: false allowNull: false - - id: uocEdEzkFY9S2oTRMXUaNf - sortOrder: 4 + - id: 41gwDBSqbFGUvpDwnDi5t2 + sortOrder: 5 fieldKey: close_date label: Close Date type: STRING @@ -35091,8 +35244,8 @@ items: choices: null dynamic: false allowNull: false - - id: o5xQRcpw2mcWE3SaYKzkHc - sortOrder: 5 + - id: cqFjfprJv8sJshKBZG9UQE + sortOrder: 6 fieldKey: name label: Name type: STRING @@ -35105,8 +35258,8 @@ items: choices: null dynamic: false allowNull: false - - id: teEYjsTYnwJrJgRMgeBFJJ - sortOrder: 6 + - id: mtDRNLUBVgnZaPUM6GZFgH + sortOrder: 7 fieldKey: stage_name label: Stage Name type: STRING @@ -35119,8 +35272,8 @@ items: choices: null dynamic: false allowNull: false - - id: am6T5jMfwqy9ZTge235vMe - sortOrder: 7 + - id: x3VDMJ65xzPRjJoB8JrVf3 + sortOrder: 8 fieldKey: amount label: Amount type: STRING @@ -35131,8 +35284,8 @@ items: choices: null dynamic: false allowNull: false - - id: cMCHvgK8f8z6xK24PZJXKg - sortOrder: 8 + - id: fixLBjPPoMqcwS7rd9CMsx + sortOrder: 9 fieldKey: description label: Description type: STRING @@ -35143,8 +35296,8 @@ items: choices: null dynamic: false allowNull: false - - id: wjVJdWGdC1hAm6UoBByJNU - sortOrder: 9 + - id: 3ek5sspxNBUYGikVTcgtgm + sortOrder: 10 fieldKey: customFields label: Other Fields type: OBJECT @@ -35163,18 +35316,6 @@ items: choices: null dynamic: false allowNull: false - - id: tXDeCZkKKYbPU92T1q7DYX - sortOrder: 10 - 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 - id: g1sxmVyCGxututXRQhYSGH name: Account slug: account @@ -35185,7 +35326,7 @@ items: hidden: false defaultTrigger: type = "group" fields: - - id: sDeTYzLnBEzR66pP1cerzy + - id: dCvjSFzSvscraEgwTv6hU1 sortOrder: 0 fieldKey: operation label: Operation @@ -35203,14 +35344,28 @@ items: value: update - label: Update or create a record if one doesn't exist value: upsert - - label: Bulk Upsert - value: bulkUpsert - - label: Bulk Update - value: bulkUpdate dynamic: false allowNull: false - - id: 9pkfmqf82rBMdoHzUEgdxx + - id: iTLy5SH5qhTtT6HkKxEjer sortOrder: 1 + fieldKey: enable_batching + label: Use Salesforce Bulk API + type: BOOLEAN + description: >- + If true, events are sent to [Salesforce’s Bulk API + 2.0](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm) + rather than their streaming REST API. Once enabled, Segment will collect + events into batches of 1000 before sending to Salesforce. *Enabling Bulk + API is not compatible with the `create` operation*. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: abmMNQMepQsP7ZtPRV2hbA + sortOrder: 2 fieldKey: traits label: Record Matchers type: OBJECT @@ -35231,8 +35386,8 @@ items: choices: null dynamic: false allowNull: false - - id: x8By5oaThddfK5e3BtSYGi - sortOrder: 2 + - id: 6gNSEczJTuPVVFrDsthAud + sortOrder: 3 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id type: OBJECT @@ -35243,8 +35398,8 @@ items: choices: null dynamic: false allowNull: false - - id: peoFVpcM17MGizbCtp6niS - sortOrder: 3 + - id: rH5BiB8HfmouFv3VTYfCeK + sortOrder: 4 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id type: STRING @@ -35255,8 +35410,8 @@ items: choices: null dynamic: false allowNull: false - - id: 7CDgwBQDv7tktWDtjSK4jH - sortOrder: 4 + - id: 7soep3T7a7DFAAVaftKbA4 + sortOrder: 5 fieldKey: name label: Name type: STRING @@ -35269,8 +35424,8 @@ items: choices: null dynamic: false allowNull: false - - id: emTkrQNrhVXmJ6vTd5pFmB - sortOrder: 5 + - id: vnf5qtdzDi5aEoMBud7mnv + sortOrder: 6 fieldKey: account_number label: Account Number type: STRING @@ -35285,8 +35440,8 @@ items: choices: null dynamic: false allowNull: false - - id: 3sYNwDBqVpFXjLznJqHv6k - sortOrder: 6 + - id: sw7tZcwrf3pKHrfZdjAGuR + sortOrder: 7 fieldKey: number_of_employees label: Number of employees type: INTEGER @@ -35305,8 +35460,8 @@ items: choices: null dynamic: false allowNull: false - - id: a9YKnb33wPGvcTPwjLRwxJ - sortOrder: 7 + - id: 7xwyDwF4KVU1gAKpeyn6a + sortOrder: 8 fieldKey: billing_city label: Billing City type: STRING @@ -35325,8 +35480,8 @@ items: choices: null dynamic: false allowNull: false - - id: itrN21v8ojkSujK2w45hYX - sortOrder: 8 + - id: rSLPKLrx3tysZk5ztXMzPD + sortOrder: 9 fieldKey: billing_postal_code label: Billing Postal Code type: STRING @@ -35345,8 +35500,8 @@ items: choices: null dynamic: false allowNull: false - - id: jhDP7nZ5jKhEq1XzYJ1zdS - sortOrder: 9 + - id: pMz48TWtpCJGNAedTaSMbJ + sortOrder: 10 fieldKey: billing_country label: Billing Country type: STRING @@ -35365,8 +35520,8 @@ items: choices: null dynamic: false allowNull: false - - id: 6wS3y2nduw3PnhczGa32AV - sortOrder: 10 + - id: meQ9PzVrbh2wukzJKnt4S1 + sortOrder: 11 fieldKey: billing_street label: Billing Street type: STRING @@ -35385,8 +35540,8 @@ items: choices: null dynamic: false allowNull: false - - id: bFMvCEzWpqHTcSbLsMNH5W - sortOrder: 11 + - id: 2uEbRLzpGK2dkdzk3DZmwS + sortOrder: 12 fieldKey: billing_state label: Billing State type: STRING @@ -35405,8 +35560,8 @@ items: choices: null dynamic: false allowNull: false - - id: 9YNy2hGxLc1Mn9w8kmcgDz - sortOrder: 12 + - id: 8ZtYYzNvHu4zzMupwJLs5g + sortOrder: 13 fieldKey: shipping_city label: Shipping City type: STRING @@ -35417,8 +35572,8 @@ items: choices: null dynamic: false allowNull: false - - id: 9XhP9pgQqrewFmxFw5zCDM - sortOrder: 13 + - id: rTDkTpC5LFHCeSSiBLWz3S + sortOrder: 14 fieldKey: shipping_postal_code label: Shipping Postal Code type: STRING @@ -35429,8 +35584,8 @@ items: choices: null dynamic: false allowNull: false - - id: n4FAPJM8RWk3EQ68KH1mVj - sortOrder: 14 + - id: tkJpAs5hDnPUztM8M6CWbc + sortOrder: 15 fieldKey: shipping_country label: Shipping Country type: STRING @@ -35441,8 +35596,8 @@ items: choices: null dynamic: false allowNull: false - - id: sDmHkXsiu8EMCLj7eD3EYf - sortOrder: 15 + - id: kRnfmyH2qKWzdwxD8idy7Z + sortOrder: 16 fieldKey: shipping_street label: Shipping Street type: STRING @@ -35453,8 +35608,8 @@ items: choices: null dynamic: false allowNull: false - - id: orPuGWXAsWKezdUyVxsSGL - sortOrder: 16 + - id: t8i3ZXFVgQWSfjGMaWbD2M + sortOrder: 17 fieldKey: shipping_state label: Shipping State type: STRING @@ -35465,8 +35620,8 @@ items: choices: null dynamic: false allowNull: false - - id: f12wX88UbPLMYMpEAEMU97 - sortOrder: 17 + - id: vfyy5y2uFR5CpNVaL3QNVp + sortOrder: 18 fieldKey: phone label: Phone type: STRING @@ -35485,8 +35640,8 @@ items: choices: null dynamic: false allowNull: false - - id: 9AfqhPV1dQEVA8zEDpBTv - sortOrder: 18 + - id: rQsV3MEMyzk34fWfNnh7Qb + sortOrder: 19 fieldKey: description label: Description type: STRING @@ -35505,8 +35660,8 @@ items: choices: null dynamic: false allowNull: false - - id: b62tBs3aS5XdcXYZoKNbT5 - sortOrder: 19 + - id: ih6Ts7ar22SaQr13ZhNwGM + sortOrder: 20 fieldKey: website label: Website type: STRING @@ -35525,8 +35680,8 @@ items: choices: null dynamic: false allowNull: false - - id: iiaocZi8knPrAC9sKCdu5u - sortOrder: 20 + - id: szvQJMhBVkj62nGN81reg1 + sortOrder: 21 fieldKey: customFields label: Other Fields type: OBJECT @@ -35545,18 +35700,6 @@ items: choices: null dynamic: false allowNull: false - - id: nB1VMDHDxnPBtgHxTx3PKe - sortOrder: 21 - 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 - id: goFLcVAjNaQf1qMUuStjk4 name: Lead slug: lead @@ -35565,7 +35708,7 @@ items: hidden: false defaultTrigger: type = "identify" fields: - - id: wSyeAi7hahZZJhLPU8VPua + - id: mveuPqJ7S4rW2Pj2tmvUcm sortOrder: 0 fieldKey: operation label: Operation @@ -35583,14 +35726,28 @@ items: value: update - label: Update or create a record if one doesn't exist value: upsert - - label: Bulk Upsert - value: bulkUpsert - - label: Bulk Update - value: bulkUpdate dynamic: false allowNull: false - - id: dqEkMWnTAy9kEB2GQmmbP9 + - id: jjGjjR7512G6r4Y4wn119J sortOrder: 1 + fieldKey: enable_batching + label: Use Salesforce Bulk API + type: BOOLEAN + description: >- + If true, events are sent to [Salesforce’s Bulk API + 2.0](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm) + rather than their streaming REST API. Once enabled, Segment will collect + events into batches of 1000 before sending to Salesforce. *Enabling Bulk + API is not compatible with the `create` operation*. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dHKwg2sBKRjv3m1LPzM8uB + sortOrder: 2 fieldKey: traits label: Record Matchers type: OBJECT @@ -35611,8 +35768,8 @@ items: choices: null dynamic: false allowNull: false - - id: wodpWHYD4XzwjSqQfqS1QH - sortOrder: 2 + - id: s98rzn2v6XWz84qERmzJRe + sortOrder: 3 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id type: OBJECT @@ -35623,8 +35780,8 @@ items: choices: null dynamic: false allowNull: false - - id: 2nxH5SdinixHW9p13Qgfv4 - sortOrder: 3 + - id: 5KHR9yjoZYLo5XRhPdGNjL + sortOrder: 4 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id type: STRING @@ -35635,8 +35792,8 @@ items: choices: null dynamic: false allowNull: false - - id: wQTUzMKTNB1xoqCJToGXWt - sortOrder: 4 + - id: x1LWMbi152zqCHeUrc4RYZ + sortOrder: 5 fieldKey: company label: Company type: STRING @@ -35655,8 +35812,8 @@ items: choices: null dynamic: false allowNull: false - - id: fKtSK824Do2q5VdepVQnXS - sortOrder: 5 + - id: umeoRMgPmpynFoHNQajGnh + sortOrder: 6 fieldKey: last_name label: Last Name type: STRING @@ -35675,8 +35832,8 @@ items: choices: null dynamic: false allowNull: false - - id: 82fv7TjNPHLFcxG6MxDWZc - sortOrder: 6 + - id: 6nZ5Zz6muFkRWKRoW4xmEL + sortOrder: 7 fieldKey: first_name label: First Name type: STRING @@ -35695,8 +35852,8 @@ items: choices: null dynamic: false allowNull: false - - id: cCKNNgzvJ1UJi2cfS4cq1e - sortOrder: 7 + - id: 9wq6Wg7BrYTvTs7Cso9hzy + sortOrder: 8 fieldKey: email label: Email type: STRING @@ -35715,8 +35872,8 @@ items: choices: null dynamic: false allowNull: false - - id: a4URto2UGTJMWfmDc5PpUc - sortOrder: 8 + - id: cHcEbhL3jAiBB2LcEKKJCu + sortOrder: 9 fieldKey: city label: City type: STRING @@ -35735,8 +35892,8 @@ items: choices: null dynamic: false allowNull: false - - id: kfgn3W9nUaD9NpEjFUjRxx - sortOrder: 9 + - id: bbb7xC6u53YeBZJhL4Dofy + sortOrder: 10 fieldKey: postal_code label: Postal Code type: STRING @@ -35755,8 +35912,8 @@ items: choices: null dynamic: false allowNull: false - - id: rFi1oCTgb9duPkrKxzm533 - sortOrder: 10 + - id: voiUsaiySAg2zFUB93HP9Z + sortOrder: 11 fieldKey: country label: Country type: STRING @@ -35775,8 +35932,8 @@ items: choices: null dynamic: false allowNull: false - - id: ek3MHJct6Yrqz8oMJ5BYiy - sortOrder: 11 + - id: 9LwjtqyQrkUDLYALeH92k9 + sortOrder: 12 fieldKey: street label: Street type: STRING @@ -35795,8 +35952,8 @@ items: choices: null dynamic: false allowNull: false - - id: ahHLwJEg8dfkTXC2YY7Fvy - sortOrder: 12 + - id: femY69p7DdjG5CV2TNcpap + sortOrder: 13 fieldKey: state label: State type: STRING @@ -35815,8 +35972,8 @@ items: choices: null dynamic: false allowNull: false - - id: cbCwcDZJm6LWLS924xRW8A - sortOrder: 13 + - id: sGnVHPqXgDZqA7zZaRp5nc + sortOrder: 14 fieldKey: customFields label: Other Fields type: OBJECT @@ -35835,18 +35992,6 @@ items: choices: null dynamic: false allowNull: false - - id: uQ5qrEy8x6GSRpZdcZnrqc - sortOrder: 14 - 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 - id: ivbhXmVSSycDBKDDrZnCwh name: Case slug: cases @@ -35855,7 +36000,7 @@ items: hidden: false defaultTrigger: null fields: - - id: koLCA1X53uHXJy1zMCg6BC + - id: 73tMxHbqAY8QzxH5Jnk2tf sortOrder: 0 fieldKey: operation label: Operation @@ -35873,14 +36018,28 @@ items: value: update - label: Update or create a record if one doesn't exist value: upsert - - label: Bulk Upsert - value: bulkUpsert - - label: Bulk Update - value: bulkUpdate dynamic: false allowNull: false - - id: 5K8YGMkXpgyFpXw83qEBSX + - id: svfghb11jibhi5qNmoupx9 sortOrder: 1 + fieldKey: enable_batching + label: Use Salesforce Bulk API + type: BOOLEAN + description: >- + If true, events are sent to [Salesforce’s Bulk API + 2.0](https://developer.salesforce.com/docs/atlas.en-us.api_asynch.meta/api_asynch/asynch_api_intro.htm) + rather than their streaming REST API. Once enabled, Segment will collect + events into batches of 1000 before sending to Salesforce. *Enabling Bulk + API is not compatible with the `create` operation*. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: g8g3KYtLzQM865MdRo8oJu + sortOrder: 2 fieldKey: traits label: Record Matchers type: OBJECT @@ -35901,8 +36060,8 @@ items: choices: null dynamic: false allowNull: false - - id: nHtWxXfWzX8B4qe16jguCP - sortOrder: 2 + - id: fRuM2yYzWdmUPcBUuGtoDj + sortOrder: 3 fieldKey: bulkUpsertExternalId label: Bulk Upsert External Id type: OBJECT @@ -35913,8 +36072,8 @@ items: choices: null dynamic: false allowNull: false - - id: pkQ8NFyo48uNQFQik9ZqDt - sortOrder: 3 + - id: pLNqFdcQqN8bCfnyymBNLi + sortOrder: 4 fieldKey: bulkUpdateRecordId label: Bulk Update Record Id type: STRING @@ -35925,8 +36084,8 @@ items: choices: null dynamic: false allowNull: false - - id: bs9yUduRCScYdhHBexxzea - sortOrder: 4 + - id: csaGMo3a2az2hdEEfMQYy5 + sortOrder: 5 fieldKey: description label: Description type: STRING @@ -35937,8 +36096,8 @@ items: choices: null dynamic: false allowNull: false - - id: kWXJcGByQzigM8h8xpGhLd - sortOrder: 5 + - id: aCThLndEE2QmYHbSMDrjRa + sortOrder: 6 fieldKey: customFields label: Other Fields type: OBJECT @@ -35957,18 +36116,6 @@ items: choices: null dynamic: false allowNull: false - - id: m4Vo6JvqVrW2YzNwek3TAy - sortOrder: 6 - 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: [] - id: 54d190dbdb31d978f14a903b display_name: Salesforce Marketing Cloud @@ -43036,7 +43183,7 @@ items: defaultValue: '' description: >- You can retrieve your API Key from your [Userpilot - dashboard](https://app.userpilot.com/settings/setup). + dashboard](https://run.userpilot.io/installation). required: true label: App Token actions: [] diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 8d6ac67a3e..cd8f211217 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 2022-06-23 with Snapchat Conversions API +# destination data last updated 2022-07-07 with Heap Web (Actions) items: - id: 54521fd525e721e32a72ee8e name: AdRoll @@ -1398,3 +1398,151 @@ items: event_type: SIGN_UP event_conversion_type: WEB trigger: event = "Signed Up" + - id: 62b256147cbb49302d1486d0 + display_name: Heap Web (Actions) + name: Heap Web (Actions) + slug: actions-heap-web + previous_names: + - Heap Web (Actions) + website: https://heap.io/ + status: PRIVATE_BETA + logo: + url: https://cdn.filepicker.io/api/file/3MfYsCdgQhu8cVRSPKE6 + mark: + url: https://cdn.filepicker.io/api/file/jrbUXsZDQ708akn3cVyZ + methods: + track: true + pageview: true + identify: true + group: true + alias: true + platforms: + browser: true + mobile: false + server: false + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + settings: + - name: appId + type: string + defaultValue: '' + description: >- + The app ID of the environment to which you want to send data. You can + find this ID on the + [Projects](https://heapanalytics.com/app/manage/projects) page. + required: true + label: Heap app ID + - name: disableTextCapture + type: boolean + defaultValue: false + description: >- + Setting to true will redact all target text on your website. For more + information visit the heap [docs + page](https://developers.heap.io/docs/web#global-data-redaction-via-disabling-text-capture). + required: true + label: Global data redaction via Disabling Text Capture + - name: secureCookie + type: boolean + defaultValue: false + description: >- + This option is turned off by default to accommodate websites not + served over HTTPS. If your application uses HTTPS, we recommend + enabling secure cookies to prevent Heap cookies from being observed by + unauthorized parties. For more information visit the heap [docs + page](https://developers.heap.io/docs/web#securecookie). + required: true + label: Secure Cookie + actions: + - id: 9DNev5M9FhK634qd8TtqXN + name: Identify User + slug: identifyUser + description: Sets user identity + platform: WEB + hidden: false + defaultTrigger: type = "identify" + fields: + - id: aFcado7WC7fAAmth74Qrhx + sortOrder: 0 + fieldKey: userId + label: Identity + type: STRING + description: The user's identity + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: w7z6gUcm8QVF2pWUtUzqa8 + sortOrder: 1 + fieldKey: traits + label: Traits + type: OBJECT + description: The Segment traits to be forwarded to Heap + placeholder: '' + defaultValue: + '@path': $.traits + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hbxtT8G3frRQvjM6AoJ73p + name: Track Event + slug: trackEvent + description: Track events + platform: WEB + hidden: false + defaultTrigger: type = "track" + fields: + - id: qbPz8kfSwRSSuDNyd85CHg + sortOrder: 0 + fieldKey: name + label: Name + type: STRING + description: The name of the event. + placeholder: '' + defaultValue: + '@path': $.event + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mSD7ZxZJ44LWttkJAYQYT3 + sortOrder: 1 + fieldKey: properties + label: Properties + type: OBJECT + description: >- + A JSON object containing additional information about the event + that will be indexed by Heap. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: + - actionId: 9DNev5M9FhK634qd8TtqXN + name: Identify User + fields: + userId: + '@path': $.userId + traits: + '@path': $.traits + trigger: type = "identify" + - actionId: hbxtT8G3frRQvjM6AoJ73p + name: Track Event + fields: + name: + '@path': $.event + properties: + '@path': $.properties + trigger: type = "track" diff --git a/src/_data/catalog/regional-supported.yml b/src/_data/catalog/regional-supported.yml index 7677c19b01..7be7d95060 100644 --- a/src/_data/catalog/regional-supported.yml +++ b/src/_data/catalog/regional-supported.yml @@ -1,5 +1,5 @@ # AUTOGENERATED LIST OF CONNECTIONS THAT SUPPORT REGIONAL -# Last updated 2022-07-07 +# Last updated 2022-07-12 warehouses: - id: WcjBCzUGff display_name: Azure SQL Data Warehouse @@ -982,6 +982,14 @@ destinations: - eu endpoints: - us + - id: 620ff0b76a6f5d2317a7a353 + display_name: Appcues Mobile + slug: appcues-mobile + url: connections/destinations/catalog/appcues-mobile + regions: + - us + endpoints: + - us - id: 54521fd525e721e32a72ee95 display_name: AppNexus slug: appnexus @@ -2147,6 +2155,7 @@ destinations: - eu endpoints: - us + - eu - id: 5728ed9c80412f644ff132d9 display_name: Hull slug: hull @@ -3194,6 +3203,14 @@ destinations: - eu endpoints: - us + - id: 6268a16ce311a548d8cb1a72 + display_name: Rokt Integration + slug: rokt-integration + url: connections/destinations/catalog/rokt-integration + regions: + - us + endpoints: + - us - id: 54521fda25e721e32a72eeed display_name: Rollbar slug: rollbar diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index 921e81364c..945353c201 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 cateogries last updated 2022-07-07 +# source cateogries last updated 2022-07-12 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/sources.yml b/src/_data/catalog/sources.yml index 677ed93a38..46aff0f879 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 2022-07-07 +# sources last updated 2022-07-12 items: - id: 8HWbgPTt3k display_name: .NET diff --git a/src/_data/regional-support.yml b/src/_data/regional-support.yml index 7ee5ba4c14..778357c659 100644 --- a/src/_data/regional-support.yml +++ b/src/_data/regional-support.yml @@ -56,6 +56,7 @@ destinations: - gainsight-px - ibm-ubx - iron-io + - hubspot - mixpanel - natero - repeater diff --git a/src/connections/destination-data-control.md b/src/connections/destination-data-control.md index 417103375d..c860e0be77 100644 --- a/src/connections/destination-data-control.md +++ b/src/connections/destination-data-control.md @@ -18,14 +18,15 @@ analytics.identify('user_123', { name: 'Jane Kim' }, { integrations: { - 'All': false, + 'All': true, 'Intercom': true, - 'Google Analytics': true + 'Google Analytics': true, + 'Mixpanel': false } }); ``` -Destination flags are **case sensitive** and match [the Destination's name in the docs](/docs/connections/destinations/catalog/) (i.e. "AdLearn Open Platform", "awe.sm", "MailChimp", etc.). +Destination flags are **case sensitive** and match [the Destination's name in the docs](/docs/connections/destinations/catalog/) (for example, "AdLearn Open Platform", "awe.sm", "MailChimp", etc.). If you're on Segment's Business plan, you can filter track calls right from the Segment UI on your Source Schema page by clicking on the field in the "Integrations" column and then adjusting the toggle for each tool. 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. diff --git a/src/connections/destinations/catalog/actions-heap/index.md b/src/connections/destinations/catalog/actions-heap/index.md new file mode 100644 index 0000000000..2dc93e8ae0 --- /dev/null +++ b/src/connections/destinations/catalog/actions-heap/index.md @@ -0,0 +1,40 @@ +--- +title: Heap (Actions) Destination +hide-boilerplate: true +hide-dossier: true +hidden: true +private: true +id: 62b256147cbb49302d1486d0 +versions: + - name: Heap (Classic) + link: /docs/connections/destinations/heap +--- + +{% include content/plan-grid.md name="actions" %} + +[Heap](https://heapanalytics.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners){:target="_blank"} automatically captures every user interaction with no extra code. This includes clicks, taps, gestures, form submissions, page views, and more. + +> success "" +> **Good to know**: This page is about the [Actions-framework](/docs/connections/destinations/actions/) Heap destination. There's also a page about the [non-Actions Heap destination](/docs/connections/destinations/catalog/heap/). Both of these destinations receive data from Segment. + + +{% include content/ajs-upgrade.md %} + +## Benefits of Heap (Actions) vs Heap Classic + +Heap (Actions) provides the following benefits over the classic Heap destination: + +- **More control with clearer mapping**. Actions-based destinations enable you to define the mapping between the data Segment receives from your source, and the data Segment sends to the destination. + +- **Increased transparency**. All Segment ingested events display the Segment icon in Heap, so you can identify the source of the event, and foster greater data trust. + +- **Improved setup**. Clear default settings enable you to set up faster. + +## Getting started + +1. From the Segment web app, navigate to **Connections** and click **Add Destination**. +2. Search for **Heap (Actions)** and click it. +3. Click **Configure Heap**. +4. Select the Source to connect to Heap (Actions). + +{% include components/actions-fields.html %} diff --git a/src/connections/destinations/catalog/appcues-mobile/index.md b/src/connections/destinations/catalog/appcues-mobile/index.md new file mode 100644 index 0000000000..fb475c61b7 --- /dev/null +++ b/src/connections/destinations/catalog/appcues-mobile/index.md @@ -0,0 +1,7 @@ +--- +title: 'Appcues Mobile Destination' +hidden: true +id: 620ff0b76a6f5d2317a7a353 +published: false +beta: true +--- diff --git a/src/connections/destinations/catalog/firebase/index.md b/src/connections/destinations/catalog/firebase/index.md index abee174169..0ff92d64ea 100644 --- a/src/connections/destinations/catalog/firebase/index.md +++ b/src/connections/destinations/catalog/firebase/index.md @@ -108,7 +108,7 @@ By default, Segment only bundles `Firebase/Core` which is [Firebase's Analytics ## Setting up Firebase with Analytics-React-Native -If you use Segment's React Native source library, you must explicitly bundle the mobile SDKs for both iOS and Android with your project. +If you use Segment's older React Native source library, you must explicitly bundle the mobile SDKs for both iOS and Android with your project. 1. Use yarn to add the `analytics-react-native-firebase` SDKs. (`@segment/analytics-react-native-firebase`) 2. Add `import` statements to your code so you can access the SDKs. @@ -116,6 +116,7 @@ If you use Segment's React Native source library, you must explicitly bundle the 4. Change to your iOS directory and run `pod install`. 5. Add the `analytics-react-native-firebase` module to your `build.gradle` file. (See Step.4 of [Getting Started on Android](/docs/connections/destinations/catalog/firebase/#getting-started-on-android)) +For React Native 2.0 you can reference the [install guide](https://github.com/segmentio/analytics-react-native/blob/master/packages/plugins/plugin-firebase/README.md){:target="_blank"}. ## Identify When you call `identify` Segment will map to the corresponding Firebase Analytics calls: diff --git a/src/connections/destinations/catalog/rokt-integration/index.md b/src/connections/destinations/catalog/rokt-integration/index.md new file mode 100644 index 0000000000..9d3a56f74a --- /dev/null +++ b/src/connections/destinations/catalog/rokt-integration/index.md @@ -0,0 +1,7 @@ +--- +title: 'Rokt Integration Destination' +hidden: true +id: 6268a16ce311a548d8cb1a72 +published: false +beta: true +--- diff --git a/src/connections/functions/source-functions.md b/src/connections/functions/source-functions.md index 85ab5d8d2b..96952d04dd 100644 --- a/src/connections/functions/source-functions.md +++ b/src/connections/functions/source-functions.md @@ -394,3 +394,7 @@ The maximum payload size for an incoming webhook payload is 512 KiB. ##### What is the timeout for a function to execute? The execution time limit is five seconds, however Segment strongly recommends that you keep execution time as low as possible. If you are making multiple external requests you can use async / await to make them concurrently, which will help keep your execution time low. + +#### Does Segment alter incoming payloads? + +Segment alphabetizes payload fields that come in to **deployed** Source Functions. Segment doesn't alphabetize payloads in the Functions tester. If you need to verify the exact payload that hits a Source Function, alphabetize it first. You can then make sure it matches what the Source Function ingests. diff --git a/src/connections/sources/catalog/cloud-apps/workramp/index.md b/src/connections/sources/catalog/cloud-apps/workramp/index.md index d384e91513..3f1e5ec4b6 100644 --- a/src/connections/sources/catalog/cloud-apps/workramp/index.md +++ b/src/connections/sources/catalog/cloud-apps/workramp/index.md @@ -12,7 +12,7 @@ This is an [Event Cloud Source](https://segment.com/docs/sources/#event-cloud-so This source is maintained by WorkRamp. For any issues with the source, [contact the WorkRamp support team](mailto:support@workramp.com). > info "The WorkRamp source is in Beta" -> WorkRamp are actively developing the source. This doc was last updated on June 2, 2022. If you are interested in joining their beta program or have any feedback to help improve the WorkRamp Source and its documentation, contact [support@workramp.com](mailto:support@workramp.com) +> WorkRamp are actively developing the source. This doc was last updated on July 8, 2022. If you are interested in joining their beta program or have any feedback to help improve the WorkRamp Source and its documentation, contact [support@workramp.com](mailto:support@workramp.com) @@ -33,30 +33,26 @@ The table below lists events tracking user interaction in WorkRamp Academy. Wor | Event Name | Description | | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Registers | The user registers for academy. All custom registration fields appear under user unless they are marked as “hidden” or a password. | -| Signed In | The user logs into academy. | -| Signed Out | The user clicks **Logout** from the User menu. | +| User Registered | The user registers for the academy. All custom registration fields appear under user unless they are marked as “hidden” or a password. | +| User Login | The user logs into the academy. | +| User Logout | The user clicks **Logout** from the User menu. | | Search | The user types a query into the Search bar. | | Search Result Clicked | The user clicks on a search result from the Search bar. | -| Starts Training | The user clicks **Get Started** from `/training/:training_id/overview/`. | -| Enters Path Training | The user clicks **Get Started** or **Continue** from `/paths/:path_id`. | -| Enters Certification Training | The user clicks **Get Started** or **Continue** from `/certifications/:certification_id`. | -| Resumes Training | The user clicks **Continue** from `/training/:training_id/overview`. | -| Reviews Training | The user clicks on search result from the Search bar. | -| Checkout Initiated | The user clicks **Purchase Guide: [Price]** from `/training/:training_id/overview/`. | -| Task Viewed | The user visits `/guides/:guide_id/tasks/:task_id/`. | -| Completes Training | The user clicks **Finish** in a Course. Similar to **Exits Course**, this event populates the fields of `certificationId/pathId` depending on the content type. | -| Completes Path | The user clicks **Finish** within a Course. Similar to **Exits Course**, this event populates the fields of `certificationId/pathId` depending on the content type. | -| Completes Certification | The user clicks **Finish** within a Certification Course. Similar to **Exits Course**, this event populates the fields of `certificationId/pathId` depending on the content type. | +| Content Started | The user clicks **Get Started** from a course page | +| Content Resumed | The user clicks **Continue** from a course page. | +| Task Viewed | User views a task within Content. | +| Task Completed | User clicks “Next” from Task Viewed. | +| Content Completed | The user clicks **Finish** in a Course, Path or Certification. Properties will be including certificationId/pathId will be dependent on the content type | +| Content Reviewed | User clicks “Review” from course page to re-enter previously completed content. | +| Enters Training: Path | The user clicks **Get Started** or **Continue** from `/paths/:path_id`. | +| Enters Training: Certification | The user clicks **Get Started** or **Continue** from `/certifications/:certification_id`. | | Copies Public Link to Certification | The user clicks **Copy Public Link** on `/certifications/:certification_id`. | | Clicks “Adds Certification to LinkedIn” | The user clicks **Add to LinkedIn** on `/certifications/:certification_id/`. | -| Downloads Certification | The user clicks **Download** on `/certifications/:certification_id/`. | -| Exits Course | The user clicks the back arrow within a Training. If the course is part of path or certification, the associated fields will populate. | +| Downloads Certification | The user clicks **Download** on `/certifications/:certification_id/`. | | Views Content | The user clicks **Show Content**. | | Hides Content | The user clicks **Hide Content**. | -| Views Event | The user visits `/events/:event_id`. | -| Clicks Session URL | The user clicks **Register Now** (the session URL) from the events page. | - +| Event Viewed | The user visits `/events/:event_id`. | +| Register Now for Event Session | The user clicks **Register Now** (the session URL) from the events page. | @@ -68,12 +64,11 @@ The table below list the properties included in the events listed above. | Property Name | Description | | -------------------------------------------------- | --------------------------------------------------------------------- | | `academyTitle` | Name of the Academy. | -| `timeStamp` | Time captured for the event, for example, '2022-05-25T21:29:53.429Z'. | +| `timeStamp`, `receivedAt` | Time captured for the event, for example, '2022-05-25T21:29:53.429Z'. | | `accessedDate` | Timestamp for when the content was started by user. | -| `id` | The user’s ID. | -| `email_subject` | Subject line of the email. | -| `email` | The user’s Email Address. | -| `name` | The user’s Name. | +| `userId` | The user’s ID. | +| `user.email` | The user’s Email Address. | +| `user.name` | The user’s Name. | | Custom registration fields `department`, `title`) | URL of the link clicked. | | `searchTerm` | Query entered in search bar. | | `contentId` | ID for the content (for example, guide ID). | diff --git a/src/connections/sources/catalog/libraries/mobile/ios/index.md b/src/connections/sources/catalog/libraries/mobile/ios/index.md index 9143f8af4a..06d3398b22 100644 --- a/src/connections/sources/catalog/libraries/mobile/ios/index.md +++ b/src/connections/sources/catalog/libraries/mobile/ios/index.md @@ -548,12 +548,12 @@ Depending on the audience for your app (for example, children) or the countries {% codeexample %} {% codeexampletab Swift %} ```swift -[[SEGAnalytics sharedAnalytics] disable]; +Analytics.shared().disable() ``` {% endcodeexampletab %} {% codeexampletab Objective-C %} ```objc -Analytics.shared().disable() +[[SEGAnalytics sharedAnalytics] disable]; ``` {% endcodeexampletab %} {% endcodeexample %} 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 2cef8d832f..50b63039b7 100644 --- a/src/connections/sources/catalog/libraries/mobile/react-native/index.md +++ b/src/connections/sources/catalog/libraries/mobile/react-native/index.md @@ -492,7 +492,7 @@ These are the example plugins you can use and alter to meet your tracking needs: | IDFA | `@segment/analytics-react-native-plugin-idfa` | ## Supported Destinations -Segment supports these destinations for Analytics React Native 2.0 in device-mode, with more to follow. Cloud-mode destinations are also supported: +Segment supports a large number of [Cloud-mode](/docs/connections/destinations/#connection-modes) destinations. Segment also supports the below destinations for Analytics React Native 2.0 in device-mode, with more to follow: - [Adjust](https://www.npmjs.com/package/@segment/analytics-react-native-plugin-adjust){:target="_blank"} - [Amplitude Session](https://www.npmjs.com/package/@segment/analytics-react-native-plugin-amplitude-session){:target="_blank"} - [Appsflyer](https://www.npmjs.com/package/@segment/analytics-react-native-plugin-appsflyer){:target="_blank"} diff --git a/src/connections/sources/catalog/libraries/website/javascript/upgrade-to-ajs2.md b/src/connections/sources/catalog/libraries/website/javascript/upgrade-to-ajs2.md index b19d9e113c..5009b1888a 100644 --- a/src/connections/sources/catalog/libraries/website/javascript/upgrade-to-ajs2.md +++ b/src/connections/sources/catalog/libraries/website/javascript/upgrade-to-ajs2.md @@ -70,3 +70,29 @@ Analytics.js 2.0 asynchronously loads different pieces of the library as needed. ### Using trackLink on elements that are not links Previously, it was possible to attach `trackLink` to any element, and a `trackLink` call would fire for that element if it wasn't a link. Now, when you attach `trackLink` to a non-link element, an additional search of that element's children occurs for any nested links and fires track calls based on those links. If you wish to fire track calls on non-link elements that have links as children, you can use a `track` call instead. + +## FAQs + +### I'm already using Analytics 2.0, why am I still receiving the message to upgrade? +It's possible that a different source you're using is still leveraging an older version of Analytics.js. A way to see which sources are on which versions is to go to the source overview page, then filter on the Analytics.js version. + +It's also possible that you have used a write key from another source type (like Ruby) to instrument your Javascript source. To upgrade these sources, you may need to create a new javascript source and replace the write key. + +### Should I expect any glitches or downtime when switching to Analytics 2.0? +Segment expects no downtime or glitches when switching to A.js 2.0. + +### How can I validate that my source is using Analytics.js 2.0? +If you're using A.js 2.0, the library field will look like the code snippet below ( `next` will be part of the version field): + +```js +"library": { + "name": "analytics.js", + "version": "next-1.XX.X" + } +``` + +### Are there specific things to test from an engineering point of view? +Like any software upgrade, Segment advises you to start with one source, or a development or staging source. Then you should ensure that traffic is flowing the way you expect it to and that it goes to the appropriate destinations. + +### What happens if I don't upgrade by the end of service date? +There will not be any changes to your sources on the end of service date. However, if you encounter issues or need support, the support team will advise you to upgrade to 2.0. All new features will only be available on the 2.0 versions. diff --git a/src/connections/spec/common.md b/src/connections/spec/common.md index d3c53c481a..d40c699eea 100644 --- a/src/connections/spec/common.md +++ b/src/connections/spec/common.md @@ -395,6 +395,8 @@ The `receivedAt` timestamp is most important as the sort key in Segment's Wareho ### timestamp -The `timestamp` timestamp specifies when the datapoint occurred, corrected for client-device clock skew. This is the timestamp that is passed to downstream destinations and used for historical replays. It is important to use this timestamp for importing historical data to the API. +The `timestamp` timestamp specifies when the data point occurred, corrected for client-device clock skew. This is the timestamp that is passed to downstream destinations and used for historical replays. It is important to use this timestamp for importing historical data to the API. -If you are using the Segment server Source libraries, or passing calls directly to the HTTP API endpoint, you can manually set the `timestamp` field. If you are using a Segment Source in device mode, the library generates `timestamp` and you cannot manually set one directly in the call payload. +If you are using the Segment server Source libraries, or passing calls directly to the HTTP API endpoint, you can manually set the `timestamp` field. This change updates the `originalTimestamp` field of the Segment event. If you use a Segment Source in device mode, the library generates `timestamp` and you cannot manually set one directly in the call payload. + +Segment calculates `timestamp` as `timestamp = receivedAt - (sentAt - originalTimeStamp)`. \ No newline at end of file diff --git a/src/connections/storage/catalog/google-cloud-storage/index.md b/src/connections/storage/catalog/google-cloud-storage/index.md index 0ca82f67c7..bc71b24a6f 100644 --- a/src/connections/storage/catalog/google-cloud-storage/index.md +++ b/src/connections/storage/catalog/google-cloud-storage/index.md @@ -12,9 +12,7 @@ The Google Cloud Storage (GCS) destination puts the raw logs of the data Segment > warning "" > The Google Cloud Storage destination works differently than other destinations in Segment. Segment sends **all** data from a Personas source to GCS during the sync process, not only the connected audiences and traits. Using a destinations selector like the [integrations object](/docs/connections/spec/common/#integrations) doesn't affect the events events sent to GCS. -**Note**: The GCS destination is currently in beta, and does not support product features such as deletions, replays, or surfacing errors in the UI. - -If you are interested in joining the beta program, contact us at [beta@segment.com](mailto:beta@segment.com) to request access. +**Note**: The GCS destination is currently in public beta, and doesn't support product features such as deletions, replays, or surfacing errors in the UI. ## Getting Started diff --git a/src/guides/duplicate-data.md b/src/guides/duplicate-data.md index 620410b0ca..a9e8a8be27 100644 --- a/src/guides/duplicate-data.md +++ b/src/guides/duplicate-data.md @@ -6,15 +6,15 @@ Segment guarantees that 99% of your data won't have duplicates within a 24 hour ## 99% deduplication -Segment has a special deduplication service that sits behind the `api.segment.com` endpoint and attempts to drop 99% of duplicate data. Segment stores 24 hours worth of event `message_id`s, allowing Segment to deduplicate any data that appears within a 24 hour rolling window. +Segment has a special deduplication service that sits behind the `api.segment.com` endpoint and attempts to drop 99% of duplicate data. Segment stores 24 hours worth of event `messageId`s, allowing Segment to deduplicate any data that appears within a 24 hour rolling window. -Segment deduplicates on the event's `message_id`, _not_ on the contents of the event payload. Segment doesn't have a built-in way to deduplicate data over periods longer than 24 hours or for events that don't generate `message_id`s. +Segment deduplicates on the event's `messageId`, _not_ on the contents of the event payload. Segment doesn't have a built-in way to deduplicate data over periods longer than 24 hours or for events that don't generate `messageId`s. > info "" -> Keep in mind that Segment's libraries all generate `message_id`s for each event payload, with the exception of the Segment HTTP API, which assigns each event a unique `message_id` when the message is ingested. You can override these default generated IDs and manually assign a `message_id` if necessary. +> Keep in mind that Segment's libraries all generate `messageId`s for each event payload, with the exception of the Segment HTTP API, which assigns each event a unique `messageId` when the message is ingested. You can override these default generated IDs and manually assign a `messageId` if necessary. ## Warehouse deduplication -Duplicate events that are more than 24 hours apart from one another deduplicate in the Warehouse. Segment deduplicates messages going into a Warehouse based on the `message_id`, which is the `id` column in a Segment Warehouse. +Duplicate events that are more than 24 hours apart from one another deduplicate in the Warehouse. Segment deduplicates messages going into a Warehouse based on the `messageId`, which is the `id` column in a Segment Warehouse. ## Data Lake deduplication -To ensure clean data in your Data Lake, Segment removes duplicate events at the time your Data Lake ingests data. The Data Lake deduplication process dedupes the data the Data Lake syncs within the last 7 days with Segment deduping the data based on the `message_id`. +To ensure clean data in your Data Lake, Segment removes duplicate events at the time your Data Lake ingests data. The Data Lake deduplication process dedupes the data the Data Lake syncs within the last 7 days with Segment deduping the data based on the `messageId`. diff --git a/src/guides/filtering-data.md b/src/guides/filtering-data.md index 820b4680d4..47657136ae 100644 --- a/src/guides/filtering-data.md +++ b/src/guides/filtering-data.md @@ -35,7 +35,7 @@ You can use the `integrations` JSON object as part of your Segment payloads to c } ``` -By *default*, the `integrations` object is set to `'All':``true`. You do not need to include this flag in the object to use this behavior, but if you'll be using the integrations object frequently to control destination filtering, you might want to do this to make it explicit for later readers. You can also change this to `'All': false` to prevent destinations from receiving any data by default. You can also add destinations to the object by key, and provide a `true` or `false` value to allow or disallow data to flow to them. The `All` flag is superseded by any destination specific options. +By *default*, the `integrations` object is set to `'All': true`. You do not need to include this flag in the object to use this behavior, but if you'll be using the integrations object frequently to control destination filtering, you might want to do this to make it explicit for later readers. Change this to `'All': false` to prevent both Segment and any downstream destinations from receiving data. You can also add destinations to the object by key, and provide a `true` or `false` value to allow or disallow data to flow to them on an individual basis. If you are using [multiple instances of a destination](/docs/connections/destinations/add-destination/#connecting-one-source-to-multiple-instances-of-a-destination), any settings you set in the integrations object are applied to all instances of the destination. You cannot specify an instance of a destination to apply Integrations object settings to.  diff --git a/src/partners/checklist.md b/src/partners/checklist.md index b40afe8998..9ddedbf223 100644 --- a/src/partners/checklist.md +++ b/src/partners/checklist.md @@ -2,17 +2,21 @@ title: Public Beta Checklist --- +> info "" +> The Developer Center is currently not accepting new components. Segment is committed to redeveloping the Developer Center and a new version will be launched in the future. Include [your information here](https://airtable.com/shrvZzQ6NTTwsc6rQ){:target="_blank"} to join the waitlist! + + The purpose of this checklist is to give you a window into the full integration lifecycle, from how you first get started with Developer Center, to how we'll test your app before it goes live. ## 1. Partner Access First you will need a Segment account and access to Dev Center. -Start on the [Developer Center Partner page](https://segment.com/partners/developer-center/) to request access during signup. If you already have an account you can log in and go to the [request access to developer center](https://app.segment.com/developer/request-access) page. +Start on the [Developer Center Partner page](https://airtable.com/shrvZzQ6NTTwsc6rQ) to request access during sign-up. If you already have an account you can log in and go to the [request access to developer center](https://airtable.com/shrvZzQ6NTTwsc6rQ) page. Make sure to sign up with your company email address and to answer all the survey questions to expedite approval. -- Create Segment account and request access for Dev Center ([link](https://app.segment.com/signup?redirect=%2Fdeveloper%2Frequest-access&partner_signup=)) +- Create Segment account and request access for Dev Center ([link](https://airtable.com/shrvZzQ6NTTwsc6rQ)) - Complete partner survey @@ -168,7 +172,7 @@ To maintain the quality of the partner integrations catalog, the Segment Develop - Review documentation partner submitted using [HackMD Template](https://hackmd.io/t7amLXluS7-39rg7ARZgSA?both=) - - All signup, API key and data delivery matches test + - All sign-up, API key and data delivery matches test - Review catalog information partner submitted using [Google Docs Template](https://docs.google.com/document/d/1kKvqYtZeDPnBjvCrtQSuO3BBH70b_CLO13hYrYIOOtA/edit) diff --git a/src/personas/audiences/index.md b/src/personas/audiences/index.md index bd38a37f45..44c1ef9aa1 100644 --- a/src/personas/audiences/index.md +++ b/src/personas/audiences/index.md @@ -2,101 +2,113 @@ title: Personas Audiences Overview --- +Audiences let you group users or accounts based on event behavior and traits that Segment tracks. - - -Audiences allow you to define cohorts of users or accounts based on their event behavior and traits that Segment then keeps up-to-date over time. Audiences can be built from your core **tracking events**, **traits**, or **computed traits**. These audiences can then be synced to hundreds of destinations and are available using the [Profile API](/docs/personas/profile-api). +You can build Audiences from core **tracking events**, **traits**, and **computed traits**. You can then sync Audiences to hundreds of [Destinations](/docs/connections/destinations/) or access them with the [Profile API](/docs/personas/profile-api). ## Building an Audience -When building an audience you can use existing events, traits, computed traits or audiences. +You can build an Audience from existing events, traits, computed traits, or other Audiences. -![](/docs/personas/images/audience_condition_list.png) +![Creating a Personas Audience from the conditions list](/docs/personas/images/audience_condition_list.png) ### Events -You can build an audience from any of the events that are connected to Personas. This includes any [track](/docs/connections/spec/track), [page](/docs/connections/spec/page), or [screen](/docs/connections/spec/screen) calls. You can use the `property` button to refine the audience on specific event properties as well. Select `and not who` to indicate users that have not performed an event. For example, you might want to look at all users that have viewed a product above a certain price point, but not completed the order. +You can build an Audience from any events that are connected to Personas, including [Track](/docs/connections/spec/track), [Page](/docs/connections/spec/page), and [Screen](/docs/connections/spec/screen) calls. You can use the `property` button to refine the audience on specific event properties, as well. Select `and not who` to indicate users that have not performed an event. For example, you might want to look at all users that have viewed a product above a certain price point but not completed the order. -![](/docs/personas/images/audience_builder.png) +![Creating a Personas Audience of users who viewed a product without buying it](/docs/personas/images/audience_builder.png) -You can also specify two different types of time-windows, `within` and `in between`. Within lets you specify an event that occurred in the last `x` number of days. In-between lets you specify events that occurred over a rolling time-window in the past. A common use case is to look at all customers that were active 30 to 90 days ago, but have not completed an action in the last 30 days. +You can also specify two different types of time-windows, `within` and `in between`. The `within` property lets you specify an event that occurred in the last `x` number of days, while `in between` lets you specify events that occurred over a rolling time window in the past. A common use case is to look at all customers that were active 30 to 90 days ago, but have not completed an action in the last 30 days. ### Custom Traits -You can also build audiences based on custom traits. These traits can be collected from your apps when a user completes a form, or signs up, using an [identify](/docs/connections/spec/identify) call. You can also check out the Personas user explorer to see examples of these traits. +You can also build Audiences based on custom traits. These traits can be collected from your apps when a user completes a form or signs up using an [Identify](/docs/connections/spec/identify) call. You can view these traits in the Personas user explorer, as well. ### Computed Traits -You can also use computed traits in an audience definition. For example, if you have created a `total_revenue` computed trait, you can use this to generate an audience of `big_spender` customers that exceed a certain threshold. +You can also use computed traits in an Audience definition. For example, you can create a `total_revenue` computed trait and use it to generate an audience of `big_spender` customers that exceed a certain threshold. -![](/docs/personas/images/audience_builder_computed.png) +![Creating a Personas Audience from a computed trait based on the user's number of Twitter followers](/docs/personas/images/audience_builder_computed.png) ### Funnel Audiences -Funnel audiences allow you to specify strict ordering between two events. This might be the case if you want an event to happen or not happen, within a specific time window, as in the example below +Funnel audiences allow you to specify strict ordering between two events. This might be the case if you want an event to happen or not happen within a specific time window, as in the following example: -![](/docs/personas/images/funnel_audiences1.png) +![An Audience funnel of users who, in the last week, began checkout without completing it](/docs/personas/images/funnel_audiences1.png) -### Dynamic Property References +### Dynamic property references -Dynamic Property references give you more flexibility over funnel audiences. Instead of specifying a constant value in both events, like product_id = '123' for both Product Viewed and Order Completed events, you can specify that a child event references an event property of a parent event. You can also compare an event property to a trait variable. +Dynamic Property references give you more flexibility over funnel audiences. Instead of specifying a constant value in both events, like `product_id = 123` for both Product Viewed and Order Completed events, you can specify that a child event references an event property of a parent event. You can also compare an event property to a trait variable. -![](/docs/personas/images/dynamic_property_audiences1.png) +![Using dynamic property references with an Audience funnel](/docs/personas/images/dynamic_property_audiences1.png) -### Account-Level audiences +### Account-level audiences -If you are a B2B business, you might want to build an audience of accounts. You can use both account-level traits that you've sent through the [group](/docs/connections/spec/group) call, or user-level traits and events. For example, you might want to re-engage a list of at-risk accounts defined as companies which are on a business tier plan and where none of the users in that account have logged in recently. When incorporating user-level events or traits, you can specify `None of the users`, `Any users`, or `All users`. +If you have a B2B business, you might want to build an Audience of accounts. You can use both account-level traits that you've sent through the [Group](/docs/connections/spec/group) call, or user-level traits and events. For example, you might want to re-engage a list of at-risk accounts defined as companies which are on a business tier plan and where none of the users in that account have logged in recently. When incorporating user-level events or traits, you can specify `None of the users`, `Any users`, or `All users`. See [Account-level Audiences](/docs/personas/audiences/account-audiences) for more information. -![](/docs/personas/images/1542075123519.png) +![Building an Audience of accounts where no user viewed their dashboard in the last 30 days](/docs/personas/images/1542075123519.png) + +## Send Audiences to Destinations -## Connecting your Audience to a Destination +With the help of Sources and Destinations in Segment's catalog, you create and send Personas Audiences and computed traits to third-party services. + +Segment's Connections pipeline first collects and sends events from your Source to your Destination. Built on top of Connections, Personas 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 Personas 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 have previewed your audience, you can choose to connect a destination, or simply keep the audience in Segment and download a csv. If you already have destinations set up in Segment, you can import the configuration from one of your existing sources to Personas. Note that you can only connect one destination configuration per destination type. +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 Personas. You can only connect one Destination configuration per Destination type. + +![A screenshot showing the Select Destinations step of an Audience sync](/docs/personas/images/audience_select_destination_card.png) -![](/docs/personas/images/audience_select_destination_card.png) +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/personas/using-personas-data/#compatible-personas-destinations) in the Personas documentation. -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 [which destinations are supported](/docs/personas/using-personas-data/#compatible-personas-destinations) in the Personas 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. -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, we 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/personas/audiences/account-audiences) for more information. +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/personas/audiences/account-audiences) for more information. > info "" -> When you connect a new destination to an existing audience, Personas will backfill historical data for that audience to the new destination. +> When you connect a new Destination to an existing Audience, Personas will backfill historical data for that Audience to the new Destination. -## Real-time Compute vs. Batch +## Real-time compute compared to batch -Real-time Compute allows you to update traits and audiences as Segment receives new events. Real-time Compute unlocks exciting use cases: +Real-time Compute allows you to update traits and Audiences as Segment receives new events. Real-time Compute unlocks exciting use cases: - **Intra-Session App Personalization:** change your app experience with personalized onboarding, product recommendations, and faster funnels based on a user entering and exiting an audience. - **Instant Messaging:** Trigger messages in email, livechat, and push notifications instantly, to deliver immediate experiences across channels. -- **Operational Workflows:** Supercharge your sales and support teams by responding to customer needs faster, based on the latest understanding of a user +- **Operational Workflows:** Supercharge your sales and support teams by responding to customer needs faster, based on the latest understanding of a user. -To create a new audience: +To create a new Audience: -1. Go to your **Computed Traits** or **Audiences** tab in Personas and click **New**. - ![](/docs/personas/images/1538693216424_image.png) +1. Go to your **Computed Traits** or **Audiences** tab in Personas and select **New**. + ![A screenshot of the Computed Traits tab in Personas](/docs/personas/images/1538693216424_image.png) -2. Create your computed trait or audience. +2. Create your computed trait or Audience. A lightning bolt indicates that the computation updates in real-time. - ![](/docs/personas/images/1538693443980_image.png) + ![A screenshot of the Audience preview in the Personas Audience Builder](/docs/personas/images/1538693443980_image.png) -3. To preview your audience, click **Select Destinations**, then click **Review & Create**. +3. To preview your Audience, select **Select Destinations**, then select **Review & Create**. - By default, Segment queries all historical data to set the current value of the computed trait and audience. You can uncheck Historical Backfill to compute values for the audience or trait without using this data. With this disabled, the trait or audience only uses the data that arrives after you created it. + By default, Segment queries all historical data to set the current value of the computed trait and Audience. You can uncheck **Historical Backfill** to compute values for the Audience or trait without using this data. With this disabled, the trait or Audience only uses the data that arrives after you created it. - ![](/docs/personas/images/audience_review_create.png) + ![A screenshot of the Audience review step in the Personas Audience Builder](/docs/personas/images/audience_review_create.png) > warning "" -> [Facebook Custom Audiences](/docs/connections/destinations/catalog/personas-facebook-custom-audiences/), [Marketo Lists](/docs/connections/destinations/catalog/marketo-static-lists/), and [Adwords Remarking Lists](/docs/connections/destinations/catalog/adwords-remarketing-lists) have rate limits on how quickly we can update an audience. We sync at the highest frequency allowed by the tool, which is between 1 hour and 6 hours. +> [Facebook Custom Audiences](/docs/connections/destinations/catalog/personas-facebook-custom-audiences/), [Marketo Lists](/docs/connections/destinations/catalog/marketo-static-lists/), and [Adwords Remarking Lists](/docs/connections/destinations/catalog/adwords-remarketing-lists) impose rate limits on how quickly Segment can update an Audience. Segment syncs at the highest frequency allowed by the tool, which is between one and six hours. ### Editing Realtime Audiences and Traits @@ -114,15 +126,15 @@ Personas then processes your realtime Audience or Trait edits. While the edit ta > warning "" > If your audience includes historical data (Historical Backfill is enabled), editing an audience creates a new backfill task. The backfill task, and therefore the edit task, take longer to process if the audience is connected to a destination with rate limits. Rate-limited destinations dictate how fast Personas can backfill. View a list of [rate-limited destinations](/docs/personas/using-personas-data/#rate-limits-on-personas-event-destinations). -## Accessing your Audiences using the Profiles API +## Access your Audiences using the Profiles API -You can access your audiences using the Profile API by querying the `/traits` endpoint. For example, if you can query for the `high_value_user` with the following GET request: +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: ``` https://profiles.segment.com/v1/spaces//collections/users/profiles/email:alex@segment.com/traits?limit=100&include=high_value_user ``` -returns: +The query would return the following payload: ```json { @@ -139,11 +151,11 @@ returns: ``` You can read the [full Profile API docs](/docs/personas/profile-api/) to learn more. -## Downloading your Audience as a CSV +## Download your Audience as a CSV file -You can download a copy of your audience by visiting the the audience overview page. -![](/docs/personas/images/audience_overview.png) -Audience CSVs are generated on demand. Before you can download the CSV, you will need to generate it. There are three different options for formatting: +You can download a copy of your Audience by visiting the the Audience overview page. +![Downloading an Audience as a CSV file](/docs/personas/images/audience_overview.png) +Before you can download the CSV, you will need to generate it. There are three different options for formatting: - **Unformatted:** Contains two columns. The first contains the user or account key and the second is a JSON object containing the external IDs. Generating this CSV is faster than the formatted option below. [Download example unformatted CSV](/docs/personas/files/audience_csv_format_a.csv) - **Formatted (with indexed columns for ID types with multiple values):** Contains the same first two columns as the unformatted CSV. Additional columns are added for each distinct external ID type. When a given external ID type has more than one value, for example a user with three email addresses, _additional columns with indexed headers are added_, (`email`, `email_1`, `email_2`). [Download example formatted CSV with indexed columns](/docs/personas/files/audience_csv_format_b.csv) @@ -153,7 +165,7 @@ Audience CSVs are generated on demand. Before you can download the CSV, you will -
![](/docs/personas/images/large_audience_csv.png)Generating a CSV can take a substantial amount of time for large audiences (around 30 seconds for a formatted CSV with 1 million rows). For CSVs that are expected to take over 20 seconds, the Segment app displays an estimated generation time. After clicking Generate, it is recommended that you leave the modal open while the CSV is created. + Generating a CSV can take a substantial amount of time for large audiences (around 30 seconds for a formatted CSV with 1 million rows). For CSVs that are expected to take over 20 seconds, Segment displays an estimated generation time. After you generate the CSV file, leave the modal window open while Segment creates the file. (If the audience recalculates between when you click Generate and when you download the file, you might want to regenerate the file. The CSV is a snapshot from when you clicked Generate, and could be outdated.)