diff --git a/.github/styles/Vocab/Docs/accept.txt b/.github/styles/Vocab/Docs/accept.txt index fbdad34d91..33b52ed3a7 100644 --- a/.github/styles/Vocab/Docs/accept.txt +++ b/.github/styles/Vocab/Docs/accept.txt @@ -95,6 +95,7 @@ Preact Qualtrics Rokt Selligent +Sendgrid Shopify signup Skalin diff --git a/src/_data/catalog/destinations_private.yml b/src/_data/catalog/destinations_private.yml index 894ac8ed9c..c9275369d0 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-09-06 with Qualtrics +# destination data last updated 2022-09-13 with Sendgrid Marketing Campaigns items: - id: 54521fd525e721e32a72ee8e name: AdRoll @@ -2451,3 +2451,383 @@ items: dynamic: false allowNull: false presets: [] + - id: 631a6f32946dd8197e9cab66 + display_name: Sendgrid Marketing Campaigns + name: Sendgrid Marketing Campaigns + slug: actions-sendgrid + previous_names: + - Sendgrid Marketing Campaigns + website: https://sendgrid.com/ + status: PRIVATE_BETA + logo: + url: https://cdn.filepicker.io/api/file/jrbUXsZDQ708akn3cVyZ + 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: true + components: [] + browserUnbundlingSupported: false + browserUnbundlingPublic: false + replay: false + settings: + - name: sendGridApiKey + type: password + defaultValue: '' + description: The Api key for your SendGrid account. + required: true + label: API Key + actions: + - id: rL5tHuZt3nvQLqn7oXeFhC + name: Upsert Contact + slug: updateUserProfile + description: Add or update a Contact in SendGrid. + platform: CLOUD + hidden: false + defaultTrigger: null + fields: + - id: 3uNdbPtxj8yupH24rzsaNn + sortOrder: 0 + fieldKey: enable_batching + label: Batch Data to SendGrid Contacts PUT API + type: BOOLEAN + description: >- + When enabled, the action will use the SendGrid Contacts PUT API to + perform the batch operation. Batches can contain up to 30k records + in a request. + placeholder: '' + defaultValue: true + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + - id: ah7jfBszNjKBBAt1yTFuPx + sortOrder: 1 + fieldKey: first_name + label: First Name + type: STRING + description: The contact's 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: true + - id: u6yVWGpTPdbVQ5fNiRxLyN + sortOrder: 2 + fieldKey: last_name + label: Last Name + type: STRING + description: The contact's 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: true + - id: 5oetP71ErKFc3rf9uzKA4j + sortOrder: 3 + fieldKey: country + label: Country + type: STRING + description: The contact's country. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.address.country + then: + '@path': $.traits.address.country + else: + '@path': $.properties.address.country + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: tU767ncJqg4nurP78eh3Gy + sortOrder: 4 + fieldKey: postal_code + label: Postal Code + type: STRING + description: The contact's postal code. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.address.postal_code + then: + '@path': $.traits.address.postal_code + else: + '@path': $.properties.address.postal_code + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: hWToMWEnn8B8KDy2xCYpmf + sortOrder: 5 + fieldKey: city + label: City + type: STRING + description: The contact's city. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.address.city + then: + '@path': $.traits.address.city + else: + '@path': $.properties.address.city + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: 5Tq2bVEhkL1ZUGyTzqpbHx + sortOrder: 6 + fieldKey: state + label: State + type: STRING + description: The contact's state. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.address.state + then: + '@path': $.traits.address.state + else: + '@path': $.properties.address.state + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: 9TSPbEY4WD2WTGTkdzuwcN + sortOrder: 7 + fieldKey: address_line_1 + label: Address Line 1 + type: STRING + description: The contact's address line 1. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.address.line1 + then: + '@path': $.traits.address.line1 + else: + '@path': $.properties.address.line1 + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: amfiMu6LSLBaDBXMbqkxyG + sortOrder: 8 + fieldKey: address_line_2 + label: Address Line 2 + type: STRING + description: The contact's address line 2. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.address.line2 + then: + '@path': $.traits.address.line2 + else: + '@path': $.properties.address.line2 + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: 6z7KA8azb9Xe3m1XgUSadD + sortOrder: 9 + fieldKey: phone_number + label: Phone Number + type: STRING + description: The contact's phone number. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.phone + then: + '@path': $.traits.phone + else: + '@path': $.properties.phone + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: oLRbYgkFLfkFK7BXzoqP8 + sortOrder: 10 + fieldKey: whatsapp + label: WhatsApp + type: STRING + description: The contact's WhatsApp. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.whatsapp + then: + '@path': $.traits.whatsapp + else: + '@path': $.properties.whatsapp + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: fxb2pDVzG3TqcQPZv91KnY + sortOrder: 11 + fieldKey: line + label: LINE ID + type: STRING + description: The contact's LINE ID. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.line + then: + '@path': $.traits.line + else: + '@path': $.properties.line + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: h9jKzrK8BCQG4pKdvD4TQA + sortOrder: 12 + fieldKey: facebook + label: Facebook ID + type: STRING + description: The contact's Facebook ID. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.facebook + then: + '@path': $.traits.facebook + else: + '@path': $.properties.facebook + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: nEf4nq8cnZuitXigA3uPrB + sortOrder: 13 + fieldKey: unique_name + label: Unique Name + type: STRING + description: The contact's unique name. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.unique_name + then: + '@path': $.traits.unique_name + else: + '@path': $.properties.unique_name + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: gvZ2wDobdfRMU4VcYLKqb6 + sortOrder: 14 + fieldKey: identity + label: Identity + type: STRING + description: The contact's identity. + placeholder: '' + defaultValue: + '@if': + exists: + '@path': $.traits.identity + then: + '@path': $.traits.identity + else: + '@path': $.properties.identity + required: false + multiple: false + choices: null + dynamic: false + allowNull: true + - id: 3NnjxaioL6xnhwcvqCcqKn + sortOrder: 15 + fieldKey: primary_email + label: Email Address + type: STRING + description: The contact's 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: 3nEzzs5qkvxWM1Sx1Cb5j1 + sortOrder: 16 + fieldKey: customFields + label: Other Fields + type: OBJECT + description: |2- + + Additional fields to send to SendGrid. On the left-hand side, input the SendGrid Custom Fields Id. On the right-hand side, map the Segment field that contains the value. + + Custom Fields must be predefined in your SendGrid account and you can retrieve corresponding Id using get all field definitions endpoint. + + Reference: [Get All field definitions](https://docs.sendgrid.com/api-reference/custom-fields/get-all-field-definitions) + --- + + + placeholder: '' + required: false + multiple: false + choices: null + dynamic: false + allowNull: false + presets: [] diff --git a/src/connections/destinations/catalog/actions-sendgrid/index.md b/src/connections/destinations/catalog/actions-sendgrid/index.md new file mode 100644 index 0000000000..dd01b56e63 --- /dev/null +++ b/src/connections/destinations/catalog/actions-sendgrid/index.md @@ -0,0 +1,36 @@ +--- +title: Sendgrid Marketing Campaigns Destination +hide-boilerplate: true +hide-dossier: true +private: true +id: 631a6f32946dd8197e9cab66 +--- + + +{% include content/ajs-upgrade.md %} + +[Sendgrid Marketing Campaigns](https://sendgrid.com/solutions/email-marketing/) provides email marketing automation for businesses. With Segment you can add contacts and lists to Sendgrid Marketing Campaigns. + +## Getting started + +1. From the Segment web app, click **Catalog**, then click **Destinations**. +2. Find the Destinations Actions item in the left navigation, and click it. +3. Click **Configure Sendgrid Marketing Campaigns**. +4. Select an existing Source to connect to Sendgrid Marketing Campaigns (Actions). +5. In the destination settings, enter your Sendgrid Marketing Campaigns “API key” into the connection settings. You should create a new API key for the Segment destination. You can read more about API keys on [Marketing Campaigns’s docs.](https://docs.sendgrid.com/ui/account-and-settings/api-keys){:target="_blank"} + + +{% include components/actions-fields.html %} + + +## Recording Custom User Traits +If you want to view any other custom user traits in the Marketing Campaigns list dashboard, you must create a [Custom Field inside Marketing Campaigns’s UI](https://docs.sendgrid.com/ui/managing-contacts/custom-fields#creating-custom-fields){:target="_blank"} of the traits in your identify calls. Note that you do not need to map all user.traits you are sending inside Marketing Campaigns. You only need to create Custom Fields of the traits you want to see in your list view. + +## Custom Fields +To send custom fields/user traits to Marketing Campaigns you need to create the field first in Marketing Campaigns for each trait you want sent to Marketing Campaigns. Then when you call identify with keys that match those traits they will appear in your Marketing Campaigns list. + +For any other custom traits just add a Custom Field inside of Sendgrid Marketing Campaigns with a tag that matches the key you are using in your identify call. + + +## Recording userId +To record a Segment userId in Sendgrid Marketing Campaigns, you must pass the userID as a trait on your identify() calls. SendGrid does not automatically map the Segment userID to any Marketing Campaigns properties.