Underneath, Help Scout is ordinary email with structure added: pull messages from a support mailbox, group them into conversations, assign and close them, answer from the same address and keep saved replies and a few help articles. An agent can write that on SQLite with IMAP and SMTP over a weekend. It is not a one-sitting job because it has to run on a server all day, thread mail correctly, keep spam out and stop two teammates answering the same customer. FreeScout already copies the Help Scout layout and costs nothing to self-host, so for a team that is the shorter route.
Before you buildCheck Help Scout Free first: it covers up to 5 users and one inbox, as long as you help fewer than 100 people a month.
Build me a small shared support inbox to replace Help Scout. Requirements:
- Node.js 22 + TypeScript: a Fastify server and a React (Vite) UI, both on
http://localhost:4700 with one `npm start`.
- Mail in: poll the support mailbox over IMAP with `imapflow` every 60 seconds
(host, user and app password in .env), parse with `mailparser`, and thread
replies by Message-ID, In-Reply-To and References.
- Mail out: send replies over SMTP with `nodemailer` from the support address,
setting In-Reply-To and References so the customer's mail app keeps the
thread. Replies look like normal email: no ticket numbers or footers.
- Storage: better-sqlite3 at ./data/helpdesk.db, attachments in
./data/attachments/, full-text search with SQLite FTS5. No telemetry:
everything stays in ./data.
- Inbox: Unassigned, Mine, Pending and Closed views; assign, tag, snooze until
a date, internal notes; a customer sidebar with their earlier conversations.
- Saved replies with {firstName} placeholders, inserted with a / shortcut.
- Team: up to 5 users with email and password (argon2), and a warning when
someone else is already replying to the same conversation.
- Help center: Markdown articles at /help with search, and a /contact form that
opens a conversation (honeypot field plus a rate limit per IP).
- Out of scope: live chat, SMS and social channels, AI replies, and reports
beyond open and closed counts.
- README: mail settings for Gmail and Fastmail app passwords, running it on a
small VPS behind Caddy, and a reminder to keep SPF and DKIM valid so replies
don't land in spam.Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Help Scout.
Add a Help Scout importer to the support inbox in this folder. Requirements: - Read HELPSCOUT_APP_ID and HELPSCOUT_APP_SECRET from .env (an app created under Your Profile > My apps) and get a token with the client-credentials flow from https://api.helpscout.net/v2/oauth2/token. - Page through every inbox's conversations with their threads, customers and attachments; back off and retry on HTTP 429. - Store them in the existing tables, marked "imported", keeping original dates, tags and status. - Skip conversations already imported, so a rerun is safe. - Print a summary: imported, skipped and failed. - Update the README with the steps to create the app in Help Scout.
Add an embeddable widget to the support inbox in this folder. Requirements: - One script tag (<script src="https://support.example.com/widget.js">) adds a button that opens a small panel. - The panel searches the help-center articles as the visitor types and shows a contact form below the results. - Submissions create a conversation, with the page URL attached as a note. - CORS allowlist of site origins from .env; rate limit per IP; no cookies. - Keep widget.js under 20 KB with no framework. - Update the README with the embed snippet.
Add AI reply drafts to the support inbox in this folder. Requirements: - A Draft button in the reply box sends the conversation, the five closest help articles (SQLite FTS5 search) and the saved replies to the Anthropic API (key in .env). - The draft lands in the editor for me to change; nothing is ever sent automatically. - Strip email signatures and quoted history before sending text to the API. - Show the articles the draft used as links under the editor. - Update the README with what data leaves the server.
Add a weekly report to the support inbox in this folder. Requirements: - Every Monday at 8:00 (node-cron), compute for the past week: new conversations, closed, median first-reply time, the 5 busiest tags and the oldest open conversation. - Show the same numbers on a /reports page with an 8-week trend. - Email the summary to the addresses in REPORT_TO in .env, using the SMTP settings the app already has. - Update the README.
Small companies choose it because customers get what looks like a personal email, not a ticket number, and the team gets a tidy inbox, help docs and a site widget from one vendor known for good support. Once years of conversations, saved replies and articles live there, leaving means rebuilding habits as well as moving data.
Estimate · Free on your own machine if you answer alone; a team needs a VPS at about $5 a month. Mail goes through the mailbox you already pay for. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0/user | $0/user | Up to 5 users, 1 inbox, 1 Docs site, 100 contacts helped a month, 10 saved replies, 10 tags, 10 articles, 30 days of reports, one integration. |
| Standard | $30/user | $25/user | Up to 25 users, 2 inboxes, 2 Docs sites, unlimited contacts, 150 basic workflows, 1 SLA policy, live chat and social channels, 2 years of reports. |
| Plus | $54/user | $45/user | Up to 50 users, 5 inboxes, 3 Docs sites, 500 advanced workflows, round-robin routing, unlimited AI drafts, Salesforce, HubSpot and Jira, all-time reports. |
| Pro | $90/user | $75/user | Unlimited users (10 minimum), 10 inboxes, 5 Docs sites, unlimited workflows and SLAs, SSO/SAML, HIPAA, up to 50 light users. |
Free covers 5 users, one inbox and one Docs site, but only 100 helped contacts a month.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: The Beacon widget with live chat and article suggestions, Mobile apps and push notifications.
About $30 a month on the Standard plan per seat, $360 a year (checked 2026-10-13).
The Beacon widget with live chat and article suggestions; Mobile apps and push notifications; Workflows, SLA targets and the reports; Integrations with Shopify, Stripe, HubSpot, Salesforce and 100+ other apps; AI drafts, summaries and the AI Answers bot. If any of those matter to you, keep paying.
Yes: FreeScout (open source), Zammad (open source), Chatwoot (open source).