<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged formapi</title>
<link>https://coderlegion.com/tag/formapi</link>
<description>Powered by Question2Answer</description>
<item>
<title>Why Contact Form 7 Emails Look Unprofessional and How to Fix It</title>
<link>https://coderlegion.com/14382/why-contact-form-7-emails-look-unprofessional-and-how-to-fix-it</link>
<description>&lt;p&gt;You installed Contact Form 7 on your WordPress site. &lt;br&gt;
Someone fills out your contact form. You receive the email.&lt;/p&gt;
&lt;p&gt;And it looks like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u1yw6jfar6wrxazc08wt.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;p&gt;Or if you are lucky, it looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-properties&quot;&gt;From: John Smith
Email: *Emails are not allowed*
Message: Hello there
_wpcf7: 1234
_wpcf7_version: 5.7
_wpcf7_locale: en_US
_wpcf7_unit_tag: wpcf7-f1-p2-o1
_wpcf7_container_post: 2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Raw field data. Internal WordPress variables. &lt;br&gt;
No structure. No labels. &lt;br&gt;
No context.&lt;/p&gt;
&lt;p&gt;If you are an event manager receiving 20 registrations a day, or a small business owner trying to act quickly on client inquiries, this email is a nightmare to read.&lt;/p&gt;
&lt;p&gt;This guide explains exactly why CF7 emails look the way they do and gives you two ways to fix it permanently.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;why-contact-form-7-emails-look-so-bad&quot;&gt;Why Contact Form 7 Emails Look So Bad&lt;/h3&gt;
&lt;p&gt;Contact Form 7 sends notification emails by dumping whatever data it receives into the email body. &lt;br&gt;
It does not know your form's structure. &lt;br&gt;
It does not know which fields are important. &lt;br&gt;
It does not know that your recipient needs to see &lt;br&gt;
Contact Information, Event Details, before Payment Summary.&lt;/p&gt;
&lt;p&gt;It just sends everything in one flat list, including internal WordPress fields that your recipient should never see.&lt;/p&gt;
&lt;p&gt;Here are the most common problems CF7 users complain about:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Internal fields showing up in every email&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;CF7 includes internal WordPress variables &lt;br&gt;
like &lt;code&gt;_wpcf7&lt;/code&gt;, &lt;code&gt;_wpcf7_version&lt;/code&gt;, &lt;br&gt;
&lt;code&gt;_wpcf7_unit_tag&lt;/code&gt;, and &lt;br&gt;
&lt;code&gt;_wpcf7_container_post&lt;/code&gt; in every &lt;br&gt;
notification email. These are not your &lt;br&gt;
data. They are WordPress internals. &lt;br&gt;
But CF7 sends them anyway.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No section headers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;All fields appear in one flat list with no grouping. Name, email, message, event selection, dietary requirements, and payment details are all running together with no separation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No formatting on long text&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Long text values appear as one unbroken paragraph with no line breaks. Reading a multi-paragraph message in a CF7 email is genuinely difficult.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Wrong field order&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Fields appear in the order they were submitted, not in a logical reading order. If your form has 20 fields, the email is impossible to scan.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Generic subject line&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Every email says &quot;New message from your contact form&quot; with no context &lt;br&gt;
about who submitted or what they selected. &lt;br&gt;
If you receive 50 submissions per day, every email looks identical &lt;br&gt;
in your inbox.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Looks like spam&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Because CF7 relies on WordPress PHP &lt;br&gt;
mail for delivery and includes internal fields and raw data. &lt;br&gt;
Gmail and Outlook increasingly treat CF7 notifications as suspicious. &lt;br&gt;
Many CF7 emails end up in spam folders or get rejected entirely.&lt;/p&gt;
&lt;p&gt;The problem gets worse the more fields your form has. A simple 3-field contact form is manageable. &lt;br&gt;
But event registration forms, client intake forms, and job application forms can have 20 to 40 fields. When all of that arrives &lt;br&gt;
as one unformatted block, the person reading it has to hunt for the &lt;br&gt;
information they need every single time.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;what-a-professional-form-email-should-look-like&quot;&gt;What a Professional Form Email Should Look Like&lt;/h3&gt;
&lt;p&gt;Instead of a raw data dump, imagine &lt;br&gt;
receiving this for every registration:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/njgpgd8470kygupsmkcy.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;p&gt;Clean. Organized. Readable by anyone. &lt;br&gt;
Whether they are a developer, an event coordinator, or an office manager who just needs to know who is coming and what they paid.&lt;/p&gt;
&lt;p&gt;That is what you should be receiving. &lt;br&gt;
Here is how to get there.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;who-does-this-problem-affect-most&quot;&gt;Who Does This Problem Affect Most&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Event organizers&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Workshop registrations, conference entries, and seminar signups. &lt;br&gt;
Your coordinator needs to see attendee details in a logical order, not a random field dump. For a 200-person event, receiving unreadable registration emails is hours of unnecessary work every time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Small businesses&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Client intake forms, service booking forms, and quote request forms. Your team needs to act on submissions quickly. &lt;br&gt;
A clean email means faster response times and fewer mistakes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Freelancers and consultants&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Project brief forms, onboarding forms. &lt;br&gt;
When a new client submits their project brief, you want it formatted like a document you can actually work from, not a wall of raw text.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nonprofits and community organizations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Volunteer applications, membership forms, and donation forms. Your coordinator needs to process applications efficiently without deciphering raw data.&lt;/p&gt;
&lt;p&gt;If you are sending form submission emails to anyone who is not a developer, the default CF7 email format is not good enough.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;fix-1-customize-cf7-email&quot;&gt;Fix 1: Customize CF7 Email&lt;/h3&gt;
&lt;h3 id=&quot;templates-directly&quot;&gt;Templates Directly&lt;/h3&gt;
&lt;p&gt;Contact Form 7 does let you customize &lt;br&gt;
your email template. It is not beautiful, but it works for simple forms.&lt;/p&gt;
&lt;h4 id=&quot;step-1-open-your-cf7-form-settings&quot;&gt;Step 1: Open your CF7 form settings&lt;/h4&gt;
&lt;p&gt;In your WordPress dashboard, go to Contact and click on your form. Click the Mail tab at the top.&lt;/p&gt;
&lt;h4 id=&quot;step-2-edit-the-message-body&quot;&gt;Step 2: Edit the message body&lt;/h4&gt;
&lt;p&gt;By default, the message body uses the &lt;code&gt;[all_fields]&lt;/code&gt; shortcode, which &lt;br&gt;
dumps everything. Replace it with your specific field shortcodes:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;From: [your-name]
Email: [your-email]
Phone: [your-phone]

Message:
[your-message]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Replace &lt;code&gt;[your-name]&lt;/code&gt;, &lt;code&gt;[your-email]&lt;/code&gt;, &lt;br&gt;
&lt;code&gt;[your-phone]&lt;/code&gt;, and &lt;code&gt;[your-message]&lt;/code&gt; &lt;br&gt;
with the actual field names from your form.&lt;/p&gt;
&lt;h4 id=&quot;step-3-customize-the-subject-line&quot;&gt;Step 3: Customize the subject line&lt;/h4&gt;
&lt;p&gt;Change the subject line from the &lt;br&gt;
generic default to something meaningful:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;New inquiry from [your-name] 
via [_site_title]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This gives every email a subject line that shows who submitted and where it came from.&lt;/p&gt;
&lt;h4 id=&quot;step-4-remove-internal-fields&quot;&gt;Step 4: Remove internal fields&lt;/h4&gt;
&lt;p&gt;Make sure your message body only includes fields you actually want &lt;br&gt;
to see. Do not include &lt;br&gt;
&lt;code&gt;[_wpcf7]&lt;/code&gt;, &lt;code&gt;[_wpcf7_version]&lt;/code&gt;, or any other internal WordPress &lt;br&gt;
variables.&lt;/p&gt;
&lt;h4 id=&quot;the-limitation-of-this-approach&quot;&gt;The limitation of this approach&lt;/h4&gt;
&lt;p&gt;CF7 email customization is plain text. &lt;br&gt;
You can control which fields appear and in what order, but you cannot add section headers, styled layouts, colored backgrounds, or anything &lt;br&gt;
that makes the email look genuinely professional.&lt;/p&gt;
&lt;p&gt;For a simple contact form, this is probably enough. &lt;br&gt;
For complex registration forms with 10 or more fields, you will still end up with a long flat list that is hard to scan.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;fix-2-use-formgrid-for-fully-customizable-email-templates&quot;&gt;Fix 2: Use Formgrid for Fully Customizable Email Templates&lt;/h3&gt;
&lt;p&gt;If you want complete control over how your notification emails look &lt;br&gt;
including section headers, branded colors, grouped fields, and custom subject lines, consider switching to Formgrid as your form backend.&lt;/p&gt;
&lt;p&gt;Formgrid is an open-source form backend and form builder. &lt;br&gt;
On the Business plan at $29/month, you get full HTML email template control using Mustache templating. &lt;br&gt;
A simple, widely used templating language that lets you write an HTML email with placeholders that get replaced with real submission data automatically.&lt;/p&gt;
&lt;h4 id=&quot;the-available-template-variables&quot;&gt;The available template variables&lt;/h4&gt;
&lt;pre&gt;&lt;code class=&quot;language-handlebars&quot;&gt;{{ _formName }}    
Name of your form

{{ _time }}        
Submission timestamp

{{ fieldName }}    
Any field by its exact name attribute

{{# fields }}      
Loop through all fields
  {{ _name }}      Field label
  {{ _value }}     Field value
{{/ fields }}      
Close the loop
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;option-a-the-simple-loop-for-any-form&quot;&gt;Option A: The simple loop for any form&lt;/h4&gt;
&lt;p&gt;If you just want clean formatted emails without thinking too much about structure use the fields loop. This works for any form automatically:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;div style=&quot;font-family: sans-serif; 
            max-width: 600px; 
            margin: 0 auto;&quot;&amp;gt;

  &amp;lt;h2 style=&quot;color: #1d4f3d;&quot;&amp;gt;
    New Submission: {{ _formName }}
  &amp;lt;/h2&amp;gt;

  {{# fields }}
  &amp;lt;div style=&quot;margin-bottom: 16px; 
              border-bottom: 1px solid #eee; 
              padding-bottom: 16px;&quot;&amp;gt;
    &amp;lt;p style=&quot;margin: 0; 
              font-size: 12px; 
              color: #888; 
              text-transform: uppercase;&quot;&amp;gt;
      {{ _name }}
    &amp;lt;/p&amp;gt;
    &amp;lt;p style=&quot;margin: 4px 0 0; 
              font-size: 15px; 
              color: #333;&quot;&amp;gt;
      {{ _value }}
    &amp;lt;/p&amp;gt;
  &amp;lt;/div&amp;gt;
  {{/ fields }}

  &amp;lt;p style=&quot;font-size: 12px; 
            color: #999;&quot;&amp;gt;
    Submitted: {{ _time }}
  &amp;lt;/p&amp;gt;

&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This renders every field cleanly with its label above and value below. No internal fields. No raw data. No mess. &lt;br&gt;
Clean, readable output for every submission automatically.&lt;/p&gt;
&lt;h4 id=&quot;option-b-sectioned-template-for-complex-registration-forms&quot;&gt;Option B: Sectioned template for complex registration forms&lt;/h4&gt;
&lt;p&gt;If your form has multiple sections, like a workshop registration with &lt;br&gt;
attendee details, session selection, dietary requirements, and payment. You can group fields into sections &lt;br&gt;
with clear headers:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;div style=&quot;font-family: sans-serif; 
            max-width: 600px; 
            margin: 0 auto; 
            color: #1f2937;&quot;&amp;gt;

  &amp;lt;h2 style=&quot;color: #1d4f3d; 
             border-bottom: 2px solid #e8f3ee; 
             padding-bottom: 10px;&quot;&amp;gt;
    New Registration: {{ _formName }}
  &amp;lt;/h2&amp;gt;

  &amp;lt;h3 style=&quot;color: #1d4f3d;&quot;&amp;gt;
    Attendee Information
  &amp;lt;/h3&amp;gt;
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Name:&amp;lt;/strong&amp;gt; {{ name }}&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Email:&amp;lt;/strong&amp;gt; {{ email }}&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Company:&amp;lt;/strong&amp;gt; {{ company }}&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Phone:&amp;lt;/strong&amp;gt; {{ phone }}&amp;lt;/p&amp;gt;

  &amp;lt;h3 style=&quot;color: #1d4f3d; 
             margin-top: 24px;&quot;&amp;gt;
    Session Selection
  &amp;lt;/h3&amp;gt;
  &amp;lt;p&amp;gt;
    &amp;lt;strong&amp;gt;Workshop:&amp;lt;/strong&amp;gt; 
    {{ workshopName }}
  &amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Date:&amp;lt;/strong&amp;gt; {{ date }}&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Format:&amp;lt;/strong&amp;gt; {{ format }}&amp;lt;/p&amp;gt;

  &amp;lt;h3 style=&quot;color: #1d4f3d; 
             margin-top: 24px;&quot;&amp;gt;
    Payment
  &amp;lt;/h3&amp;gt;
  &amp;lt;p&amp;gt;
    &amp;lt;strong&amp;gt;Ticket Type:&amp;lt;/strong&amp;gt; 
    {{ ticketType }}
  &amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;
    &amp;lt;strong&amp;gt;Total:&amp;lt;/strong&amp;gt; 
    {{ totalAmount }}
  &amp;lt;/p&amp;gt;

  &amp;lt;h3 style=&quot;color: #1d4f3d; 
             margin-top: 24px;&quot;&amp;gt;
    Notes
  &amp;lt;/h3&amp;gt;
  &amp;lt;p&amp;gt;{{ notes }}&amp;lt;/p&amp;gt;

  &amp;lt;hr style=&quot;margin-top: 32px; 
             border: none; 
             border-top: 1px solid #e5e7eb;&quot; /&amp;gt;
  &amp;lt;p style=&quot;font-size: 12px; 
            color: #9ca3af; 
            margin-top: 12px;&quot;&amp;gt;
    Submitted: {{ _time }}
  &amp;lt;/p&amp;gt;

&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The variable names like &lt;code&gt;{{ name }}&lt;/code&gt;, &lt;br&gt;
&lt;code&gt;{{ workshopName }}&lt;/code&gt;, and &lt;br&gt;
&lt;code&gt;{{ totalAmount }}&lt;/code&gt; must match the &lt;br&gt;
&lt;code&gt;name&lt;/code&gt; attributes of your HTML form &lt;br&gt;
inputs exactly:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;input type=&quot;text&quot; name=&quot;name&quot; /&amp;gt;
&amp;lt;select name=&quot;workshopName&quot;&amp;gt;...&amp;lt;/select&amp;gt;
&amp;lt;input type=&quot;hidden&quot; name=&quot;totalAmount&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This gives you complete control over &lt;br&gt;
the layout, grouping, and order of &lt;br&gt;
every notification email.&lt;/p&gt;
&lt;h4 id=&quot;custom-subject-lines&quot;&gt;Custom subject lines&lt;/h4&gt;
&lt;p&gt;You can control the email subject &lt;br&gt;
line using the &lt;code&gt;_subject&lt;/code&gt; hidden &lt;br&gt;
field in your HTML form:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;input 
  type=&quot;hidden&quot; 
  name=&quot;_subject&quot; 
  value=&quot;New Registration from {{ name }}&quot;
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This means every submission email has &lt;br&gt;
a meaningful subject line like &lt;br&gt;
&quot;New Registration from Sarah Johnson&quot; &lt;br&gt;
instead of the generic &lt;br&gt;
&quot;New form submission.&quot;&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-to-set-up-custom-email-templates-in-formgrid&quot;&gt;How to Set Up Custom Email Templates in Formgrid&lt;/h3&gt;
&lt;p&gt;Custom email templates are available &lt;br&gt;
on the Business plan at $29/month.&lt;/p&gt;
&lt;h4 id=&quot;step-1-go-to-your-form-settings&quot;&gt;Step 1: Go to your form settings&lt;/h4&gt;
&lt;p&gt;Log in to your Formgrid dashboard, open your form, and click the &lt;br&gt;
Settings tab.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5wdsoxjh25y6sjxmhmx3.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;step-2-find-the-custom-email&quot;&gt;Step 2: Find the Custom Email&lt;/h4&gt;
&lt;h4 id=&quot;template-section&quot;&gt;Template section&lt;/h4&gt;
&lt;p&gt;Scroll down to the Custom Email &lt;br&gt;
Template section. If you are on the Business plan, you will see the &lt;br&gt;
full template editor. &lt;br&gt;
If you are on the free or Premium plan, you will see a prompt to upgrade.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cgnp5fhfen6snz58in2y.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id=&quot;step-3-enable-the-custom-template&quot;&gt;Step 3: Enable the custom template&lt;/h4&gt;
&lt;p&gt;Toggle the custom template on. The &lt;br&gt;
editor pre-populates with a starter &lt;br&gt;
template using the simple fields loop. &lt;br&gt;
A clean starting point that works for &lt;br&gt;
any form immediately.&lt;/p&gt;
&lt;h4 id=&quot;step-4-customize-your-template&quot;&gt;Step 4: Customize your template&lt;/h4&gt;
&lt;p&gt;Edit the HTML to match your needs. &lt;br&gt;
Use the simple loop for basic forms or build a sectioned template for &lt;br&gt;
complex registration forms. The available variables panel shows &lt;br&gt;
every variable you can use.&lt;/p&gt;
&lt;h4 id=&quot;step-5-preview-and-save&quot;&gt;Step 5: Preview and save&lt;/h4&gt;
&lt;p&gt;Click Preview to see exactly how your &lt;br&gt;
email will look with sample data &lt;br&gt;
substituted in. When you are happy, &lt;br&gt;
click Save Template.&lt;/p&gt;
&lt;p&gt;From this point on, every submission to your form will use your custom template. &lt;br&gt;
Clean, organized, and formatted exactly the way you designed.&lt;/p&gt;
&lt;h4 id=&quot;step-6-test-it&quot;&gt;Step 6: Test it&lt;/h4&gt;
&lt;p&gt;Submit a test entry on your form and check your inbox. &lt;br&gt;
Your notification email should arrive formatted exactly as you designed.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;how-to-use-formgrid-with-wordpress&quot;&gt;How to Use Formgrid With WordPress&lt;/h3&gt;
&lt;p&gt;Formgrid is not a WordPress plugin. &lt;br&gt;
It works through a simple HTML form &lt;br&gt;
or iframe embed in your WordPress &lt;br&gt;
Custom HTML block.&lt;/p&gt;
&lt;h4 id=&quot;option-a-replace-cf7-with-an&quot;&gt;Option A: Replace CF7 with an&lt;/h4&gt;
&lt;h4 id=&quot;html-form&quot;&gt;HTML form&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Sign up free at &lt;br&gt;
&lt;a rel=&quot;nofollow&quot; href=&quot;https://formgrid.dev&quot;&gt;formgrid.dev&lt;/a&gt;. &lt;br&gt;
No credit card required.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Create a new form and copy &lt;br&gt;
your endpoint URL from the Overview tab:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;https://formgrid.dev/api/f/your-form-id
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozar28d2u9v4whi05ogg.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l2n2wk1glt9b8u3dp89g.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; In your WordPress page editor &lt;br&gt;
add a Custom HTML block and replace &lt;br&gt;
your CF7 shortcode with this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;form 
  action=&quot;https://formgrid.dev/api/f/your-form-id&quot;
  method=&quot;POST&quot;&amp;gt;

  &amp;lt;div&amp;gt;
    &amp;lt;label for=&quot;name&quot;&amp;gt;Your Name&amp;lt;/label&amp;gt;
    &amp;lt;input 
      type=&quot;text&quot; 
      id=&quot;name&quot; 
      name=&quot;name&quot; 
      required /&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div&amp;gt;
    &amp;lt;label for=&quot;email&quot;&amp;gt;Email Address&amp;lt;/label&amp;gt;
    &amp;lt;input 
      type=&quot;email&quot; 
      id=&quot;email&quot; 
      name=&quot;email&quot; 
      required /&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div&amp;gt;
    &amp;lt;label for=&quot;message&quot;&amp;gt;Message&amp;lt;/label&amp;gt;
    &amp;lt;textarea 
      id=&quot;message&quot; 
      name=&quot;message&quot; 
      rows=&quot;5&quot; 
      required&amp;gt;&amp;lt;/textarea&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;input 
    type=&quot;text&quot; 
    name=&quot;_honey&quot; 
    style=&quot;display:none&quot; /&amp;gt;

  &amp;lt;button type=&quot;submit&quot;&amp;gt;Send Message&amp;lt;/button&amp;gt;

&amp;lt;/form&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Publish the page and submit a test entry.&lt;/p&gt;
&lt;h4 id=&quot;option-b-embed-the-formgrid-form-builder&quot;&gt;Option B: Embed the Formgrid form builder&lt;/h4&gt;
&lt;p&gt;If you do not want to write any HTML, you can build your form using Formgrid's drag-and-drop form builder and embed it in WordPress using an iframe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Build your form in the Formgrid form builder. Drag and drop your fields, customize labels, and click Save.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qoy2c2w7bryqr9obfqe6.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src=&quot;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1nc7en2b8mjlrtqghdhg.png&quot; alt=&quot;Image description&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Copy your shareable form &lt;br&gt;
link from the Overview tab.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; In your WordPress page editor, add a Custom HTML block and paste this embed code:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;lt;iframe 
  src=&quot;https://share.formgrid.dev/f/your-form-id&quot;
  width=&quot;100%&quot;
  height=&quot;600&quot;
  frameborder=&quot;0&quot;
  style=&quot;border: none;&quot;&amp;gt;
&amp;lt;/iframe&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Your form is now embedded in your WordPress page, and all submissions go directly to Formgrid.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;formgrid-business-plan-includes&quot;&gt;Formgrid Business Plan Includes&lt;/h3&gt;
&lt;h3 id=&quot;more-than-just-email-templates&quot;&gt;More Than Just Email Templates&lt;/h3&gt;
&lt;p&gt;Custom email templates are part of the Formgrid Business plan at $29/month &lt;br&gt;
which also includes:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;15,000 submissions per month&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Auto-responder emails&lt;/strong&gt;&lt;br&gt;
Automatically send confirmation emails to your form submitters. Every person who registers gets an instant professional confirmation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Multiple notification recipients&lt;/strong&gt;&lt;br&gt;
Send submissions to your whole team simultaneously. Everyone who needs to see registrations gets them &lt;br&gt;
in their inbox.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Custom subject lines&lt;/strong&gt;&lt;br&gt;
Every email has a meaningful subject line showing who submitted and what they selected.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Google Sheets sync&lt;/strong&gt;&lt;br&gt;
Every submission appears automatically as a new row in your spreadsheet. &lt;br&gt;
No Zapier. No manual copying.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Webhooks&lt;/strong&gt;&lt;br&gt;
Connect to Slack, Notion, and other tools when a submission arrives.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Priority support&lt;/strong&gt;&lt;br&gt;
Direct access to the founder for any issues.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;cf7-vs-formgrid-which-one&quot;&gt;CF7 vs Formgrid: Which One&lt;/h3&gt;
&lt;h3 id=&quot;should-you-use&quot;&gt;Should You Use&lt;/h3&gt;
&lt;pre&gt;&lt;code class=&quot;language-plaintext&quot;&gt;You have a simple 3-field contact 
form and just need basic improvements:

Customize CF7 directly using field shortcodes. 
Takes 10 minutes.
Free.


You have a complex registration form with multiple sections, and your team needs to read submissions quickly:

Switch to Formgrid. Full HTML email template control. Section 
headers. 
Branded colors. Clean, organized notifications.
Business plan at $29/month.


You are non-technical and do not want to touch any code:

Use Formgrid's form builder via iframe. Build your form with drag 
and drop. Upgrade to Business for professional email templates.
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;h3 id=&quot;the-real-cost-of-unreadable&quot;&gt;The Real Cost of Unreadable&lt;/h3&gt;
&lt;h3 id=&quot;form-emails&quot;&gt;Form Emails&lt;/h3&gt;
&lt;p&gt;It is easy to think of messy form emails as just a minor annoyance. &lt;br&gt;
But the real cost is higher than it looks.&lt;/p&gt;
&lt;p&gt;Every time you receive an unformatted registration email and have to hunt through raw field data to find the information you need, that is time wasted. &lt;br&gt;
For a small team processing 50 registrations per event, that waste &lt;br&gt;
adds up to hours.&lt;/p&gt;
&lt;p&gt;Every time you forward an unformatted submission to a colleague, and they have to decode it, that is friction that slows your whole operation down.&lt;/p&gt;
&lt;p&gt;And every time a submission arrives looking like spam and gets filtered by Gmail before it ever reaches you. That is a lead or registration you never knew you missed.&lt;/p&gt;
&lt;p&gt;Clean, organized notification emails are not a luxury. &lt;br&gt;
They are the difference between a form that works or your business and a form that creates extra work every single day.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;frequently-asked-questions&quot;&gt;Frequently Asked Questions&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Can I fix CF7 email formatting &lt;br&gt;
without switching tools?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yes. Go to your CF7 form settings, click the Mail tab, and replace &lt;br&gt;
&lt;code&gt;[all_fields]&lt;/code&gt; with specific field shortcodes in the order you want &lt;br&gt;
them. &lt;br&gt;
This removes internal fields and gives you control over the field &lt;br&gt;
order. It will not give you section headers or HTML styling, but it is a free improvement that takes 10 minutes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Does Formgrid work with any &lt;br&gt;
WordPress theme?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yes. Formgrid uses a standard HTML form or an iframe embed. Both work &lt;br&gt;
with any WordPress theme, including Astra, Divi, Elementor, GeneratePress, and Kadence.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What happens to my submissions &lt;br&gt;
if the email fails?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With CF7 and PHP mail, if the email fails, the submission is lost permanently. &lt;br&gt;
With Formgrid, every submission is saved to your dashboard regardless of email delivery. &lt;br&gt;
You can always log in and see every submission ever received.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Can I see a preview before &lt;br&gt;
my template goes live?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Yes. Formgrid's template editor includes a Preview button that shows &lt;br&gt;
you exactly how your email will look with sample data substituted in before you save and go live.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do I need to know HTML to use &lt;br&gt;
custom email templates?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Basic HTML knowledge helps, but is not required. &lt;br&gt;
The template editor pre-populates with a clean starter template that works immediately. &lt;br&gt;
You can customize colors and layout by editing simple inline CSS values.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id=&quot;final-thoughts&quot;&gt;Final Thoughts&lt;/h3&gt;
&lt;p&gt;Contact Form 7 email notifications look the way they do because CF7 &lt;br&gt;
was built as a simple form tool, not an email design tool. For basic &lt;br&gt;
contact forms, the default output is acceptable.&lt;/p&gt;
&lt;p&gt;But the moment your form gets complex &lt;br&gt;
with multiple sections and many fields, and your recipients need to act quickly on what they receive, the default CF7 email becomes a real problem.&lt;/p&gt;
&lt;p&gt;You have two options:&lt;/p&gt;
&lt;p&gt;Customize CF7 directly using field shortcodes for a free improvement &lt;br&gt;
that takes 10 minutes.&lt;/p&gt;
&lt;p&gt;Or switch to Formgrid for full HTML email template control, section headers, branded colors, custom subject lines, and a submission dashboard that saves every entry regardless of email delivery.&lt;/p&gt;
&lt;p&gt;Either way, your notification emails will stop looking like spam and start looking like professional business email communications.&lt;/p&gt;
&lt;p&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;https://formgrid.dev&quot;&gt;Try Formgrid free at formgrid.dev&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Full disclosure: I built Formgrid. &lt;br&gt;
Written as honestly as I could. &lt;br&gt;
Let me know in the comments if &lt;br&gt;
anything looks off.&lt;/em&gt;&lt;/p&gt;
</description>
<category>Articles</category>
<guid isPermaLink="true">https://coderlegion.com/14382/why-contact-form-7-emails-look-unprofessional-and-how-to-fix-it</guid>
<pubDate>Fri, 10 Apr 2026 00:37:18 +0000</pubDate>
</item>
</channel>
</rss>