Drei Tools rein · ein System raus · fünf Wochen
Die Ausgangslage
Der Kunde — ein familiengeführter Industriehersteller in Nordrhein-Westfalen — war mit 38 Mio. € Umsatz gewachsen, weil sein Vertrieb die Kundenbeziehungen fast komplett im Kopf pflegte. Der technische Unterbau war dagegen fragmentiert:
- Eine Microsoft-Access-Datenbank von 2011 mit dem Kundenstamm.
- Eine geteilte Excel-Datei für die Angebots-Pipeline, gehütet vom Sales-Ops-Manager.
- Ein geteiltes Outlook-Postfach, in dem alles landete, was wirklich zählte.
Angebote brauchten im Schnitt 11 Tage. Wenn ein erfahrener Außendienstler ging, ging Kundenwissen mit. In den drei Jahren davor hatten zwei Enterprise-CRM-Rollouts gescheitert — beide endeten damit, dass das Team leise wieder zur Excel zurückkehrte.
Sie brauchten kein Salesforce. Sie brauchten ein Tool, das ihren tatsächlichen Prozess respektiert.
Unsere Roadmap
-
01Phase 01 Woche 1
Architektur & Datenmodell
Quote-to-Order-Flow mit dem Vertrieb sauber aufgenommen, Access in ein versioniertes Schema migriert.
-
02Phase 02 Woche 2
Kernflows
Kunden, Kontakte, Opportunities, Angebote — End-to-end mit Auth, Audit-Log und SSO.
-
03Phase 03 Woche 3
Angebots-Engine
Konfigurierbare Preis-Regeln, versionierte Angebots-PDFs, Mailversand direkt aus der App.
-
04Phase 04 Woche 4
Integrationen
DATEV, Outlook, das ERP (Sage) und ein Zapier-Fallback für die lange Werkzeug-Schleppe.
-
05Phase 05 Woche 5
UAT & Rollout
Zwei Tage Schulter-an-Schulter-UAT mit jeder Vertriebsrolle, dann gestaffelter Rollout in 3 Regionen.
Wie wir gebaut haben
Woche 1 — Das Geschäft modellieren, nicht das Lieblings-Framework
Ein voller Tag mit Vertriebsleiter und den zwei dienstältesten Reps. Wir haben den tatsächlichen Angebotsfluss aufs Whiteboard gebracht — inklusive jeder seltsamen Ausnahme (Rahmenverträge, Abrufe, der eine Kunde, der auf Fax-Bestätigung besteht). Bis Mittag hatten wir zwei Default-Annahmen aus unserem Datenmodell entsorgt. Bis zum Abend hatten wir ein Schema, das das Team als ihres wiedererkannt hat.
Die Access-Datenbank wurde am Folgetag nach PostgreSQL migriert — mit versioniertem Migrationsskript und deterministischem Diff, damit wir bis zum Go-live sauber nachziehen konnten.
Woche 2 — Kernflows, keine halbfertigen Screens
Kunden → Kontakte → Opportunities → Angebote. Jede Entität mit vollständigem CRUD, Audit-Trail und rollenbasierten Rechten ab Tag 1. SSO über das vorhandene Azure AD des Kunden — keine zusätzlichen Passwörter.
Ende Woche 2 lag eine Staging-URL mit echten migrierten Daten an. Das Team konnte bereits eigene Accounts aufrufen.
Woche 3 — Die Angebots-Engine, das eigentliche Produkt
Die Preis-Regeln des Kunden waren nicht willkürlich — sie kodierten Jahre an Margenerfahrung. Wir haben sie nicht neu erfunden. Wir haben eine Regel-DSL gebaut, die Sales Ops ohne Code-Änderung pflegen kann, und versionierte Angebots-PDFs direkt aus der Datenbank erzeugt. Jedes je verschickte Angebot lässt sich byte-genau aus seiner ID reproduzieren.
Woche 4 — Integrationen, die langweilige aber nötige Schicht
- DATEV-Export für die Buchhaltung — passt in ihren bestehenden Workflow.
- Outlook-Add-in, damit Reps Mails per Drag-and-Drop an Kunden hängen, ohne das Postfach zu verlassen.
- Sage-ERP-Brücke — Read-only für Lagerbestände, Write-on-Accept für die Auftragsanlage.
- Ein schlankes Zapier-Escape-Hatch für die lange Schleppe kleinerer Tools, die wir nicht fest verdrahten wollten.
Woche 5 — UAT, Rollout und eine sehr wichtige Feier
Zwei Tage strukturiertes UAT mit jedem Rep, Region für Region. Wir haben zugesehen, vor Ort 23 Kleinigkeiten gefixt und am darauffolgenden Montag in Produktion geschaltet. Der Kunde hat gefeiert. Wir haben Kölsch getrunken.
Die Architektur
Ein Stack, den das Inhouse-IT-Team ab Tag 1 selbst betreuen und später auch übernehmen kann.
- Backend: TypeScript auf Node, Fastify, PostgreSQL, Prisma. Versionierte Migrationen, Audit-Log pro Zeile.
- Frontend: Astro + React-Islands für interaktive Screens, serverseitig gerendert für Tempo.
- Auth: Azure-AD-SSO, rollenbasierte Rechte in Postgres, MFA durchgesetzt.
- PDFs: Deterministische Render-Pipeline — gleiche Eingaben, immer gleiche Bytes.
- Integrationen: DATEV, Sage ERP, Microsoft 365, schlankes Zapier-Fallback.
- Infrastruktur: Hetzner-VMs in einer Region + managed Postgres, On-Prem-Backup auf das NAS des Kunden. Kein Hyperscaler-Lock-in.
- Observability: Self-hosted Grafana, Loki-Logs, eine Fehlerseite, die der Ops-Manager wirklich lesen kann.
Alles in einem Git-Repository. Ein-Kommando-Deploy. README, der der IT-Lead ohne uns folgen kann.
Die Ergebnisse
Nach dem ersten vollen Quartal in Produktion:
- Angebotszyklus von 11 auf 6,6 Tage gesunken — rund 40% schneller.
- Drei Systeme am Go-live-Tag abgeschaltet (Access, Excel, geteiltes Postfach).
- Neu-Onboarding von 6 Wochen auf 9 Tage. Das CRM ist jetzt das Schulungsmaterial.
- ≈ 120.000 € pro Jahr wiedergewonnene Arbeitszeit — konservativ aus den Minuten pro Angebot hochgerechnet.
- Null Produktions-Incidents in den ersten 90 Tagen. Zwei kleine Bugfixes, beide noch am Meldetag live.
Wie es weitergeht
Die nächste Ausbaustufe bringt ein Kundenportal — Großkunden können Abrufe direkt platzieren und ihren Auftragsstatus live sehen. Weil der Kunde das Datenmodell besitzt und keinen Anbieter, fügt sich die Erweiterung natürlich ein — statt eine Neu-Plattform zu erzwingen.
Wenn Ihr Vertrieb oder Ihre Operations auf einem Stack laufen, der “irgendwie funktioniert” — und jede CRM-Demo das Gefühl hinterlassen hat, Sie bauen für die Software statt umgekehrt — reden Sie mit uns. Wir bauen Software, die Ihren Prozess respektiert, und wir liefern in Wochen.