Incorrect data pulled using EmailParser+Zap when not all 'fields' in a template appear in the email
Hi Community!
I wasn’t able to get a clear solution from the support team on this so wanted to see if anyone on the Community had any suggestions.
We are pulling information from automated emails produced by a CRM system we use in to a Google Sheet using the Email Parser and a Zap.
The automated emails have a number of templates, and generally are working well, with fields being correctly found, and data is appearing 80% of the time in the correct cells and columns in the sheet.
However, issues arise when some of the fields set up in the Zap for each cell are not in the emails. The parser data for the email is correct when you look at the ‘output’, but because the Zap expects this field data when it runs, instead of leaving the cell empty, it starts pulling data from another random bit of the email.
I’d like to have a rule that says if field A exists in a Zap, but field B does not, just ignore it.
Here is a snapshot of two different email sections, one contains 3 fields we want, the second just 2. If the Zap itself does not get the 3rd involved field, it often pulls random sections of email and puts it in the cell with the first two.
In the first email example below you can see that there are three fields marked as 'Involved':
Any suggestions on how to have the Zap ignore the fact that there is not a involved3 in the ‘output’ and not try and fill the cell with random information?
Thank you!
Thomas
Page 1 / 1
Hi @ThomasU100
Thanks for reaching out to the Community!
I’m sorry you’re having issues with your Zap.
Before we dig deeper into this, could you send screenshots of how you’ve configured the steps of your Zap so far? (If there’s any personal information, kindly blur them.)
That’ll help me make sure I give you the best suggestion possible.
Thanks Charie
Here is a snapshot of the Zap that is causing the issues.
As I showed in my two examples in the original post, if there is only 2 of the ‘Involved’ fields pulled in from the email parser because Involved 3 is not present, I get repeated content or spurious bits from other fields getting pushed to the Google Sheet.
The Support desk mentioned you could make Involved 2 or 3 optional, but I can’t see a way to do that in either Parser or Zapier
Does this screenshot help?
Thanks
Hey there @ThomasU100,
I’m jumping in to see if I can help!
Would you mind taking a look at this Community post on common issues, workarounds, and tips for Email Parser? It might have some helpful information that could address the issue you're encountering.
Please keep us posted!
Hi Ken
Nothing in there shows me how to make Parser fields optional in the Zap itself.
As I said, sometimes all fields in the Parser templates are present, sometimes they aren’t, the Zap expects all of them, when it doesnt get all of them, the Zap pulls other data. The Parser output is actually correct.
Thanks
Hi @ThomasU100!
Hmm, I’m not aware of a specific option to make a template field optional in Email Parser by Zapier. It’s possible our Support team got mixed up with another app on Zapier that does have that option. So sorry about the incorrect information that was given to you on that!
As Email Parser is outputting data from other fields when one of the “Involved” fields doesn’t have a value then your best bet will be to add some additional templates to help train it on how to handle situations where not all three “Involved” fields have a value. That should help to prevent it from taking data from other fields and have no value passed to the Google Sheet for the empty field instead.
Alternatively, I’m not sure what CRM you’re using but is it be possible to set all the “Involved” fields to be required? Or to perhaps set a default value for them within the CRM itself? Just thinking that would help to ensure that a value would always be available for each of the “Involved” fields and should help to avoid the issue.
Can you give those suggestions a try and let us know how that goes?
Hi Sam
Thanks for your reply. The issue is actually in Zapier, the fields are read correctly in Parser (I have ten templates and counting!).
In the Zap, as per the screenshot, it expects Involved1, Involved2, Involved3 - but if Involved2 or Involved3 are missing from that email, then the Zap itself pulls random information or duplicates Involved1 in to the sheet. Is there a workaround for that in the actual Zap design?
Thanks
Hi @ThomasU100!
If I’ve understood correctly, the issue is: when there isn’t information for one of the Involved field in the email, the Email Parser pulls other information from the email and uses that instead. Is that right?
If that’s the case then you’ll likely need to use a different app to extract the information from the emails. Email Parser by Zapier works best when any emails that are sent to it are in exactly the same format. It starts running into problems if there are any differences in the emails (eg one of the involved fields isn’t included).
You could try a paid-for parser app, like Mailparser or Parserr, as apps built specifically for this purpose are more robust. If you have an OpenAI account, you could also try using that in a Zap to parse the email. There’s an article in the community about doing that here: Use OpenAI with Zapier to parse an email (or other data). I think you could also do this using AI by Zapier, which you don’t need an OpenAI account for. I’ve not used it myself so I’m not 100% sure, but there’s a guide here that explains how it works iif you want to give it a try: Use AI in Zaps to analyze and parse text
I hope that helps, please let us know if you have any questions!
Hi Denver
Thanks for all the information, good to see other routes possible.
As per my previous post, I think your Email Parser is outputting correctly, and is correctly NOT outputting fields that dont exist - however, the Zap asks for an Involved3 for a cell, and this is where the problem comes in.
Zapier should ignore if fields asked for are not present from Parser.
A picture says a thousand words in the attached, albeit with blurs for confidentiality.
I have taken a screenshot of the email output, as you can see, no Involved3 is present, and the parser correctly marks Involved1, and Involved2, and then the large ‘BookingNote’ field. There are no fields marked for Involved3 in the output/screenshot as you can see, which is correct.
However, you can see it in the Zap screenshot, it is pulling a random bit of text from the ‘BookingNote’ field, a URL which is part of the body of the ‘bookingnote’ field, this seems very odd.
I would propose that a bug fix for the Zap team: if Parser does not output certain fields, yet they are present in a Zap for a Google Sheet Cell rule, ignore them and leave blank. Otherwise the Zap pushes random email text to the Sheet.
I’ll look in to your other options if thats the only now available, hope this gives more clarity
Thanks
Thanks for your reply and the screenshots @ThomasU100
What I’m still not sure about is what the Parser is outputting when there isn’t an ‘involved 3’ field in the email. You said that there’s no ‘Involved 3’ in the output, but in the second screenshot, there is information in the Involved 3 field:
If you go to the Zap history and look at a run where there shouldn’t be an ‘involved 3’ field, what do you see in the ‘Data out’ for the Parser step. If you type “output” in the search field on the data out tab, it’ll show you the output of the Email Parser step:
On an example where the wrong information was added to Google Sheets, what do you see in those fields? Is there nothing there, or is there incorrect information?
Hi Danvers
This is useful advice, I can see that its pulling an ‘Involved3’ section of text from Parser. Although its not possible to see this in Parser easily (as ‘BookingNote’ actually pulls the whole paragraph in yellow) it looks like Parser is pulling text inside that paragraph to fill a random ‘Involved3’.
I have rechecked the ‘output’ page in Parser and it is showing Involved3 picking up the section of paragraph later in the email, so it does appear that Parser is trying to seek out Involved3 at all costs!
Looks like we will need to look at more advanced parser software as you have suggested.
Thanks for giving me the valuable clues to investigate
Thomas
Hi @ThomasU100!
You can also look into using OpenAI to parse:
It may not always be practical, but I thought I would share just in case you found it helpful :)