ServiceNow Email Parser: Extract Email Data into ServiceNow Records
Parse the fields and table rows out of the email body ServiceNow inbound actions leave as text, then load clean records into ServiceNow
A ServiceNow inbound email action can create an incident or a request from a message, but pulling structured fields out of the body means writing JavaScript with split, indexOf, and substring, and inbound flows flatten HTML tables into plain text. MailParse reads the full email body and HTML table rows, pulls out the fields you name, then exports clean CSV and JSON you load through Import Sets or push in as records through the Table API, Flow, Zapier, or Make.
Last updated August 2026
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.
ServiceNow has no point-and-click email parser. An inbound email action copies the sender, subject, and body onto an incident or case, but pulling an asset tag, PO number, or order table out of that body means scripting against email.body_text. MailParse handles the parsing outside ServiceNow and returns named fields as CSV or JSON you feed into an import set or a Flow.
- Named fields
- Pulled from the body inbound actions leave as text
- HTML tables
- Parses layout ServiceNow flattens
- CSV / JSON
- Import Set or Table API into ServiceNow
- No script
- Name fields, skip the JavaScript
ServiceNow is good at turning an inbound message into a record. An inbound email action or a Flow Designer email trigger can open an incident, a case, or a request from a message, and the sender, subject, and a copy of the body land on the record. What ServiceNow does not do out of the box is pull structured values out of that body: the asset tag in the third line, the PO number sitting mid-paragraph, the rows of an order table, or a field a vendor formats their own way. To get those onto ServiceNow fields natively, you script an inbound email action that reads email.body_text and slices it with JavaScript split, indexOf, and substring, or you build a Flow that parses the body with string functions. Both work, both need a developer or an admin who is comfortable with code, and both break the moment a sender renames a heading or reorders a line. ServiceNow community threads are full of people asking exactly this: how to read the body text in an inbound flow, how to parse a table in an email, how to handle a body that has no clean name:value pairs.
MailParse is the external email parser that does the extraction part for you. Connect a Gmail, Outlook, Microsoft 365, or IMAP inbox, or forward a message to a parsing address, then name the fields you want such as asset_tag, po_number, ci_name, or ticket_reference. MailParse reads them from the full body and from HTML emails with real tables that an inbound action flattens into text. You get a clean CSV, an Excel workbook, or JSON. From there you load the data into ServiceNow the way that fits: import the CSV through an Import Set and Transform Map, or send JSON to the Table API, a Scripted REST endpoint, Flow, Zapier, or Make to create or update a record per email automatically. MailParse records the filename of any attachment for reference; when the value you need is locked inside a PDF, extract the PDF with a document tool first, then feed the result in. The step by step version of that Import Set load lives in how to parse email into ServiceNow, and if your inbound mail also has to reach a CRM, the same pattern is covered under email to CRM. Running a service desk on Zendesk instead, or alongside it, the email parser Zendesk integration covers the equivalent Tickets API route. Where the request arrives as a grid of asset rows rather than a name and a description, extracting a table from an email is the part an inbound action cannot do at all. This page is an honest look at where ServiceNow native handling is enough and where an external parser does the work it cannot.
What the converter does
Everything you need to turn a pile of email files into a spreadsheet your team can actually use.
Pulls named fields the body hides
An inbound email action copies the whole message onto the record. MailParse reads the asset tag, PO number, or CI name sitting mid-body and returns each as its own column, so the values you need arrive as data instead of a wall of text to script against.
Parses HTML emails and tables
Pulling table rows out of an HTML email in ServiceNow means scripting against fragile string positions. MailParse parses HTML emails and repeating table rows, so order confirmations, monitoring alerts, and request forms come through as clean columns.
Name fields instead of writing JavaScript
A native parse means a scripted inbound action reading email.body_text with split and substring, or a body-slicing Flow. MailParse reads the fields you name across senders that format the same data differently, so one setup covers many layouts with no code.
Holds up when a sender changes format
Inbound action scripts keyed to fixed text positions break when a vendor renames a heading or reorders a line, and name:value parsing fails when pairs are not on their own line. MailParse keeps reading the named fields when the layout drifts.
CSV and JSON that load into ServiceNow
Export a CSV for an Import Set and Transform Map, or send JSON to the Table API, a Scripted REST resource, Flow, Zapier, or Make to create or update a record per email. The choice is yours, and the data is clean either way.
Spreadsheet output for everyone else
Not every email belongs in ServiceNow. Download a formatted Excel workbook or CSV for an asset reconciliation, a report, or a teammate who just wants the numbers, without routing the data through the platform first.
How to parse email into ServiceNow the data way
Four steps to capture the fields and table rows inbound actions and Flow leave as text.
Connect or forward
Connect the Gmail, Outlook, Microsoft 365, or IMAP inbox your ServiceNow-bound mail arrives in, or forward a sample message to a dedicated MailParse parsing address.
Name your fields
List the values you want as fields on the ServiceNow record, including fields buried mid-body and columns inside HTML tables. Describe each field once instead of scripting an inbound email action or a Flow formula.
Choose CSV or JSON
Export a CSV for an Import Set and Transform Map, or point JSON at the Table API, Flow, Zapier, or Make to create or update a record per email automatically.
Load and reuse
Run a backlog in one pass and let new mail flow in automatically. Adjust the fields anytime from a form, with no inbound action script to update when a sender changes their layout.
Who outgrows native ServiceNow email handling
ServiceNow teams whose inbound mail carries fields, tables, or vendor formats inbound actions and Flow leave as plain text.
ITSM & service desk teams
Capture asset tags, configuration item names, and reference numbers from inbound user and vendor mail that arrives as HTML or changes layout, then create a clean incident or request per email instead of parsing the body with a script.
IT operations & monitoring
Pull host names, severity, and alert IDs out of monitoring and ticketing emails and the tables inside them, and route the structured data onto record fields through an Import Set or the Table API.
Procurement & asset management
Read PO numbers, quantities, and line items from the body and HTML tables of supplier confirmation emails that an inbound action files as plain text, and bring clean fields into ServiceNow records.
Finance & shared services
Pull invoice numbers, dates, and totals out of the email body and its HTML tables into Excel for a reconciliation or a finance import, then send the summary record into ServiceNow through Flow. When the figure lives inside a PDF, extract the PDF first, then feed the result in.
MailParse vs native ServiceNow email handling
Reads the whole body
An inbound email action copies the entire message onto the record unparsed. MailParse pulls the specific values you name out of the body and returns each as its own field.
Handles HTML and tables
Parsing HTML tables in ServiceNow means scripting against fragile string positions. MailParse parses HTML emails and table rows into clean columns.
No code to maintain
A native field parse needs a scripted inbound email action or a body-slicing Flow that breaks on format change. MailParse reads named fields with no code.
Flexible output
MailParse exports CSV and Excel for spreadsheets and JSON for webhooks, so you import with an Import Set or push records through the Table API, Flow, Zapier, or Make.
Ways to get email data into ServiceNow, compared
A ServiceNow admin has a few honest ways to turn an inbound message into structured record data, depending on where the data lives and how much code you want to own. Here is how they line up on the choices that actually matter, with credit to each native path where it wins. To push records as JSON, see the email parser API; for the Salesforce side, the Salesforce email parser.
| What matters | MailParse | Inbound Email Action (script) | Flow Designer (low-code) | Import Set from CSV attachment |
|---|---|---|---|---|
| What it does | Parses the body and HTML tables into the fields you name, then hands you CSV for an Import Set or JSON for the Table API | A server script reads email.body_text and slices values with JavaScript | An inbound email trigger parses the body with string functions in a Flow | Loads a clean CSV or Excel attachment into a staging table, then a Transform Map writes records |
| Setup and skills | Name the fields on a form, no code | A developer writes and maintains the script | An admin builds the Flow, no server script | Configure the import source and Transform Map once |
| Reads body fields | Name asset_tag or po_number and get each back as a field | Yes, but you code split, indexOf, and substring per field | Some, with string functions on clean name and value lines | No, it works on the attached file, not the message body |
| Handles attachments | Records the filename for reference; extract a PDF or spreadsheet with a document tool first, then parse the result | Stores the file on the record but does not read it | No, the same attachment limit applies | Only if the vendor already sends a clean CSV or Excel file |
| HTML tables | Parses table rows into clean columns | Hard, you parse fragile string positions yourself | No, string functions do not parse table rows well | No, it expects a flat file, not an HTML table |
| Holds up when a sender changes format | Reads named fields across varied layouts | Breaks when a heading is renamed or a line moves | Breaks when the body layout shifts | Breaks if the column layout of the file changes |
| Into ServiceNow | CSV via Import Set, or JSON to the Table API, Flow, Zapier, or Make | Creates or updates the record directly in the script | Creates the record inside the Flow | Bulk creates or updates records through the Transform Map |
| Best for | Mixed senders and HTML tables where native scripting breaks | A single, stable plain-text format an admin controls | Light, low-code parsing of a steady text format | Vendors who already send a consistent CSV or Excel file |
Capabilities reflect native ServiceNow features as of July 2026; platform behavior changes, so verify in your instance before you build. No pricing is implied here.
Frequently asked questions
Does ServiceNow have an email parser?
ServiceNow does not have a point-and-click email parser. It has inbound email actions and Flow Designer email triggers that can create an incident, case, or request from a message, with the sender, subject, and body copied onto the record. To extract structured values from the body, you script the inbound action in JavaScript or build a Flow. MailParse does that extraction for you and hands ServiceNow clean CSV or JSON.
How do I parse an email body in ServiceNow?
Natively you script an inbound email action that reads email.body_text and slices it with JavaScript split, indexOf, and substring, or you build a Flow that parses the body with string functions. Both are tied to fixed text positions and need a developer. The simpler route is to parse the mail in MailParse, name the fields you want, then import the CSV through an Import Set or push JSON to the Table API.
Does a ServiceNow inbound email action read the body into fields?
No. An inbound email action copies the sender, subject, and body onto the record, but it does not split structured values such as an asset tag or PO number out of the body without a script. MailParse reads the fields you name from the body and HTML tables, then gives you CSV or JSON to load into ServiceNow records.
Can ServiceNow extract data from the email body?
Only with scripting. An inbound email action or a Flow can slice values out of a plain text body, but both rely on fixed text positions and name:value pairs being on their own line, so they fail when a vendor reorders a line or sends an HTML table. MailParse reads the fields you name across varied layouts and HTML tables, so a formatting change does not silently drop a value.
Can MailParse read data inside email attachments?
MailParse parses the email body and HTML tables, and it records the filename of any attachment for reference, but it does not read the data locked inside a PDF, Word, or spreadsheet file. When the value you need lives inside an attachment, extract that file with a document tool first, then feed the result into your ServiceNow import.
How do I import parsed email data into ServiceNow?
Two paths work. Export the parsed data from MailParse as a CSV and load it through an Import Set and Transform Map to create or update records in bulk. Or take the JSON from a MailParse webhook and send it to the Table API, a Scripted REST endpoint, Flow, Zapier, or Make to create a record per email automatically as mail arrives.
Is the ServiceNow email parser free?
There is no separate paid email parser to buy from ServiceNow. Inbound email actions and Flow Designer triggers are part of the platform, but turning the body into structured fields costs developer or admin time and stays fragile. MailParse complements those features by parsing the body and HTML tables into named fields and exporting CSV or JSON you load back into ServiceNow.
Parse the email body ServiceNow leaves as text, then load it into ServiceNow
Connect a mailbox or forward a message and see the fields and HTML table rows inbound actions and Flow leave unparsed land in clean CSV or JSON, ready to import or push into ServiceNow.