FlowmageDocs

Send email

BetaChanges data

Sends one transactional email with a subject and a body you compose.

Settings

SettingWhat it is
ConnectionRequiredThe Mailchimp Transactional connection the step signs in with.
From addressRequiredMust be on a domain you verified in Mailchimp Transactional — mail from an unverified domain comes back refused with the reason unsigned.
From nametext
ToComma-separated. For a list from an earlier node, write {{ join(trigger.recipients, ", ") }}.
Cctext
Bcctext
Subjecttext
AttachmentsThe key is the file name, the value its base64 — Pick file… fills both in. The type is taken from the file's extension; use Attachments (JSON) below to set it yourself. Everything together must stay under 25 MB, and base64 is about a third larger than the file on disk.
Inline imagesThe key is the content id you reference from the HTML as <img src="cid:the-key">. Only image files: Mailchimp refuses an inline attachment whose type does not start with image/.
Merge values*|NAME|* in the body is replaced by the value here. A name may not start with an underscore.
Merge languageIn Handlebars mode the braces belong to Mailchimp, so a Flowmage expression in the body has to be written with the Fixed/Expression switch rather than inline.
TagsComma-separated. Each tag is at most 50 characters and may not start with an underscore; Mailchimp stores only the first 100 distinct tags it sees.
MetadataStored with the message and searchable afterwards. Up to 10 fields can be indexed for search in Mailchimp's own settings.
Extra headersobject of text
Subaccount idRoutes the send through a subaccount, which must already exist.
Track opens"" or "on" or "off"
Track clicks"" or "on" or "off"
Show every recipient in To"" or "on" or "off"
Send ahead of other mail"" or "on" or "off"
Generate a plain-text part"" or "on" or "off"
Generate an HTML part"" or "on" or "off"
Inline the CSSMailchimp only inlines CSS on HTML under 256 KB.
Strip query strings from tracked links"" or "on" or "off"
Log the contentOff keeps the message body out of Mailchimp's own activity log, where the Get message content node reads it from.
Bcc every message totext
Tracking domainA tracking domain already set up on the account; empty uses the account's own.
Return-path domainSigning domain is deliberately not offered here: Mailchimp ignores it for every account created on or after 1 December 2015.
Google Analytics domainsComma-separated. Links to these domains get the campaign parameters added.
Google Analytics campaigntext
Recipients (JSON)When this is filled in it replaces To, Cc and Bcc — it is the only way to give a recipient a display name.
Per-recipient merge values (JSON)One entry per recipient, each with the values that recipient's body uses.
Per-recipient metadata (JSON)Stored with that recipient's copy and searchable afterwards.
Attachments (JSON)Replaces the Attachments list above when it is filled in — use it when you need to set the type yourself.
Body"html" or "text" or "both"
HTML bodytext
Plain-text bodytext
Send atUTC, as 2026-10-01 09:00:00, at most a year ahead. A time in the past sends immediately, and scheduling needs a positive account balance.
Dedicated IP poolThe name of a dedicated IP pool on the account; empty uses the default pool.
Send in the backgroundEvery recipient comes back as queued and refusals only appear on the reject webhook. Mailchimp forces this on above 10 recipients whatever this says.
Fail when a recipient is refusedMailchimp answers HTTP 200 even when it refuses a recipient. With this on, the node fails and names the reasons; with it off, the node succeeds and you read rejected from its output.
Technical details
KeyValue
connectiontexta connection id from `requires.connections` (provider `mailchimp-transactional`)
fromEmailtext
fromNametext
totext
cctext
bcctext
subjecttext
attachmentsobject of text, by default {}
imagesobject of text, by default {}
globalMergeVarsobject of text, by default {}
mergeLanguage"mailchimp" or "handlebars", by default "mailchimp"
tagstext
metadataobject of text, by default {}
headersobject of text, by default {}
subaccounttext
trackOpens"" or "on" or "off"
trackClicks"" or "on" or "off"
preserveRecipients"" or "on" or "off"
important"" or "on" or "off"
autoText"" or "on" or "off"
autoHtml"" or "on" or "off"
inlineCss"" or "on" or "off"
urlStripQs"" or "on" or "off"
viewContentLink"" or "on" or "off"
bccAddresstext
trackingDomaintext
returnPathDomaintext
googleAnalyticsDomainstext
googleAnalyticsCampaigntext
recipientsJsontextits `{{ }}` must give an array
mergeVarsJsontextits `{{ }}` must give an array
recipientMetadataJsontextits `{{ }}` must give an array
attachmentsJsontextits `{{ }}` must give an array
bodyFormat"html" or "text" or "both", by default "html"
htmltextused when `bodyFormat` is one of "html", "both"
texttextused when `bodyFormat` is one of "text", "both"
sendAttext
ipPooltext
asynctrue/false, by default false
failOnRejecttrue/false, by default true

Output

FieldType
resultsOne entry per recipientarray
messageIdsarray
sentRecipients sent tonumber
queuedRecipients queuednumber
scheduledRecipients schedulednumber
rejectedRecipients refusednumber
invalidAddresses Mailchimp could not readnumber
rejectReasonsWhy recipients were refusedarray
queuedReasonsWhy recipients were queuedarray
allAcceptedEvery recipient was acceptedboolean
Sample output, and the expression for each field
  • allAcceptedtrue
  • invalid0
  • messageIds
    • [0]"msg-1"
  • queued0
  • queuedReasons[]
  • rejectReasons[]
  • rejected0
  • results
    • [0]
      • _id"msg-1"
      • email"jane@example.com"
      • status"sent"
  • scheduled0
  • sent1

Errors

When a step of this node stops a run, the run page shows a code. Look it up:

Example step

The step as a flow file holds it. Replace each value in <…>.

{
  "config": {
    "async": false,
    "attachments": {},
    "attachmentsJson": "",
    "autoHtml": "",
    "autoText": "",
    "bcc": "",
    "bccAddress": "",
    "bodyFormat": "html",
    "cc": "",
    "connection": "<connection id>",
    "failOnReject": true,
    "fromEmail": "<from address>",
    "fromName": "",
    "globalMergeVars": {},
    "googleAnalyticsCampaign": "",
    "googleAnalyticsDomains": "",
    "headers": {},
    "html": "",
    "images": {},
    "important": "",
    "inlineCss": "",
    "ipPool": "",
    "mergeLanguage": "mailchimp",
    "mergeVarsJson": "",
    "metadata": {},
    "preserveRecipients": "",
    "recipientMetadataJson": "",
    "recipientsJson": "",
    "returnPathDomain": "",
    "sendAt": "",
    "subaccount": "",
    "subject": "",
    "tags": "",
    "text": "",
    "to": "",
    "trackClicks": "",
    "trackOpens": "",
    "trackingDomain": "",
    "urlStripQs": "",
    "viewContentLink": ""
  },
  "label": "Send email",
  "type": "mandrill.sendEmail",
  "version": 1
}