Find emails

Email inbox
Find emails
Success
Credentials(Email credentials)
Error
Folder INBOX
Emails(Email[])
State(Email read state) ANY
From
To
Subject
Body contains
Since
Before
Limit 50
Order(Email sort order) NEWEST_FIRST

Description

Finds messages in a mailbox folder and returns them as an array of email objects carrying subject, sender, recipients, flags, size and attachment metadata. Filter by read state, sender, recipient, subject, body text and a date range. Bodies are NOT fetched — wire a result into Read email for the text, or into Break to read its fields. Wire a result into Move, Copy, Delete or Set email flag; those nodes need no credentials because the email object carries its own server connection. Branches on success/error.

When to use

Use Find emails as the entry point to almost every mailbox pipeline. Wire the output into a For each loop, then Break each element (a Break Email node) to read its subject, from, and attachments fields.

Bodies are not fetched here, on purpose. Searching a mailbox should stay cheap no matter how large the messages are, so this node asks the server only for envelopes, flags, sizes and attachment structure. When you need the text, wire the element into Read email; when you need an attachment’s bytes, wire the attachment into Open email attachment. Attachment metadata — filename, content type, size — is available here without a second round trip.

from, to, cc and replyTo are arrays of email address objects, not strings: Break one to get its name and address, or run it through Email address to string for a formatted Name <[email protected]>. from is a single address and can be null on malformed mail, so guard it with Is null? or Default if null if you branch on it.

There is no “new email” trigger. The way to poll is Simple schedule → Find emails with State UNREAD → process → Set email flag SEEN, so the next run does not see the same messages again.

Pins

Input pins

Pin Type Default Notes
Credentials Email credentials — Email credentials produced by any of the three email credentials nodes.
Folder string INBOX Folder (mailbox) to search. Use the full path as the server spells it — run Find email folders to see them.
State Email read state ANY Filters on the read flag: `ANY` (default), `UNREAD`, or `READ`.
From string — Substring matched against the From header, case-insensitively, by the server. Empty (the default) does not filter.
To string — Substring matched against the To header. Empty does not filter.
Subject string — Substring matched against the Subject header. Empty does not filter.
Body contains string — Substring searched for in the message body by the server. This can be slow on a large mailbox — servers scan message text to answer it. Empty does not filter.
Since datetime — Only messages received on or after this date. IMAP compares dates only, ignoring the time of day and the zone. Leave unwired to not filter.
Before datetime — Only messages received before this date, compared by date only. Leave unwired to not filter.
Limit integer 50 Maximum number of messages to return, capped at 500. Asking for more takes the Error branch rather than silently returning fewer, so a truncated result is never mistaken for a complete one.
Order Email sort order NEWEST_FIRST Which end of the folder Limit takes from: `NEWEST_FIRST` (default) or `OLDEST_FIRST`. Ordering is by arrival, which is what IMAP UIDs track.

Output pins

Pin Type Notes
Emails Email[] Matching messages. Break an element to read its subject, from, to, cc, date, flags, size, and attachments, or wire it directly into Read email, Move, Copy, Delete, or Set email flag — the email object carries its own server connection, so those nodes don't need credentials.

Execution pins

Pin Direction
In Input
Success Output
Error Output

Example

Process new supplier invoices every ten minutes. Start with Simple schedule (every 10 minutes), wire Email OAuth2 credentials into Find emails with Folder INBOX, State UNREAD, Subject invoice, and Limit 25. On Success, pass Emails to a For each loop. Inside the loop, Break the element, loop over its Attachments, and wire each into Open email attachment → HTTP request to upload it. Finish the iteration with Set email flag (SEEN, true) and Move email to INBOX/Processed, both fed the same element — no credentials needed on either, since the email already knows its server.

See also