Customer operations
ResolvFlow
An email agent that answers only from an approved script, and says so when it cannot read a figure with certainty.
- Sector
- Customer operations
- Components
- Control panel · Agent runtime · Orchestration
- Stack
- Next.js 15MongoDBNextAuthCloudflare R2n8nGmail APIContainerised agent runtime
Handles inbound customer email from one approved playbook, and nothing reaches production without passing a regression suite.
Most support bots index everything and let similarity search decide. That produces confident paraphrase, which is exactly wrong when a reply carries a deadline or a bank account number.
Here the knowledge base is one approved document of about two dozen pre-cleared replies. The agent reads all of it on every email and sends the matching reply essentially verbatim.
Control panel
Where playbook revisions are uploaded, versioned and moved through review, with test results attached.
Agent runtime
Receives one email at a time, reads the approved document, composes the reply, posts it back through a correlated callback.
Orchestration
Watches the mailbox, hands each message to the agent with a one-time token, delivers the reply onto the original thread.
A release gate, not a vibe check
Revisions move through an enforced lifecycle, and the step to approved is gated by a regression run over known-answer questions. It cannot be skipped, not even with a master key.
Refusing to guess
Some source material exists only as images in the document. If a figure cannot be read with certainty, the reply is marked low-confidence and a person picks it up.
Verbatim, including the inconsistencies
Figures and deadlines are reproduced exactly, even where tables disagree on tax. Normalising them would change what the company is contractually saying.
Reply correlation as a security boundary
Each email is dispatched with a single-use token binding the reply to one thread. Even a compromised agent cannot send mail anywhere else.
The email is data, never instruction
The agent's instructions live in its own workspace, not in the message it reads. An email that looks like a command is content to answer.
Tell us where you are starting from. We take it from there.
Start a project
