n8n monitors Expensify for new expenses, logs them in Google Sheets and alerts the team on Slack if budgets are exceeded.
Prepare n8n Environment
Navigate to http://localhost:5678 (or your n8n URL) and log in with your credentials. In the sidebar, click “Workflows,” then select “+ New” and name it (e.g., “Expense Tracker”). Click “+” on the canvas to open the node selector.
Trigger Node: Expensify
Node: HTTP Request
Settings:
URL: https://integrations.expensify.com/Integration-Server/ExpensifyIntegrations
Method: POST
Body: { "type": "report", "credentials": { "partnerUserID": "<ID>", "partnerUserSecret": "<Secret>" } }
Output: New expense data (e.g., {{ $json.reports[0].amount }}).
Log Expense Node: Google Sheets
Node: Google Sheets
Settings:
Operation: Append
Spreadsheet ID: Expense sheet
Range: A:C
Values: {{ [$node["HTTP Request"].json.reports[0].created, $node["HTTP Request"].json.reports[0].amount, $node["HTTP Request"].json.reports[0].merchant] }}
Output: Expense logged.
Check Budget Node: Function
Node: Function
Settings:
Code:
const total = $node["Google Sheets"].json.reduce((sum, row) => sum + row[1], 0); return [{ json: { overBudget: total > 5000 } }];
Output: Budget status.
Alert Node: Slack
Node: Slack
Settings:
Credentials: Slack Bot Token
Channel: #finance
Text: Budget Alert: Expenses at ${{ $node["Google Sheets"].json.reduce((sum, row) => sum + row[1], 0) }}
Condition: {{ $node["Function"].json.overBudget }}
Output: Alert sent if over budget.
Flow: HTTP Request → Google Sheets → Function → Slack.
Execution: ~15 seconds per expense.
Saves ~1 hour/week on tracking.
Prevents overspending with alerts.
Maintains financial visibility.
Ready to transform your business with our technology solutions? Contact Us today to Leverage Our AI/ML Expertise.