This workflow follows the Google Drive → HTTP Request 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 →
{
"name": "VeriGrade - Receipt Processing & Categorization",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "receipt-upload",
"responseMode": "responseNode"
},
"id": "webhook-receipt",
"name": "Receipt Uploaded",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
240,
300
]
},
{
"parameters": {
"operation": "extractText",
"binaryPropertyName": "data",
"options": {
"ocrEngine": "tesseract"
}
},
"id": "ocr-extract",
"name": "OCR Extract Data",
"type": "n8n-nodes-base.ocrTextExtraction",
"typeVersion": 1,
"position": [
460,
300
]
},
{
"parameters": {
"url": "https://backend-lspqvhnjp-robertotos-projects.vercel.app/api/ai/categorize-receipt",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "receiptText",
"value": "={{ $json.text }}"
},
{
"name": "merchant",
"value": "={{ $json.body.merchant }}"
},
{
"name": "amount",
"value": "={{ $json.body.amount }}"
}
]
}
},
"id": "ai-categorize",
"name": "AI Categorization",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
680,
300
]
},
{
"parameters": {
"url": "https://backend-lspqvhnjp-robertotos-projects.vercel.app/api/expenses",
"method": "POST",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "merchant",
"value": "={{ $json.merchant }}"
},
{
"name": "amount",
"value": "={{ $json.amount }}"
},
{
"name": "category",
"value": "={{ $json.category }}"
},
{
"name": "date",
"value": "={{ $json.date }}"
},
{
"name": "receiptUrl",
"value": "={{ $('Receipt Uploaded').json.body.receiptUrl }}"
}
]
}
},
"id": "create-expense",
"name": "Create Expense Record",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [
900,
300
]
},
{
"parameters": {
"resource": "file",
"operation": "upload",
"name": "={{ $json.merchant }}_{{ $json.date }}.pdf",
"binaryData": true,
"folderId": "={{ $json.categoryFolderId }}"
},
"id": "save-receipt",
"name": "Save to Drive",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
900,
400
]
},
{
"parameters": {
"content": "\ud83e\uddfe New Receipt Processed\n\nMerchant: {{ $json.merchant }}\nAmount: ${{ $json.amount }}\nCategory: {{ $json.category }}\nDate: {{ $json.date }}\n\n\u2705 Categorized & Filed",
"channel": "#receipts"
},
"id": "notify-team",
"name": "Notify Team",
"type": "n8n-nodes-base.slack",
"typeVersion": 2.1,
"position": [
1120,
300
]
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ JSON.stringify({ success: true, category: $json.category, merchant: $json.merchant, amount: $json.amount }) }}"
},
"id": "response",
"name": "Response",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
1340,
300
]
}
],
"connections": {
"Receipt Uploaded": {
"main": [
[
{
"node": "OCR Extract Data",
"type": "main",
"index": 0
}
]
]
},
"OCR Extract Data": {
"main": [
[
{
"node": "AI Categorization",
"type": "main",
"index": 0
}
]
]
},
"AI Categorization": {
"main": [
[
{
"node": "Create Expense Record",
"type": "main",
"index": 0
},
{
"node": "Save to Drive",
"type": "main",
"index": 0
}
]
]
},
"Create Expense Record": {
"main": [
[
{
"node": "Notify Team",
"type": "main",
"index": 0
}
]
]
},
"Save to Drive": {
"main": [
[
{
"node": "Notify Team",
"type": "main",
"index": 0
}
]
]
},
"Notify Team": {
"main": [
[
{
"node": "Response",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {},
"versionId": "1",
"id": "verigrade-receipt-processing"
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
VeriGrade - Receipt Processing & Categorization. Uses ocrTextExtraction, httpRequest, googleDrive, slack. Webhook trigger; 7 nodes.
Source: https://github.com/robertotorres1222-beep/verigrade-bookkeeping-platform/blob/20eaf88ca92b73417b9cc8abe2b8ec17eec5ceaa/n8n-workflows/3-receipt-processing.json — 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 AI-assisted clean plate and object removal pipeline built for modern VFX production environments. It transforms a single plate image and removal brief into multiple high-quality cl
This workflow is an AI-driven FX concept generation pipeline that transforms a single VFX brief into multiple high-quality simulation-ready video concepts. It automates ideation, rendering, storage, a
Automate end-to-end AI video creation by transforming text scripts into professional avatar videos with natural voiceovers. 🎬🤖 This workflow receives a script via webhook, generates realistic audio us
App Screenshot Generator - Multi-Device App Store. Uses n8n-nodes-sudomock, httpRequest, compression, googleDrive. Webhook trigger; 15 nodes.
HR teams, IT Operations, and System Administrators managing employee onboarding at scale. It’s perfect if you use Odoo 18 to trigger account requests and need Redmine + GitLab accounts created instant