Parse reference letters from Gmail with easybits and Google Sheets
UnknownUnknown. This template uses community nodes we can't verify statically. Uses community nodes that can't be verified statically (unverified community packages are off by default in 3.0). Static check, last run 2026-10-19.
Worth a look
- Gmail Trigger below v1.4 runs as v1.4 (drafts skipped, max emails per poll) (Gmail Trigger)
Community nodes
These come from third-party npm packages. In n8n 3.0 unverified community packages are off by default (N8N_UNVERIFIED_PACKAGES_ENABLED=false).
@easybits/n8n-nodes-extractor(Extract Reference: Letter)
Nodes used (7)
- Gmail Trigger
n8n-nodes-base.gmailTrigger - Code
n8n-nodes-base.code - Filter
n8n-nodes-base.filter - Loop Over Items (Split in Batches)
n8n-nodes-base.splitInBatches - Easybits Extractor
@easybits/n8n-nodes-extractor.easybitsExtractor - Google Sheets
n8n-nodes-base.googleSheets - Gmail
n8n-nodes-base.gmail
What it does
Quick overview This workflow watches a Gmail label for reference-check emails, extracts structured fields from attached reference letters using easybits Extractor, calculates a sentiment score, and appends one comparable row per letter to a Google Sheets “References” tab, then relabels the processed email. How it works 1. Triggers every minute when a new email appears under the selected Gmail label and downloads its attachments. 2. Splits the email into one item per attachment and keeps only real document files (PDF/JPG/PNG/TIFF), excluding likely logos and signatures by filename. 3. Processes each remaining attachment one at a time and sends it to easybits Extractor to pull structured reference fields (for example candidate name, strengths, weaknesses, and would-rehire). 4. Normalizes the extracted fields into consistent formats and enums, then computes a deterministic 0–100 sentiment score and high/mid/low tier. 5. Appends a new row with the normalized fields, score, and timestamp to a Google Sheets spreadsheet. 6. Removes the source email from the trigger label and adds a “processed” label in Gmail to prevent double-processing. Setup 1. Connect Gmail OAuth2 credentials and set up two Gmail labels (one to trigger on for incoming references and one to mark processed), then configure the trigger and label actions to use those label IDs. 2. Install and connect the easybits Extractor community node (if self-hosted) and add your easybits Extractor API credentials. 3. Connect Google Sheets OAuth2 credentials and select the target spreadsheet and the “References” sheet/tab with columns matching the fields the workflow writes (candidate name, referee details, strengths/weaknesses text, tone, would rehire, sentiment score/tier, notable quote, received at).