Skip to main content
Nodes used: Parse, Extract This workflow reads an email body and pulls out who wrote it, what they want and how urgent it is. The API takes files only, so the email body goes up as a .txt file; the Python SDK does that for you when you pass text=.

The graph

Run and read

Send the email body as a text file. Any .txt works; a saved .eml works too and keeps the headers.

What comes back

The run above, trimmed. It took 10 seconds. Every field also carries verification_status and value_override; only the first shows them here.

Tips

  • A multi_select value comes back as one comma-separated string: "enterprise, pricing, security, integration". Split on ", " to get the list.
  • Expect a low confidence on a generated summary. The sentence is not quoted from the email, so it scores low even when it is right. Gate on the extracted fields, not on the summary.
  • Write enum_options descriptions that separate the close cases. pricing and demo_request are easy to confuse without them.
  • A .txt upload has no layout, so parse.blocks is empty and parse_confidence is null. That is expected for text input.
  • To process a mailbox, create the workflow once and call upload/run per email. The submission limit is 60 requests per minute.

Next steps

Extract node

Field types, modes and smart lookup

Upload and run

Multipart fields, conflicts and idempotency

Classify node

Route each email type to its own Extract node

Field types

Every data type a field can take