splitforms.com
← Back to the journal

Custom Auto-Responder Emails for HTML Forms (HTML + CSS, 2026)

Design fully branded auto-responder emails for your HTML forms: paste your own HTML/CSS template, use {{ variables }}, follow inline-CSS deliverability…

Start free — 200 submissions totalSee pricing →No credit card. Paid plans from $5/mo.

What auto-responders are (and why they matter)

An auto-responder is the email a visitor receives the moment they submit your form. It confirms their message arrived, sets expectations for when you'll reply, and — done well — starts the relationship on a professional note. In splitforms, auto-responders fire instantly on every clean submission (they never fire on submissions flagged as spam).

The default splitforms auto-responder is clean and deliverable, but it looks like what it is: a generic transactional email. For agencies, freelancers, and brands where every touchpoint matters, that first impression is worth owning.

Why a custom design matters

  • Brand trust. A confirmation email in your fonts, colors, and logo tells the submitter they're dealing with a real business — not a form script. For lead-generation forms, that trust directly affects reply rates when you follow up.
  • Consistency. The auto-responder is often the first email a lead ever gets from you. Matching it to your site and your other email (invoices, proposals, newsletters) keeps the experience coherent.
  • Useful content. A custom template can carry more than "thanks": booking links, your phone number, a PDF download, next-step instructions, or the lead's reference number for quoting on calls.
  • Agency client work. If you build forms for clients, shipping their branded auto-responder — not a third party's — is the difference between "installed a plugin" and "delivered a system".

Setting up a custom auto-responder in splitforms

Custom email design is available on paid plans (Pro, $5/month, or the 3-Year plan). Setup takes about five minutes:

  1. Open your form in the splitforms dashboard and go to Settings → Auto-reply & form behavior.
  2. Make sure the auto-responder itself is enabled and your form has an email field — the reply is sent to that address.
  3. Find Custom email design (HTML/CSS) and paste your complete HTML email template into the field.
  4. Use {{ name }}, {{ lead_number }}, and any of your own field names as {{ variables }} where you want submitted values to appear.
  5. Check the live preview — it renders your template in a sandboxed frame exactly as an email client would, with sample data substituted.
  6. Save, then submit a real test through your form to see the email land in an actual inbox.

Leave the field empty at any time and splitforms falls back to its clean default template — there is no "broken" state to worry about. Templates are capped at 50KB, which is far more than a well-built email needs.

A complete example template

Here's a production-ready branded auto-responder you can paste in and adapt. Note the rules it follows: table layout, inline styles on every element, 600px width, and a bulletproof button. Variables like {{ name }} and {{ lead_number }} are replaced with real values when the email is sent:

<!DOCTYPE html>
<html lang="en">
<body style="margin:0; padding:0; background-color:#f4f4f2;">
  <table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background-color:#f4f4f2; padding:32px 16px;">
    <tr>
      <td align="center">
        <table role="presentation" width="600" cellpadding="0" cellspacing="0" style="max-width:600px; width:100%; background-color:#ffffff; border-radius:12px; overflow:hidden;">

          <!-- Header -->
          <tr>
            <td style="background-color:#1a1d21; padding:28px 32px;">
              <span style="font-family:Georgia, serif; font-size:22px; color:#ffffff; font-weight:bold;">Acme Studio</span>
            </td>
          </tr>

          <!-- Body -->
          <tr>
            <td style="padding:36px 32px; font-family:Arial, Helvetica, sans-serif;">
              <h1 style="margin:0 0 16px; font-size:24px; line-height:1.3; color:#1a1d21;">Thanks, {{ name }} — we got your message.</h1>
              <p style="margin:0 0 16px; font-size:15px; line-height:1.7; color:#4a4f55;">
                Your enquiry is in our inbox and a real person will reply within one business day. Your reference number is <strong style="color:#1a1d21;">#{{ lead_number }}</strong> — quote it if you call or write again.
              </p>
              <p style="margin:0 0 24px; font-size:15px; line-height:1.7; color:#4a4f55;">
                In the meantime, you can book a 15-minute intro call directly:
              </p>
              <table role="presentation" cellpadding="0" cellspacing="0">
                <tr>
                  <td style="background-color:#2f6fed; border-radius:8px;">
                    <a href="https://acmestudio.com/book" style="display:inline-block; padding:14px 28px; font-size:15px; font-weight:bold; color:#ffffff; text-decoration:none;">Book a call</a>
                  </td>
                </tr>
              </table>
            </td>
          </tr>

          <!-- Footer -->
          <tr>
            <td style="padding:20px 32px; border-top:1px solid #ececea; font-family:Arial, Helvetica, sans-serif;">
              <p style="margin:0; font-size:12px; line-height:1.6; color:#8a8f96;">
                Acme Studio · 14 Harbor Lane, Portland · <a href="https://acmestudio.com" style="color:#2f6fed; text-decoration:none;">acmestudio.com</a>
              </p>
            </td>
          </tr>

        </table>
      </td>
    </tr>
  </table>
</body>
</html>

The preview in settings renders this live with sample data as you edit, so you can iterate without submitting test forms.

Template variables

Any {{ variable }} in your template is replaced with the submitted value before sending. The built-in fields:

VariableReplaced with
{{ name }}The submitter's name
{{ email }}The submitter's email address
{{ business }}The submitter's business / company name
{{ website }}The submitter's website URL
{{ lead_number }}The sequential lead reference number (e.g. 101)
{{ <any field> }}Any field your form submits — {{ message }}, {{ phone }}, {{ budget }}, etc.

{{ lead_number }} deserves a special mention: every submission gets a sequential Lead #N reference, and including it in the auto-responder gives both sides a shared ID to quote on calls and in follow-up threads. It matches the number shown in your dashboard inbox and notification emails.

Inline-CSS deliverability rules

HTML email is not the web. Email clients run decade-old rendering engines and aggressively strip anything that looks like a modern page. Follow these rules and your template will survive Gmail, Outlook, Apple Mail, and Yahoo:

  • No <style> blocks. Gmail and others strip them entirely. Every style goes in a style="..." attribute on the element itself.
  • No classes or ID selectors. Same reason — class-based CSS is ignored. Inline styles only.
  • Tables for layout. Outlook's Word-based renderer doesn't understand flexbox or grid. Nest <table> elements for structure.
  • Max-width 600px. The safe content width across desktop and mobile clients. Center it with an outer full-width table.
  • Web-safe font stacks. Arial, Helvetica, Georgia, Times. Custom webfonts are ignored by most clients — declare fallbacks.
  • Bulletproof buttons. Use a table cell with a background color and an anchor inside, not <button> or background-image tricks.
  • Always set fallback background colors. If you use images, assume they're blocked until the user clicks "display images".

And whatever your HTML does, splitforms always sends a plain-text version alongside it, so clients that strip HTML (and accessibility tools) still deliver a clean, readable message.

Frequently asked questions

Can I use my own HTML for auto-responder emails?

Yes. On splitforms paid plans, open Settings → Auto-reply & form behavior → Custom email design (HTML/CSS) and paste a complete HTML email template. It fully replaces the built-in auto-responder design, and a live sandboxed preview in settings shows exactly what submitters will receive before you save.

Why doesn't my CSS work in the auto-responder email?

Email clients strip <style> blocks and ignore class selectors — Gmail, Outlook, and Yahoo all do this. Every style must be written inline on each element (style="..." attributes), and layout should use nested tables with a max-width of 600px rather than divs and flexbox.

What variables can I use inside the custom template?

Use {{ name }}, {{ email }}, {{ business }}, {{ website }}, and {{ lead_number }} for the built-in fields, plus any field your form submits — {{ message }}, {{ phone }}, {{ budget }} and so on. Variables are replaced with the submitter's actual values before the email is sent.

Is there a size limit for the custom template?

Yes, 50KB per template. That is far more than a well-built email needs — most branded templates come in under 15KB. If you hit the cap, remove unused markup, comments, and repeated inline styles rather than compressing content.

What happens if the HTML breaks or the field is left empty?

An empty field means the clean default splitforms template is used — nothing breaks. And regardless of your HTML, a plain-text version is always sent alongside the HTML part, so clients that block or strip HTML still deliver a readable message.

Brand your first reply

Your form's first email should look like you.
Custom HTML/CSS auto-responders, live preview, template variables, and a plain-text fallback — on splitforms Pro for $5/month, or the 3-Year plan for $59.
Start your free account →

Keep reading

Related articles

More practical guidance from tutorials.

Browse the journal →
Tutorials

How to Add a Contact Form to a Website Built with Claude, Cursor, Lovable, v0 or Bolt

AI-generated contact forms do nothing on submit because there is no backend. Fix it with one

11 min readRead →
Tutorials

FormData in JavaScript: Submit Forms with fetch (2026 Guide)

The complete FormData guide: reading form fields, appending files, sending multipart and url

9 min readRead →
Tutorials

Send Form Emails From Your Own Domain (Custom SMTP, 2026)

Send form notification and auto-responder emails from your own domain with custom SMTP: encr

10 min readRead →

Explore this topic

Start with the overview, then move into focused guides.

OverviewContact Forms for Every FrameworkStart here →GuideContact Form for Next.jsRead →GuideContact Form for ReactRead →GuideContact Form for VueRead →ReferenceContact form guideOpen →

Building forms with ChatGPT, Claude, Cursor, or v0? Connect the native MCP server and give your agent a production form backend.

Explore the MCP server →

Give your form a production backend.

One endpoint adds delivery, spam filtering, storage, and integrations. Start with 200 submissions total for free.

Create free accountRead the docs →
Secure checkoutSSL encryptionPrivacyProtected
VISAAMERICANEXPRESSstripe