Parse Form Submission Emails Into a Spreadsheet
Last updated July 2026
Try it now: extract email data to Excel, CSV, or JSON
Connect a mailbox to pull .eml/.msg in bulk, or paste a raw email to test the converter now.
Create a free account to download. No credit card required.
Form notifications piling up in your inbox?
MailParse reads each submission email and writes every form field into its own column, across all your sites and form plugins, into one sheet. See the email to Excel tool, or read the method below.
Almost every website form emails you a notification: "New submission from the contact form," followed by a list of labels and answers. Those emails are a complete record of your inbound leads, and most businesses do nothing with them except read and forget. Parsing them turns the notification stream into a spreadsheet where each submission is a row and each form field is a column, which is what you needed in the first place.
How do I get form submissions into a spreadsheet?
Point a parser at the inbox that receives the notification emails and map each form label to a column: name, email, phone, company, message, and any custom questions. The parser writes one row per submission, so you get a sortable lead list without touching the website. New submissions append automatically as the emails arrive.
Why not just use the form plugin's own integration?
Use it when you have one form on one site and it offers the export you need. Parsing the notification email wins in three common situations: you run several sites or several form tools and want one combined sheet, you do not control the website or its plugins, or your form vendor charges extra for the spreadsheet connector. The email arrives either way, so it is the one interface that works across every form on the internet.
| Approach | Works across forms and sites | Needs site access |
|---|---|---|
| Form plugin connector | No, one plugin at a time | Yes |
| Copy and paste by hand | Yes, slowly | No |
| Parse the notification email | Yes, all of them in one sheet | No |
Which form notification emails can be parsed?
Any of them, because they are ordinary emails with predictable structure. That includes WordPress plugins, hosted form builders, ecommerce checkout notifications, event registrations, and the auto-generated confirmations from booking or scheduling tools. Most send either a label and value list or an HTML table, and both parse into columns cleanly once you map one example.
How does the parser know which value belongs to which column?
You map it once per form template. Because a form notification is machine-generated, the layout is identical on every submission from that form, so a mapping made from one example holds for every future email from the same sender. That is what makes form emails one of the most reliable parsing targets there is; the format simply does not drift the way a human-written email does.
Can I combine submissions from several different forms?
Yes, and this is usually the reason people start. Map each form's labels to a shared set of columns, add a Source column identifying which form or site it came from, and every submission lands in the same sheet. You can then filter by source when you want one site's leads and see the whole picture when you want volume. The approach mirrors parsing customer support emails into a spreadsheet for a shared inbox.
What about file uploads attached to the form?
If someone attaches a resume, a photo, or a spec sheet, MailParse records that attachment by filename, type, and size, so the row keeps a reference to the file. It parses the fields the person typed into the form, not the contents of the uploaded file. Reading inside an uploaded document is a separate document-extraction job. For most lead forms this is a non-issue, since the answers you follow up on are the typed ones.
How fast should I follow up on a parsed lead?
Faster than you currently do. Inbound form leads go cold quickly, and the practical advantage of a parsed sheet is that the whole day's submissions are visible at a glance with a Contacted column you can work down, rather than scattered through an inbox with newsletters between them. Teams that route leads straight into a CRM go further; see adding email leads to a CRM.
What if the form is producing junk submissions?
Parsed data makes the pattern obvious: a spike of rows with nonsense in the company field, or the same message text repeating. Filter those out with a rule on a field value rather than deleting emails one by one. If the volume of real submissions is the problem instead, the fix is upstream on the page itself, and an audit of the page copy, layout, and call to action usually finds more than a form tweak will.
Getting started with form submission parsing
Collect one notification email from each form you run, map the labels to a common column set, and add a Source column so mixed submissions stay traceable. Connect the inbox, let a day of live submissions flow through, and confirm the rows match what people actually typed. Export the sheet to Excel or CSV, or send each record onward through the email parser API. For the underlying technique, see extracting data from an email body to Excel.