This workflow corresponds to n8n.io template #7269 — we link there as the canonical source.
This workflow follows the Gmail → Gmail Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "030584dd-ad50-49e3-a12e-49ccd867ae8c",
"name": "Every Day at 8 AM",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-80,
0
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "6b5f5472-b602-4775-b010-5b5a0fe77be5",
"name": "New Email Receipt Received",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
-80,
-192
],
"parameters": {
"filters": {
"labelIds": [
"Label_1709246557347095595"
]
},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "bbd5cdaf-905a-4f5d-abb8-ff736e4b5aa9",
"name": "Get New Receipt from Email",
"type": "n8n-nodes-base.gmail",
"position": [
176,
-96
],
"parameters": {
"simple": false,
"filters": {
"labelIds": [
"Label_1709246557347095595"
]
},
"options": {},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "6f5e3ebf-fef1-4508-be4e-0e7d9f106c01",
"name": "Forward the Receipt to QBO",
"type": "n8n-nodes-base.gmail",
"position": [
416,
-96
],
"parameters": {
"sendTo": "user@example.com",
"message": "={{ $json.html }}",
"options": {
"appendAttribution": false
},
"subject": "Email Receipt"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "2c05914d-8b61-4449-b55f-fe280939446c",
"name": "Remove the Old Label",
"type": "n8n-nodes-base.gmail",
"position": [
656,
-96
],
"parameters": {
"labelIds": [
"Label_1709246557347095595"
],
"messageId": "={{ $('Get New Receipt from Email').item.json.id }}",
"operation": "removeLabels"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "1cab2ebf-4f27-401c-a65e-d98486d367e7",
"name": "Add the \"Processed\" Label",
"type": "n8n-nodes-base.gmail",
"position": [
864,
-96
],
"parameters": {
"labelIds": [
"Label_3375203355533515697"
],
"messageId": "={{ $('Get New Receipt from Email').item.json.id }}",
"operation": "addLabels"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "5645be8e-7cfc-47be-b492-9901877fb0d5",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-928,
-752
],
"parameters": {
"width": 736,
"height": 1328,
"content": "## Automatically Forward Email Receipts to QuickBooks Online\n\n## What It Does \nAre you tired of manually uploading email receipts to QuickBooks Online (QBO)? Are your email forwarding rules difficult to set up or unreliable? This n8n workflow automatically forwards your email receipts to QuickBooks Online with minimal configuration.\n\n## Example Use Cases \n- Online purchase and subscription receipts \n- E-transfer confirmations \n- Bills and invoices received from suppliers \n- Expense reports sent by vendors \n- Payment confirmation emails\n- Send other people's emails to QBO, bypassing the forwarding restrictions\n\n## Prerequisites \nTo use this workflow, you'll need: \n- A Gmail account with credentials configured in n8n \n- QuickBooks Online account with receipt forwarding enabled \n\n## How to Set Up Gmail \n1. Search for emails that contain receipts (e.g., subject contains \"Interac E-transfer\") \n2. Create a Gmail filter that automatically applies a specific label to those emails (e.g., \"New E-Transfer\") \n3. Create another label for processed emails to prevent duplicate processing (e.g., \"Processed\") \n\n## How It Works \n1. **Trigger:** The workflow runs when a new receipt is received; a scheduled trigger acts as a failsafe to catch missed emails. \n2. The first Gmail node retrieves emails with the \"new receipt\" label. \n3. The second Gmail node forwards the exact email contents to QuickBooks Online, mimicking a forwarded email. \n4. The workflow removes the original \"new receipt\" label and applies the \"processed\" label to avoid duplicate forwarding. \n\n## How to Use \n- Configure each Gmail node with your Gmail credentials in n8n. \n- Enter your QuickBooks Online receipt forwarding email address in the second Gmail node (e.g., example@qbdocs.com). \n- Set up the appropriate labels in each Gmail node to match your Gmail filter and workflow logic. \n\n## Customization Options \n- Modify the Gmail nodes to download and forward attachments if necessary. \n- Create separate workflows for different types of emails; for example, include vendor information in the subject line (e.g., \"Your Instacart Order Receipt\") to help QuickBooks categorize expenses. \n- Add error handling and notifications to monitor workflow execution. \n\n## Why It's Useful \n- Saves time by automating manual forwarding of receipts to QuickBooks Online. \n- Reduces errors and missed receipts that can occur with manual processing. \n- Keeps your QuickBooks records up-to-date automatically. \n- Provides a scalable solution for handling various receipt types and vendors. \n- Easily customizable to fit your specific email and accounting workflows.\n"
},
"typeVersion": 1
},
{
"id": "214f3e76-bad5-485e-a093-e302642c7adf",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
112,
-192
],
"parameters": {
"color": 7,
"width": 224,
"height": 288,
"content": "This node will look for emails with the label you've selected"
},
"typeVersion": 1
},
{
"id": "813e7187-18e0-4d52-b39c-142de6041603",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
352,
-192
],
"parameters": {
"color": 7,
"width": 224,
"height": 288,
"content": "Please setup your QBO forwarding address here"
},
"typeVersion": 1
},
{
"id": "a50aac4a-8fb7-457b-a3dc-55879f50c547",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
592,
-192
],
"parameters": {
"color": 7,
"width": 448,
"height": 288,
"content": "This process prevents duplicate emails from being sent to QBO"
},
"typeVersion": 1
},
{
"id": "3d24c1e3-e40d-4f05-baff-7b5e34bec23b",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-352
],
"parameters": {
"color": 7,
"width": 256,
"height": 512,
"content": "The workflow executes when a new email with the matching label is received.\n\nA failsafe checks for emails that may have been missed"
},
"typeVersion": 1
}
],
"connections": {
"Every Day at 8 AM": {
"main": [
[
{
"node": "Get New Receipt from Email",
"type": "main",
"index": 0
}
]
]
},
"Remove the Old Label": {
"main": [
[
{
"node": "Add the \"Processed\" Label",
"type": "main",
"index": 0
}
]
]
},
"Forward the Receipt to QBO": {
"main": [
[
{
"node": "Remove the Old Label",
"type": "main",
"index": 0
}
]
]
},
"Get New Receipt from Email": {
"main": [
[
{
"node": "Forward the Receipt to QBO",
"type": "main",
"index": 0
}
]
]
},
"New Email Receipt Received": {
"main": [
[
{
"node": "Get New Receipt from Email",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Are you tired of manually uploading email receipts to QuickBooks Online (QBO)? Are your email forwarding rules difficult to set up or unreliable? This n8n workflow automatically forwards your email receipts to QuickBooks Online with minimal configuration. Online purchase and…
Source: https://n8n.io/workflows/7269/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow is an automated invoice payment tracking and reminder system for the Polish accounting service iFirma.pl. It monitors unpaid and overdue invoices, then automatically sends escalating rem
Automatically extract structured information from emails using AI-powered document analysis. This workflow processes emails from specified domains, classifies them by type, and extracts structured dat
This weekly workflow helps you stay on top of SEO visibility losses by automatically detecting when your previously strong keywords fall out of Google’s top 10 results.
2025-12-03 fix JS code in node
What This Flow Does