tva
← Insights

Ein CRM selbst hosten: Warum wir von SaaS weggegangen sind

Der SaaS-CRM-Markt ist nicht arm an Optionen. Salesforce, HubSpot, Pipedrive, Zoho — jedes mit seiner eigenen Preisstufe, Feature-Matrix und einem Account Manager, der bereit ist zu erklären, warum die nächst höhere Stufe genau das ist, was Ihr Unternehmen braucht. Wir haben im Laufe der Jahre mehrere dieser Tools genutzt und festgestellt, dass sich das Wertversprechen jenseits eines bestimmten Punktes umkehrt.

Die Kosten sind das sichtbarste Symptom. Pipedrive beginnt vernünftig, skaliert dann pro Seat. HubSpots kostenlose Stufe ist funktional, bis sie es plötzlich nicht mehr ist, woraufhin der Sprung zu einem bezahlten Plan erheblich ist. Salesforce operiert in einer völlig anderen Kategorie: Es ist Enterprise-Software, die entsprechend bepreist ist und dedizierte Administratoren für Konfiguration und Wartung erfordert. Für eine Beratungsfirma, die einige hundert Kontakte und eine Handvoll aktiver Deals verwaltet, sind diese Preisstrukturen nicht besonders effizient.

Die Kostenrechnung beschränkt sich jedoch nicht auf Abonnementgebühren. Es stellt sich auch die Frage, was Sie eigentlich kaufen.

Das Vendor-Lock-in-Problem

SaaS-CRM-Anbieter verkaufen Bequemlichkeit. Im Gegenzug behalten sie die Kontrolle über Ihre Daten, das Interface und die Möglichkeit, Preise nach eigenem Ermessen zu ändern. Das ist keine kontroverse Beobachtung — es ist das Modell. Salesforce hat die Preise mehrfach erhöht. HubSpot hat das Feature-Gating in verschiedenen Stufen umstrukturiert. Pipedrive hat bei Plänen, die zuvor keine hatten, Seat-Minima eingeführt. Jeder dieser Schritte liegt vollständig im Recht des Anbieters, und jeder erzeugt Reibung für Kunden, die Workflows rund um die bisherigen Bedingungen aufgebaut haben.

Die Frage der Datenportabilität ist relevanter als die meisten Diskussionen anerkennen. Jedes große CRM bietet Exportfunktionalität an, typischerweise als CSV. Aber ein CSV-Export Ihrer Kontaktdaten ist nicht dasselbe wie Ihre CRM-Daten. Beziehungen zwischen Kontakten und Unternehmen, Aktivitätshistorie, Deal-Timelines, benutzerdefinierte Felder — diese überleben einen Export selten sauber. In der Praxis bedeutet die Migration von einem SaaS-CRM weg, erhebliche Teile Ihrer Betriebsgeschichte von Grund auf neu aufzubauen. Die Daten gehören technisch Ihnen, aber sie in einer nützlichen Form wiederherzustellen erfordert erheblichen Aufwand.

Twenty CRM und die Self-Hosting-Option

Twenty (twenty.com) ist ein Open-Source-CRM, das sich als ernsthafte Alternative zu kommerziellen Angeboten etabliert hat. Die Codebasis wird aktiv entwickelt, das Datenmodell ist gut strukturiert und das Interface ist wirklich nutzbar. Es läuft auf PostgreSQL, was bedeutet, dass Standard-Datenbanktools direkt anwendbar sind. Das Projekt ist kein Hobby-Repository — dahinter steht ein finanziertes Team mit einer klaren Roadmap.

Wir haben es auf unserer bestehenden Hetzner-Infrastruktur bereitgestellt, derselben CX53-Instanz, auf der unsere Website und andere Dienste hinter Traefik laufen. Die von Twenty bereitgestellte Docker Compose-Konfiguration ist unkompliziert. Die Kerndienste sind der API-Server, das Frontend, die PostgreSQL-Datenbank und Redis für Caching und Queue-Management. Der gesamte Ressourcenaufwand für ein kleines Team ist bescheiden: Der Stack verbraucht im Ruhezustand unter 2 GB RAM.

Der Setup-Prozess dauerte etwa zwei Stunden, einschließlich DNS-Konfiguration und SSL-Terminierung über unseren bestehenden Traefik Reverse Proxy. Die Twenty-Dokumentation deckt den Docker-Deployment-Pfad klar ab. Umgebungsvariablen sind gut dokumentiert, Health Checks funktionieren wie erwartet, und die initiale Datenmigration läuft beim ersten Start automatisch. Es gab keine nennenswerten Hindernisse.

Was die Kostenanalyse tatsächlich zeigt

Twenty selbst auf Infrastruktur zu betreiben, die wir bereits betreiben, kostet in inkrementeller Hinsicht praktisch nichts. Auf dedizierter Infrastruktur sind die Kosten die monatliche Serverrechnung. Unser Hetzner CX53 läuft bei etwa 30 € pro Monat und hostet mehrere Dienste — das CRM ist ein Mieter in einer gemeinsamen Umgebung, nicht der Grund für den Server.

Im Vergleich dazu kosten gängige SaaS-Alternativen: Pipedrive 24–67 $ pro Seat pro Monat je nach Stufe. Für ein Drei-Personen-Team sind das 72–201 $ pro Monat oder 864–2.412 $ pro Jahr. HubSpots Professional-Stufe, die Automatisierung und benutzerdefinierte Berichte freischaltet, kostet 800 $ pro Monat für fünf Seats. Salesforce Essentials — der Einstieg — beginnt bei 25 $ pro Seat pro Monat, aber die Funktionen, die die meisten Vertriebsteams tatsächlich benötigen, befinden sich auf der Professional-Stufe zu 75 $ pro Seat.

Keine dieser Zahlen ist unvernünftig für große Vertriebsorganisationen, bei denen die CRM-Nutzung direkt messbaren Pipeline-Wert treibt. Aber für eine technische Beratungsfirma, bei der das CRM primär eine Kontaktdatenbank und Engagement-Historie ist, sieht die Rechnung anders aus. Der operative Aufwand eines selbst gehosteten Deployments wird in Stunden pro Jahr gemessen, nicht pro Woche. Die Amortisierung wird schnell erreicht.

Dateneigentümerschaft in der Praxis

Wenn Ihre CRM-Daten in einer PostgreSQL-Datenbank liegen, die Sie kontrollieren, sind die operativen Implikationen konkret. Backups sind Standard-Datenbankdumps — wir führen täglich pg_dump-Exporte zu Hetzner Object Storage aus, 30 Tage aufbewahrt mit monatlichen Snapshots für ein Jahr. Abfragen sind unbeschränkt. Sie können CRM-Tabellen mit Ihren eigenen Daten joinen, benutzerdefinierte Berichte gegen das Rohschema erstellen oder Kontaktdaten ohne Export-Rate-Limits oder API-Aufruf-Kontingente in andere interne Systeme einspeisen.

Das ist wichtiger, als es zunächst erscheint. SaaS-CRMs setzen API-Rate-Limits, die bei Skalierung zu architektonischen Einschränkungen werden. HubSpots kostenlose Stufe beschränkt Anfragen auf 500 pro Tag. Pipedrives Limits variieren je nach Plan. Wenn Sie CRM-Daten mit externen Systemen synchronisieren müssen — Abrechnungstools, Projektmanagement, benutzerdefinierte Dashboards — formen diese Limits, welche Integrationen architektonisch machbar sind. Mit einer selbst gehosteten PostgreSQL-Datenbank ist die einzige Einschränkung die Kapazität des Servers.

Es gibt auch die Frage, was mit Ihren Daten passiert, wenn der Anbieter akquiriert wird, seine Bedingungen ändert oder den Betrieb einstellt. Das sind unwahrscheinliche Ereignisse bei den großen Anbietern, aber keine Null-Wahrscheinlichkeits-Ereignisse. Ihre Daten zu besitzen bedeutet, das Risikomodell zu besitzen, nicht zu delegieren.

Anpassung ohne Entwicklungspartner

Twenty basiert auf einer GraphQL-API mit einem metadatengesteuertem Datenmodell. Das Hinzufügen benutzerdefinierter Felder zu einer Entität dauert im Interface Sekunden — Sie definieren den Feldtyp, er erscheint sofort in der UI und im API-Schema. Keine Konfigurationsexporte, keine Sandbox-Deployments, keine Support-Tickets, kein Tier-Upgrade erforderlich.

Das ist qualitativ anders als das, was SaaS-CRMs bieten. Salesforce erlaubt umfangreiche Anpassungen, aber das Anpassungsmodell ist komplex genug, um eine ganze Professional-Services-Industrie darum herum zu unterhalten. Pipedrive erlaubt benutzerdefinierte Felder für die meisten Objekte, aber Interface-Anpassungen sind begrenzt. HubSpots Anpassungsmöglichkeiten hängen stark davon ab, welchen Plan Sie bezahlen.

Der Twenty-Ansatz — offenes Schema, lokale Kontrolle — bedeutet, dass Sie es direkt erweitern, wenn ein Engagement die Verfolgung von Informationen erfordert, die das Standard-Datenmodell nicht abdeckt. Für eine Beratungsfirma, die manchmal ungewöhnliche Deal-Strukturen oder clientspezifische Metadaten verfolgen muss, hat sich diese Flexibilität als wirklich nützlich erwiesen.

Backup-Strategie

Unsere Backup-Konfiguration ist absichtlich einfach. Ein täglich automatischer pg_dump der Twenty-PostgreSQL-Datenbank, komprimiert und auf Hetzner Object Storage hochgeladen. Anwendungsdaten — Profilbilder, Anhänge — leben in einem Docker-Volume, das via restic im selben Zeitplan gesichert wird. Aufbewahrung: 30 Tage für tägliche Snapshots, 12 Monate für monatliche Snapshots.

Recovery-Tests laufen vierteljährlich: Das Backup auf einer Staging-Datenbank wiederherstellen, Zeilenzahlen überprüfen, Datenintegrität stichprobenartig prüfen. Eine vollständige Wiederherstellung vom Backup zu einer betriebsbereiten Twenty-Instanz dauert etwa 15 Minuten — akzeptabel für ein Tool, das sich nicht auf dem kritischen Pfad für Echtzeit-Operationen befindet. Hetzner Object Storage kostet 6 € pro Monat für 1 TB; unsere CRM-Backups verbrauchen einen kleinen Bruchteil dieser Zuteilung.

Die hier erforderliche operative Disziplin ist bescheiden. Backup-Jobs laufen als Cron-Tasks auf dem Host, protokollieren ihre Ergebnisse in einem Monitoring-System und alarmieren bei Misserfolg. Das ist Standard-Infrastrukturpraxis, die jedes Team, das Server-Workloads betreibt, bereits haben sollte.

Wann Self-Hosting sinnvoll ist

Der Fall für das Self-Hosting eines CRM ist am stärksten, wenn mehrere Bedingungen zusammentreffen. Ihr Team hat echte operative Kapazität, Docker-Container zu betreiben und eine PostgreSQL-Datenbank zu verwalten — das ist eine reale Voraussetzung, keine Formalität. Sie betreiben bereits Server-Infrastruktur mit verfügbarer Kapazität. Ihr CRM-Anwendungsfall ist relativ stabil, was bedeutet, dass Sie nicht auf die Roadmap des Anbieters für Funktionen angewiesen sind, die Sie im nächsten Quartal benötigen werden.

Die Kosten- und Dateneigentümerschaftsargumente sind real, aber sie sind sekundär gegenüber der Frage der operativen Kapazität. Self-Hosting tauscht Geld gegen Zeit und Expertise. Wenn die operative Zeit Ihres Teams teurer ist als ein SaaS-Abonnement, ist die Wirtschaftlichkeit möglicherweise nicht zugunsten des Wechsels. Die Amortisierung ist nicht rein finanziell — sie ist auch eine Funktion davon, wo die Fähigkeiten und die Bandbreite Ihres Teams tatsächlich liegen.

Wann nicht

Wenn Ihre Organisation tiefe Enterprise-Integrationen benötigt — ein CRM, das mit einer Marketing-Automatisierungsplattform, einem CDP und einem Data Warehouse verbunden ist, das alles von einer dedizierten RevOps-Funktion gepflegt wird — ist Self-Hosting die falsche Richtung. Das Integrations-Ökosystem rund um kommerzielle CRMs ist tiefgründig, weil die Anbieter Jahre damit verbracht haben, es aufzubauen. Eine selbst gehostete Twenty-Instanz verbindet sich über ihre GraphQL-API oder direkten Datenbankzugriff. Sie hat keine Bibliothek von 500 vorgefertigten Konnektoren.

Ähnlich verhält es sich, wenn niemand in Ihrem Team einen fehlgeschlagenen Docker-Container diagnostizieren, PostgreSQL-Logs lesen oder von einem Datenbank-Backup wiederherstellen kann. Der operative Aufwand übersteigt schnell die Kosteneinsparungen. Der Self-Hosting-Pfad erfordert eine Baseline an Infrastrukturkompetenz, die nicht jedes Team hat — und der Erwerb dieser Kompetenz hat eigene Kosten.

Compliance-Anforderungen können die Gleichung ebenfalls verschieben. Wenn Ihr Unternehmen unter Vorschriften operiert, die eine zertifizierte Datenverarbeitung durch Technologieanbieter erfordern — SOC-2-Attestierungen, ISO-27001-Audits — bedeutet ein selbst gehostetes Deployment, dass diese Zertifizierungen für Ihre eigene Infrastruktur gelten müssen. Ob das ein Vorteil oder eine Belastung ist, hängt von Ihrer bestehenden Compliance-Position ab.

Was wir tatsächlich betreiben

Unser produktives Twenty-Deployment läuft seit mehreren Monaten ohne nennenswerten Vorfall. Kontaktverwaltung, Unternehmenseinträge, Deal-Tracking und Aktivitätsprotokollierung funktionieren alle wie erwartet. Das Interface ist sauber genug, dass das Onboarding kein formales Training erforderte. Die GraphQL-API hat sich als nützlich erwiesen, um CRM-Kontext in andere interne Tools zu ziehen — insbesondere für Client-Reporting und Engagement-Tracking, das wir selbst aufbauen, anstatt es als SaaS-Add-on zu kaufen.

Der Wartungsaufwand ist geringer als erwartet. Twenty veröffentlicht Updates in einem gleichmäßigen Rhythmus; ihre Bereitstellung ist eine Frage des Abrufens des neuen Docker-Images und des Neustarts des Dienstes, typischerweise unter fünf Minuten. Die PostgreSQL-Datenbank hat über die routinemäßige Backup-Verifizierung hinaus keine manuelle Intervention erfordert.

Die Entscheidung war nicht ideologisch. Wir haben uns nicht vom SaaS-CRM verabschiedet, weil SaaS inhärent falsch oder Self-Hosting inhärent tugendhaft ist. Die Entscheidung war operativ: Für unseren spezifischen Anwendungsfall ist der selbst gehostete Pfad einfacher, günstiger und gibt uns bessere Kontrolle über Daten, die uns gehören. Für eine Organisation mit anderen Einschränkungen — einem größeren Vertriebsteam, tieferen Integrationsanforderungen oder begrenzter Infrastrukturkapazität — könnte die Schlussfolgerung anders sein. Der Punkt ist, die Rechnung explizit anzustellen, anstatt standardmäßig zum Abonnementmodell zu greifen, weil es der Weg des geringsten Widerstands ist.


Verwandte Beiträge

Weitere Artikel