Reply by email, keep the conversation on your website
Let customers and you answer form messages, quotes and support threads by just hitting Reply, while every message is saved on your site. No helpdesk fees.
Published
Someone fills in the form on your website. You get an email. You reply from your mailbox, they reply back, and a week later nobody remembers what was agreed: half the conversation is in your inbox, the other half in theirs, and the website knows only the first message.
This article describes a setup that fixes that without a helpdesk subscription. It is the same one this site uses for every request.
Who keeps asking for this
The need shows up again and again in support forums:
- Form plugin users ask how to see the customer’s answer next to the original entry. On the Gravity Forms community, the answer was that it would need someone to monitor an inbox, and no add-on did it.
- Contact Form 7 dashboards note that replies sent from a normal mailbox are not saved and must be marked “replied” by hand.
- Shopify changed its forms in 2025 so you can reply to customers directly by email, which helps, but the conversation lives only in your mailbox.
- Small teams on Reddit ask how to share one support inbox “without paying $50 a user for Zendesk”, and call full helpdesks overkill for a two-person business.
- Freelancers and agencies look for client portals where the client “doesn’t have to log in”: they just reply to the email and it shows up in the portal.
- Communities and forums (Discourse, BuddyPress) have offered reply-by-email for years because members simply will not log in to answer.
The common wish: nobody installs anything, nobody logs in, every message ends up in one place.
How it works, in plain words
- A message arrives through your website (a contact form, a quote request, a booking question). It is saved in your database as the start of a conversation.
- The notification email gets a private reply address, something like
r-7f3a…@reply.yourdomain.com. The random part belongs to this conversation only. - Anyone who hits Reply sends their answer to that address. An inbound email service receives it and calls your website.
- Your website checks the email and adds it to the conversation: it removes the quoted history (“On Monday, … wrote:”), makes sure the sender is the right person, and stores only the new text.
- The other side gets notified by email, again with the private reply address. So both of you can keep going from your normal mailbox, while the website keeps the full record and any status (quote sent, paid, done).
The customer never sees a login screen. They also get a link to read the whole conversation on your site if they want to.
What it costs to run
The pieces I use, with prices from the providers’ pages as of October 2026:
- Resend for sending and receiving. The free plan covers 3,000 emails a month (100 a day); each received email counts toward that quota. The next plan is $20 a month for 50,000 emails.
- Supabase free plan for the database and the small functions that receive the email.
- Cloudflare free plan for the website itself.
A small business handling a few hundred conversations a month usually stays at $0.
For comparison, a helpdesk charges per person: Zendesk Support Team is listed at $19 per agent a month, Help Scout Standard at $25 per user, Freshdesk Growth at $19 per agent (annual billing). Those tools do much more, and if you have a support team they are worth it. If you are one to three people answering form messages, you are paying for features you will not use.
Other services can receive email too: Postmark (inbound on its paid plans, and it strips quoted replies for you) and Cloudflare Email Workers are the ones I would consider.
The parts that need care
Reply-by-email looks simple and is easy to get wrong. These are the details that matter:
- Fake senders. Anyone can put any address in the “From” line. Matching only on the sender’s address is not enough. Use a long random reply address per conversation, and accept the message only if the email passes the domain’s authentication check (DMARC) and comes from the address you expect.
- Quoted history. Every mail app quotes differently, and Outlook is famously messy. The website should keep only the new part, and when in doubt keep a little too much rather than lose the answer.
- Out-of-office replies. Automatic replies must be recognised and ignored, or two robots will email each other forever.
- Mail that cannot be placed. An unknown, expired or suspicious reply should be forwarded to you, not silently dropped, with a limit so a spammer cannot flood your inbox.
- Your existing email. The receiving service needs its own DNS record. Put it on a subdomain such as
reply.yourdomain.com, so your normal mailbox (Google Workspace, Microsoft 365) keeps working untouched. - Attachments. Decide early whether you store them, where, and for how long. Photos of error messages are useful; storing everything forever is a privacy problem.
Is it right for you?
It is a good fit if most of your customer contact starts on your website, a few people answer it, and you want a record without paying per seat. It is not a fit if you need phone, chat and social media in one place, or reporting for a support team. Then a helpdesk is the honest recommendation.
I can add this to an existing site (WordPress, a custom site or a static site), connect the receiving domain without touching your current mailbox, and test it with the mail apps your customers actually use. Describe your current form and how you answer it today, and you get a fixed quote.