Skip to content

Repository files navigation

Automatisierte Angebotserstellung mit KI

MIT License n8n AWS Bedrock Docker

Open-Source Demo für automatisierte KI-gestützte Angebotserstellung mit n8n und AWS Bedrock Claude 3.5 Sonnet. Produziert strukturierte Angebots-JSONs aus Kundenanfragen.

Blogpost: KI-Angebotserstellung mit Bedrock & n8n


🎯 Überblick

Diese Demo automatisiert die Angebotserstellung für B2B-Dienstleistungen:

Webhook (CRM/Form)
    ↓
n8n Validation & Orchestration
    ↓
AWS Bedrock Claude (Textgenerierung)
    ↓
Strukturiertes Angebots-JSON
    ↓
PDF/E-Mail (optional)

Architektur

graph LR
    A["📋 Kundenanfrage<br/>Webhook/CRM"] --> B["✅ n8n Validation<br/>Pflichtfelder Check"]
    B --> C["🤖 AWS Bedrock<br/>Claude 3.5 Sonnet"]
    C --> D["📄 JSON Angebot<br/>Leistungen + Kosten"]
    D --> E["📧 Optional:<br/>PDF + E-Mail"]

    style A fill:#e1f5ff
    style B fill:#fff3e0
    style C fill:#f3e5f5
    style D fill:#e8f5e9
    style E fill:#fce4ec
Loading

Output-Beispiel

{
  "angebotsnummer": "ANG-2026-0042",
  "datum": "2026-02-28",
  "gueltig_bis": "2026-03-30",
  "projektbeschreibung": "Wir entwickeln eine KI-gestützte Pipeline zur automatischen Verarbeitung Ihrer Eingangsrechnungen...",
  "leistungen": [
    {
      "titel": "Anforderungsanalyse & Konzeption",
      "beschreibung": "Workshop zur Analyse Ihrer Rechnungsprozesse...",
      "tage": 2,
      "tagessatz": 1200
    }
  ],
  "gesamtpreis_netto": 18900,
  "mwst_satz": 19,
  "mwst": 3591,
  "gesamtpreis_brutto": 22491,
  "zeitraum": "4-5 Wochen",
  "zahlungsbedingungen": "50% bei Auftragserteilung, 50% nach Fertigstellung"
}

🚀 Quickstart

Voraussetzungen

  • Docker & Docker Compose (v23+)
  • AWS Bedrock Access (Claude 3.5 Sonnet Model)
  • AWS IAM Credentials mit entsprechenden Berechtigungen
  • curl oder Postman für Webhook-Tests
  • Node 18+ (für lokale n8n CLI-Befehle, optional)

1. Setup

# Repository klonen
git clone https://github.com/vibtellect/quote-generation-automation.git
cd quote-generation-automation

# .env aus Template erstellen
make setup

Dann .env mit AWS-Credentials und Firmendaten füllen:

# .env
AWS_ACCESS_KEY_ID=AKIA...
AWS_SECRET_ACCESS_KEY=...
AWS_REGION=eu-central-1

COMPANY_NAME=BOJATSCHKIN LTD
COMPANY_EMAIL=info@bojatschkin.de

2. Container starten

make up

Ergebnis: n8n läuft auf http://localhost:5680

3. Smoke Test

make smoke

Erwartet: HTTP 200 auf http://localhost:5680

4. Workflow importieren

  1. Browser: http://localhost:5680 öffnen
  2. WorkflowsImport from File
  3. workflows/quote-generation.json auswählen
  4. AWS Bedrock Node: Credentials setzen
  5. Workflow aktivieren

5. Test-Anfrage senden

# KI-Chatbot (SMB, 15-25k Budget)
curl -X POST http://localhost:5680/webhook/quote-generation \
  -H "Content-Type: application/json" \
  -d @demo-data/anfrage-chatbot.json

# Dokumentenverarbeitung (Enterprise, 50-80k Budget)
curl -X POST http://localhost:5680/webhook/quote-generation \
  -H "Content-Type: application/json" \
  -d @demo-data/anfrage-dokumentenverarbeitung.json

# Datenanalyse (Mittelstand, 20-35k Budget)
curl -X POST http://localhost:5680/webhook/quote-generation \
  -H "Content-Type: application/json" \
  -d @demo-data/anfrage-datenanalyse.json

📋 Demo-Anfragen

Im demo-data/ Verzeichnis stehen 3 realistische Kundenanfragen zur Verfügung:

1. KI-Chatbot für E-Commerce

Datei: demo-data/anfrage-chatbot.json

{
  "firma": "Nordwerk GmbH",
  "kontakt": {
    "name": "Klaus-Dieter Hoffmann",
    "email": "hoffmann@nordwerk.example.de",
    "telefon": "+49 40 5551234"
  },
  "projektart": "KI-Chatbot für Kundenservice",
  "anforderungen": "Online-Shop mit 2.000 Bestellungen/Tag, Support-Team mit 8 Personen...",
  "budget": "15.000 - 25.000 EUR",
  "zeitrahmen": "Go-Live Q3 2026"
}

Erwartetes Output:

  • Angebotsnummer: ANG-2026-XXXX
  • Leistungen: Anforderungsanalyse, Chatbot-Entwicklung, Zendesk-Integration, Testing
  • Gesamtpreis: ~18-22k EUR (netto)
  • Zeitraum: 4-5 Wochen

2. Dokumentenverarbeitung (Enterprise)

Datei: demo-data/anfrage-dokumentenverarbeitung.json

{
  "firma": "Bayerische Logistik Gruppe",
  "kontakt": {
    "name": "Dr. Andreas Bergmann",
    "email": "bergmann@blg-logistics.example.de",
    "telefon": "+49 89 7777-100"
  },
  "projektart": "KI-Dokumentenverarbeitung",
  "anforderungen": "4.000 Eingangsrechnungen/Monat, OCR + KI-Extraktion, SAP-Integration...",
  "budget": "50.000 - 80.000 EUR (Pilot + Rollout)",
  "zeitrahmen": "Pilot ab Q2 2026, Rollout Q4 2026"
}

Erwartetes Output:

  • Angebotsnummer: ANG-2026-XXXX
  • Leistungen: Analyse, Textract/Bedrock-Integration, SAP-Mapping, Testing
  • Gesamtpreis: ~48-65k EUR (netto)
  • Zeitraum: 8-12 Wochen (Pilot + Rollout)

3. KI-Datenanalyse

Datei: demo-data/anfrage-datenanalyse.json

{
  "firma": "Musterfirma GmbH",
  "kontakt": {
    "name": "Max Mustermann",
    "email": "max@musterfirma.example.de",
    "telefon": "+49 123 456789"
  },
  "projektart": "KI-gestützte Datenanalyse",
  "anforderungen": "Snowflake Data Warehouse, Vorhersagen für Churn & Cross-Selling, wöchentliches Dashboard...",
  "budget": "20.000 - 35.000 EUR",
  "zeitrahmen": "Start ab April 2026"
}

Erwartetes Output:

  • Angebotsnummer: ANG-2026-XXXX
  • Leistungen: Data Exploration, Modellentwicklung, Dashboard, Dokumentation
  • Gesamtpreis: ~20-28k EUR (netto)
  • Zeitraum: 5-7 Wochen

🔌 Webhook API

Endpoint

POST /webhook/quote-generation
Content-Type: application/json

Pflichtfelder (erforderlich)

{
  "firma": "string - Firmenname",
  "projektart": "string - Art des Projekts (z.B. 'KI-Chatbot', 'Dokumentenverarbeitung')",
  "anforderungen": "string - Detaillierte Anforderungsbeschreibung",
  "kontakt": {
    "name": "string - Ansprechpartner",
    "email": "string - E-Mail",
    "telefon": "string - Telefonnummer (optional)"
  },
  "budget": "string - Budget-Rahmen (z.B. '15.000 - 25.000 EUR')",
  "zeitrahmen": "string - Zeitrahmen (z.B. 'Q3 2026')"
}

Response (Success 200)

{
  "success": true,
  "angebotsnummer": "ANG-2026-0042",
  "datum": "2026-02-28",
  "gueltig_bis": "2026-03-30",
  "projektbeschreibung": "...",
  "leistungen": [...],
  "gesamtpreis_netto": 18900,
  "gesamtpreis_brutto": 22491,
  "mwst": 3591,
  "zeitraum": "4-5 Wochen"
}

Response (Error)

{
  "success": false,
  "error": "Pflichtfelder fehlen: firma, projektart",
  "status": 400
}

📊 Erwartete Ausgabe

Angebotsnummer

Format: ANG-{YYYY}-{ID} (z.B. ANG-2026-0042)

  • YYYY = aktuelles Jahr
  • ID = 4-stellige, inkrementelle ID

Strukturiertes JSON-Angebot

Feld Typ Beispiel
angebotsnummer string ANG-2026-0042
datum ISO date 2026-02-28
gueltig_bis ISO date 2026-03-30 (+30 Tage)
projektbeschreibung string Professionelle Zusammenfassung (3-4 Sätze)
leistungen[].titel string z.B. "Anforderungsanalyse & Konzeption"
leistungen[].beschreibung string Details der Leistung
leistungen[].tage number Realistische Schätzung (z.B. 5)
leistungen[].tagessatz number EUR/Tag (1200-1500 für Senior)
gesamtpreis_netto number Summe aller Leistungen (EUR)
mwst_satz number 19
mwst number 19% auf Netto
gesamtpreis_brutto number Netto + MwSt
zeitraum string z.B. "4-6 Wochen"
zahlungsbedingungen string "50% bei Auftragserteilung, 50% nach Fertigstellung"
anmerkungen string Optionale Hinweise (z.B. Skalierungshinweise)

Typische Leistungen (je Projektart)

KI-Chatbot:

  1. Anforderungsanalyse (1-2 Tage)
  2. Chatbot-Entwicklung (5-7 Tage)
  3. Integration (Zendesk/Shopify, 2-3 Tage)
  4. Testing & Deployment (2-3 Tage)

Dokumentenverarbeitung:

  1. Analyse & Konzeption (2-3 Tage)
  2. Textract/Bedrock Integration (3-5 Tage)
  3. n8n Workflow (2-3 Tage)
  4. Testing & Deployment (2-3 Tage)

Datenanalyse:

  1. Data Exploration (2-3 Tage)
  2. Modellentwicklung (5-7 Tage)
  3. Dashboard-Entwicklung (3-5 Tage)
  4. Dokumentation & Schulung (2-3 Tage)

🛠️ Makefile Targets

make setup     # .env aus .env.example erstellen
make up        # Docker Compose starten (Hintergrund)
make down      # Container stoppen & entfernen
make logs      # Live-Logs folgen
make smoke     # Health Check (n8n erreichbar?)
make import    # Workflow in laufendes n8n importieren (Vorbereitung)

📁 Projektstruktur

quote-generation-automation/
├── README.md                           # Dieses Dokument
├── LICENSE                             # MIT License
├── Makefile                            # Automation Targets
├── docker-compose.yml                  # n8n + Volumes
├── .env.example                        # Template für Umgebungsvariablen
├── .gitignore                          # Git-Ignorier-Muster
├── iam/
│   └── n8n-automation-policy.json      # AWS IAM Policy für n8n
├── workflows/
│   └── quote-generation.json           # n8n Workflow (importierbar)
├── prompts/
│   └── quote-writer.txt                # System-Prompt für Claude
├── templates/
│   └── angebot-template.html           # HTML-Template für PDF (optional)
└── demo-data/
    ├── anfrage-chatbot.json            # Demo: KI-Chatbot (SMB)
    ├── anfrage-dokumentenverarbeitung.json  # Demo: Dokumentenverarbeitung (Enterprise)
    └── anfrage-datenanalyse.json       # Demo: Datenanalyse (Mittelstand)

🔐 IAM-Berechtigungen

Siehe iam/n8n-automation-policy.json.

Erforderliche AWS-Services:

Service Aktion Grund
Bedrock InvokeModel, InvokeModelWithResponseStream Claude 3.5 Sonnet API Calls
S3 GetObject, PutObject, ListBucket Optional: Angebot speichern
Lambda InvokeFunction Optional: PDF-Generierung
SES/SMTP SendEmail, SendRawEmail E-Mail-Versand
CloudWatch Logs GetLogEvents Debugging
SSM Parameter Store GetParameter Secrets-Management

Wichtig: Policy enthält auch explizite Denies für destruktive Operationen (IAM, S3-Bucket-Löschung, CloudFormation Stack-Löschung, etc.).


💻 Tech Stack

Komponente Technologie
Automation Engine n8n 1.76+
LLM AWS Bedrock Claude 3.5 Sonnet
Containerization Docker & Docker Compose
Optional: PDF wkhtmltopdf / puppeteer
Optional: E-Mail SMTP / AWS SES
Optional: Storage AWS S3

💰 Kosten (Richtwert)

AWS Bedrock (Claude 3.5 Sonnet)

  • Input: $3 pro 1M Tokens
  • Output: $15 pro 1M Tokens
  • Durchschnitt pro Angebot: ~2-5k Input + 1-2k Output Tokens = ~0,02-0,05 EUR

Monatlich (100 Angebote): ~2-5 EUR

n8n

  • Self-hosted Docker: Kostenlos
  • Cloud (n8n.cloud): ab $25/Monat

Optional: E-Mail / PDF

  • AWS SES: $0,10 pro 1.000 Mails
  • SMTP (Gmail App): Kostenlos (unter Limits)
  • PDF-Generierung: Integriert (n8n) oder external (z.B. Pdfshift: $0,01-0,05/PDF)

🚦 Workflow-Flow

1. Webhook POST /webhook/quote-generation
   ↓
2. Validation Node
   - Pflichtfelder prüfen (firma, projektart, anforderungen, kontakt)
   - Fehlerbehandlung → 400 Bad Request
   ↓
3. AWS Bedrock Node
   - Input: firma, projektart, anforderungen, budget, kontakt
   - System-Prompt: quote-writer.txt
   - Output: JSON mit Leistungen, Preisen, Zeitraum
   ↓
4. JSON Parsing
   - Bedrock-Response parsen
   - Feldvalidierung
   ↓
5. Optional: HTML/PDF Generation
   - angebot-template.html mit JSON-Daten rendern
   - In PDF umwandeln (wkhtmltopdf)
   ↓
6. Optional: E-Mail Versand
   - PDF anhängen
   - SMTP/SES versenden
   ↓
7. Response / Storage
   - JSON zurück an Webhook-Caller
   - Optional: S3 speichern für Archiv

🐛 Troubleshooting

n8n nicht erreichbar auf localhost:5680

# Container-Status prüfen
docker compose ps

# Logs ansehen
make logs

# Container neu starten
make down
make up

AWS Bedrock API Error: "Access Denied"

  1. Bedrock-Zugang aktiviert? → AWS Console: Bedrock → Model access
  2. Claude 3.5 Sonnet verfügbar?eu-central-1 oder us-east-1?
  3. Credentials korrekt in .env?AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
  4. IAM Policy attached?iam/n8n-automation-policy.json

Webhook gibt 500 Internal Server Error

  1. Bedrock Node überprüfen: Credentials, Modell-ID
  2. Input-Validierung: Alle Pflichtfelder vorhanden?
  3. Logs ansehen: make logs | grep error

JSON-Output nicht valide

  1. Bedrock-Prompt überprüfen: prompts/quote-writer.txt
  2. Model-Version: Cloud-Update möglich (n8n auto-updated)
  3. Test mit einfacher Anfrage starten

📚 Weitere Ressourcen


📄 License

MIT License © 2026 Vitalij Bojatschkin / BOJATSCHKIN LTD

Siehe LICENSE für Details.


⚖️ Disclaimer

Diese Demo ist ein Proof-of-Concept für KI-gestützte Angebotserstellung. Sie ist nicht für produktive Kundengenerierung ohne weitere Validierung geeignet:

  • Fachliche Preislogik muss branchenspezifisch kalibriert werden
  • Freigabeprozesse sollten für echte Angebote integriert sein
  • Compliance (DSGVO, Audit-Trail): Kundenanfragen loggen & speichern empfohlen
  • Genauigkeit: Bedrock-Output sollte vor Versand vom Vertrieb überprüft werden
  • Liabilities: Automatisch erzeugte Angebote tragen Geschäftsrisiken — Haftungsfreistellung überprüfen

Für produktive Implementierung: Kontakt aufnehmen oder Erstgespräch buchen


💬 Support


Made with ❤️ by Vitalij Bojatschkin

About

Automatisierte Angebotserstellung – n8n + AWS Bedrock

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages