diff --git a/.github/styles/Vocab/Docs/accept.txt b/.github/styles/Vocab/Docs/accept.txt index b017f3986e..6e7551e337 100644 --- a/.github/styles/Vocab/Docs/accept.txt +++ b/.github/styles/Vocab/Docs/accept.txt @@ -144,6 +144,7 @@ viewability waitlist walkthrough WebKit +Wisepops Woopra Wootric Xcode diff --git a/scripts/private-destination.js b/scripts/private-destination.js index ec5f8ef627..bb0f19fcb7 100644 --- a/scripts/private-destination.js +++ b/scripts/private-destination.js @@ -121,7 +121,7 @@ const addPrivateDestination = async () => { } else { privateIds.push(DEST_ID.id) } - + privateIds.sort(); for (const element in privateIds) { let currentId = privateIds[element] getDestinationData(currentId) diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 6cb0f25a4b..7288724b18 100644 --- a/src/_data/catalog/destinations_private.yml +++ b/src/_data/catalog/destinations_private.yml @@ -1,6 +1,167 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2022-11-17 +# destination data last updated 2022-11-28 items: + - id: 627ea052118e3cd530d28963 + display_name: Google Sheets + name: Google Sheets + slug: actions-google-sheets + previous_names: + - Google Sheets + website: https://www.google.com/sheets/about/ + status: PRIVATE_BETA + logo: + url: https://cdn.filepicker.io/api/file/5YkyjmfJSzCy09E3pQVK + mark: + url: https://cdn.filepicker.io/api/file/pwnFihhWRTqlXE3zND6Q + methods: + track: true + pageview: true + identify: true + group: true + alias: true + platforms: + browser: false + mobile: false + server: false + warehouse: true + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + settings: [] + actions: + - id: 6cgExzDArNQSaKL9TwFHTP + name: Post Sheet + slug: postSheet + description: Write values to a Google Sheets spreadsheet. + platform: CLOUD + hidden: false + defaultTrigger: event = "updated" or event = "new" + fields: + - id: 3mnKkoj69PYhnMFArQqgwj + sortOrder: 0 + fieldKey: record_identifier + label: Record Identifier + type: STRING + description: Property which uniquely identifies each row in the spreadsheet. + placeholder: '' + defaultValue: + '@path': $.__segment_id + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: jvr5UEodxuuZGR4stauHqQ + sortOrder: 1 + fieldKey: operation_type + label: Operation Type + type: HIDDEN + description: >- + Describes the nature of the operation being performed. Only + supported values are 'new' and 'updated'. + placeholder: '' + defaultValue: + '@path': $.event + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 6biHVg61mv8bv3A395zK2 + sortOrder: 2 + fieldKey: spreadsheet_id + label: Spreadsheet ID + type: STRING + description: >- + The identifier of the spreadsheet. You can find this value in the + URL of the spreadsheet. e.g. + https://docs.google.com/spreadsheets/d/{SPREADSHEET_ID}/edit + placeholder: '' + defaultValue: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: gpRm7bJCWWWFL2byqWa5dm + sortOrder: 3 + fieldKey: spreadsheet_name + label: Spreadsheet Name + type: STRING + description: >- + The name of the spreadsheet. You can find this value on the tab at + the bottom of the spreadsheet. Please provide a valid name of a + sheet that already exists. + placeholder: '' + defaultValue: Sheet1 + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: wgmhCUx43uAymuSeSNdQqq + sortOrder: 4 + fieldKey: data_format + label: Data Format + type: STRING + description: >- + The way Google will interpret values. If you select raw, values + will not be parsed and will be stored as-is. If you select user + entered, values will be parsed as if you typed them into the UI. + Numbers will stay as numbers, but strings may be converted to + numbers, dates, etc. following the same rules that are applied + when entering text into a cell via the Google Sheets UI. + placeholder: '' + defaultValue: RAW + required: true + multiple: false + choices: + - label: Raw + value: RAW + - label: User Entered + value: USER_ENTERED + dynamic: false + allowNull: false + - id: eqRFLYHkkHpmLVPz8oMU2h + sortOrder: 5 + fieldKey: fields + label: Fields + type: OBJECT + description: |2- + + The fields to write to the spreadsheet. + + On the left-hand side, input the name of the field as it will appear in the Google Sheet. + + On the right-hand side, select the field from your data model that maps to the given field in your sheet. + + --- + + + placeholder: '' + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: arRP9FWVYmYQ9NhKKs5tEJ + sortOrder: 6 + fieldKey: enable_batching + label: Batch Data to Google Sheets + type: BOOLEAN + description: >- + Set as true to ensure Segment sends data to Google Sheets in + batches. Please do not set to false. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: [] + - id: 62b256147cbb49302d1486d0 display_name: Heap Web (Actions) name: Heap Web (Actions) @@ -23,6 +184,7 @@ items: browser: true mobile: false server: false + warehouse: true components: [] browserUnbundlingSupported: false browserUnbundlingPublic: false @@ -153,7 +315,8 @@ items: platforms: browser: true mobile: false - server: false + server: true + warehouse: true components: [] browserUnbundlingSupported: false browserUnbundlingPublic: false @@ -229,6 +392,7 @@ items: browser: true mobile: false server: true + warehouse: true components: [] browserUnbundlingSupported: false browserUnbundlingPublic: false @@ -551,18 +715,18 @@ items: dynamic: false allowNull: false presets: [] - - id: 627ea052118e3cd530d28963 - display_name: Google Sheets - name: Google Sheets - slug: actions-google-sheets + - id: 6372e1e36d9c2181f3900834 + display_name: Wisepops + name: Wisepops + slug: actions-wisepops previous_names: - - Google Sheets - website: https://www.google.com/sheets/about/ + - Wisepops + website: https://wisepops.com/ status: PRIVATE_BETA logo: - url: https://cdn.filepicker.io/api/file/5YkyjmfJSzCy09E3pQVK + url: https://cdn.filepicker.io/api/file/93DooET4SPq6bzDtEspu mark: - url: https://cdn.filepicker.io/api/file/pwnFihhWRTqlXE3zND6Q + url: https://cdn.filepicker.io/api/file/Yrht1rOJQ1qQwXwmVfEh methods: track: true pageview: true @@ -572,141 +736,199 @@ items: platforms: browser: true mobile: false - server: true + server: false + warehouse: true components: [] browserUnbundlingSupported: false browserUnbundlingPublic: false replay: false - settings: [] + + settings: + - name: websiteId + type: string + defaultValue: '' + description: >- + The identifier of your Wisepops' website. You can find it in [your + setup code on Wisepops](https://app.wisepops.com/f/settings/websites). + required: true + label: Website Identifier actions: - - id: 6cgExzDArNQSaKL9TwFHTP - name: Post Sheet - slug: postSheet - description: Write values to a Google Sheets spreadsheet. - platform: CLOUD + - id: 5M5CT8cJysDSpQzzhsnoyV + name: Track Page + slug: trackPage + description: >- + Let Wisepops know when the visitor goes to a new page. This allows + Wisepops to display campaigns at page change. + platform: WEB + hidden: false + defaultTrigger: type = "page" + fields: [] + - id: nVy8wt8DdSKE2vDbqftwZ5 + name: Set Custom Properties + slug: setCustomProperties + description: >- + Define [custom + properties](https://support.wisepops.com/article/yrdyv1tfih-set-up-custom-properties) + to let Wisepops target them in your scenarios. + platform: WEB hidden: false defaultTrigger: event = "updated" or event = "new" fields: - - id: 3mnKkoj69PYhnMFArQqgwj + - id: bAnMreNrdjVskVmfsCRrzM sortOrder: 0 - fieldKey: record_identifier - label: Record Identifier - type: STRING - description: Property which uniquely identifies each row in the spreadsheet. + fieldKey: traits + label: Custom Properties + type: OBJECT + description: The custom properties to send to Wisepops. placeholder: '' defaultValue: - '@path': $.__segment_id + '@path': $.traits required: true multiple: false choices: null dynamic: false allowNull: false - - id: jvr5UEodxuuZGR4stauHqQ + - id: 7EfUkM7PDYkANZd6KmngX6 sortOrder: 1 - fieldKey: operation_type - label: Operation Type - type: HIDDEN - description: >- - Describes the nature of the operation being performed. Only - supported values are 'new' and 'updated'. + fieldKey: id + label: Entity ID + type: STRING + description: A unique identifier. Typically, a user ID or group ID. placeholder: '' defaultValue: - '@path': $.event + '@path': $.__segment_id required: true multiple: false choices: null dynamic: false allowNull: false - - id: 6biHVg61mv8bv3A395zK2 + - id: iWBdXmc6deVa59paCAapGu sortOrder: 2 - fieldKey: spreadsheet_id - label: Spreadsheet ID + fieldKey: idProperty + label: Property name for the entity ID type: STRING - description: >- - The identifier of the spreadsheet. You can find this value in the - URL of the spreadsheet. e.g. - https://docs.google.com/spreadsheets/d/{SPREADSHEET_ID}/edit + description: How to name the entity ID among the other custom properties? placeholder: '' - defaultValue: '' - required: true + defaultValue: userId + required: false multiple: false choices: null dynamic: false allowNull: false - - id: gpRm7bJCWWWFL2byqWa5dm + - id: fMVgnbgd5A5BG6iS4dJoDQ sortOrder: 3 - fieldKey: spreadsheet_name - label: Spreadsheet Name + fieldKey: prefix + label: Prefix type: STRING description: >- - The name of the spreadsheet. You can find this value on the tab at - the bottom of the spreadsheet. Please provide a valid name of a - sheet that already exists. + This lets you define the properties as a nested object. If you set + the property `"name"` with the prefix `"group"`, you'll access it + in Wisepops as `"group.name"`. placeholder: '' - defaultValue: Sheet1 - required: true + required: false multiple: false choices: null dynamic: false allowNull: false - - id: wgmhCUx43uAymuSeSNdQqq - sortOrder: 4 - fieldKey: data_format - label: Data Format + - id: nru3QthNY6YBXTiHTg8YfR + name: Track Event + slug: trackEvent + description: >- + Send a [custom + event](https://support.wisepops.com/article/zbpq1z0exk-set-up-custom-events-to-trigger-popups) + to Wisepops. Keep in mind that events are counted as page views in + your Wisepops' monthly quota. + platform: WEB + hidden: false + defaultTrigger: type = "track" + fields: + - id: iWTfkexjvSECVFvaBTXTji + sortOrder: 0 + fieldKey: eventName + label: Event Name type: STRING - description: >- - The way Google will interpret values. If you select raw, values - will not be parsed and will be stored as-is. If you select user - entered, values will be parsed as if you typed them into the UI. - Numbers will stay as numbers, but strings may be converted to - numbers, dates, etc. following the same rules that are applied - when entering text into a cell via the Google Sheets UI. + description: The name of the event to send to Wisepops. placeholder: '' - defaultValue: RAW + defaultValue: '' required: true multiple: false - choices: - - label: Raw - value: RAW - - label: User Entered - value: USER_ENTERED + choices: null dynamic: false allowNull: false - - id: eqRFLYHkkHpmLVPz8oMU2h - sortOrder: 5 - fieldKey: fields - label: Fields - type: OBJECT - description: |2- - - The fields to write to the spreadsheet. - - On the left-hand side, input the name of the field as it will appear in the Google Sheet. - - On the right-hand side, select the field from your data model that maps to the given field in your sheet. - - --- - - + - id: oS23rpRnU6cXVW7afcdjf9 + name: Track Goal + slug: trackGoal + description: >- + [Track goals and + revenue](https://support.wisepops.com/article/mx3z8na6yb-set-up-goal-tracking) + to know which campaigns are generating the most value. + platform: WEB + hidden: false + defaultTrigger: type = "track" and event = "Order Completed" + fields: + - id: 7oKgGMyZYUGwh17niWYzTx + sortOrder: 0 + fieldKey: goalName + label: Goal Name + type: STRING + description: The name of the goal to send to Wisepops. placeholder: '' - required: true + defaultValue: + '@path': $.event + required: false multiple: false choices: null dynamic: false allowNull: false - - id: arRP9FWVYmYQ9NhKKs5tEJ - sortOrder: 6 - fieldKey: enable_batching - label: Batch Data to Google Sheets - type: BOOLEAN - description: >- - Set as true to ensure Segment sends data to Google Sheets in - batches. Please do not set to false. + - id: p1YLQ8bajZTkGn9nvN5aLK + sortOrder: 1 + fieldKey: goalRevenue + label: Goal Revenue + type: STRING + description: The revenue associated with the goal. placeholder: '' - defaultValue: true + defaultValue: + '@path': $.properties.revenue required: false multiple: false choices: null dynamic: false allowNull: false - presets: [] + presets: + - actionId: nVy8wt8DdSKE2vDbqftwZ5 + name: Set Group Traits as Custom Properties + fields: + traits: + '@path': $.traits + id: + '@path': $.groupId + idProperty: groupId + prefix: group + trigger: type = "group" + - actionId: nVy8wt8DdSKE2vDbqftwZ5 + name: Set User Traits as Custom Properties + fields: + traits: + '@path': $.traits + id: + '@path': $.userId + idProperty: userId + trigger: type = "identify" + - actionId: oS23rpRnU6cXVW7afcdjf9 + name: Track Goal + fields: + goalName: + '@path': $.event + goalRevenue: + '@path': $.properties.revenue + trigger: type = "track" and event = "Order Completed" + - actionId: nru3QthNY6YBXTiHTg8YfR + name: Track Event + fields: + eventName: + '@path': $.event + trigger: type = "track" + - actionId: 5M5CT8cJysDSpQzzhsnoyV + name: Track Page + fields: {} + trigger: type = "page" diff --git a/src/connections/destinations/catalog/actions-wisepops/images/wisepops-custom-event.png b/src/connections/destinations/catalog/actions-wisepops/images/wisepops-custom-event.png new file mode 100644 index 0000000000..713e26e763 Binary files /dev/null and b/src/connections/destinations/catalog/actions-wisepops/images/wisepops-custom-event.png differ diff --git a/src/connections/destinations/catalog/actions-wisepops/images/wisepops-group-id.png b/src/connections/destinations/catalog/actions-wisepops/images/wisepops-group-id.png new file mode 100644 index 0000000000..25caaadda0 Binary files /dev/null and b/src/connections/destinations/catalog/actions-wisepops/images/wisepops-group-id.png differ diff --git a/src/connections/destinations/catalog/actions-wisepops/images/wisepops-setup-code.png b/src/connections/destinations/catalog/actions-wisepops/images/wisepops-setup-code.png new file mode 100644 index 0000000000..d6b428ebbf Binary files /dev/null and b/src/connections/destinations/catalog/actions-wisepops/images/wisepops-setup-code.png differ diff --git a/src/connections/destinations/catalog/actions-wisepops/images/wisepops-user-first-name.png b/src/connections/destinations/catalog/actions-wisepops/images/wisepops-user-first-name.png new file mode 100644 index 0000000000..216ec50c17 Binary files /dev/null and b/src/connections/destinations/catalog/actions-wisepops/images/wisepops-user-first-name.png differ diff --git a/src/connections/destinations/catalog/actions-wisepops/index.md b/src/connections/destinations/catalog/actions-wisepops/index.md new file mode 100644 index 0000000000..cb1075dcd8 --- /dev/null +++ b/src/connections/destinations/catalog/actions-wisepops/index.md @@ -0,0 +1,83 @@ +--- +title: Wisepops Destination +hide-boilerplate: true +hide-dossier: true +id: 6372e1e36d9c2181f3900834 +private: true +--- + +{% include content/plan-grid.md name="actions" %} + +[Wisepops](https://wisepops.com/){:target='_blank'} offers an end-to-end platform to help all types of online brands deliver a personalized experience to their visitors through multiple formats: popups, bars, embeds and notifications feed. +Wisepops powers 2,000 brands in 53 countries and delivers 2 billion personalized onsite messages each year to convert visitors into loyal customers. + +When you use the Wisepops destination, Segment loads Wisepops on your website for you. With no development, you can target your users based on their traits or events, display personalized messages, and track the revenue generated by your campaigns. + +{% include content/ajs-upgrade.md %} + + +## Getting started + +1. From the Segment web app, click **Catalog**, then click **Destinations**. +2. Find the Wisepops item in the catalog, and click it. +3. Click **Configure Wisepops**. +4. Select an existing Source to connect to Wisepops. +5. Give the destination a name. +6. In the **Basic Settings** page, enter your **Website Identifier**. It can be found in your [Wisepops setup code](https://app.wisepops.com/f/settings/websites){:target='_blank'}. It's the bolded string in the setup code of the Popups service that's 10 characters long. + ![Wisepops setup code](images/wisepops-setup-code.png) +7. Toggle **Enable Destination** and click **Save changes**. + +> info "Wisepops Destination is device mode only (web)" +> This destination is compatible only with [Analytics.js 2.0](/docs/connections/sources/catalog/libraries/website/javascript/). Server-side `identify` and `track` calls don't trigger Wisepops' actions. + + +## Default Mapping + +The Wisepops destination comes with [mapping presets](#available-presets). You can adjust each default mapping by going to the **Mapping** tab of the destination in the Segment web app. + +### Set User Traits as Custom Properties + +By default, when you identify a user, their traits are set as [custom properties](https://support.wisepops.com/article/yrdyv1tfih-set-up-custom-properties){:target='_blank'}. +A great use case is to [display the user first name in your campaign](https://support.wisepops.com/article/snksb93jrq-personalize-the-content-of-your-popup-on-the-fly){:target='_blank'}: + +![User first name](images/wisepops-user-first-name.png) + +> success "" +> The user ID is set as the custom property `userId`. For example, use `{{userId}}` as a hidden field value to know who responds to your Wisepops surveys. + +### Set Group Traits as Custom Properties + +By default, when you identify a group, its traits are set as [custom properties](https://support.wisepops.com/article/yrdyv1tfih-set-up-custom-properties){:target='_blank'} in a nested object `group`. +You must use the prefix `group.` when you refer to a group trait in Wisepops. +For example, you can [target the users of groups subscribed to your "Premium" plan](https://support.wisepops.com/article/yrdyv1tfih-set-up-custom-properties#defining-custom-conditions){:target='_blank'}: + +![Group ID](images/wisepops-group-id.png) + +> success "" +> The group ID is set as the custom property `group.groupId`. + +### Track Event + +By default, when you track an event, Segment sends a [custom event](https://support.wisepops.com/article/zbpq1z0exk-set-up-custom-events-to-trigger-popups){:target='_blank'} to Wisepops. +To show a campaign when a custom event is emitted, enter the event name as the campaign trigger. +For example, you can display a popup when a product is added to the cart: + +![Event Product Added](images/wisepops-custom-event.png) + +> info "Custom events count as page views in your monthly quota" +> If you track a lot of events with Segment, you may want to edit this mapping to send only the relevant events to Wisepops. + +### Track Goal + +By default, when you track the event **Order Completed**, Segment sends a [goal completion](https://support.wisepops.com/article/mx3z8na6yb-set-up-goal-tracking){:target='_blank'} to Wisepops. +The goal and its revenue are attached to one of your campaigns based on your Wisepops' goal attribution model. +You can easily track more goals by editing the mapping. +The goals are named after the Segment event name. + +### Track Page + +By default, when you track a page, Segment sends a [page view](https://support.wisepops.com/article/uymb5lywhi-wisepops-on-single-page-applications){:target='_blank'} to Wisepops. +This mapping is required for Wisepops to display campaigns at page change. + + +{% include components/actions-fields.html %}