Die ActiveCampaign-Schnittstelle
Daten nach ActiveCampaign hineinbringen, Kontakte lesen, Tags setzen. Mit Zugangsdaten, Grenzen und den Aufrufen, die man tatsächlich braucht – auf Deutsch.
ActiveCampaign · Stand August 2026
Prüf die Ziel-Adresse auf die zwei Bedingungen, an denen Webhooks lautlos scheitern – und mach den ankommenden Datensatz lesbar, ohne ihn irgendwohin zu laden.
Teil 1
ActiveCampaign sendet ausschließlich über HTTPS und ausschließlich an Port 443. Beides scheitert lautlos – es gibt keine Fehlermeldung, es kommt nur nichts an.
Teil 2
Füg den rohen Rumpf der POST-Anfrage ein, so wie er im Protokoll deiner Gegenstelle steht. Er wird hier entschlüsselt – im Browser, ohne dass die Kontaktdaten darin irgendwohin übertragen werden.
Ein ActiveCampaign-Webhook meldet ein Ereignis an eine fremde Adresse: Kontakt angelegt, Tag gesetzt, Link geklickt. Er sendet als POST im Format application/x-www-form-urlencoded, ausschließlich über HTTPS an Port 443, und mindestens einmal je Ereignis – auch zweimal. Eingehende Webhooks nimmt ActiveCampaign nicht entgegen; dafür gibt es die Schnittstelle.
Stand der Angaben: 31. August 2026 · geprüft von Advertal, offizieller ActiveCampaign-Partner seit 2017



200+ Unternehmen im Advertal Partner-Netzwerk · offizieller ActiveCampaign-Partner · seit 2017 auf eine Plattform spezialisiert
Die häufigste Suche zu diesem Thema lautet sinngemäß „Daten per Webhook an ActiveCampaign schicken". Dafür gibt es eine kurze Antwort, und sie steht wörtlich in der Herstellerdoku: ActiveCampaign nimmt keine eingehenden Webhooks entgegen.
Ein Webhook in ActiveCampaign geht immer hinaus. Es passiert etwas in deinem Konto – ein Kontakt wird angelegt, ein Tag gesetzt, ein Link geklickt, ein Deal verschoben –, und ActiveCampaign schickt daraufhin unaufgefordert eine POST-Anfrage an eine Adresse, die du hinterlegt hast.
Für die Gegenrichtung gibt es die Schnittstelle. Wenn dein Shop, dein Formular oder dein eigenes System Daten nach ActiveCampaign bringen soll, ruft dein System die ActiveCampaign API auf – nicht umgekehrt. Beide Wege heißen im Alltagsgebrauch „Webhook", und diese Unschärfe kostet regelmäßig einen halben Tag.
Praktisch heißt das: Ein Werkzeug wie Make oder Zapier, das „auf einen Webhook wartet", ist der Empfänger. ActiveCampaign ist immer der Sender.
Beide heißen Webhook, beide senden POST – aber sie werden unterschiedlich ausgelöst und an unterschiedlichen Stellen verwaltet. Wer am falschen Ort sucht, findet seinen Webhook nicht.
| Einstellungen ▸ Entwickler | Aktion in einer Automation | |
|---|---|---|
| Wann es feuert | Bei jedem Vorkommen des gewählten Ereignisses im ganzen Konto. | Wenn ein Kontakt in der Automation an diesem Schritt ankommt. |
| Auswahl | Ereignistyp aus einer Liste – Kontakt hinzugefügt, Tag gesetzt, Link geklickt, Deal verschoben, E-Mail unzustellbar und weitere. | Kein Ereignistyp. Der Auslöser ist die Position in der Automation. |
| Umfang | Kontenweit. Betrifft alle Kontakte, die die Bedingung erfüllen. | Nur die Kontakte, die diese Automation durchlaufen. |
| Auslöse-Quelle wählbar | Ja – Kontakt, Benutzer, Systemvorgang, Schnittstelle. Genau hier liegt der häufigste Einrichtungsfehler. | Nein, entfällt. |
| Wofür geeignet | Ein externes System dauerhaft im Gleichstand halten. | Einen einzelnen Vorgang anstoßen – Rechnung erzeugen, Aufgabe anlegen, Nachricht senden. |
Die Automations-Aktion arbeitet nur mit Standard-Objekten. Quelle: ActiveCampaign, „Use ActiveCampaign webhooks", Stand 28.07.2026.
Beim Anlegen eines Webhooks unter Einstellungen ▸ Entwickler wählst du nicht nur, welches Ereignis meldet, sondern auch wodurch ausgelöst. Vier Möglichkeiten stehen zur Wahl, und sie sind einzeln anhakbar:
Durch einen Kontakt – jemand trägt sich selbst in ein Formular ein oder öffnet eine Kampagne. Durch einen Benutzer – jemand aus deinem Team legt den Kontakt in der Oberfläche an. Durch Systemvorgänge – automatische Abläufe, etwa wenn eine E-Mail als unzustellbar zurückkommt. Durch die Schnittstelle – ein API-Aufruf löst die Aktion aus.
Der typische Ablauf: Jemand richtet den Webhook ein, hakt „durch einen Kontakt" an, testet über das Anmeldeformular – es funktioniert. Dann läuft die Anbindung in Betrieb, Kontakte kommen über ein eigenes Skript per Schnittstelle herein, und es passiert nichts mehr. Kein Fehler, kein Protokolleintrag, nur Stille.
Wenn ein Webhook „manchmal" funktioniert und manchmal nicht, ist diese Einstellung fast immer die Ursache. Sie ist auch der Grund, warum ein Test über den Knopf Send Sample Data nicht ausreicht: Der schickt Beispieldaten, prüft die Quelle aber nicht mit.
Bis zum funktionierenden Empfang sind es sechs Schritte. Zwei davon prüfst du besser vorher als hinterher.
Die Gegenstelle muss POST annehmen und mit einem Erfolgscode antworten. Sie muss über HTTPS erreichbar sein, und zwar am Standardport 443 – ein abweichender Port wird nie aufgerufen. Der Prüfer oben auf dieser Seite sagt dir, ob deine Adresse das erfüllt.
In ActiveCampaign unter Einstellungen ▸ Entwickler auf „Manage Webhooks" und dann auf „Add". Name und URL eintragen, im Feld „Type" die Ereignisse wählen – mehrere sind möglich.
Kontakt, Benutzer, Systemvorgang, Schnittstelle. Wähl alle, die in deinem Betrieb vorkommen können. Wer hier nur „Kontakt" setzt und später per Schnittstelle importiert, sucht den Fehler an der falschen Stelle.
Der Datensatz selbst lässt sich nicht anpassen, die Kopfzeilen schon. Trägst du eine Kopfzeile mit „is_signature" auf wahr ein, bildet ActiveCampaign aus deinem Geheimnis und dem Rumpf eine HMAC-SHA256-Signatur. Dein Empfänger rechnet sie nach – und weiß dadurch, dass der Aufruf wirklich von ActiveCampaign kommt und unterwegs nicht verändert wurde.
Der Knopf „Send Sample Data" auf der Webhook-Seite schickt einen Testdatensatz an deine Adresse. Er beweist, dass die Adresse erreichbar ist – nicht, dass deine Auslöse-Quellen stimmen. Dafür braucht es einen echten Vorgang auf dem Weg, den du produktiv nutzt.
ActiveCampaign sichert die Zustellung „mindestens einmal" zu und sendet denselben Vorgang gelegentlich zweimal. Dein Empfänger muss ein Ereignis anhand von Typ, Kontakt und Zeitstempel wiedererkennen und beim zweiten Mal nichts erneut auslösen – sonst legst du irgendwann zwei Rechnungen für einen Kauf an.
Der Datensatz kommt als Formulardaten – application/x-www-form-urlencoded, nicht als JSON. Das ist der zweithäufigste Grund für ein „der Webhook funktioniert nicht": Er kommt an, aber der Empfänger erwartet JSON und sieht einen leeren Rumpf.
Eine Ausnahme gibt es: WhatsApp-Webhooks sind ein eigenes System und liefern JSON. Sie werden auch an anderer Stelle verwaltet – unter WhatsApp ▸ Manage ▸ Webhooks – und gehören ausdrücklich nicht zur öffentlichen Schnittstelle. Mehr dazu unter ActiveCampaign WhatsApp.
Erschwerend kommt die Schreibweise verschachtelter Werte hinzu. Statt einer Struktur stehen Klammern im Schlüssel: `contact[email]`, `contact[fields][7]`. Im Protokoll landet das als eine einzige Zeile von mehreren hundert Zeichen, in der alles zusätzlich URL-kodiert ist – aus einem Komma wird `%2C`, aus einem Umlaut wird `%C3%BC`.
Genau dafür ist der zweite Teil des Werkzeugs oben da: rohen Rumpf einfügen, lesbaren Baum zurückbekommen. Er läuft im Browser, denn in so einem Datensatz stehen echte Kontaktdaten – ihn zum Entschlüsseln irgendwohin hochzuladen wäre der Fehler, den man dabei vermeiden will.
Ein Detail, das später Arbeit macht: Eigene Felder erscheinen unter `contact[fields]` mit ihrer Kennnummer, nicht mit ihrer Beschriftung. Welche Nummer welches Feld ist, steht in ActiveCampaign unter Kontakte ▸ Felder verwalten. Diese Zuordnung gehört fest in deinen Empfänger dokumentiert – sonst rätselt beim nächsten Umbau jemand, was Feld 7 war.
Webhooks sind die eine Richtung. Hier ist die andere.
Daten nach ActiveCampaign hineinbringen, Kontakte lesen, Tags setzen. Mit Zugangsdaten, Grenzen und den Aufrufen, die man tatsächlich braucht – auf Deutsch.
Für einmalige Mengen ist der Import der einfachere Weg als die Schnittstelle – samt der Anforderungen an die Datei und dem Fehler, der versehentlich Automationen auslöst.
Die Webhook-Aktion ist nur ein Schritt unter vielen. Wie eine Automation insgesamt aufgebaut wird, zeigt der kostenlose Kurs auf Deutsch.
Der Unterschied, den kaum jemand kennt
ActiveCampaign kostet über das Advertal Partner-Netzwerk exakt so viel wie im Direktbezug. Du startest deinen Account über uns oder verknüpfst deinen bestehenden; Preis und Funktionsumfang bleiben unverändert. Dazu bekommst du einen persönlichen Ansprechpartner auf Deutsch – ohne Aufschlag, ohne zusätzliche Vertragsbindung. Der offizielle Support von ActiveCampaign bleibt dir daneben erhalten.
Nein. In der Herstellerdoku steht dazu wörtlich „ActiveCampaign does not accept incoming webhooks". Webhooks gehen ausschließlich aus ActiveCampaign heraus. Für die Gegenrichtung – Daten hineinbringen – ist die Schnittstelle zuständig: Dein System ruft ActiveCampaign auf, nicht umgekehrt.
Als POST-Anfrage im Format application/x-www-form-urlencoded, also als Formulardaten – nicht als JSON. Verschachtelte Werte stehen in Klammer-Schreibweise wie contact[fields][7]. Ein Empfänger, der einen JSON-Rumpf erwartet, bekommt nichts zu sehen, obwohl der Aufruf angekommen ist. Ausgenommen sind die WhatsApp-Webhooks: Sie sind ein eigenes System, liefern JSON und werden separat unter WhatsApp ▸ Manage ▸ Webhooks verwaltet.
Drei Ursachen decken fast alle Fälle ab. Erstens: keine HTTPS-Adresse oder ein anderer Port als 443 – ActiveCampaign sendet nur dorthin, und zwar ohne Fehlermeldung. Zweitens: Die Auslöse-Quelle passt nicht; wer „Schnittstelle" nicht angehakt hat, bekommt für Kontakte aus dem eigenen Skript nichts. Drittens: Der Empfänger antwortet nicht mit einem Erfolgscode.
Ja, und das ist zugesichertes Verhalten: ActiveCampaign garantiert die Zustellung „mindestens einmal" und sendet einen Webhook zu einem Ereignis gelegentlich mehr als einmal. Dein Empfänger muss ein Ereignis wiedererkennen und beim zweiten Mal nichts erneut ausführen – sonst entstehen doppelte Rechnungen, Aufgaben oder Nachrichten.
Über eine eigene Kopfzeile mit gesetztem „is_signature". ActiveCampaign bildet dann aus deinem hinterlegten Geheimnis und dem Rumpf der Anfrage eine HMAC-SHA256-Signatur und schickt sie als Wert dieser Kopfzeile mit. Dein Empfänger rechnet dieselbe Signatur nach und vergleicht. Der Datensatz selbst lässt sich nicht anpassen – die Kopfzeilen schon.
Weil ActiveCampaign eigene Felder über ihre Kennnummer identifiziert, nicht über die Beschriftung. Welche Nummer zu welchem Feld gehört, siehst du unter Kontakte ▸ Felder verwalten. Halte die Zuordnung in deinem Empfänger fest – ändert jemand später eine Beschriftung, bleibt die Nummer gleich, und nur die Dokumentation rettet dich.
Er beweist, dass deine Adresse erreichbar ist und Beispieldaten annimmt – mehr nicht. Ob deine Auslöse-Quellen richtig gesetzt sind, zeigt er nicht. Dafür brauchst du einen echten Vorgang auf genau dem Weg, den du später produktiv nutzt: also etwa einen Kontakt über dein eigenes Skript anlegen, wenn der Betrieb so läuft.

Geprüft von
Tom Wenk arbeitet seit 2017 ausschließlich mit ActiveCampaign. Mit Advertal betreut er heute über 200 Unternehmen im deutschsprachigen Raum, sitzt im ActiveCampaign Customer Advisory Board und im Partner Advisory Subcommittee und hat über 280 kostenlose Tutorials zur Plattform veröffentlicht. Die Angaben auf dieser Seite stammen aus dieser Praxis und aus Quellen, die wir am 31. August 2026 selbst geprüft haben.
Webhooks, Schnittstelle, doppelte Aufrufe, Signaturprüfung – für Accounts im Partner-Netzwerk richten wir die Anbindung ein und bleiben ansprechbar, wenn sie sich irgendwann anders verhält als am ersten Tag.
Partner-Netzwerk ansehenAuch spannend: die ActiveCampaign Agentur, der kostenlose Kurs und unsere Fallstudien.