Send email from a flow
A great many automations end in an email: a payment reminder, a reply to an enquiry, a heads-up to a colleague. The Send email step does exactly that — a real, personalised message, sent from the right account, as a step in your flow.
The Send email step
Section titled “The Send email step”Add a Send email step and fill in three fields:
- To — the recipient address (or several — see below).
- Subject — the subject line.
- Body — the message.
Every field accepts template variables, so each email is written for its recipient rather than mass-produced. A reminder body might read:
Hi {{ loop.item.firstName }},
Invoice {{ loop.item.number }} for {{ loop.item.amount }} is now overdue.Could you let us know when we can expect payment?
Thanks,{{ user.firstName }}{{ user.firstName }} is the person who ran the flow; {{ loop.item.* }} pulls fields off whatever record you’re looping over. See Template variables for everything in scope.
Several recipients
Section titled “Several recipients”To is one field, but it takes any number of addresses. Separate them with commas:
ops@firma.cz, ucetni@firma.cz, {{ user.email }}Semicolons and one-per-line both work too, and literal addresses mix freely with {{ references }}. You can also point the field at a single reference that resolves to a list of addresses — an upstream lookup that returns several contacts, for example:
{{ find_contacts.emails }}Everyone named receives one email and sees the other recipients on the To line — this is a group email, not a mail merge. When each person should get their own copy (and shouldn’t see the others), loop with For each and send one email per recipient, with To set to {{ loop.item.email }}.
Anything in the field that isn’t an address fails the step immediately, naming the value — so a stray name or a {{ reference }} that resolved to prose shows up as a clear error on the run rather than a rejection from the mail provider.
Cc and Bcc
Section titled “Cc and Bcc”Cc and Bcc sit under To and take exactly the same shapes — one address, several separated by commas, or a {{ reference }} that resolves to a list. Both are optional; leave one empty and no such line is sent at all.
- Cc — copied and visible to everyone on the email. Use it when being copied is part of the point: a manager on an approval, a shared mailbox on a customer reply.
- Bcc — copied and invisible to the other recipients. The usual use is an archive or compliance mailbox.
Blind means blind to the recipients, not to you: every send records its full recipient list — To, Cc and Bcc — on the mail.sent event, so an archive copy is always accountable. The flow canvas says so too, spelling out both copy lines on the step’s card, so a step that silently blind-copies someone never reads the same as one that doesn’t.
A configured Cc or Bcc that resolves to nothing fails the step, exactly like a broken attachment reference — a typo’d {{ ref }} must not quietly email fewer people than you asked for.
Attachments
Section titled “Attachments”The optional Attachments field attaches stored documents to the email. It takes document ids — the id a Render document or Document store step outputs, or an incoming email attachment’s Memory id — as a comma-separated list (or a JSON list):
{{ render.document_id }}attaches the PDF a Render document step just produced; several documents are separated with commas. Attachments work through every carrier — Resend, Gmail, and Microsoft 365 alike.
Two rules to know:
- An unknown id fails the step — and so does a reference that resolves to nothing. A wrong document id, a typo’d
{{ ref }}, or a reference to a step that never ran are all flow bugs, and the step says so rather than quietly sending the email without its attachment. - Total size is capped at ~10 MB. A document that would push the email past the cap is skipped with a warning — the email still goes out, and the step’s
attachments_skippedoutput lists what was left off.
There is no way to attach an arbitrary URL or file path — attachments always come from stored documents, so what you attach is exactly what Memory holds.
Send through: which account carries it
Section titled “Send through: which account carries it”The Send through setting decides which account the email actually goes out from:
| Send through | What it means |
|---|---|
| Automatic (default) | Routario picks the best available account for you |
| Resend | Routario’s built-in transactional sender |
| Gmail | a connected Google Workspace mailbox |
| Microsoft 365 | a connected Microsoft 365 mailbox |
Leave it on Automatic unless you have a reason not to. Automatic resolves in order: your workspace’s default carrier → the single account you’ve connected (Gmail or Microsoft 365) → Resend as the fallback.
Why connect Gmail or Microsoft 365? Sending through a real mailbox means the email comes from a person — replies land back in that inbox, the message threads naturally, and it doesn’t look machine-sent. Connect an account under Settings → Connections → Apps (Google or Microsoft). Resend is the zero-setup option: a reliable transactional sender, good for system-style notifications.
Set up your sender
Section titled “Set up your sender”Configure the built-in (Resend) sender once, under Settings → Connections → Apps → Email:
- From address — the address your automatic emails are sent from.
- From name — the display name recipients see.
- Reply-to — where replies should go, if different from the from address.
When you send through a connected Gmail or Microsoft 365 account instead, the email goes out from that mailbox’s address — the settings above apply to the built-in sender.
Worked example: a polite payment reminder
Section titled “Worked example: a polite payment reminder”Pair sending with a scheduled flow to chase overdue invoices hands-off.
- Schedule trigger — every weekday at 08:00.
- Find records — the invoices that are now overdue. Label the list
overdue. - For each over
{{ overdue }}. - Send email —
Tois{{ loop.item.email }}, with aSubjectandBodythat name the invoice and amount (as above). Leave Send through on Automatic.
There’s a complete, follow-along version of this in Chase unpaid invoices automatically.
Where to go next
Section titled “Where to go next”- Send email — full reference — every field, with example values.
- Chase unpaid invoices automatically — sending email inside a real, scheduled flow.
- Receive email into a flow — the other half: act on email that comes in.
- Work from your own mailbox — when a reply should be drafted for you to send, rather than sent automatically.