by MailPilot
AI email auto-reply for e-commerce: a 5-category workflow that never auto-sends
If you run an e-commerce support inbox, you know the shape of the day: two hundred emails before lunch, and eighty percent of them are the same five things. Someone asks where their order is. Someone got a cracked screen and wants a refund now. Someone ordered the wrong size. Someone wants a wholesale price. And three emails are crypto spam. We built MailPilot around that reality. Not as an auto-responder that talks to your customers unsupervised — as a drafting-and-routing layer that does the first pass so a human can do the last pass.
The five categories
How we sort mail
Every incoming message is run through a transparent rule engine that looks for signal words. The engine does not call a hidden model; it checks a short list of tokens and assigns exactly one label.
Category details
- Inquiry – words like “price”, “stock”, “color”, “shipping”, “ETA”. - Complaint – words like “broken”, “damaged”, “angry”, “refund”, “chargeback”, “upset”. - Return / exchange – words like “RMA”, “wrong size”, “wrong item”, “cancel”, “exchange”. - Partnership – words like “wholesale”, “affiliate”, “bulk”, “B2B”, “collab”. - Spam – words like “crypto”, “lottery”, “phishing”, “win”, “prize”. These are quarantined and never replied to.
Typical draft placeholders
Category | Signal example | Draft placeholder Inquiry | “When will my order ship?” | Hi {{customer_name}}, your order #{{order_id}} is scheduled to ship on {{ship_date}}. You’ll get a tracking link when the carrier scans it. Complaint | “The screen arrived cracked.” | Hi {{customer_name}}, I’m sorry to hear about the damage. Please reply with a photo of the issue and we’ll start a replacement. Return / exchange | “I need a size M instead of L.” | Hi {{customer_name}}, let’s swap that item. Reply with the return authorization number we’ll generate for you. Partnership | “Do you offer wholesale pricing?” | Hi {{customer_name}}, I’ve attached our wholesale sheet. Let me know if you’d like to set up a call. Spam | “You’ve won $1 000 000!” | (No draft – message moved to spam folder)
Why rule‑based?
Rule sets are easy to audit. You can see exactly which word triggered the label. If a new phrase appears, you add it to the list and the change is visible in the log. This keeps the system predictable and lets you explain decisions to teammates or auditors.
Score before you draft
Sentiment score
We compute a sentiment value from −1 to +1. Negative values indicate frustration, positive values indicate cheer. The score comes from a lexicon that weights words like “happy”, “thank you”, “angry”, “disappointed”. Each token adds or subtracts a small amount; the sum is clamped to the range.
Urgency score
Urgency runs from 0 to 10. Time‑sensitive tokens such as “now”, “asap”, “today”, “immediately” add 2 points each. Refund or chargeback language adds 3 points. If the message mentions a legal threat, we add 4 points. The total is capped at 10.
Decision thresholds
When urgency reaches 7 or higher, or sentiment drops below −0.4, or the category is Complaint, the email is flagged for human review. An internal note is attached that lists the exact signals that pushed the score over the line. Everything is stored in the audit log, so you can replay why a message was escalated.
External guidance
Our scoring method follows the suggestions in the AI Risk Management Framework from NIST (https://www.nist.gov/itl/ai-risk-management-framework) and the LLM Top 10 from OWASP (https://owasp.org/www-project-top-10-for-large-language-model-applications). These sources help us keep the model transparent and the risk low.
What happens next
If the email does not meet any threshold, we generate a draft using the category‑specific template. The draft contains only variables and factual placeholders; we never insert invented details. The draft sits in the queue where a support agent can review, edit, and send.
The honesty rules
What we forbid in drafts
- No guaranteed refund dates unless we have verified the return has been received. - No promises of “100 % satisfaction” or similar absolute claims. - No fabricated order statuses such as “shipped” when the carrier has not scanned the package. - No upsell language that implies a discount that is not approved.
How we enforce the rules
The drafting engine checks each sentence against a list of forbidden patterns. If a pattern matches, the engine stops output and returns a placeholder that asks the agent to verify the fact. For example, if the template tries to say “Your refund will be processed in 2 days”, the engine sees the unverified timeline flag and replaces the sentence with “Please verify the refund timeline before sending.”
Why this matters
Public failures of auto‑reply tools usually come from over‑promising. By blocking those phrases at the source we keep the agent in the loop for any statement that could affect a customer’s rights or expectations. The agent can still add a guarantee after checking the order system, but the tool will never insert it on its own.
What this is NOT
Not an autonomous agent
MailPilot never sends a message without a human pressing send. It is a drafting aid, not a bot that talks to customers on its own.
Not a guarantee of perfect replies
The tool reduces repetitive typing, but it does not promise that every draft will be flawless. Agents still need to read and adjust.
Not a replacement for judgment
Decisions that require policy interpretation, goodwill gestures, or legal nuance stay with the support team. The tool only handles the first pass of categorization and drafting.
Not a black box
All scoring, rule matches, and template choices are logged. You can export the log and see exactly why a message was routed a certain way.
What this replaces
Manual triage
Before MailPilot, a team of three agents spent roughly 2.5 hours each morning reading the same five question types, copying template text, and typing personal notes. That work was repetitive and prone to fatigue.
Time saved
With the drafting layer in place, the same team now spends about 45 minutes on triage. The remaining two hours are used for complex cases, quality checks, and proactive outreach.
Consistency
Because the templates are shared, the language used for order status, return instructions, and wholesale inquiries stays uniform across shifts. Customers notice the steady tone.
Try it
Demo steps
- Visit the free interactive demo page. - Paste any support email into the text box. - Press “Classify & Draft”. - See the category, sentiment, urgency scores, and the generated draft. - Edit the draft if you wish, then copy it into your helpdesk.
Free tier limits
The free tier allows up to 20 drafted replies per day. No account is needed. If you need more volume, the paid plans start at 150 drafts per day and include API access for helpdesk integration.
Operator checklist for AI email auto-reply for e-commerce: a 5-category workflow that never auto-sends
I keep a written checklist next to every release that touches this topic. The list is boring on purpose: name the owner, name the evidence artifact, and name the rollback. If a step cannot produce a file, a ticket, or a log line, it is not a step — it is a wish.
Before you change production
- Freeze the branch or config revision you will measure against. - Record the current failure mode with one concrete input and one concrete output. - Confirm which identity the job runs as, and whether that identity can reach data it should not. - Open the primary references you will cite: https://owasp.org/www-project-top-10-for-large-language-model-applications, https://www.nist.gov/itl/ai-risk-management-framework.
While you run the check
- Prefer one reproducible path over ten anecdotal screenshots. - Write the expected safe outcome before you trigger the tool or query. - Capture the exact command, prompt, schema, or regex under test — not a paraphrase. - If the system can act (send, write, delete, transfer), require a confirmation boundary in the same pass.
After you finish
- File residual risk with an owner and a date, even when the scan is clean. - Do not convert a green check into sales language that claims completeness. - Re-run the same checklist when the model, tool schema, or validation rules change.
Signal | What to record | Stop-ship? Unexpected write or send | Tool name, args, identity | Yes until gated Missing confirmation on destructive action | Call path and bypass | Yes Untrusted text treated as instruction | Source surface and resulting action | Yes for agent reach Scanner clean, judgment open | Deferred items + owner | Only if core path safe
mailpilot helps with the measurable first pass. Architecture choices, legal sign-off, and customer-facing claims still need a human owner. Treat every checklist row as decision support, not a certificate.
How I explain limits to buyers
When a prospect asks whether the product "covers everything," I answer with the boundary: automated checks catch known patterns; novel chains and policy judgment still need review. That honesty keeps support load down and keeps the blog aligned with what the product actually does.
If you need a second opinion, pair this write-up with the references below and with your own staging reproduction. Do not skip the reproduction step just because a model wrote a confident summary.
References
- https://owasp.org/www-project-top-10-for-large-language-model-applications - https://www.nist.gov/itl/ai-risk-management-framework
What are The five categories?
Every incoming email is classified into exactly one of five types by a transparent signal-word rule engine — never a hidden model:
What is Score before you draft?
Two numbers decide what happens next. Sentiment runs from −1 (furious) to +1 (delighted). Urgency runs 0–10: time words like "now" and "asap" add weight, refund and chargeback language adds more. When urgency hits 7, or sentiment drops below −0.4, or the category is a complaint, the email is escalated to a human with an internal note explaining why. Everything is auditable — you can see exactly which signal words fired.
What are The honesty rules?
Auto-reply tooling fails publicly when it over-promises. MailPilot's drafting rules forbid guarantees: no promised refund timelines it cannot verify, no "100% satisfaction", no fabricated order statuses. Drafts use {{customer_name}} -style variables and stop where verification is needed.
What this replaces?
Not your helpdesk — the first pass your team does manually today. Teams at 200+ emails/day typically spend 2–4 hours just triaging and re-typing the same answers. That is the layer MailPilot automates; judgment calls still route to people.
What is Try it?
The free interactive demo runs the real classification and scoring engine on any email you paste — no signup. The free tier drafts 20 replies a day.
Decision-support drafting aid. Not legal advice. Human review required before send.