Publish / notify · All operations

Send an email for each row

A variant of Send a notification

Send one email per input row, with recipients, subject and body taken from the row's columns.

Status

In arcform

Not built yet

arcform does not do this yet; it would live in how a Protocol runs. Its place on the roadmap

What other tools call it

Meridian's classification; an independent blind rating agreed on 95.7% of 324 rows (variant, version 3).

Alteryx Designer (1)
  • Emailread 2026-09-27

    Send an email per record, with optional attachments and rendered reports

Apache Hop (1)
  • Mailread 2026-09-27

    Send an email through SMTP built from row fields, with attachments

Apache NiFi (1)
  • PutEmailread 2026-09-27

    Send an email to configured recipients for each incoming FlowFile

Duckle (1)

Background

In Alteryx Designer, the Email tool sends an email for each row or record in the data stream, and can add attachments.[1] In Apache Hop, the Mail transform sends an email using data from the pipeline fields.[2]

When to use it

Reach for a mailer that sends one email per row when each row is its own message: a statement to a customer, a reminder to an account owner, a report to the person it is about. (Meridian's view) In Alteryx Designer, the Email tool runs as the last tool in the workflow.[1] In Alteryx Designer, the Email tool does not send emails if errors are encountered during the workflow run.[1] In Alteryx Designer, when a workflow uses the Alteryx Multi-threaded Processing (AMP) engine, the Email tool might run before all the other tools in the workflow finish.[1] In Alteryx Designer, linked Control Containers or a Block Until Done tool can make a file be written before the Email tool sends it as an attachment.[1]

In Alteryx Designer, email attachments have a 25 MB size limit per file, and an attachment greater than 25 MB triggers an error message.[1] Every row becomes a message someone receives, so count the rows and read a few rendered messages before the first run against real addresses. (Meridian's view) For a large file, a link in the body travels better than the same attachment sent with every row's email. (Meridian's view)

The method

In Apache Hop, the Mail transform uses a Simple Mail Transfer Protocol (SMTP) server, set on a tab that also holds authentication and encryption details.[2][3] In Apache Hop, the Mail transform can take the file names of its attachments from stream fields when Dynamic filenames is checked.[2] In Apache Hop, the Mail transform can store each generated message as Internet Message Format code in a stream field.[2]

In Alteryx Designer, an Email tool attachment can be a file location browsed to or a field from the input stream that contains the file location.[1] In Apache NiFi, a FlowFile represents each object moving through the system, with a map of key/value attribute strings and content of zero or more bytes.[4] In Apache NiFi, the PutEmail processor sends an email to configured recipients for each incoming FlowFile.[5] In Apache NiFi, the To, Subject and Message properties of the PutEmail processor can use Expression Language over FlowFile attributes.[5] In Apache NiFi, a FlowFile that PutEmail fails to send is routed to a failure relationship, and one sent successfully to a success relationship.[5]

Compared with the alternatives

Apache Hop has a Mail action that sends a text or HTML email with optional file attachments, beside a Mail transform that sends an email using data from the pipeline fields.[6][2] In Apache NiFi, the EmailRecordSink service sends records in email using a chosen writer for formatting, while PutEmail sends an email for each incoming FlowFile.[7][5]

Sources

  1. [1]Email Tooldocumentation
  2. [2]Mail | Apache Hopdocumentation
  3. [3]Simple Mail Transfer Protocolsecondary source
  4. [4]Apache NiFi Overviewdocumentation
  5. [5]PutEmail - Apache NiFidocumentation
  6. [6]Mail | Apache Hopdocumentation
  7. [7]EmailRecordSink - Apache NiFidocumentation