How it works
- Input: Google Sheets provides “Expected Content” rows (one per block/section).
- HTML Parse: A JS/HTML step extracts Actual Content from the email’s HTML (from Gmail or any provided HTML source).
- Merge: Expected and Actual items are merged into aligned pairs for comparison.
- Compare: A JS node compares strings and produces a Result (Pass/Fail). (This flow intentionally stops at the result and does not compute a mismatch reason.)
- Log: The workflow writes back “Actual Content” + “Result” to Google Sheets for reporting.
Setup steps
- Google Sheets
Create a sheet with columns: SectionId, ExpectedContent, ActualContent, Result.
Populate SectionId + ExpectedContent for each content block you want to verify.
- Email HTML source
Use a Gmail node to pull message HTML or use HTTP Request/Read Binary File + HTML/JS to supply the HTML.
- Extraction logic (JS/HTML)
Implement selectors/XPaths/DOM parsing for each SectionId to extract Actual Content.
Normalize whitespace and trim HTML entities for a fair comparison.
- Merge & Compare
Merge on SectionId to align Expected ↔ Actual.
In the Code (JS) node, compare strings and set Result to Pass if equal (or meets your rule), otherwise Fail.
- Write back
Use Google Sheets to update ActualContent and Result for each row.
Requirements
n8n with access to: Google Sheets, Code/HTML, and (optionally) Gmail nodes.
A Google Sheets document with at least these columns:
SectionId (or Key)
ExpectedContent
ActualContent (output)
Result (output: Pass/Fail)
Access to the email HTML (Gmail node, HTTP fetch, or paste‑in).