Categories
Define the buckets replies fall into. Give each one a name and a plain-English
prompt describing how Mary should recognize it.
Data Extraction
Tell Mary which fields to pull from emails in a given category — replacement
contacts, return dates, new email addresses, and more.
Actions
Configure what happens automatically after classification — syncing Marketo
fields, adding to static lists, and more.
The Flow: How an Email Gets Processed
When a reply hits your inbox, here’s exactly what happens:Email arrives
The reply lands in your dedicated allGood inbox address (e.g.,
8IEJ8ZOP@parse.allgoodhq.app). Every message sent to this address is
automatically picked up and queued for processing.Mary classifies the email
Mary reads the full email — subject line, body, and metadata — and compares
it against the categories you’ve defined. She picks the best match based on
the description you wrote for each category.
Data is extracted (if configured)
If you’ve set up data extraction for that category, Mary pulls specific
pieces of information out of the email — for example, a replacement
contact’s name and email address from a “Left Company” auto-reply.
Categories & Actions
The Categories & Actions page is where you define the rules Mary follows. Think of it as training Mary on what to look for and what to do about it.
Categories
A category is a bucket that a reply can fall into. You give it a name and write a plain-English prompt that tells Mary how to recognize it. Mary uses your prompt to decide whether an incoming email belongs in that bucket. Default categories (which you can customize or delete):| Category | What it captures |
|---|---|
| Unsubscribe | Real people actively asking to be removed from your list |
| Bounce | Delivery failure notifications |
| Left Company | Auto-replies indicating the recipient no longer works there |
| Human Request | Genuine replies from a person who wants a response |
| Changed Email | Notifications that the person’s email address has changed |
| Out-Of-Office | Temporary unavailability messages |
| Auto Reply | Generic automated responses (e.g., “Thanks, we received your message”) |
| Spam | Irrelevant or junk messages |
| Other | Anything that doesn’t fit another category |
Writing a good category prompt
The prompt is the most important part of each category. Mary reads it literally, so the more specific and clear you are, the more accurately she’ll classify. Here are real examples from the product:Unsubscribe prompt example
Unsubscribe prompt example
“Real people asking to be removed from our email list. Look for phrases like ‘please remove me,’ ‘stop emailing me,’ or ‘why am I still getting these emails.’ Be careful — don’t count emails that just have ‘unsubscribe’ in the footer, those are usually spam.”Notice how this prompt tells Mary both what to look for and what to explicitly rule out. That kind of nuance matters — without the second sentence, promotional emails with unsubscribe footers could be miscategorized.
Left Company prompt example
Left Company prompt example
“Automatic replies saying the person doesn’t work at that company anymore. Messages like ‘John no longer works here’ or ‘This employee has left the organization.’ No new contact info is provided.”This prompt also distinguishes Left Company from a similar-looking scenario — because if a replacement contact is mentioned, that’s worth noting separately in the data extraction step.
Out-Of-Office prompt example
Out-Of-Office prompt example
“Automatic responses indicating that the recipient is currently unavailable. Common phrases include ‘out of office,’ ‘on vacation,’ or ‘will return on [date].’ These are temporary — the person will be back.”The final sentence (“the person will be back”) is a conceptual cue for Mary that helps her distinguish this from Left Company, where the person is gone permanently.
Extract Data
For some categories, it’s not enough to simply classify the email — you need to pull specific information out of it. That’s what the Extract Data step is for.
| Field name | Description |
|---|---|
newContactEmail | Email address of a replacement contact, if provided |
newContactName | Name of a replacement contact, if provided |
| Field name | Description |
|---|---|
returnDate | The date the person will return, if provided |
newContactEmail.
Mark a field as Required if the email must contain that data to be
processed. If a required field can’t be found, the email will be flagged for
review rather than processed automatically.
Actions
Actions are what Mary does after classifying and extracting data from an email. They run automatically the moment a match is confirmed.
- Sync Lead to Marketo — Update one or more fields on a Marketo lead record. You can set static values (e.g.,
unsubscribed = true) or use dynamic variables from Mary’s classification (e.g.,unsubscribedReason = [allGood] {{ classification }}: {{ rationale }}). - Add to Marketo Static List — Add the sender’s email address to a specific Marketo static list. The list is identified by ID, and allGood will display the list name for confirmation.
- Sync Lead to Marketo
unsubscribed→trueunsubscribedReason→[allGood] {{ classification }}: {{ rationale }}
- Add to Marketo Static List
- Email Address:
{{ from.address }} - List:
Unsubscribed by Mary(ID: 19044)
- Email Address:
Messages
The Messages page gives you a live view of every email Mary has processed.
- The email subject line
- The sender’s name and email address
- The category Mary assigned to it (e.g.,
→ Human Request)
Filtering by category
Use the tab bar at the top to filter the view by category. Click Unsubscribe to see only unsubscribe replies, Bounce for bounces, and so on. Recents shows the most recently processed emails regardless of category.
Inspecting an individual email
Click any message card to open a detailed view. This shows you:- The full email body
- The classification Mary assigned and exactly why she made that call — Mary explains her reasoning in plain English

- Classify Email — Mary’s reasoning for the category she chose
- Extract Fields — The values Mary pulled from the email body
- Fetch Data — Any data retrieved from external systems (e.g., Marketo) before extraction
- Execute Actions — Which actions ran and their outcomes
- Original Email — The raw email as it arrived
Search
The Search page lets you find specific emails across all processed messages. It’s especially useful for debugging — for instance, if you want to confirm that a specific contact’s reply was picked up and classified correctly.
| Field | What you can search |
|---|---|
Category | Filter by classification (e.g., all “Unsubscribe” emails) |
from | Find emails from a specific sender address |
body | Search the full text of the email body |
cc | Find emails where a specific address was CC’d |
newContactEmail | Find emails where a replacement contact was extracted |
newContactName | Find emails where a replacement contact name was extracted |
newEmail | Find emails where a new email address was extracted |
returnDate | Find Out-Of-Office emails with a specific return date |
received_at | Search by when the email was received |
metadata | Search across message metadata |