SendGrid Dynamic Transactional emails

Am I right in thinking that the SendGrid Plugin doesn’t support the dynamic transactional templates.

I tested and it works fine with the legacy transactional templates but as soon as you use a dynamic template ID you get an error message back from SendGrid.

Anyone else experienced this?


1 Like

Hey @simon,

The Send emails with SendGrid plugin will soon also support SendGrid’s new transactional emails. :slight_smile:


Great news thanks

Just FYI for anyone using dynamic Transactional emails with the Send Emails with Sendgrid plugin. They are using handlebars, so %VAR1% becomes {{VAR1}} in your templates. The plugin page directions are incorrect for using this type of template.

1 Like

Hey @grottofilms,

There now is field-level documentation for the Send emails with SendGrid plugin which include examples and tips, such as the Template ID field requiring template prefixed with ‘d-’ and so on. We’ve already updated the documentation that’ll come bundled in the next update. :slight_smile:

Wish I had noticed that sooner…Thanks!

Is there a way to include attachments with the latest updates? I don’t see it as an option. I see that API3 has the ability…eg:

“attachments”: [
“content”: “[BASE64 encoded content block here]”,
“type”: “jpg”,
“name”: “example_file”,
“filename”: “example_file.jpg”,
“disposition”: “inline”,
“content_id”: “[THE CONTENT ID OF YOUR FILE]”

Hey @grottofilms,

Today’s Version 5.2 update is coming with support for attachments, among other things. :slight_smile:

Hey, thanks for the update. I followed through on adding attachments via instructions but I just get a workflow error. It’s in BASE64, etc.

Workflow error - Plugin action SendGrid - Send email error:

Is there a place I need to add this on the dynamic template? Sends fine if i remove the attachment. Thanks!

My javascript is not so good but shouldn’t there be an attachments under options.json or just options if I read the API docs correctly?

'var options = {
method: ‘POST’,
uri: ‘’,
headers: {
Authorization: 'Bearer ’ + bearerKey
json: {
subject: properties.subject,
template_id: properties.template_id.trim(),
from: {
name: properties.from_name,
email: properties.from_email_address
personalizations: [],
content: [{
type: “text/html”,
value: “-”
tracking_settings: {
click_tracking: {
enable: properties.clicktracking
open_tracking: {
enable: properties.opentracking


Hey @grottofilms,

Shoot over reproduction steps and symptoms over at :+1: