Nextcloud und Keap: Wenn der eigene Dateiserver auf ein Cloud-CRM trifft
Es gibt diese Konstellation in vielen mittelständischen Betrieben: Auf der einen Seite steht eine Nextcloud-Instanz, die irgendwann deutlich mehr geworden ist als ein Ort, an dem PDFs und Tabellen liegen. Sie ist Dateiserver, Gruppenkalender, Videobrücke, Projektboard und nicht selten auch das Archiv für alles, was revisionssicher aufgehoben werden muss. Auf der anderen Seite arbeitet der Vertrieb mit Keap – dem System, das viele noch unter seinem alten Namen Infusionsoft kennen –, um Kontakte zu pflegen, Kampagnen zu fahren, Angebote zu schreiben und Rechnungen zu stellen. Zwei Systeme, zwei Datenhaltungen, zwei Wahrheiten. Und dazwischen: Menschen, die Dateien manuell herunterladen, um sie irgendwo anders wieder hochzuladen.
Diese Reibung ist kein Schönheitsfehler, sie kostet Geld. Jede Datei, die per Hand zwischen CRM und Filesharing wandert, ist ein potenzieller Fehler. Falsche Version, falscher Kontakt, fehlende Zuordnung. Wer das eine Weile beobachtet, stellt schnell fest: Die eigentliche Arbeit liegt nicht im Schreiben des Angebots, sondern im Herumschieben der dazugehörigen Dokumente. Genau dort setzen Integrationen an, und genau darum geht es im Folgenden – um das Zusammenspiel von Nextcloud und Keap in der Praxis, mit allen technischen Fallstricken, die dazugehören.
Was Nextcloud heute ist – und was es nicht ist
Nextcloud hat sich in den vergangenen Jahren von einem Fork von ownCloud zu einer Plattform entwickelt, die man nur noch mit Mühe als „Dropbox-Ersatz“ beschreiben kann. Der Kern ist nach wie vor der Dateizugriff über WebDAV unter /remote.php/dav/files/<benutzer>/, ergänzt um CalDAV und CardDAV für Kalender und Kontakte. Darüber liegt eine ganze Suite: Nextcloud Talk für Audio- und Videokonferenzen, Nextcloud Office auf Basis von Collabora Online für kollaboratives Bearbeiten, Deck als Kanban-Board, Tables als leichtgewichtige Datenbank, Forms für Umfragen und Formulare, Mail als Webmail-Client.
Für Integrationszwecke deutlich interessanter ist allerdings das, was unter der Oberfläche liegt. Die OCS-API unter /ocs/v2.php/ erlaubt administrative und benutzerbezogene Operationen per HTTP, die Sharing-API steuert Freigaben und öffentliche Links, und mit der Workflow-Engine „Flow“ lassen sich Regeln definieren, die auf Dateiereignisse reagieren. Wird eine Datei in einen bestimmten Ordner gelegt, kann Flow eine Benachrichtigung auslösen, ein Tag setzen, eine Konvertierung anstoßen oder – mit der passenden App – einen Webhook an einen entfernten Dienst schicken. Das ist die entscheidende Fähigkeit, wenn Nextcloud mit einem externen CRM sprechen soll.
Wichtig für die Einordnung: Nextcloud ist in erster Linie eine Plattform, kein Produkt mit fertigem Funktionsumfang. Der Funktionsumfang entsteht durch Apps, und diese Apps kommen aus einem sehr heterogenen Ökosystem. Neben offiziellen Komponenten gibt es hunderte Erweiterungen von Drittanbietern, deren Qualität, Wartungsstand und Sicherheitsniveau erheblich schwanken. Wer eine Integration plant, sollte deshalb nicht nur auf Funktionslisten schauen, sondern darauf, wer eine App pflegt, wie häufig sie aktualisiert wird und ob sie mit der eingesetzten Serverversion kompatibel bleibt. Das ist unbequem, aber es ist die Realität selbstgehosteter Infrastruktur.
Keap, ehemals Infusionsoft: CRM mit Automatisierungsanspruch
Keap richtet sich an kleine und mittlere Unternehmen, typischerweise zwischen fünf und fünfzig Mitarbeitern, und deckt dort einen erstaunlich breiten Bereich ab: Kontaktverwaltung, Vertriebspipeline, E-Mail-Marketing, Terminbuchung, Zahlungsabwicklung und – das ist das eigentliche Herzstück – eine visuelle Automatisierungsumgebung, in der sich Geschäftsprozesse als Kampagnen abbilden lassen. Wer eine Anfrage über ein Formular erhält, kann daraus automatisch eine Aufgabe erzeugen, eine Willkommensmail verschicken, ein Tag setzen und nach drei Tagen eine Erinnerung nachfassen lassen.
Die Produktlinie ist historisch gewachsen und für Außenstehende nicht immer leicht zu durchschauen. Keap Max Classic ist im Kern das alte Infusionsoft und wird weiterhin gepflegt, während Keap Pro und Keap Max auf einer neueren Architektur aufsetzen. Für Integrationsprojekte ist diese Unterscheidung alles andere als akademisch, denn die verfügbaren Schnittstellen unterscheiden sich je nach Produktlinie und Tarif, ebenso die Grenzen bei der Anzahl der API-Aufrufe.
Technisch relevant sind vor allem zwei Zugänge. Der ältere Weg führt über die XML-RPC-Schnittstelle des ursprünglichen Infusionsoft, die lange Zeit mit einem einfachen API-Schlüssel auskam. Dieser Weg gilt als Auslaufmodell; Neubauten sollten ihn nicht mehr verwenden. Der aktuelle Weg ist die REST-API in der Version 2, die auf OAuth 2.0 basiert und dadurch sauberere Berechtigungsmodelle ermöglicht: Ein Token läuft nach einer gewissen Zeit ab, wird über einen Refresh-Token erneuert, und die Zustimmung des Nutzers lässt sich jederzeit widerrufen. Für serverseitige Integrationen, die auf das eigene Konto zugreifen, existieren daneben langlebige „Personal Access Tokens“, die die Inbetriebnahme deutlich vereinfachen – mit dem Haken, dass sie sicher behandelt werden müssen wie ein Passwort.
Zusätzlich bietet Keap Webhooks an. Das System meldet dann von sich aus, wenn sich etwas ändert: ein neuer Kontakt, eine bearbeitete Adresse, ein abgeschlossener Termin, eine bezahlte Rechnung. Für die Kopplung mit Nextcloud ist das der bequemste Weg, weil man nicht im Minutentakt pollen muss, sondern ereignisgesteuert arbeitet. Allerdings: Webhooks sind prinzipiell unzuverlässig. Sie können verloren gehen, mehrfach ausgeliefert werden oder in falscher Reihenfolge eintreffen. Wer das ignoriert, baut sich eine Integration, die in der Demo funktioniert und im Alltag still vor sich hin driftet.
Warum überhaupt verbinden? Fünf Szenarien aus der Praxis
Bevor man über Endpunkte und Token spricht, lohnt der Blick darauf, was am Ende dabei herauskommen soll. Denn eine Integration ohne konkreten Anwendungsfall ist ein Hobbyprojekt, kein Infrastrukturvorhaben.
Erstens: Dokumente gehören zum Kontakt, nicht in einen Ordner
Der Klassiker. Ein Interessent füllt ein Formular aus, der Vertrieb erstellt ein Angebot, das als PDF in Nextcloud liegt. In Keap steht der Kontakt, aber das Dokument hängt irgendwo in einem Verzeichnisbaum, dessen Logik nur eine Person versteht. Sinnvoll ist eine Struktur, in der jede Kontaktakte in Nextcloud einen eigenen Ordner bekommt – beispielsweise unter einem Kundenstammverzeichnis, benannt nach einer eindeutigen Kennung – und in Keap ein Feld auf diesen Ordner verweist, am besten über einen stabilen Freigabelink. Dann findet jeder im CRM sofort das, was er sucht.
Zweitens: Formulare lösen Ordnerstrukturen aus
Nextcloud Forms ist für viele ein unterschätzter Baustein. Ein Formular kann als Eingangstor dienen: Der Interessent beschreibt sein Anliegen, lädt vielleicht eine Ausschreibung hoch, und im Hintergrund entsteht sowohl ein Keap-Kontakt mit Tags als auch ein vorbereiteter Ordner in Nextcloud. Was sonst manuell zusammengesucht wird, ist plötzlich ein Vorgang ohne Medienbruch.
Drittens: Termine in beide Richtungen
Keap bringt eine Terminbuchung mit, Nextcloud bringt Kalender auf CalDAV-Basis. Beide Systeme können Termine anlegen, beide können sie ändern. Zwei Systeme, die dieselbe Ressource verwalten, sind immer ein Konfliktfall. Hier ist eine bewusste Entscheidung nötig: Entweder führt Keap, und Nextcloud spiegelt nur lesend, oder umgekehrt. Eine bidirektionale Synchronisation ohne klare Konfliktauflösung endet fast zwangsläufig im Chaos – doppelte Termine, verschwundene Einträge, genervte Außendienstmitarbeiter.
Viertens: Dateien an Kunden ausliefern
Wer Rechnungen, Gutachten oder Vertragsdokumente ausliefert, will dafür keine Anhänge durch das CRM schleusen. Besser: Die Datei liegt in Nextcloud, es wird ein zeitlich befristeter und passwortgeschützter Freigabelink erzeugt, und dieser Link landet als Feld im Keap-Kontakt oder in der Automatisierung. Der Vorteil liegt auf der Hand – Zugriffe lassen sich protokollieren, Links können ablaufen, und es gibt keine Kopien, die irgendwo in Postfächern ihr Dasein fristen.
Fünftens: Belege für die Buchhaltung
Bezahlte Rechnungen aus Keap lassen sich in Nextcloud ablegen, sauber sortiert nach Jahr, Quartal und Kunde. In Kombination mit den Versionierungs- und Aufbewahrungsfunktionen der Plattform entsteht daraus ein Archiv, das auch eine Prüfung übersteht – vorausgesetzt, man kümmert sich um Retention-Regeln und darum, dass niemand im Nachhinein Dateien verändert.
Die technische Seite: Schnittstellen, Token, Grenzen
Kommen wir zum Handwerk. Wer Nextcloud und Keap verbinden will, braucht auf der einen Seite einen Weg, aus Keap heraus etwas anzustoßen, und auf der anderen Seite eine Möglichkeit, in Nextcloud Dateien und Ordner zu erzeugen. Beides ist gut dokumentiert, beides hat Eigenheiten.
Keap REST v2 in der Praxis
Die Authentifizierung läuft über OAuth 2.0. Man registriert eine Anwendung im Entwicklerportal, erhält Client-ID und Client-Secret und bekommt nach dem Zustimmungsvorgang einen Access-Token mit begrenzter Lebensdauer sowie einen Refresh-Token. Für serverseitige Szenarien ist das saubere Modell der „Authorization Code Grant“; für den eigenen Account kann man mit einem Personal Access Token arbeiten, solange dieses in einem Secret Store liegt und niemals im Quellcode auftaucht.
Ein minimaler Aufruf, um einen Kontakt zu lesen, sieht dann vereinfacht so aus:
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json" \
"https://api.infusionsoft.com/crm/rest/v2/contacts/12345"
Zwei Dinge fallen auf. Erstens: Es gibt neben der REST-API auch die älteren XML-RPC-Endpunkte, und in älterer Dokumentation und in Forenbeiträgen tauchen beide fröhlich durcheinander auf. Wer sucht, landet regelmäßig bei Lösungen für eine Schnittstelle, die mit der eigenen Installation nichts zu tun hat. Zweitens: Keap drosselt die Anzahl der Anfragen. Wie streng, hängt vom Tarif und von der Art des Zugriffs ab, aber die Grenze existiert und man trifft sie schneller, als man denkt. Ein Synchronisationsskript, das bei jedem Kontakt einzeln nachfragt, kommt ins Straucheln, sobald der Bestand vierstellig wird. Wer dann mit parallelen Threads nachhilft, produziert nicht selten HTTP 429 und wird kurzerhand ausgesperrt.
Die Lehre daraus: Batch-Verarbeitung, Paginierung, exponentielles Backoff bei Fehlern und eine lokale Zwischenspeicherung, die nicht bei jedem Lauf alles neu lädt. Das ist unspektakulär, aber es ist der Unterschied zwischen einem Skript, das läuft, und einem, das nach drei Wochen aufgegeben wird.
Nextcloud: WebDAV, OCS und Webhooks
Auf der Nextcloud-Seite gibt es mehrere Wege zum Ziel. Der naheliegendste ist WebDAV: Ein HTTP-PUT auf den passenden Pfad legt eine Datei ab, ein MKCOL erzeugt einen Ordner, ein PROPFIND listet Inhalte. Das funktioniert mit jedem HTTP-Client und ist robust.
curl -s -u "benutzer:app-passwort" -T angebot.pdf \
"https://cloud.example.org/remote.php/dav/files/benutzer/Kunden/12345/angebot.pdf"
Wichtig: Für automatisierte Zugriffe sollte man App-Passwörter verwenden, nicht das reguläre Kontopasswort. Das hat zwei Gründe. Erstens ist das Hauptpasswort häufig durch Zwei-Faktor-Authentifizierung geschützt, womit ein einfacher Basic-Auth-Aufruf gar nicht mehr funktioniert. Zweitens lässt sich ein App-Passwort gezielt widerrufen, ohne die Anmeldung eines Mitarbeiters zu zerstören.
Für Verwaltungsaufgaben – Nutzer anlegen, Gruppen verwalten, Shares erstellen – ist die OCS-API zuständig. Ein Freigabelink entsteht beispielsweise durch einen POST auf den entsprechenden Shares-Endpunkt, wahlweise mit Passwort und Ablaufdatum. Das ist der Baustein, um Kunden einen Link statt einer Datei zu schicken.
Die zweite Richtung, also von Nextcloud nach Keap, läuft über Flow oder über die Webhook-App. Legt ein Nutzer eine Datei in einen überwachten Ordner, schickt Nextcloud einen HTTP-Request an einen selbst gewählten Endpunkt. Dort sitzt ein kleiner Dienst, der die Nachricht interpretiert und seinerseits die Keap-API aufruft. Klingt umständlich, ist es aber nicht – und es entkoppelt die beiden Systeme sauber voneinander.
Middleware: n8n, Make, Zapier oder Eigenbau
Zwischen beiden Welten braucht es fast immer eine Vermittlungsschicht. Die populärste selbsthostbare Variante ist n8n, das sich als Container neben Nextcloud betreiben lässt und eine Nextcloud-Integration mitbringt. Alternativ kommen Make oder Zapier infrage, wenn man keinen eigenen Dienst betreiben möchte – dafür wandern dann aber Daten über einen weiteren Drittanbieter. Für schmale, klar umrissene Aufgaben reicht auch ein eigenes Skript in Python oder PHP, das auf einem kleinen Server läuft und die nötigen Aufrufe macht.
Die Wahl ist weniger eine Glaubensfrage als eine Frage der Betriebsverantwortung. Eine Low-Code-Plattform ist schnell aufgesetzt, aber wenn der Workflow komplex wird, wird er unübersichtlich und die Fehlersuche mühsam. Eigener Code ist transparenter, verlangt aber jemanden, der ihn pflegt. In beiden Fällen gilt: Wer die Integration nicht dokumentiert, wird sie in zwei Jahren nicht mehr verstehen. Und das ist meist genau dann der Fall, wenn derjenige, der sie gebaut hat, das Unternehmen verlassen hat.
Ein Architekturmuster, das sich bewährt hat
In der Praxis hat sich eine Dreiteilung bewährt. Keap bleibt führend für alles, was mit Kundenbeziehungen, Aufträgen und Zahlungen zu tun hat. Nextcloud bleibt führend für Dokumente, Freigaben und kollaborative Arbeit. Dazwischen liegt ein schlanker Vermittlungsdienst, der ausschließlich die Übersetzung übernimmt und selbst keine eigene Datenhaltung besitzt.
Ein konkretes Beispiel: In einer Keap-Kampagne wird nach dem Versand eines Angebots ein HTTP-POST ausgelöst. Der Zielendpunkt liegt nicht direkt in Nextcloud, sondern beim Vermittlungsdienst. Dieser prüft zunächst, ob die Anfrage authentisch ist – ein geteiltes Geheimnis im Header, idealerweise kombiniert mit einer Signatur über den Request-Body. Danach ermittelt er anhand der Kontakt-ID den passenden Ordner, legt ihn an, falls er fehlt, und schreibt eine kurze Statusdatei oder ein Kommentarfeld. Zum Schluss setzt er über die Keap-API ein Tag, damit im CRM sichtbar ist, dass die Ablage funktioniert hat.
Warum nicht direkt aus Keap in die Nextcloud-API? Weil der Token für Nextcloud dann im Keap-Kampagneneditor hinterlegt wäre. Das ist ungefähr so, als würde man den Haustürschlüssel unter die Fußmatte legen und hoffen, dass niemand nachsieht. Der Vermittlungsdienst kapselt die Zugangsdaten, erlaubt sauberes Logging und lässt sich ohne Eingriff in die Kampagnenlogik ändern.
Zwei Eigenschaften sollte dieser Dienst mitbringen, die in vielen selbstgebauten Lösungen fehlen: Idempotenz und Nachvollziehbarkeit. Idempotent bedeutet, dass derselbe Webhook zweimal ankommen darf, ohne dass zwei identische Ordner entstehen. Das erreicht man über eine Ereignis-ID, die man speichert und bei Wiederholung verwirft. Nachvollziehbarkeit bedeutet, dass man später sagen kann, welcher Vorgang wann welches Ergebnis hatte. Ohne Logs ist jede Fehlersuche Rätselraten.
Datenschutz: der unangenehme Teil
Hier wird es ernst. Nextcloud selbst zu betreiben, ist oft eine bewusste Entscheidung für Datenhoheit. Der Server steht im eigenen Rechenzentrum oder bei einem europäischen Anbieter, die Daten verlassen die eigene Kontrolle nicht, Zugriffe lassen sich protokollieren. Das ist ein legitimer und häufig unterschätzter Vorteil, gerade im Umgang mit personenbezogenen Daten.
Keap ist dagegen ein US-amerikanischer Anbieter mit Rechenzentren in den Vereinigten Staaten. Wer dort Kontakte, Kommunikationsverläufe, Kaufhistorien und Termine ablegt, verarbeitet personenbezogene Daten in einem Drittland. Daran ändert auch die schönste Nextcloud nichts, denn die Ordnerstruktur ist nur die Ablage – die eigentlichen Informationen stehen im CRM.
Seit dem Angemessenheitsbeschluss zum EU-US Data Privacy Framework gibt es wieder eine Grundlage für Übermittlungen an zertifizierte US-Unternehmen. Das entbindet aber nicht von der Pflicht, ein Auftragsverarbeitungsverhältnis zu regeln, die Datenminimierung zu beachten und eine Risikoabwägung zu dokumentieren. Wer sensible Kategorien verarbeitet – Gesundheitsdaten, Daten von Kindern, besondere Umstände – sollte sehr genau prüfen, ob ein US-CRM überhaupt der richtige Ort dafür ist.
Betrieb, Fehler, Backups
Integrationen scheitern selten an der ersten Inbetriebnahme. Sie scheitern im Betrieb. Ein Token läuft ab, ein Zertifikat wird nicht erneuert, ein Rate Limit greift, ein Anbieter ändert stillschweigend das Antwortformat. Wer eine Kopplung zwischen Nextcloud und Keap betreibt, braucht deshalb eine minimale Betriebsroutine: Monitoring auf fehlgeschlagene Aufrufe, Alarmierung bei Häufungen, regelmäßige Prüfung, ob die Synchronisation noch vollständig ist. Ein Vergleich der Kontaktzahlen und Ordnerzahlen einmal pro Woche ist billig und deckt die meisten Probleme auf, bevor sie eskalieren.
Backups gehören zu beiden Seiten. Nextcloud benötigt Datenbank, Datenverzeichnis und Konfiguration, und ein Restore sollte regelmäßig geübt werden. Auf der Keap-Seite ist man auf die Exportfunktionen des Anbieters angewiesen; ein eigener, periodischer Export der wesentlichen Datensätze in eine Nextcloud-Ablage ist keine Paranoia, sondern schlicht eine Versicherung gegen Anbieterwechsel, Kontosperren oder Datenverluste. Wer schon einmal versucht hat, ein CRM nach einer misslungenen Migration wieder zusammenzusetzen, weiß, wovon die Rede ist.
Ein Wort zu Versionsständen: Nextclouds Dateiversionierung ist hilfreich, aber sie ist kein Backup. Wird eine Datei durch ein fehlerhaftes Skript hundertmal überschrieben, kann die Versionshistorie schnell unübersichtlich werden. Besser ist es, Automatismen so zu bauen, dass sie neue Dateien anlegen oder bestehende gezielt aktualisieren, statt blind zu überschreiben.
Grenzen des Ansatzes und Alternativen
Man sollte sich nichts vormachen: Eine selbstgebaute Integration ist Wartungsarbeit. Anbieter ändern APIs, Nextcloud bringt neue Hauptversionen, ein Update bricht eine App. Wer das nicht leisten kann oder will, fährt mit einem der etablierten Marktplatz-Connectoren oft besser, auch wenn diese weniger flexibel sind.
Umgekehrt gilt: Wer ein CRM sucht, das vollständig in der eigenen Nextcloud-Umgebung lebt, wird bei Keap nicht glücklich. Es gibt CRM-Erweiterungen für Nextcloud und eigenständige Open-Source-CRMs wie EspoCRM oder SuiteCRM, die sich durchaus mit einer Nextcloud koppeln lassen – und die, wenn Datenschutz der treibende Faktor ist, eine ernsthafte Alternative darstellen. Die Frage ist am Ende nicht, welches Werkzeug das mächtigere ist, sondern welches zu den Prozessen und zur Risikobereitschaft des Unternehmens passt.
Ein interessanter Aspekt dabei: Viele Betriebe nutzen Keap längst nicht in vollem Umfang. Die Automatisierungsmöglichkeiten sind gut, aber sie werden häufig nur für E-Mail-Strecken verwendet. Wer erst einmal kartiert, welche Daten wirklich zwischen CRM und Dateiablage wandern müssen, stellt oft fest, dass die Integrationsfläche kleiner ist als gedacht – und dass sich der Aufwand dadurch deutlich reduziert.
Fazit
Nextcloud und Keap sind keine natürlichen Partner. Die eine Plattform ist quelloffen, selbst betreibbar und auf Datenhoheit ausgelegt, die andere ist ein Cloud-Dienst mit US-Herkunft und einem klaren Fokus auf Vertriebsautomatisierung. Genau deshalb ist die Verbindung interessant: Sie erlaubt es, das Beste aus beiden Welten zu nutzen, ohne die Dokumentenablage dem CRM zu opfern.
Technisch ist der Weg gut gangbar. REST-API auf der einen, WebDAV und OCS auf der anderen Seite, dazwischen eine schlanke Vermittlungsschicht. Entscheidend ist weniger die Technik als die Disziplin: klare Zuständigkeiten, dokumentierte Abläufe, saubere Fehlerbehandlung, ein wachsames Auge auf die Datenschutzfragen. Wer diese Punkte ernst nimmt, bekommt eine Infrastruktur, die den Alltag spürbar entlastet. Wer sie ignoriert, bekommt eine weitere Baustelle.
Eine kurze Checkliste für den Start: Zuerst die Datenflüsse kartieren und auf das Nötige reduzieren. Dann eine eindeutige Kennung definieren, die Kontakte über beide Systeme hinweg identifiziert. App-Passwörter und Personal Access Tokens in einem Secret Store ablegen, niemals im Code. Den Vermittlungsdienst idempotent bauen und alles protokollieren. Rate Limits von Keap respektieren und Backoff implementieren. Zuletzt: den Datenschutz nicht als Anhängsel behandeln, sondern von Anfang an mitdenken – und einen Plan haben, was passiert, wenn der Anbieter des CRM irgendwann wechselt.