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

By SwissFinanceAI Team
|
|16 Min Read
n8n Finance Workflow Templates: 10 Automation-Blueprints für KMU
Image: SwissFinanceAI / ai

Production-Ready n8n-Workflows für Schweizer KMU: Invoice Automation, Expense Tracking, Bank Reconciliation, MWST-Meldung, Bexio-Integration, Self-Hosted.

n8nWorkflow AutomationNo-CodeBexio IntegrationSelf-Hosted

Ü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:

  1. Invoice Automation (E-Mail → Bexio)
  2. Expense Tracking (Receipt → OCR → Bexio)
  3. Bank Reconciliation (EBICS → Bexio)
  4. MWST-Meldung (automatische Quartalsabrechnung)
  5. Payment Reminder (überfällige Rechnungen)
  6. Cash Flow Forecast (wöchentlicher Report)
  7. Client Onboarding (Neuer Kunde → Bexio + CRM)
  8. Payroll Automation (Lohnzettel generieren)
  9. Compliance Alert (FINMA-Meldepflicht prüfen)
  10. 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

👉 Service buchen

Option 2: Kostenlose Beratung (60 Min)

  • Wir analysieren Ihre Prozesse, identifizieren Automation-Potenzial
  • ROI-Berechnung: Welche Workflows lohnen sich?

👉 Termin buchen


Veröffentlicht: 04. Februar 2026 Autor: SwissFinanceAI Team Kategorie: Workflow Automation

References

    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.

    blog.relatedArticles

    Wir schützen Ihre Privatsphäre

    Wir verwenden Cookies, um Ihr Erlebnis zu verbessern. Mit "Akzeptieren" stimmen Sie der Verwendung zu.