Documentation

Email

Inbound email (IMAP) and outbound. Thread preservation, attachment parsing.

Email

The email channel ingests your inbound emails and lets a pipeline reply, forward, or create downstream tasks.

Model

Two complementary modules:

  • email_inbound — reception (IMAP)
  • email_outbound — sending (configured operator, or relay via your SMTP)

They are independent: you can use only the inbound module (to triage without replying), or only the outbound module (to send notifications from a pipeline triggered another way).

Setup

  1. Administration → Email → Mailboxes — connect an IMAP mailbox with its credentials.
  2. Map the mailbox to a target pipeline.
  3. (Optional) Configure a sender (SMTP) to reply.

For architectures that need to retain control of their mail servers, betool does not replace your MTA: we read and write via standard IMAP / SMTP.

What the pipeline receives

For each inbound email, a new exchange is created with:

  • exchange.user_message — email body (HTML → normalized text)
  • exchange.email.subject — subject line
  • exchange.email.from — normalized sender
  • exchange.email.thread_id — thread identifier (useful for multi-turn context)
  • exchange.email.attachments — list of FileMetadata (parsed attachments)

Attachments

Attachments are passed to the file_transform node for extraction (plain text, OCR for scanned PDFs, structured parsing for CSV / Excel). From there, your agent can work with them as if they were native text.

Threads & multi-turn context

When a customer replies to a previous response, betool recognizes the thread_id and restores the thread history in the agent's context. This is transparent to pipeline design.

Known limitations

  • No native MS Exchange EWS support yet (you can expose Exchange over IMAP).
  • No Microsoft Graph support for Office 365 (on the roadmap).
  • Parsing very old emails (nested Outlook 2003 RTF) may lose some formatting.