Zum Inhalt springen

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

Lukas HuberLukas HuberAI Business Specialist & Treuhänder
|
|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.

Reporting by Lena Müller Team, SwissFinanceAI Redaktion

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


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.

TeilenLinkedInXWhatsApp
Lukas Huber
Lukas HuberAI Business Specialist & Treuhänder

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.

Newsletter

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. [1]
    "n8n Documentation."
  2. [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

blog.relatedArticles