n8n Finance Workflow Templates: 10 Automation-Blueprints für KMU

Production-Ready n8n-Workflows für Schweizer KMU: Invoice Automation, Expense Tracking, Bank Reconciliation, MWST-Meldung, Bexio-Integration, Self-Hosted.
Reporting by Lena Müller Team, SwissFinanceAI Redaktion
Überblick
n8n = Open-Source Workflow Automation (Alternative zu Zapier, Make.com).
Vorteile:
- ✅ Self-Hosted: Daten bleiben in Schweiz (DSG/nDSG-konform)
- ✅ Kostenlos: Unlimitierte Workflows (Zapier: ab CHF 50/Monat)
- ✅ 400+ Integrationen: Bexio, Gmail, Slack, HTTP, SQL, etc.
- ✅ Code-Support: JavaScript, Python (für komplexe Logik)
Dieser Guide liefert 10 Production-Ready Workflows für Schweizer KMU:
- Invoice Automation (E-Mail → Bexio)
- Expense Tracking (Receipt → OCR → Bexio)
- Bank Reconciliation (EBICS → Bexio)
- MWST-Meldung (automatische Quartalsabrechnung)
- Payment Reminder (überfällige Rechnungen)
- Cash Flow Forecast (wöchentlicher Report)
- Client Onboarding (Neuer Kunde → Bexio + CRM)
- Payroll Automation (Lohnzettel generieren)
- Compliance Alert (FINMA-Meldepflicht prüfen)
- Dashboard Reporting (Slack/E-Mail-Zusammenfassung)
1. n8n Installation (Self-Hosted)
Option A: Docker Compose (empfohlen)
1.1 docker-compose.yml
version: '3.8'
services:
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=your_secure_password
- N8N_HOST=n8n.yourcompany.com
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://n8n.yourcompany.com/
- GENERIC_TIMEZONE=Europe/Zurich
volumes:
- n8n_data:/home/node/.n8n
postgres:
image: postgres:15
restart: always
environment:
- POSTGRES_USER=n8n
- POSTGRES_PASSWORD=n8n_password
- POSTGRES_DB=n8n
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
n8n_data:
postgres_data:
1.2 Starten
# Starten
docker-compose up -d
# Logs prüfen
docker-compose logs -f n8n
# Öffnen: http://localhost:5678
Option B: n8n Cloud (CHF 20/Monat, hosted by n8n.io)
- Schnellster Start (kein Setup)
- Aber: Daten in EU (nicht Schweiz)
2. Bexio-Credentials einrichten
n8n → Credentials → New Credential → Bexio OAuth2 API
Angaben:
- Client ID: (von Bexio Developer Portal)
- Client Secret: (von Bexio Developer Portal)
- Redirect URL:
https://n8n.yourcompany.com/rest/oauth2-credential/callback
OAuth-Flow durchführen → Bexio-Zugriff autorisieren
3. Workflow Templates
Template 1: Invoice Automation (E-Mail → Bexio)
Trigger: Neue E-Mail mit PDF-Anhang
Workflow:
1. Gmail Trigger (neue E-Mail mit "Rechnung" im Betreff)
2. Extract Attachment (PDF speichern)
3. HTTP Request: GPT-4 Vision API (PDF → JSON: Lieferant, Betrag, Datum)
4. Bexio: Lieferant suchen (oder erstellen)
5. Bexio: Kreditorenrechnung erstellen
6. Slack: Benachrichtigung "Neue Rechnung in Bexio erfasst"
n8n JSON (Import-Ready):
{
"nodes": [
{
"parameters": {
"pollTimes": {"item": [{"mode": "everyMinute"}]},
"filters": {
"subject": "Rechnung"
}
},
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmail",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"operation": "download",
"binaryPropertyName": "attachment_0"
},
"name": "Extract Attachment",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [450, 300]
},
{
"parameters": {
"url": "https://api.openai.com/v1/chat/completions",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "openAiApi",
"method": "POST",
"jsonParameters": true,
"body": {
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Extract: supplier, amount, date (JSON)"},
{"type": "image_url", "image_url": {"url": "data:application/pdf;base64,{{$binary.attachment_0.data}}"}}
]
}
]
}
},
"name": "GPT-4 Vision",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [650, 300]
},
{
"parameters": {
"resource": "contact",
"operation": "create",
"name": "={{$json.supplier}}"
},
"name": "Bexio Create Supplier",
"type": "n8n-nodes-base.bexio",
"typeVersion": 1,
"position": [850, 300]
},
{
"parameters": {
"resource": "bill",
"operation": "create",
"contact_id": "={{$json.id}}",
"amount": "={{$node['GPT-4 Vision'].json.amount}}"
},
"name": "Bexio Create Bill",
"type": "n8n-nodes-base.bexio",
"typeVersion": 1,
"position": [1050, 300]
},
{
"parameters": {
"channel": "#finance",
"text": "✅ Neue Rechnung: {{$node['GPT-4 Vision'].json.supplier}} (CHF {{$node['GPT-4 Vision'].json.amount}})"
},
"name": "Slack Notification",
"type": "n8n-nodes-base.slack",
"typeVersion": 1,
"position": [1250, 300]
}
],
"connections": {
"Gmail Trigger": {"main": [[{"node": "Extract Attachment", "type": "main", "index": 0}]]},
"Extract Attachment": {"main": [[{"node": "GPT-4 Vision", "type": "main", "index": 0}]]},
"GPT-4 Vision": {"main": [[{"node": "Bexio Create Supplier", "type": "main", "index": 0}]]},
"Bexio Create Supplier": {"main": [[{"node": "Bexio Create Bill", "type": "main", "index": 0}]]},
"Bexio Create Bill": {"main": [[{"node": "Slack Notification", "type": "main", "index": 0}]]}
}
}
Import: n8n → Workflows → Import from File → Paste JSON
Template 2: Expense Tracking (Receipt → Bexio)
Trigger: Foto von Beleg in Slack hochgeladen
Workflow:
1. Slack Trigger (Datei hochgeladen in #receipts)
2. Download Image
3. OCR (Tesseract oder Google Vision API): Betrag extrahieren
4. Bexio: Spesen-Kategorie klassifizieren (GPT-4)
5. Bexio: Spesen-Beleg erstellen
6. Slack: "✅ Beleg erfasst (CHF 45,50 - Büromaterial)"
ROI: 100 Belege/Monat × 3 Min = 5h gespart (CHF 425/Monat).
Template 3: Bank Reconciliation (EBICS → Bexio)
Trigger: Täglich 08:00 Uhr (Cron)
Workflow:
1. Cron Trigger (täglich 08:00)
2. HTTP Request: PostFinance EBICS API (camt.053 XML abrufen)
3. XML Parser: Transaktionen extrahieren
4. FOR EACH Transaction:
a. Bexio: Offene Rechnung suchen (QR-Referenz)
b. IF gefunden: Zahlung buchen
c. IF nicht gefunden: Slack-Alert "Unbekannte Zahlung"
5. Slack: "✅ Bank-Abgleich: 15 Zahlungen verbucht, 2 unklar"
Zeitersparnis: 30 Min/Tag → 10h/Monat gespart.
Template 4: MWST-Meldung (Automatische Quartalsabrechnung)
Trigger: Quartalsende (Cron: 31. März, 30. Juni, 30. Sept, 31. Dez)
Workflow:
1. Cron Trigger (Quartalsende)
2. Bexio API: Alle Rechnungen Q1-Q4 abrufen
3. Code Node (JavaScript):
- Umsatz berechnen (Summe aller Rechnungen)
- MwSt. berechnen (8,1% × Umsatz)
4. Generate PDF (MWST-Abrechnung)
5. E-Mail: An Steuerberater (mit PDF-Anhang)
6. Slack: "✅ MWST Q1 2026: CHF 24,300 (PDF an Steuerberater gesendet)"
JavaScript-Code (MwSt. berechnen):
// Bexio-Rechnungen (von vorherigem Node)
const invoices = $input.all();
let total_revenue = 0;
let total_vat = 0;
for (const invoice of invoices) {
const amount = invoice.json.total_gross;
const vat_rate = invoice.json.vat_rate || 8.1;
total_revenue += amount;
total_vat += (amount * vat_rate) / (100 + vat_rate);
}
return {
json: {
quarter: "Q1 2026",
total_revenue: total_revenue.toFixed(2),
total_vat: total_vat.toFixed(2),
net_revenue: (total_revenue - total_vat).toFixed(2)
}
};
Template 5: Payment Reminder (Überfällige Rechnungen)
Trigger: Täglich 10:00 Uhr
Workflow:
1. Cron Trigger (täglich 10:00)
2. Bexio API: Offene Rechnungen abrufen (Fälligkeit < heute)
3. FOR EACH Rechnung:
a. IF 7 Tage überfällig: E-Mail-Mahnung (Stufe 1, freundlich)
b. IF 30 Tage überfällig: E-Mail-Mahnung (Stufe 2, dringend)
c. IF 60 Tage überfällig: Slack-Alert an CFO (Inkasso prüfen)
4. Slack: "⚠️ 3 Rechnungen überfällig (CHF 12,500), Mahnungen versendet"
E-Mail-Template (Stufe 1):
Betreff: Zahlungserinnerung - Rechnung #{{invoice_id}}
Guten Tag {{customer_name}},
unsere Rechnung #{{invoice_id}} (CHF {{amount}}) ist seit {{days_overdue}} Tagen fällig.
Bitte überweisen Sie den Betrag auf folgendes Konto:
IBAN: CH93 0900 0000 1234 5678 9
Referenz: {{qr_reference}}
Freundliche Grüsse
{{company_name}}
Template 6: Cash Flow Forecast (Wöchentlicher Report)
Trigger: Montag 08:00 Uhr
Workflow:
1. Cron Trigger (Montag 08:00)
2. Bexio API: Offene Forderungen abrufen
3. Bexio API: Offene Verbindlichkeiten abrufen
4. Code Node: Prognose berechnen (nächste 4 Wochen)
5. Generate Chart (Matplotlib/QuickChart)
6. E-Mail: An CFO (mit Chart-Bild)
JavaScript-Code (Forecast):
const receivables = $node["Bexio Receivables"].json;
const payables = $node["Bexio Payables"].json;
// Wochenweise gruppieren
const weeks = [1, 2, 3, 4];
const forecast = weeks.map(week => {
const week_receivables = receivables.filter(r => r.week === week).reduce((sum, r) => sum + r.amount, 0);
const week_payables = payables.filter(p => p.week === week).reduce((sum, p) => sum + p.amount, 0);
return {
week: week,
receivables: week_receivables,
payables: week_payables,
net: week_receivables - week_payables
};
});
return {json: {forecast}};
Template 7: Client Onboarding (Neuer Kunde)
Trigger: Webhook (von CRM oder Formular)
Workflow:
1. Webhook Trigger (neuer Kunde)
2. Bexio: Kunde erstellen
3. Gmail: Willkommens-E-Mail senden
4. Slack: "#sales - Neuer Kunde: {{customer_name}}"
5. Google Sheets: Zeile hinzufügen (CRM-Tracking)
6. Trello: Card erstellen (Onboarding-Tasks)
Template 8: Payroll Automation (Lohnzettel)
Trigger: Monatsende (Cron: letzter Tag des Monats)
Workflow:
1. Cron Trigger (Monatsende)
2. Bexio API: Mitarbeiter-Liste abrufen
3. FOR EACH Mitarbeiter:
a. Lohn berechnen (Basis-Lohn + Überstunden)
b. PDF generieren (Lohnzettel)
c. E-Mail: An Mitarbeiter (mit PDF)
4. Slack: "✅ Lohnzettel versendet (15 Mitarbeiter)"
Template 9: Compliance Alert (FINMA-Meldepflicht)
Trigger: Täglich 09:00 Uhr
Workflow:
1. Cron Trigger (täglich 09:00)
2. SQL Query: Transaktionen > CHF 100k abrufen (PostgreSQL)
3. FOR EACH Transaktion:
a. Empfängerland prüfen (API: https://restcountries.com)
b. IF Hochrisiko-Land (Panama, Cayman): FINMA-Alert
4. E-Mail: An Compliance-Officer (Liste aller Hochrisiko-Transaktionen)
Template 10: Dashboard Reporting (Slack-Summary)
Trigger: Täglich 17:00 Uhr
Workflow:
1. Cron Trigger (täglich 17:00)
2. Bexio API: Tageszusammenfassung
- Neue Rechnungen (Anzahl, Summe)
- Zahlungseingänge (Anzahl, Summe)
- Offene Forderungen (Total)
3. Slack: Formatierte Nachricht
📊 Finance-Summary (04.02.2026)
Neue Rechnungen: 8 (CHF 12,500)
Zahlungseingänge: 12 (CHF 18,200)
Offene Forderungen: CHF 45,000
✅ Cashflow: +CHF 5,700 (positiv)
4. Kosten-Vergleich (n8n vs. Zapier)
Szenario: 10 Workflows, 10.000 Executions/Monat
n8n (Self-Hosted)
Kosten:
- Server (Hetzner Cloud CPX11): CHF 5/Monat
- Domain + SSL: CHF 2/Monat
- GESAMT: CHF 7/Monat
Zapier
Kosten:
- Professional-Plan: CHF 50/Monat (6.000 Tasks)
- Zusätzliche Tasks: 4.000 × CHF 0,01 = CHF 40/Monat
- GESAMT: CHF 90/Monat
n8n ist 92% günstiger (CHF 7 vs. CHF 90).
5. ROI-Kalkulation
Szenario: KMU automatisiert 5 Workflows (Invoice, Expense, Bank Reconciliation, Payment Reminder, Reporting).
Manuell (OHNE Automation)
Aufwand:
- Invoice Processing: 100 × 5 Min = 500 Min
- Expense Tracking: 100 × 3 Min = 300 Min
- Bank Reconciliation: 20 × 30 Min = 600 Min
- Payment Reminders: 10 × 10 Min = 100 Min
- Reporting: 4 × 2h = 480 Min
- GESAMT: 1.980 Min/Monat = 33h/Monat
- Kosten: 33h × CHF 85/h = CHF 2.805/Monat
Automation (MIT n8n)
Kosten:
- n8n Self-Hosted: CHF 7/Monat
- Entwicklung (einmalig, 24h × CHF 150/h): CHF 3.600
- Jahr 1: CHF 3.600 + CHF 84 = CHF 3.684
- Ab Jahr 2: CHF 84/Jahr
Einsparung:
- Jahr 1: CHF 33.660 (12 × CHF 2.805) - CHF 3.684 = CHF 29.976 (814% ROI)
- Jahr 2: CHF 33.660 - CHF 84 = CHF 33.576 (39.971% ROI) 🚀
Nächste Schritte
Option 1: n8n Workflow Development (CHF 3.600, 24h)
- Wir entwickeln Custom-Workflows für Ihre Anforderungen
- Inklusive: n8n-Setup (Self-Hosted), Bexio-Integration, Testing, Deployment
Option 2: Kostenlose Beratung (60 Min)
- Wir analysieren Ihre Prozesse, identifizieren Automation-Potenzial
- ROI-Berechnung: Welche Workflows lohnen sich?
Veröffentlicht: 04. Februar 2026 Autor: SwissFinanceAI Team Kategorie: Workflow Automation
Haftungsausschluss: Dieser Artikel dient ausschliesslich zu Informationszwecken und stellt keine Finanzberatung dar. Konsultieren Sie einen zugelassenen Finanzberater, bevor Sie Anlageentscheide treffen.
Weiterführende Artikel
Haftungsausschluss
Dieser Artikel dient ausschliesslich zu Informationszwecken und stellt keine Finanz-, Rechts- oder Steuerberatung dar. SwissFinanceAI ist kein lizenzierter Finanzdienstleister. Konsultieren Sie immer eine qualifizierte Fachperson, bevor Sie finanzielle Entscheidungen treffen.

AI Business Specialist & Treuhänder
Lukas Huber verbindet über 10 Jahre Erfahrung in der Schweizer Finanzautomatisierung mit fundiertem KI-Fachwissen. Als zertifizierter AI Business Specialist und Treuhänder berät er Schweizer KMU bei der strategischen Einführung von KI-Systemen — von PESTEL-Analyse bis zur produktiven Implementierung.
Lukas Huber ist ein realer Autor. Diese Artikel basieren auf seiner persönlichen Beratungserfahrung.
Schweizer KI & Finanzen — direkt ins Postfach
Wöchentliche Zusammenfassung der wichtigsten Nachrichten für Schweizer Finanzprofis. Kein Spam.
Mit der Anmeldung stimmen Sie unserer Datenschutzerklärung zu. Jederzeit abmeldbar.
References
- [1]"n8n Documentation."
- [2]"n8n Bexio Integration."
- [3]"Docker Compose n8n Setup."
Transparency Notice: This article may contain AI-assisted content. All citations link to verified sources. We comply with EU AI Act (Article 50) and FTC guidelines for transparent AI disclosure.
Originalquelle
Dieser Artikel basiert auf n8n Documentation
Dieser Artikel basiert auf n8n Bexio Integration
Dieser Artikel basiert auf Docker Compose n8n Setup


