Email
SendGrid

How to send email with SendGrid

How to send transactional email notifications to SendGrid with Knock.

Knock integrates with SendGrid to send email notifications to your users.

In this guide you'll learn how to get started sending transactional email notifications with SendGrid through Knock. We also cover provider configuration and additional data you can pass through to SendGrid.

Features

  • Attachments support
  • Delivery tracking
    • Only supported for SendGrid accounts with Email Activity.
  • Bounce support
    • Only supported for SendGrid accounts with Email Activity.
    • Currently, only synchronous bounce updates are reflected.
  • Knock link and open tracking
  • SendGrid link and open tracking
  • Per environment configuration
  • Sandbox mode

Getting started

Connect SendGrid to Knock

You can create a new SendGrid channel in the dashboard under the Integrations > Channels section. From there, you'll need to configure the channel for each environment you have.

Here are a few things to note as you configure your SendGrid provider:

  • API key. At a minimum, Knock needs an API key with full access to the Mail Send permission. If you're looking to support delivery tracking, you'll need to provide Knock with a SendGrid API key that includes read access to the Email Activity permission. (Note: email activity requires a SendGrid paid add-on.)
  • Check delivery status. If enabled, you can go to the email activity page in SendGrid to check the delivery status of a given email.
  • Enable email open tracking. If enabled, you can go to the email activity page in SendGrid to check the open status of a given email.
  • Enable email link tracking. If enabled, you can go to the email activity page in SendGrid to check the link open status of a given email.

If you choose to enable open and link tracking, please keep user privacy top of mind and follow the privacy guidelines outlined in SendGrid's documentation.

Channel configuration

The following channel settings should be configured per environment. Navigate to Integrations > Channels in your dashboard, select your SendGrid channel, then click "Manage configuration" under the environment that you'd like to configure.

Fields marked with an * are required.

Knock settings

Sandbox modeboolean
Whether to enable sandbox mode for your SendGrid channel.
Knock open trackingboolean
Whether to enable Knock email-open tracking.
Knock link trackingboolean
Whether to enable Knock link-click tracking.

Provider settings for SendGrid

API keystring*
The API key for your SendGrid account.
Check delivery statusboolean
When set will attempt to check for the delivery status of a message. Only available with SendGrid's Email Activity add-on.
Open trackingboolean
Whether to enable SendGrid email-open tracking. Only available with SendGrid's Email Activity add-on.
Link trackingboolean
Whether to enable SendGrid link-click tracking. Only available with SendGrid's Email Activity add-on.
From email addressstring | liquid*
The default sender email address (can use Liquid tags).
From namestring | liquid
The default sender name (can use Liquid tags).

When configured, these optional overrides will apply to all emails sent from this channel in the configured environment. Learn more about email channel overrides here.

Tostring | liquid
The To email address that email notifications will be sent to (can use Liquid tags). This value will override the designated recipient's email address.
Ccstring | liquid
The CC email address that email notifications will be sent to (can use Liquid tags).
Bccstring | liquid
The BCC email address that email notifications will be sent to (can use Liquid tags).
Reply-tostring | liquid
The reply-to email address that will be included on email notifications (can use Liquid tags).
Payload overridesJSON (string) | liquid
Provide a JSON object to merge into the API payload that is sent to the downstream provider.

Set optional per-environment conditions for this channel. These conditions are evaluated each time a workflow run encounters a step that uses this channel in the configured environment. If the conditions are not met, the step will be skipped.

Additional data sent

Knock sends the following attributes along with your emails:

  • custom_args.sender: always set to knock.app
  • custom_args.knock_message_id: the ID of the message this email is associated with
  • custom_args.knock_recipient_id: the Knock ID of the recipient this email is being sent to
  • tags[0]: the key of the workflow this message was generated from

You can learn about the role of these SendGrid attributes in the SendGrid API documentation.

Recipient data requirements

In order to send an email notification you'll need a valid email property set on your recipient.

Delivery tracking

Delivery tracking for SendGrid can result in the following status updates to your message:

  • The message delivery is confirmed and Knock updates the message to delivered
  • The message was not delivered and Knock updates the message to undelivered
  • The message was not delivered due to a synchronous bounce and Knock updates the message to bounced