How to send email with Mailgun

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

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


  • Attachments support
  • Delivery tracking
  • Link and open tracking
  • Per environment configuration
  • Sandbox mode

Getting started

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

Provider configuration

API keystring*The public API key for your Mailgun account
Domainstring*The sending domain for your Mailgun account
Regionenum*The sending region (US or EU) for your Mailgun account
Open trackingbooleanShould the provider track opens on their service?
Link trackingbooleanShould the provider track link clicks on their service?
From email addressstring | liquid*The sender email address (can use Liquid tags)
From namestring | liquidThe sender name (can use Liquid tags)

Environment default settings

The following fields are optional and if set, will be applied to all email messages sent via this channel within the environment:

Reply-to addressstring | liquidThe reply-to email address (can use Liquid tags)
CC addressstring | liquidThe cc email address (can use Liquid tags)
BCC addressstring | liquidThe bcc email address (can use Liquid tags)
JSON overridesstring | liquidProvider API's paramater overrides

Additional data sent

Knock sends the following attributes along with your emails:

  • v:sender: always set to
  • v:knock_message_id: set to the message ID for the message being sent
  • o:tag: the workflow key for the workflow being invoked

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

Recipient data requirements

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