Alchemist: Pull Data Out of Incoming Email
Give your Alchemist app its own inbound email address and have AI extract structured data from forwarded emails and their PDF, image, and spreadsheet attachments.

Many business apps start from email: purchase orders, quote requests, shipping notices, invoices. Alchemist apps can receive that email at a dedicated address and use AI to turn each message and its attachments into rows in your app’s own tables.
What ships in your app
Apps created from the Alchemist web-app, API, and MCP-server templates include the whole pipeline, switched off until you turn it on:
- Receive. Mail sent to your app’s inbound address is delivered to your app as a webhook. The route rejects every request until the platform has issued it a secret token.
- Capture. Each message is stored once (duplicates are ignored), along with its attachments and the raw original, so nothing is lost even if a later step fails.
- Extract. A background loop sends each new message, including PDFs, images, and spreadsheets, to an AI model through the platform’s AI connection, and sorts it into one of three outcomes: data to apply, a message meant for a person, or unclear.
- Review. An inbound-email dashboard lists every message with its outcome, so you can see what was extracted and what needs attention. (The API and MCP-server templates expose this as an API instead of pages.)
Turning it on
- Provision the address. Ask your project’s agent to set up email
ingestion, or call
provision_email_ingestionfrom the Alchemist MCP server. This creates your app’s inbound address, its mail routing, and the secret token, which is added to your app’s environment on the next deploy. Re-running it is safe: it repairs drift instead of starting over. - Describe what to extract. File a ticket describing the emails you expect and what should happen to them, for example “Each quote request has a project name, due date, and drawings as PDFs; create a draft estimate for each.” The agent writes the one piece that is specific to your app: an extraction profile (the fields to pull out and the instructions for the model) and the tables the results go into.
- Point email at it. Forward messages to the address, or have your email admin add a rule that copies a shared mailbox (for example a sales inbox) to it.
Until a profile exists, received mail simply waits in the pipeline. Once the profile lands, those messages are processed.
Good to know
- Applying extracted data is written to be safe to repeat, so a retried message never creates duplicates.
- Fields the model may not find are optional, so a sparse email still produces a partial result rather than a failure.
- A message the model can’t classify is marked unclear on the dashboard rather than guessed at.
- Processing happens in the background, so a large attachment never runs into the request time limit.
- AI calls go through the platform’s AI connection. See Runtime, Data, and Regions for how providers handle that data.
Projects created before July 6, 2026 were generated before the pipeline was added to the templates. File a ticket asking the agent to add email ingestion to your project; it copies in the pipeline first, then writes your profile.