diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index f3db341edb..863dcc0fad 100644 --- a/src/_data/catalog/destinations_private.yml +++ b/src/_data/catalog/destinations_private.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2023-06-20 +# destination data last updated 2023-06-21 items: - id: 54521fd725e721e32a72eec6 display_name: Intercom @@ -1747,206 +1747,6 @@ items: fieldKey: user_id label: User id type: STRING - description: The user id, to uniquely identify the user - placeholder: '' - defaultValue: - '@path': $.userId - required: true - multiple: false - choices: null - dynamic: false - allowNull: false - - id: Qzg9XR25ZfKT8WDgUmLW - sortOrder: 1 - fieldKey: user_email - label: Email address - type: STRING - description: The user email address - placeholder: '' - defaultValue: - '@if': - exists: - '@path': $.traits.email - then: - '@path': $.traits.email - else: - '@path': $.properties.email - required: true - multiple: false - choices: null - dynamic: false - allowNull: false - - id: w1xLwoyUHrg25b4ZEZZiHM - sortOrder: 2 - fieldKey: user_created_at - label: Created at - type: STRING - description: The timestamp when the user was created - placeholder: '' - defaultValue: - '@path': $.traits.created_at - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: cLoeYWB567isgyGieoGbWR - sortOrder: 3 - fieldKey: user_first_name - label: First name - type: STRING - description: The user first name - placeholder: '' - defaultValue: - '@if': - exists: - '@path': $.traits.first_name - then: - '@path': $.traits.first_name - else: - '@path': $.properties.first_name - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: tR9DbcT5ZaF3cpyC3HZ26P - sortOrder: 4 - fieldKey: user_last_name - label: Last name - type: STRING - description: The user last name - placeholder: '' - defaultValue: - '@if': - exists: - '@path': $.traits.last_name - then: - '@path': $.traits.last_name - else: - '@path': $.properties.last_name - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: 6uwDj8ZLV1sYZkGmH2rAz2 - sortOrder: 5 - fieldKey: user_custom_attributes - label: Custom attributes - type: OBJECT - description: The user custom attributes - placeholder: '' - defaultValue: - '@path': $.traits - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: j9GT4VwX5c3VzzF3uhituf - sortOrder: 6 - fieldKey: user_anonymous_id - label: Anonymous ID - type: STRING - description: User Anonymous id - placeholder: '' - defaultValue: - '@path': $.anonymousId - required: false - multiple: false - choices: null - dynamic: false - allowNull: true - - id: a1cv8hah5MYz9JWm3ZMHzk - sortOrder: 7 - fieldKey: event_id - label: Event ID - type: STRING - description: The ID of the event. - placeholder: '' - defaultValue: - '@path': $.messageId - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: bfJyLfiueAoxTwxibGA8Kc - sortOrder: 8 - fieldKey: doc_path - label: Document Path - type: STRING - description: The path of the document. - placeholder: '' - defaultValue: - '@path': $.context.page.path - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: bghsPuZDH8V5jJaB6VDELs - sortOrder: 9 - fieldKey: doc_search - label: Document Search - type: STRING - description: The search query of the document. - placeholder: '' - defaultValue: - '@path': $.context.page.search - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: mhMrdnRHt5CHnXhRe4G9us - sortOrder: 10 - fieldKey: event_type - label: Event Type - type: STRING - description: The type of the event. - placeholder: '' - defaultValue: - '@path': $.type - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: vY5eeLDFZGwLM9aKDtUzaN - sortOrder: 11 - fieldKey: page_title - label: Page Title - type: STRING - description: The title of the page where the event occurred. - placeholder: '' - defaultValue: - '@path': $.context.page.title - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: vyK9boowXDzWEK6bcTd1Wm - sortOrder: 12 - fieldKey: referer - label: Referrer - type: STRING - description: The referrer of the page where the event occurred. - placeholder: '' - defaultValue: - '@path': $.context.page.referrer - required: false - multiple: false - choices: null - dynamic: false - allowNull: false - - id: 41attN27QtLpwZhym83ny2 - sortOrder: 13 - fieldKey: url - label: URL - type: STRING description: The URL of the page where the event occurred. placeholder: '' defaultValue: @@ -3307,3 +3107,621 @@ items: source_ip: '@path': $.context.ip trigger: type = "track" + - id: 645babd9362d97b777391325 + display_name: Iterable (Actions) + name: Iterable (Actions) + slug: iterable-actions + previous_names: + - Iterable (Actions) + url: connections/destinations/catalog/iterable-actions + website: http://www.iterable.com + status: PRIVATE_BETA + logo: + url: https://cdn.filepicker.io/api/file/QKYeS0d6Shu2MsB1qCMF + mark: + url: https://cdn.filepicker.io/api/file/rlEm1XN8Tp2nK2qUHb1u + methods: + track: true + identify: true + group: true + alias: true + screen: false + page: true + platforms: + browser: true + mobile: false + server: true + warehouse: true + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + settings: + - name: apiKey + type: string + defaultValue: '' + description: >- + To obtain the API Key, go to the Iterable app and naviate to + Integrations > API Keys. Create a new API Key with the 'Server-Side' + type. + required: true + label: API Key + actions: + - id: 3MrS3Se3PAaxL4wpQN93gA + name: Custom Event + slug: trackEvent + description: Track a custom event to a user profile + platform: CLOUD + hidden: false + defaultTrigger: >- + type = "track" and event != "Order Completed" and event != "Cart + Updated" + fields: + - id: nc2S6P8owYo1BmW3nGT6vj + sortOrder: 0 + fieldKey: email + label: Email Address + type: STRING + description: An email address that identifies a user profile in Iterable. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: pKxd1p4caVJKSBFQ1kDZVr + sortOrder: 1 + fieldKey: userId + label: User ID + type: STRING + description: A user ID that identifies a user profile in Iterable. + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 9ghivwJ1wuu5VqrG1pHg5a + sortOrder: 2 + fieldKey: eventName + label: Event name + type: STRING + description: Name of the event + placeholder: '' + defaultValue: + '@path': $.event + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 9A3pUWnUQtzMod6trNtesn + sortOrder: 3 + fieldKey: dataFields + label: Event Data Fields + type: OBJECT + description: Additional event properties. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: hhNzEi34UCvKoiqAoVbJsJ + sortOrder: 4 + fieldKey: id + label: Event ID + type: STRING + description: >- + A unique ID. If an event exists with that id, the event will be + updated + placeholder: '' + defaultValue: + '@path': $.messageId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: dXY1dWqWBhkvtqttpFKaNs + sortOrder: 5 + fieldKey: createdAt + label: Timestamp + type: DATETIME + description: Time the event took place. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: mrvz1aCxRgthF6z9a7xd6Y + sortOrder: 6 + fieldKey: campaignId + label: Campaign ID + type: INTEGER + description: Iterable campaign the event can be attributed to. + placeholder: '' + defaultValue: + '@path': $.properties.campaignId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: k2qH8Mw6PDz8T9Hmti2zKH + sortOrder: 7 + fieldKey: templateId + label: Template ID + type: INTEGER + description: Iterable template the event can be attributed to. + placeholder: '' + defaultValue: + '@path': $.properties.templateId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 455R6caawb6HFBsewGmtS3 + name: Cart Updates + slug: updateCart + description: Updates the shoppingCartItems field on the user profile. + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event == "Cart Updated" + fields: + - id: cej14kSbGQWZJMtFgM599e + sortOrder: 0 + fieldKey: user + label: User Data + type: OBJECT + description: Updates user data or adds a user if none exists + placeholder: '' + defaultValue: + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + userId: + '@path': $.userId + dataFields: + '@path': $.context.traits + phoneNumber: + '@path': $.context.traits.phone + mergeNestedObjects: false + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: aY4QBLF8h8VLXpLgVyENYB + sortOrder: 1 + fieldKey: items + label: Cart items + type: OBJECT + description: >- + Individual items in the cart. Each item must contain `id`, `name`, + `price`, and `quantity`. Extra values are added to dataFields. + placeholder: '' + defaultValue: + '@arrayPath': + - $.properties.products + - id: + '@path': product_id + sku: + '@path': sku + categories: + '@path': category + name: + '@path': name + price: + '@path': price + quantity: + '@path': quantity + url: + '@path': url + imageUrl: + '@path': image_url + description: + '@path': description + required: true + multiple: true + choices: null + dynamic: false + allowNull: false + - id: hgu8jn8qk4wt7VZD4P67uV + name: Track Purchase + slug: trackPurchase + description: Tracks a purchase to Iterable + platform: CLOUD + hidden: false + defaultTrigger: type = "track" and event == "Order Completed" + fields: + - id: jQ1T9Y9Fvb1nQKY51aQFma + sortOrder: 0 + fieldKey: id + label: Order ID + type: STRING + description: >- + Similar to `Event ID` in custom events. Iterable recommends + mapping `order_id` or `messageId`. If a purchase exists with that + id, the purchase will be updated. If none is specified, a new id + will automatically be generated by Iterable + placeholder: '' + defaultValue: + '@path': $.properties.order_id + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: pL3TycqBGTw2MuKDEaViD7 + sortOrder: 1 + fieldKey: user + label: User Data + type: OBJECT + description: Updates user data or adds a user if none exists + placeholder: '' + defaultValue: + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + userId: + '@path': $.userId + dataFields: + '@path': $.context.traits + phoneNumber: + '@path': $.context.traits.phone + mergeNestedObjects: false + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: aHt1hFrsNUYMdKNNYgBRak + sortOrder: 2 + fieldKey: dataFields + label: Event Data Fields + type: OBJECT + description: Additional event properties. + placeholder: '' + defaultValue: + '@path': $.properties + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: pSFNeviuyGjhdUR743sppZ + sortOrder: 3 + fieldKey: items + label: Cart items + type: OBJECT + description: >- + Individual items in the cart. Each item must contain `id`, `name`, + `price`, and `quantity`. Extra values are added to dataFields. + placeholder: '' + defaultValue: + '@arrayPath': + - $.properties.products + - id: + '@path': product_id + sku: + '@path': sku + categories: + '@path': category + name: + '@path': name + price: + '@path': price + quantity: + '@path': quantity + url: + '@path': url + imageUrl: + '@path': image_url + description: + '@path': description + required: true + multiple: true + choices: null + dynamic: false + allowNull: false + - id: mKFoJCfHZ4QVAxyoQTxs1W + sortOrder: 4 + fieldKey: total + label: Total + type: NUMBER + description: Total order amount. + placeholder: '' + defaultValue: + '@path': $.properties.total + required: true + multiple: false + choices: null + dynamic: false + allowNull: false + - id: baGqHYS74HWfXDkSKLggEC + sortOrder: 5 + fieldKey: createdAt + label: Timestamp + type: DATETIME + description: Time the event took place. + placeholder: '' + defaultValue: + '@path': $.timestamp + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: rkbPtG6WXfd7i3fpLv6pQN + sortOrder: 6 + fieldKey: campaignId + label: Campaign ID + type: INTEGER + description: Iterable campaign the event can be attributed to. + placeholder: '' + defaultValue: + '@path': $.properties.campaignId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 8U4L2vxkvf3W5HJ1p35gL2 + sortOrder: 7 + fieldKey: templateId + label: Template ID + type: INTEGER + description: Iterable template the event can be attributed to. + placeholder: '' + defaultValue: + '@path': $.properties.templateId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ifeXsLqNNjJ5HJdRKSJwea + name: Upsert User + slug: updateUser + description: Creates or updates a user + platform: CLOUD + hidden: false + defaultTrigger: type = "identify" + fields: + - id: ayGQygoEff8rpiveFjMnVm + sortOrder: 0 + fieldKey: email + label: Email Address + type: STRING + description: An email address that identifies a user profile in Iterable. + placeholder: '' + defaultValue: + '@path': $.traits.email + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: im15rK5jC5WDYKWCTAffax + sortOrder: 1 + fieldKey: userId + label: User ID + type: STRING + description: A user ID that identifies a user profile in Iterable. + placeholder: '' + defaultValue: + '@path': $.userId + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: foPHwenSh6mnRFak73qPRX + sortOrder: 2 + fieldKey: dataFields + label: User Data Fields + type: OBJECT + description: Data to store on the user profile. + placeholder: '' + defaultValue: + '@path': $.traits + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 3ZJgyU8NnZYjr6xEnUZ8Gi + sortOrder: 3 + fieldKey: phoneNumber + label: User Phone Number + type: STRING + description: >- + User phone number. Must be a valid phone number including country + code. e.g. +14158675309 + placeholder: '' + defaultValue: + '@path': $.traits.phone + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: 2TyuAoikg4wSiXzJs23PfW + sortOrder: 4 + fieldKey: mergeNestedObjects + label: Merge Nested Objects + type: BOOLEAN + description: >- + If you'd like to merge (rather than overwrite) a user profile's + top-level objects with the values provided for them in the request + body, set mergeNestedObjects to true. + placeholder: '' + defaultValue: false + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: + - actionId: ifeXsLqNNjJ5HJdRKSJwea + name: Identify Calls + fields: + email: + '@path': $.traits.email + userId: + '@path': $.userId + dataFields: + '@path': $.traits + phoneNumber: + '@path': $.traits.phone + mergeNestedObjects: false + trigger: type = "identify" + - actionId: hgu8jn8qk4wt7VZD4P67uV + name: Order Completed Calls + fields: + id: + '@path': $.properties.order_id + user: + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + userId: + '@path': $.userId + dataFields: + '@path': $.context.traits + phoneNumber: + '@path': $.context.traits.phone + mergeNestedObjects: false + dataFields: + '@path': $.properties + items: + '@arrayPath': + - $.properties.products + - id: + '@path': product_id + sku: + '@path': sku + categories: + '@path': category + name: + '@path': name + price: + '@path': price + quantity: + '@path': quantity + url: + '@path': url + imageUrl: + '@path': image_url + description: + '@path': description + total: + '@path': $.properties.total + createdAt: + '@path': $.timestamp + campaignId: + '@path': $.properties.campaignId + templateId: + '@path': $.properties.templateId + trigger: type = "track" and event = "Order Completed" + - actionId: 3MrS3Se3PAaxL4wpQN93gA + name: Track Calls + fields: + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + userId: + '@path': $.userId + eventName: + '@path': $.event + dataFields: + '@path': $.properties + id: + '@path': $.messageId + createdAt: + '@path': $.timestamp + campaignId: + '@path': $.properties.campaignId + templateId: + '@path': $.properties.templateId + trigger: >- + type = "track" and event != "Order Completed" and event != "Cart + Updated" + - actionId: 455R6caawb6HFBsewGmtS3 + name: Update Cart Calls + fields: + user: + email: + '@if': + exists: + '@path': $.properties.email + then: + '@path': $.properties.email + else: + '@path': $.context.traits.email + userId: + '@path': $.userId + dataFields: + '@path': $.context.traits + phoneNumber: + '@path': $.context.traits.phone + mergeNestedObjects: false + items: + '@arrayPath': + - $.properties.products + - id: + '@path': product_id + sku: + '@path': sku + categories: + '@path': category + name: + '@path': name + price: + '@path': price + quantity: + '@path': quantity + url: + '@path': url + imageUrl: + '@path': image_url + description: + '@path': description + trigger: type = "track" and event = "Cart Updated" diff --git a/src/connections/destinations/catalog/actions-iterable/index.md b/src/connections/destinations/catalog/actions-iterable/index.md new file mode 100644 index 0000000000..6ac56d3be4 --- /dev/null +++ b/src/connections/destinations/catalog/actions-iterable/index.md @@ -0,0 +1,83 @@ +--- +title: Iterable (Actions) Destination +hide-boilerplate: true +id: 645babd9362d97b777391325 +hide-dossier: true +--- + +{% include content/plan-grid.md name="actions" %} + +[Iterable](https://www.iterable.com/?utm_source=segmentio&utm_medium=docs&utm_campaign=partners) is a cross-channel marketing platform that powers unified customer experiences and empowers you to create, optimize and measure every interaction across the entire customer journey. + +This destination is maintained by Iterable. For any issues with the destination, [contact the Iterable Support team](mailto:support@iterable.com). + +> success "" +> This page is about the [Actions-framework](/docs/connections/destinations/actions/) Iterable Segment destination. There's also a page about the [non-Actions Iterable destination](/docs/connections/destinations/catalog/iterable/). Both of these destinations receive data from Segment. + +## Benefits of Iterable (Actions) vs Iterable Classic + +Iterable (Actions) provides the following benefit over Iterable Classic: + +- **Transparent data mapping**. The Classic Iterable destination receives data from Segment and converts Segment events to Iterable's format using hard coded mappings that are unable to be adjusted. The Iterable (Actions) destination allows clients to fully define their own mappings of Segment events, ensuring they receive data structured specifically for their needs. + +## Getting Started + +Follow these steps to connect the Iterable (Actions) destination to your Segment sources: + +1. Access the Segment web app and click on **Catalog**. +2. In the Catalog, use the search function to find "Iterable". Select the **Iterable (Actions)** destination from the results, and choose which of your sources to connect the destination to. + + +1. From the Segment web app, navigate to **Connections > Catalog > Destinations**. +2. Click the **Destination Actions** category item in the left navigation. +3. Search for **Iterable (Actions)** and select it. +4. Click **Configure Iterable (Actions)**. +5. Select an existing Source to connect to Iterable (Actions). +6. Complete the Destination Settings as listed below. + +{% include components/actions-fields.html %} + +## Important differences from the classic Iterable destination + +Since the release of Iterable's Classic Segment destination, Iterable has expanded its support for multiple project types. To determine the appropriate identifier for your project type, please refer to the list of available project types and their respective identifiers found at the following link: [Project Types and Unique Identifiers](https://support.iterable.com/hc/en-us/articles/9216719179796-Project-Types-and-Unique-Identifiers). + +### Creating or Updating Users + +The method by which you identify users depends on the project type you use: + +#### Email-based Projects +In email-based projects, it is necessary to include the email to successfully create a user in Iterable. Once both the email and `userId` have been set in Iterable, the `userId` can be utilized for any future user updates. + +#### UserID-based Projects +For userID-based projects, a unique `userId` is required for creating a user in Iterable. While it is optional to add an email to a userID-based user profile, all subsequent user updates must be performed using the `userId`. + +#### Hybrid Projects** +In hybrid projects, you have the flexibility to choose between using a unique email or a `userId` to create a user in Iterable. + +In Iterable's previous classic destination, when making Identify calls, certain context fields were automatically mapped to user profiles. However, this behavior has been changed. Please note that the following context fields are no longer automatically mapped to Iterable user profiles during Identify calls: + +- app +- device +- ip +- locale +- page +- timezone + +To include these fields in user profiles, pass them as traits with Identify calls. This change offers more control and customization options for managing user data within Iterable. + +Additionally, the integration has been updated to support explicit mappings for updating the `phoneNumber` user profile field, as well as support of the `mergeNestedObject` boolean field in user update calls. + +### Custom Events + +In UserID and Hybrid projects, when a passed ``userId`` doesn't match an existing user, Iterable creates a new user automatically. In email-based projects, tracking a custom event for an unidentified user will not create a user profile. + +To ensure proper user profile creation in email-based projects: + +- Call the Identify method with both a ``userId`` and an `email` to create a user profile. +- After you create the user profile, proceed with tracking the custom event for that user. + +If you follow this approach, you can guarantee the creation of user profiles and accurately track custom events within Iterable for email-based projects. + +### Commerce Events + +In the classic destination of Iterable, cart updates were associated with Segment's `Product Added` and `Product Removed` events. However, in the Action destination, there have been updates to the default mappings. Now, custom events titled `Cart Updated` are routed to Iterable's Update Cart API. diff --git a/src/connections/destinations/catalog/hubspot/index.md b/src/connections/destinations/catalog/hubspot/index.md index ca53801b2a..aefe256a58 100644 --- a/src/connections/destinations/catalog/hubspot/index.md +++ b/src/connections/destinations/catalog/hubspot/index.md @@ -5,8 +5,10 @@ hide-personas-partial: true cmode-override: true id: 54521fd725e721e32a72eec1 maintenance: true -private: true +private: false maintenance-content: New versions of the destination are available. See [HubSpot Cloud Mode (Actions)](/docs/connections/destinations/catalog/actions-hubspot-cloud/) and [HubSpot Web (Actions)](/docs/connections/destinations/catalog/actions-hubspot-web/) for more information. +hidden: false + --- [HubSpot](https://www.hubspot.com/){:target="_blank"} is an inbound marketing and sales platform that helps companies attract visitors, convert leads, and close customers. The `analytics.js` HubSpot Destination is open-source. You can browse the code [on GitHub](https://github.com/segmentio/analytics.js-integrations/tree/master/integrations/hubspot){:target="_blank"}. diff --git a/src/connections/destinations/catalog/voucherify-actions/index.md b/src/connections/destinations/catalog/voucherify-actions/index.md index 45bdd647a3..3ff7d034a6 100644 --- a/src/connections/destinations/catalog/voucherify-actions/index.md +++ b/src/connections/destinations/catalog/voucherify-actions/index.md @@ -3,7 +3,6 @@ title: Voucherify (Actions) Destination id: 63f529a8af3478b5a5363c53 private: false hidden: false - --- {% include content/plan-grid.md name="actions" %}