Developer guide to transactional email integration

To start sending emails with our transactional email feature, developer know-how is required.

If you’re working with a developer to set it up, point this guide out to let them know what’s involved. If they're not set up as a user in your account already, giving them access will allow them to be more effective.

Further instructions for our transactional email feature are available in our API documentation.


The following FAQs are based on feedback and questions we’ve received. If you, or your developer, have questions we haven’t addressed, please let us know by contacting support.

How are transactional emails sent through Campaign Monitor?

We offer two types of transactional email:

  • Smart transactional — These emails are first created with our email builder (custom designs can also be imported), then triggered to send using our API. All endpoints are covered in our API documentation.
  • Classic transactional — Emails are designed outside of Campaign Monitor and hosted by the sender. You can trigger them to send using our API, or use SMTP.
Related help articles:

Why do I need to authenticate my own sending domain before sending transactional email?

To provide the best possible service, we require you to manage your own authentication to use transactional email. Authentication:

  • validates you as the legitimate sender of an email.
  • increases deliverability and your recipient's trust.
  • helps to prevent bad actors like spammers and phishers.

What features does the API give me access to?

Apart from sending a transactional email, the transactional portion of our API enables you to:

  • list smart emails
  • group together emails for reporting
  • toggle tracking clicks and opens
  • toggle inlining of CSS
  • add recipients of transactional emails to a subscriber list (provided they have given permission)
  • get delivery and engagement statistics
  • get a list of sent messages filtered by group, status, email date and more
  • get a message's full content and other data
  • resend a previously sent email

See our API documentation for the full list, endpoints and options.

What wrappers are available for Campaign Monitor's API?

We officially support .NET, Java, Node.js, PHP, Python and Ruby. Code samples for each language are generated after a smart transactional email has been created. A cURL command is also provided.

Do you support things like FOR loops, IF statements, variables, and string manipulation in transactional email?

All these and more are supported using Liquid templating language, when you import your own HTML email design into a smart transactional email.

What’s involved in switching to Campaign Monitor if SMTP triggering is already set up with a different transactional provider?

It’s as simple as changing the server, username and password details. In addition to our own SMTP group headers, Campaign Monitor supports those from Mailgun, Mailjet, Mandrill, Postmark and Sendgrid, so you get reporting straight away without having to redeploy code.

IMPORTANT: If your existing transactional provider allows for multiple group names, Campaign Monitor only uses the first.