Skip to main content

Track expenses from receipt photos with AI, Google Sheets & Slack reports

Workflow preview

Workflow preview
100%
Track expenses from receipt photos with AI, Google Sheets & Slack reports preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Who’s it for This template is for individuals or households who want to: Easily digitize and track their spending from physical receipts. Automate budget management and financial reporting. Get qui...

Best for

  • Invoice Processing automation workflows
  • AI Summarization automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, n8n-nodes-base.googlesheets, n8n-nodes-base.code, n8n-nodes-base.slack, @n8n/n8n-nodes-langchain.lmchatopenrouter, @n8n/n8n-nodes-langchain.agent, n8n-nodes-base.cron, n8n-nodes-base.stickynote

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by takuma.

Original n8n.io source

1.1 Workflow description

Title
Track expenses from receipt photos with AI, Google Sheets & Slack reports
Workflow name
Track expenses from receipt photos with AI, Google Sheets & Slack reports

Who’s it for

This template is for individuals or households who want to:

  • Easily digitize and track their spending from physical receipts.
  • Automate budget management and financial reporting.
  • Get quick insights into their spending habits on a daily and monthly basis.
  • Stay informed about their remaining budget through Slack notifications.

What it does

This workflow automates your household budget tracking in several steps:

  1. Receipt Photo Upload: You upload a photo of your receipt to a webhook.
  2. Parse Receipt: An AI agent extracts the date, store name, purchased items, and total amount from the receipt text.
  3. Add to Budget Sheet: The extracted data is then appended to your designated Google Sheet.
  4. Daily Budget Report: After each receipt entry, the workflow calculates your current month's spending, remaining budget, and sends a summary to Slack.
  5. Monthly Budget Report: Once a day (triggered by a cron job), it reads all budget data for the current month from Google Sheets, performs an analysis (total spending, daily average, top stores, items, and spending days), and sends a comprehensive report to Slack.

How to set up

Requirements

  • n8n Account: Self-hosted or Cloud.
  • Google Sheets: A Google Sheet set up with columns for "Date", "Store", "Items", and "Amount".
  • Slack Workspace: A Slack channel where you want to receive budget updates.
  • OpenRouter Account: An API key for OpenRouter to use their chat models.

Steps

  1. Google Sheets Setup:

    • Create a new Google Sheet (or use an existing one) and name it "Household Budget".
    • In the first sheet (e.g., "Sheet1"), set up the following headers in the first row: "Date", "Store", "Items", "Amount".
    • Share the Google Sheet with the service account email associated with your n8n Google Sheets credentials, granting "Editor" access.
    • In the 'Add to Budget Sheet' and 'Get Budget Sheet (Daily)' nodes, select your Google Sheet and the appropriate sheet name.
  2. OpenRouter Credentials:

    • Sign up or log in to OpenRouter (https://openrouter.ai/).
    • Generate an API key.
    • In n8n, create a new "OpenRouter" credential using your API key. Apply this credential to the 'OpenRouter Chat Model1', 'OpenRouter Chat Model2', and 'OpenRouter Chat Model' nodes.
  3. Slack Credentials:

    • In n8n, create a new "Slack" credential. Follow the instructions to connect your Slack workspace.
    • In the 'Send a message' and 'Send monthly report' nodes, select the Slack channel where you want to receive messages.
    • Make sure the Slack app has permission to post to the selected channels.
  4. Webhook URLs:

    • After activating the workflow, the 'Receipt Photo Upload' node will generate a webhook URL. Copy this URL. You will use this URL to send receipt text (e.g., from a mobile app that scans text).
  5. Monthly Budget Adjustment:

    • In the 'Code in JavaScript2' node, locate the line const budget = 30000; and change 30000 to your desired monthly budget in JPY.

How to customize the workflow

Daily Report Trigger

The 'Daily Report Trigger' node is set to run once a day. You can modify its schedule to trigger more or less frequently by adjusting its cron settings.

AI Model

You can change the AI models used in the 'OpenRouter Chat Model' nodes to any other large language model supported by n8n, such as OpenAI, Anthropic, or custom hosted models, by updating the credentials and model names.

Output Formatting

The Slack messages generated by the 'Report Budget' and 'Monthly Report' nodes can be customized by editing the systemMessage and text parameters in those nodes to change the tone, content, or language of the reports.

Additional Integrations

You can extend this workflow by adding more nodes:

  • Integrate with other accounting software.
  • Send notifications to different platforms (e.g., email, Discord, Telegram).
  • Add sentiment analysis to your spending habits.
  • Categorize expenses automatically based on items or stores using another AI node.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Receipt Photo Upload

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2.1

Block 2 - Add to Budget Sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 3 - Code in JavaScript2

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 4 - Send a message

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.3

Block 5 - OpenRouter Chat Model1

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenRouter - lmChatOpenRouter
Config choices
Version 1

Block 6 - Code in JavaScript

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 7 - OpenRouter Chat Model2

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenRouter - lmChatOpenRouter
Config choices
Version 1

Block 8 - Parse Receipt

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 3

Block 9 - Report Budget

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 3

Block 10 - Daily Report Trigger

Type / Role
n8n-nodes-base.cron - cron
Config choices
Version 1

Block 11 - Get Budget Sheet (Daily)

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 12 - Monthly Analysis

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 13 - Monthly Report

Type / Role
@n8n/n8n-nodes-langchain.agent - agent
Config choices
Version 3

Block 14 - Send monthly report

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.3

Block 15 - OpenRouter Chat Model

Type / Role
@n8n/n8n-nodes-langchain.lmChatOpenRouter - lmChatOpenRouter
Config choices
Version 1

Block 16 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 17 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 18 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Track expenses from receipt photos with AI, Google Sheets & Slack reports
Complexity advanced
Nodes 18
Categories Invoice Processing, AI Summarization
Author takuma
Published 18 Nov 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/10970/10970.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Track expenses from receipt photos with AI, Google Sheets & Slack reports do?

Who’s it for This template is for individuals or households who want to: Easily digitize and track their spending from physical receipts. Automate budget management and financial reporting. Get qui...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Invoice Processing, AI Summarization use case.