SendGrid

SendGrid is a cloud-based platform intended for delivering transactional and marketing emails.

Data integration: Skyvia supports importing data to and from SendGrid, exporting SendGrid data to CSV files, replicating SendGrid data to relational databases, and synchronizing SendGrid data with other cloud apps and relational databases.

Backup: Skyvia Backup does not support SendGrid.

Query: Skyvia Query supports SendGrid.

Establishing Connection

To create a connection to SendGrid, you need to specify an API Key.

Getting Credentials

To get your API Key, perform the following steps:

  1. Sign in to SendGrid.
  2. Click Settings in the menu on the left.

    SendGrid API Key

  3. In the drop-down list, click API Keys and copy your API Key.

  4. If you don’t have an API Key in your SendGrid account yet, you need to create it and select API Key permissions.

    SendGrid API Key Permissions

Creating Connection

Paste the obtained API Key to the corresponding box in the Connection Editor.

Connection Editor window

Additional Connection Parameters

Use Custom Fields

Select this checkbox to make custom fields available in Skyvia.

Connector Specifics

Object Peculiarities

Contact

Due to SendGrid API peculiarities, the INSERT and UPDATE operations work the following way. When you import a record with an existing Email value, the integration updates the corresponding target record. When you import a record with a new Email value, the integration inserts a new record to the target.

It takes several minutes for changes to display in the Contact object.

The ListIds field supports the INSERT operation and does not support the UPDATE operation. To update the ListIds field, you can use the Insert action, map the existing value to the Email field and map the ListId field.

EmailStatistics Objects

To get data from the -EmailStatistics objects (GlobalEmailStatistics, EmailStatisticsByCountry, EmailStatisticsByDeviceType etc.), you must set the filter by StartDate with = (equals) operator only. Optionally, you can add the filter by EndDate. StartDate and EndDate fields are used for filtering only and do not display values when querying.

Suppressions

To import data to the Suppressions object, map the Email field to the values in the array format, for example: ["test1@example.com","test2@example.com"]

Custom Fields

When you get the data from the CustomFields field of the Contacts object, the data is returned in form of a JSON array with pairs of “custom field name”:”custom field value”.

To successfully import data to custom fields, you must pass the custom field Id instead of name, in the following format: “custom field Id”:”custom field value”.

DML Operations Support

Operation Objects
INSERT, UPDATE, DELETE Alerts, API Keys, AuthenticatedDomains, BrandedLinks, Campaign, CancelSheduledSends, ContactLists, Contacts, CustomFields, Designs, Lists, Segments, Senders, SingleSends, Subusers, Templates, TransactionalTemplateVersions, UnsubscribeGroups, VerifiedSenders
UPDATE, DELETE CampaignSchedules, Teammates
INSERT, DELETE ContactCustomFields, Contacts, ContactSegments, PendingTeammates, ReverseDNS, Suppressions, Unsubscribes
DELETE Blocks, Bounces, ContactListRecipients, InvalidEmails, SpamReports
INSERT InboundParseSettings, SubuserMonitorSettings

Incremental Replication and Synchronization

Skyvia supports Replication with Incremental Updates selected for SendGrid objects, which have either the UpdatedDate or CreatedDate field. Thus, such objects as Alerts, Blocks, Bounces, Contacts, ContactListRecipients, Designs, DesignsPre-built, InvalidEmails, Senders, Segments,SingleSends, SpamReports, Suppressions, Templates, TransactionalTemplateVersions, Unsubscribes can be replicated with incremental updates.

Skyvia supports Synchronization for such SendGrid objects as Alerts, Designs, Segments, Senders, SingleSends, Templates, TransactionalTemplateVersions.

Stored Procedures

Skyvia represents part of the supported SendGrid features as stored procedures. You can call a stored procedure, for example, as a text of the command in the ExecuteCommand action in a Target component of a Data Flow or in Query.

If you want to omit the unnecessary parameters, specify the empty value '' for text or null for numbers.

MailSend

To send emails using SendGrid API, use the command

call MailSend(:Personalizations, :FromEmail, :FromName, :TemplateId, :ReplyToEmail, :ReplyToName, :ReplyToList, :Subject, :Content, :Attachments, :Headers, :CustomArgs, :Categories, :SendAt, :BatchId, :Asm_GroupId, :Asm_GroupsToDisplay, :IPPoolName, :MailSettings_BypassListManagement_Enable, :MailSettings_BypassSpamManagement_Enable, :MailSettings_BypassBounceManagement_Enable, :MailSettings_BypassUnsubscribeManagement_Enable, :MailSettings_Footer_Enable, :MailSettings_Footer_Text, :MailSettings_Footer_HTML, :MailSettings_SandboxMode_Enable, :TrackingSettings_ClickTracking_Enable, :TrackingSettings_ClickTracking_EnableText, :TrackingSettings_OpenTracking_Enable, :TrackingSettings_OpenTracking_SubstitutionTag, :TrackingSettings_SubscriptionTracking_Enable, :TrackingSettings_SubscriptionTracking_Text, :TrackingSettings_SubscriptionTracking_HTML, :TrackingSettings_SubscriptionTracking_SubstitutionTag, :TrackingSettings_GAnalytics_Enable, :TrackingSettings_GAnalytics_UtmSource, :TrackingSettings_GAnalytics_UtmMedium, :TrackingSettings_GAnalytics_UtmTerm, :TrackingSettings_GAnalytics_UtmContent, :TrackingSettings_GAnalytics_UtmCampaign)

PARAMETER NAME DESCRIPTION
Personalizations An array of messages and their metadata. Each object within the personalizations array can be thought of as a mail envelope—it defines who should receive an individual message and how that message should be handled. See the examples below.
FromEmail The email address from which messages are sent. This address should be a verified sender in your Twilio SendGrid account.
FromName A name or title associated with the email address such as “Support” or “Alex”.
TemplateId An email template ID.
ReplyToEmail An email address to which a message is sent.
ReplyToName A name or title associated with the email address such as “Alex”.
ReplyToList An array of recipients to whom replies will be sent. Each object in this array must contain a recipient’s email address.
Subject The global or message level subject of your email.
Content An array of objects, each containing a message body’s content and MIME type.
Attachments An array of objects where you can define any attachments to be included with the message.
Headers A collection of JSON property name and property value pairs allowing you to specify handling instructions for your email.
CustomArgs Values that are specific to the entire send that will be carried along with the email and its activity data.
Categories An array of category names assigned to this message.
SendAt Date and time that specifies when your email should be sent.
BatchId An ID representing a batch of emails to be sent at the same time.
Asm_GroupId The unsubscribe group to associate with this email.
Asm_GroupsToDisplay An array containing the unsubscribe groups that you would like to be displayed to a recipient on the unsubscribe preferences page.
IPPoolName The IP Pool that you would like to send this email from.
MailSettings_BypassListManagement_Enable Allows you to bypass all unsubscribe groups and suppressions to ensure that the email is delivered to every single recipient.
MailSettings_BypassSpamManagement_Enable Allows you to bypass the spam report list to ensure that the email is delivered to recipients.
MailSettings_BypassBounceManagement_Enable Allows you to bypass the bounce list to ensure that the email is delivered to recipients.
MailSettings_BypassUnsubscribeManagement_Enable Allows you to bypass the global unsubscribe list to ensure that the email is delivered to recipients.
MailSettings_Footer_Enable Indicates if this setting is enabled.
MailSettings_Footer_Text The plain text content of your footer.
MailSettings_Footer_HTML The HTML content of your footer.
MailSettings_SandboxMode_Enable Indicates if this setting is enabled.
TrackingSettings_ClickTracking_Enable Indicates if this setting is enabled.
TrackingSettings_ClickTracking_EnableText Indicates if this setting should be included in the text/plain portion of your email.
TrackingSettings_OpenTracking_Enable Indicates if this setting is enabled.
TrackingSettings_OpenTracking_SubstitutionTag Allows you to specify a substitution tag that you can insert in the body of your email at a location that you desire.
TrackingSettings_SubscriptionTracking_Enable Indicates if this setting is enabled.
TrackingSettings_SubscriptionTracking_Text Text to be appended to the email with the subscription tracking link.
TrackingSettings_SubscriptionTracking_HTML HTML to be appended to the email with the subscription tracking link.
TrackingSettings_SubscriptionTracking_SubstitutionTag A tag that will be replaced with the unsubscribe URL.
TrackingSettings_GAnalytics_Enable Indicates if this setting is enabled.
TrackingSettings_GAnalytics_UtmSource Name of the referrer source.
TrackingSettings_GAnalytics_UtmMedium Name of the marketing medium.
TrackingSettings_GAnalytics_UtmTerm Used to identify any paid keywords.
TrackingSettings_GAnalytics_UtmContent Used to differentiate your campaign from advertisements.
TrackingSettings_GAnalytics_UtmCampaign The name of the campaign.

Personalizations value example with template:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[{
    "to": [{
            "email": "alex@example.com",
            "name": "Alex"
        },
        {
            "email": "bola@example.com",
            "name": "Bola"
        }
    ],
    "dynamic_template_data": {
        "subject": "Hello, Alex",
        "customer_name": "Alex",
        "confirmation_number": "123abc456def789hij0"
    }
}]

Personalizations value example without template:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[{
        "to": [{
                "email": "alex@example.com",
                "name": "Alex"
            },
            {
                "email": "bola@example.com",
                "name": "Bola"
            }
        ],
        "cc": [{
            "email": "charlie@example.com",
            "name": "Charlie"
        }],
        "bcc": [{
            "email": "dana@example.com",
            "name": "Dana"
        }]
    },
    {
        "from": {
            "email": "sales@example.com",
            "name": "Example Sales Team"
        },
        "to": [{
            "email": "ira@example.com",
            "name": "Ira"
        }],
        "bcc": [{
            "email": "lee@example.com",
            "name": "Lee"
        }]
    }
]

Command example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
call MailSend(
  '[
    {
      "to": [
        {
          "email": "alex@example.com",
          "name": "Alex"
        },
        {
          "email": "bola@example.com",
          "name": "Bola"
        }
      ],
      "dynamic_template_data": {
        "subject": "Hello, Alex",
        "customer_name": "Alex",
        "confirmation_number": "123abc456def789hij0"
      }
    }
  ]', 
  'annak@rndwork.com', 'DecsCorp', 
  'd-7c8108b5268e4ac1a4b08ba0aef0a472', 
  null, null, null, null, null, null, 
  null, null, null, null, null, null, 
  null, null, null, null, null, null, 
  null, null, null, null, null, null, 
  null, null, null, null, null, null, 
  null, null, null, null, null, null
)

Supported Actions

Skyvia supports all the common actions for SendGrid.