con2net / contao-activecampaign-bundle
ActiveCampaign Bundle - DSGVO-konforme API-Integration mit optionaler manueller Übertragung
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:contao-bundle
pkg:composer/con2net/contao-activecampaign-bundle
Requires
- php: ^8.2 || ^8.3
- contao/core-bundle: ^4.13 || ^5.0
- symfony/framework-bundle: ^4.4 || ^5.4 || ^6.0 || ^7.0
Suggests
- con2net/contao-anti-spam-form-bundle: Adds professional spam protection before sending to ActiveCampaign
This package is auto-updated.
Last update: 2025-11-27 10:18:15 UTC
README
DSGVO-konforme ActiveCampaign-Integration für Contao 4.13 und 5.3
Integriere ActiveCampaign nahtlos in deine Contao-Website – ganz ohne externe Tracking-Skripte oder Widgets!
Features
- DSGVO-konform – Serverseitige API-Integration, keine externen Skripte
- Einfach – Content Element, kein Code nötig
- Flexibel – Standard-Felder + Custom Fields Support
- Sicher – Optionale manuelle Übertragung für Freigabe vor dem Transfer
- Kompatibel – Contao 4.13 LTS und 5.3 LTS
Inhaltsverzeichnis
- Installation
- Konfiguration
- Verwendung
- Feldnamen-Mapping
- Manuelle Übertragung (Delayed Transfer)
- Troubleshooting
- FAQ
- Haftungsausschluss
Installation
Via Contao Manager (empfohlen)
- Contao Manager öffnen
- Suche nach "ActiveCampaign Bundle"
- Bundle installieren
- Installation durchführen
- Datenbank-Migration ausführen (siehe unten)
Via Composer
composer require con2net/contao-activecampaign-bundle
Anschließend:
-
Cache leeren:
rm -rf var/cache/* php vendor/bin/contao-console cache:clear -
Datenbank-Migration ausführen:
php vendor/bin/contao-console contao:migrate
Konfiguration
1. ActiveCampaign API-Keys holen
- In ActiveCampaign einloggen
- Settings → Developer → API Access
- API URL und API Key notieren
2. API-Credentials in Contao eintragen
Erstelle/Bearbeite die Datei .env.local im Root-Verzeichnis deiner Contao-Installation:
###> con2net/contao-activecampaign-bundle ### ACTIVECAMPAIGN_API_URL=https://DEIN-ACCOUNT.api-us1.com ACTIVECAMPAIGN_API_KEY=dein-api-key ###< con2net/contao-activecampaign-bundle ###
Hinweis für Contao 4.13: Falls du noch keine .env.local nutzt, funktioniert diese Konfigurationsmethode trotzdem. Contao 4.13 unterstützt ENV-Variablen.
3. Cache leeren
rm -rf var/cache/*
php vendor/bin/contao-console cache:clear
Verwendung
Schritt 1: Contao-Formular erstellen
- Backend → Formulare → Neues Formular
- Formular-Felder hinzufügen:
- E-Mail (Pflichtfeld!) mit Feldname:
email - Vorname mit Feldname:
firstName - Nachname mit Feldname:
lastName - Telefon mit Feldname:
phone - Submit-Button
- E-Mail (Pflichtfeld!) mit Feldname:
Tipp: Die Feldnamen sind wichtig! Siehe Feldnamen-Mapping
Schritt 2: Listen-ID in ActiveCampaign finden
- In ActiveCampaign einloggen
- Lists öffnen
- Gewünschte Liste anklicken
- In der URL steht die ID:
.../list/view?id=8→ 8 ist die Listen-ID
Schritt 3: Content Element einfügen
-
Backend → Artikel bearbeiten → Neues Element
-
Element-Typ: Include-Elemente → ActiveCampaign Formular
-
Konfigurieren:
- Formular: Dein Formular auswählen
- Listen-ID:
8(Beispiel) - Tags:
Website-Kontakt, DE(komma-getrennt, optional)
-
Speichern → Fertig!
Schritt 4: Testen
- Seite im Frontend öffnen
- Formular ausfüllen und absenden
- In ActiveCampaign prüfen ob der Kontakt angelegt wurde
Debug: Schaue in var/logs/ nach Einträgen mit "activecampaign"
Beispiel für Log-Dateinamen:
# Die Log-Dateien enthalten das aktuelle Datum im Namen:
var/logs/prod-2025-11-24.log
var/logs/prod-2025-11-25.log
Suche nach ActiveCampaign-Einträgen:
grep "activecampaign" var/logs/prod-2025-11-24.log
Feldnamen-Mapping
Das Bundle erkennt automatisch bestimmte Feldnamen und ordnet sie ActiveCampaign-Feldern zu.
Standard-Felder
| ActiveCampaign | Contao Feldname | Alternativen |
|---|---|---|
email |
e-mail, e_mail, mail |
|
| Vorname | firstName |
firstname, first_name, vorname |
| Nachname | lastName |
lastname, last_name, nachname |
| Telefon | phone |
telefon, telephone, tel |
Wichtig: Groß-/Kleinschreibung beachten! firstName ist korrekt, firstname funktioniert auch, aber FirstName nicht optimal.
Custom Fields
Für alle anderen Felder nutze das Format: acf_ID
Custom Field IDs herausfinden
Option 1: Link im Backend (empfohlen für Redakteure)
Im Content Element beim Feld "ActiveCampaign Listen-ID" findest du im Hilfetext einen klickbaren Link: » Custom Field IDs anzeigen
Dieser öffnet eine übersichtliche Anzeige aller verfügbaren Felder mit ihren IDs.
Option 2: Console-Command
php vendor/bin/contao-console activecampaign:debug-fields
Zeigt alle verfügbaren Felder mit IDs an.
Option 3: Im Browser
Öffne: https://deine-domain.de/activecampaign/fields
Zeigt eine schöne Übersicht aller Felder im Browser!
Option 4: ActiveCampaign Backend
- Settings → Fields → Manage Fields
- Feld anklicken
- In der URL steht die ID:
.../field/edit?id=6
Beispiel
Du hast in ActiveCampaign folgende Custom Fields:
- Company (ID: 6)
- City (ID: 18)
- Message (ID: 8)
Dann benenne deine Contao-Formularfelder:
acf_6→ Firmaacf_18→ Stadtacf_8→ Nachricht
Fertig! Das Bundle überträgt die Werte automatisch zu ActiveCampaign.
Manuelle Übertragung (Delayed Transfer)
Die manuelle Übertragung ermöglicht Freigabe vor der Übertragung zu ActiveCampaign.
Wofür ist das gut?
- Qualitätskontrolle vor der Übertragung
- SPAM-Prüfung durch Menschen
- Compliance-Anforderungen
- Test-Formulare ohne Live-Übertragung
Aktivierung
- Content Element bearbeiten
- "Manuelle Übertragung (Delayed Transfer)" aktivieren
- "Auto-Löschung nach Tagen:"
10(empfohlen) - Speichern
Workflow
- User füllt Formular aus → Submit
- Daten werden in DB gespeichert (NICHT zu ActiveCampaign)
- E-Mail an Admin mit allen Daten + Transfer-Link
- Admin prüft E-Mail:
- Sieht gut aus? → Klick auf Link
- SPAM? → E-Mail ignorieren
- Klick auf Link → Daten werden zu ActiveCampaign übertragen
- Erfolgsseite wird angezeigt
E-Mail-Template (Notification Center)
Betreff:
Neue Anfrage über Kontaktformular
Text:
Neue Anfrage:
Name: ##form_firstName## ##form_lastName##
E-Mail: ##form_email##
Telefon: ##form_phone##
Nachricht: ##form_message##
Zu ActiveCampaign übertragen:
##form_activecampaign_transfer_link##
Wichtig: Das Token ##form_activecampaign_transfer_link## enthält den Transfer-Link!
Sicherheit
- Token ist kryptographisch sicher (32+ Zeichen)
- Token ist einmalig verwendbar
- Automatische Löschung nach X Tagen
- Daten bleiben auf deinem Server
Troubleshooting
"No email address found in form data"
Problem: Formular hat kein E-Mail-Feld oder falscher Feldname.
Lösung:
- Formular muss ein Feld mit Namen
emailenthalten - Alternativen:
e-mail,e_mail,mail
"ActiveCampaign API Error (HTTP 401)"
Problem: Falsche API-Credentials.
Lösung:
- Prüfe
.env.local - API URL korrekt? (z.B.
https://yourname.api-us1.com) - API Key korrekt kopiert?
- Teste mit:
php vendor/bin/contao-console activecampaign:debug-fields
"Contact added but fields are empty"
Problem: Feldnamen-Mapping funktioniert nicht.
Lösung:
- Standard-Felder:
firstName,lastName,phone(mit großem N!) - Custom Fields:
acf_IDFormat verwenden - IDs prüfen mit Link im Backend oder Console-Command
FAQ
Ist das Bundle DSGVO-konform?
Ja! Das Bundle nutzt eine serverseitige API-Integration. Es werden:
- Keine externen Skripte eingebunden
- Keine Cookies gesetzt
- Kein Tracking vor dem Submit
- Daten bleiben bis zum Submit auf deinem Server
- Übertragung erst nach explizitem Submit
Wichtig: Dein Formular muss trotzdem eine DSGVO-konforme Einwilligungserklärung enthalten!
Kann ich mehrere Formulare mit verschiedenen Listen verbinden?
Ja! Erstelle einfach mehrere Content Elemente mit verschiedenen Formularen und Listen-IDs.
Funktioniert das mit Multi-Language-Sites?
Ja! Erstelle für jede Sprache:
- Ein eigenes Formular
- Ein eigenes Content Element
- Unterschiedliche Tags (z.B.
Website-DE,Website-EN)
Was passiert bei API-Fehlern?
Das Formular funktioniert trotzdem!
- E-Mail wird normal versendet
- User sieht die Bestätigungsseite
- Nur die ActiveCampaign-Übertragung schlägt fehl
- Fehler wird geloggt
Rationale: Lieber Daten in der E-Mail als gar nichts!
Kann ich das Bundle mit anderen Extensions kombinieren?
Ja! Das Bundle ist kompatibel mit:
- Notification Center 1.x und 2.x
- Standard Contao E-Mail
- Anti-SPAM Extensions (z.B. con2net/contao-anti-spam-form-bundle)
- Anderen Form-Extensions
Haftungsausschluss
Dieses Bundle wurde mit größter Sorgfalt entwickelt. Dennoch können sich die technischen Rahmenbedingungen (ActiveCampaign API, Contao-Versionen, PHP-Versionen etc.) jederzeit ändern.
Die Nutzung erfolgt auf eigene Verantwortung.
Der Entwickler übernimmt keine Garantie für:
- Korrekte Datenübertragung zu ActiveCampaign
- Vollständigkeit der übertragenen Daten
- Kompatibilität mit zukünftigen Versionen
- Funktionsfähigkeit nach Änderungen durch Drittanbieter
Es wird empfohlen, die Übertragung nach der Installation zu testen und regelmäßig zu prüfen.
Bei geschäftskritischen Anwendungen sollte die manuelle Übertragung (Delayed Transfer) genutzt werden, um vor der Übertragung eine Kontrolle durchzuführen.
Lizenz
LGPL-3.0-or-later
Dieses Bundle ist freie Software und darf verwendet, verändert und weitergegeben werden gemäß den Bedingungen der GNU Lesser General Public License.
Weiterführende Links
- ActiveCampaign API Docs: https://developers.activecampaign.com
- Contao Dokumentation: https://docs.contao.org
Hinweis: Dieses Bundle wird ohne Gewährleistung bereitgestellt. Teste es gründlich vor dem produktiven Einsatz und passe die Einstellungen an deine Bedürfnisse an.
Entwickelt mit ❤️ in Norddeutschland von connect2Net webServices / Stefan Meise