Integrationen

Make (Integromat) + CaptchaAI: Visuelle CAPTCHA-Automatisierung

Für CaptchaAI gibt es in Make keine fertige App – und Sie brauchen auch keine. Zwei HTTP-Module, ein Sleep-Modul und ein Router genügen, um ein CAPTCHA mitten im Szenario lösen zu lassen und das Token weiterzureichen.

Der Ablauf ist schlicht: CaptchaAI nimmt Sitekey und Page-URL über in.php entgegen, antwortet mit einer Task-ID und stellt das Token unter res.php bereit. Nötig sind ein Make-Account mit Webhook-Rechten, ein API-Schlüssel aus dem Dashboard und ein freier Thread im Plan.

Hinweis: Die Modulnamen stehen hier auf Englisch, weil die Make-Oberfläche je nach Spracheinstellung abweicht. Alle Beispiele beziehen sich auf Formulare in eigenen oder freigegebenen Umgebungen.

Der Ablauf in vier Schritten

Schritt Modul in Make Was dabei passiert
1 Webhook Eine Anfrage mit Page-URL und reCAPTCHA-Sitekey trifft ein.
2 HTTP an in.php CaptchaAI nimmt die Aufgabe an und liefert eine Task-ID.
3 Sleep und HTTP an res.php Das Ergebnis wird abgefragt, bis das Token vorliegt.
4 Router Das Token geht per Webhook-Antwort zurück oder direkt weiter.

Ein Beispiel aus dem DACH-Raum: Ein Team betreibt seinen Shopware-Testshop auf einem Hetzner-Server und lässt nach jedem Deployment aus GitLab CI heraus ein Make-Szenario die Kontaktformulare durchklicken. Weil dort reCAPTCHA v2 aktiv ist, brach der Test bisher genau hier ab – statt den Schutz abzuschalten, holt die Pipeline nun das Token über den Webhook.

Schritt 1: Das Szenario in Make anlegen

Legen Sie ein neues Szenario mit fünf Modulen an: Webhook, zwei HTTP-Module, Sleep und Router.

Modul 1: Webhook als Einstiegspunkt

Fügen Sie das Modul Webhooks > Custom webhook ein, erstellen Sie über Add einen neuen Webhook und kopieren Sie dessen URL. Anschließend legen Sie die Datenstruktur der eingehenden Anfragen fest:

{
  "sitekey": "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
  "pageurl": "https://example.com/form",
  "captcha_type": "recaptcha_v2"
}

Modul 2: HTTP-Request – Aufgabe an CaptchaAI übergeben

Fügen Sie ein Modul HTTP > Make a request hinzu, Methode GET, URL https://ocr.captchaai.com/in.php, mit diesen Query-String-Parametern:

Schlüssel Wert
key Ihr CaptchaAI-API-Schlüssel
method userrecaptcha
googlekey {{1.sitekey}} (aus dem Webhook zugeordnet)
pageurl {{1.pageurl}} (aus dem Webhook zugeordnet)
json 1

Setzen Sie Parse response auf JSON, sonst kommt die Antwort als Rohtext an:

{
  "status": 1,
  "request": "TASK_ID_12345"
}

Für Cloudflare Turnstile ändert sich nur method=turnstile, und der Schlüssel steht im Feld sitekey.

Modul 3: Sleep – Wartezeit vor dem ersten Abruf

Fügen Sie ein Modul Tools > Sleep mit 15 Sekunden ein. reCAPTCHA v2 löst CaptchaAI typischerweise in unter 60 Sekunden; die Pause spart mehrere Leerabfragen und damit Operationen.

Modul 4: HTTP-Request – Ergebnis abfragen

Das zweite Modul HTTP > Make a request ruft GET https://ocr.captchaai.com/res.php auf:

Schlüssel Wert
key Ihr CaptchaAI-API-Schlüssel
action get
id {{2.data.request}} (Task-ID aus Modul 2)
json 1

Modul 5: Router – auswerten und die Schleife begrenzen

Hängen Sie hinter das Abfrage-Modul einen Router mit zwei Routen:

Route Filterbedingung Was danach passiert
CAPTCHA gelöst {{4.data.status}} gleich 1 nächste Aktion: Webhook-Antwort, Datenbankeintrag oder Formularaufruf
noch nicht fertig {{4.data.request}} gleich CAPCHA_NOT_READY zurück auf Modul 3 (Sleep) – so entsteht die Abfrageschleife

Die Schleife braucht eine harte Obergrenze: Ein Modul Flow Control > Repeater mit Repeats: 10 und Initial value: {{2.data.request}} umschließt die Reihenfolge Sleep → Poll → Router und endet, sobald status = 1 zurückkommt. Sonst läuft das Szenario im Fehlerfall bis zur Laufzeitgrenze und verbraucht Operationen ohne Gegenwert.

Schritt 2: Das gelöste Token weiterverwenden

Das Token steht in {{4.data.request}}. Es ist nur rund 120 Sekunden gültig – verwenden Sie es direkt, statt es zwischenzuspeichern.

Der Regelfall: Token als Webhook-Antwort zurückgeben

Fügen Sie ein Modul Webhooks > Webhook response hinzu:

{
  "token": "{{4.data.request}}",
  "status": "solved"
}

Zwei weitere Anschlüsse sind gängig:

  • Direkt ins Formular: Ein weiteres Modul HTTP > Make a request sendet die Formulardaten per POST an die Action-URL Ihrer eigenen Anwendung – inklusive des Feldes g-recaptcha-response: {{4.data.request}}.
  • Lösung protokollieren: Ein Modul für Google Sheets, Airtable oder eine Datenbank schreibt jede Lösung mit Zeitstempel und Task-ID mit – eine Operation extra, dafür auswertbare Laufzeiten und Fehlerquoten.

Das fertige Szenario auf einen Blick

[Webhook Trigger]
      ↓
[HTTP: Submit to CaptchaAI in.php]
      ↓
[Sleep: 15 seconds]
      ↓
[Repeater: 10 iterations]
    ↓ (each iteration)
    [Sleep: 5 seconds]
    [HTTP: Poll CaptchaAI res.php]
    [Router]
      Route 1 (solved) → [Use Token] → [Webhook Response]
      Route 2 (not ready) → continue loop
      Route 3 (error) → [Error Handler]

Fehler abfangen, bevor das Szenario stoppt

Fehlercode Bedeutung Reaktion
ERROR_ZERO_BALANCE Guthaben aufgebraucht Konto aufladen, Handler auf Rollback setzen
ERROR_WRONG_USER_KEY API-Schlüssel falsch übernommen Schlüssel neu einfügen, Länge prüfen
ERROR_CAPTCHA_UNSOLVABLE Sitekey oder Page-URL passen nicht zum Formular Parameter am Webhook nachziehen
Netzwerkfehler, Timeout Repeater ohne Ergebnis ausgelaufen erneuter Versuch, Fall protokollieren

Hinterlegt werden die Handler per Rechtsklick auf das jeweilige HTTP-Modul – Add error handler – mit Resume (überspringen) oder Rollback (abbrechen).

Was der Betrieb kostet

Make rechnet in Operationen: Jede Modulausführung zählt einzeln, ein Durchlauf kommt auf 5–15 Operationen. Eine zu knappe Sleep-Zeit bezahlen Sie doppelt – in Operationen und in Laufzeit.

CaptchaAI rechnet nach Threads ab, nicht pro Lösung; die Lösungen pro Thread sind im Plan unbegrenzt. Für ein einzelnes Szenario genügt BASIC (15 $/Monat, 5 Threads), bei parallelen Läufen passen STANDARD (30 $/Monat, 15 Threads) oder ADVANCE (90 $/Monat, 50 Threads). Alle Preise in US-Dollar.

Typische Probleme und ihre Ursachen

Problem Ursache Lösung
Token erzeugt, aber vom Formular abgelehnt Sitekey, Page-URL oder Session-Kontext passen nicht zusammen Parameter erneut erfassen, Token in derselben Sitzung senden
Schleife läuft ins Timeout Abfrageintervall oder Iterationsgrenze zu eng Alle 5–10 Sekunden abfragen, Timeouts von echten Fehlercodes trennen
ERROR_WRONG_USER_KEY trotz korrektem Schlüssel Leerzeichen oder Zeilenumbruch im kopierten Wert Schlüssel neu einfügen, Länge von 32 Zeichen prüfen
Szenario bricht ohne Meldung ab Laufzeitgrenze des Make-Tarifs erreicht Wartezeiten kürzen oder Polling auslagern

Häufige Fragen

Brauche ich Programmierkenntnisse für dieses Szenario?

Nein. Sie konfigurieren Module und tragen Parameter in Felder ein. Ein Grundverständnis für HTTP-Parameter hilft beim Debuggen, geschrieben wird kein Code.

Wie viele Threads benötigt mein Make-Szenario?

Einen Thread pro gleichzeitig laufender Ausführung. Arbeitet das Szenario nacheinander ab, reicht einer; bei parallelen Webhook-Ereignissen entsprechend mehr.

Kann ich das Szenario auch ohne Webhook starten?

Ja. Ein Zeitplan oder ein anderes Trigger-Modul funktioniert genauso, etwa eine Zeile aus Google Sheets. Nur die Zuordnung ändert sich: {{1.sitekey}} verweist dann auf das neue Trigger-Feld.

Worauf muss ich bei der DSGVO achten?

Sobald Ihr Szenario personenbezogene Daten verarbeitet – IP-Adressen zählen dazu –, brauchen Sie eine Rechtsgrundlage und einen dokumentierten Verarbeitungsweg. Testläufe gehören in Systeme, die Sie selbst betreiben oder für die Ihnen eine Freigabe vorliegt.


Verwandte Leitfäden

Kommentare sind für diesen Artikel deaktiviert.