Integrationen

Power Automate + CaptchaAI: Microsoft Flow CAPTCHA-Lösung

Power Automate kann ein CAPTCHA nicht selbst bedienen – aber an einen Dienst weiterreichen, der es löst. Der Weg führt über den HTTP-Connector: Der Flow übergibt Sitekey und Page-URL an CaptchaAI, fragt das Ergebnis ab und setzt das Token in die Formularanfrage ein. Kein Browser, kein Skript, keine Erweiterung.

Diese Anleitung baut den Flow Schritt für Schritt auf – für reCAPTCHA v2, mit „Do until“-Polling und belastbarer Fehlerbehandlung.

Voraussetzungen

  • Lizenz: Power Automate mit Premium-Connectors – die HTTP-Aktion gehört dazu
  • API-Schlüssel: als Umgebungsvariable oder im Azure Key Vault, nie fest im Flow
  • Zielformular: Sitekey und Page-URL der Zielseite
  • Rechtsrahmen: geprüfte Berechtigung bzw. Nutzungsbedingungen

Praxisbeispiel: Lieferantenportal im Mittelstand

Ein Maschinenbauer aus Baden-Württemberg zieht nachts Lieferdaten aus dem Portal eines Zulieferers nach SharePoint. Weil der Login mit reCAPTCHA v2 geschützt ist, klickt bisher morgens jemand die Abfrage von Hand an. Diese Handarbeit übernimmt der Flow. Zur Sorgfaltspflicht: IP-Adressen und Zugangsdaten fallen unter die DSGVO – klären Sie Rechtsgrundlage und vertragliche Zulässigkeit, bevor der Flow produktiv läuft.

Schritt 1: Flow anlegen und Eingaben definieren

Legen Sie einen Sofort-Cloud-Flow mit einem manuellen Auslöser an und ergänzen Sie zwei Texteingaben. Als Parameter bleibt der Flow für viele Portale nutzbar:

Eingabe Bedeutung
sitekey Sitekey des Zielformulars
pageurl URL der Seite mit dem CAPTCHA

Schritt 2: CAPTCHA-Aufgabe an CaptchaAI übermitteln

Fügen Sie eine HTTP-Aktion hinzu (Premium-Connector), Methode GET, URI https://ocr.captchaai.com/in.php.

Query-Parameter:

Schlüssel Wert
key Ihr CaptchaAI-API-Schlüssel
method userrecaptcha
googlekey @{triggerBody()['text']} (Eingabe „sitekey“)
pageurl @{triggerBody()['text_1']} (Eingabe „pageurl“)
json 1

Ohne json=1 kommt die Antwort als Text zurück. Hängen Sie direkt danach eine Aktion JSON analysieren an.

Schema:

{
  "type": "object",
  "properties": {
    "status": { "type": "integer" },
    "request": { "type": "string" }
  }
}

Inhalt: @{body('HTTP')}

Schritt 3: Antwort der Übermittlung prüfen

Eine Bedingung trennt Erfolgs- und Fehlerfall: @{body('Parse_JSON')?['status']} ist gleich 1. Im Nein-Zweig beendet eine Aktion Beenden den Lauf mit dem Status „Fehlgeschlagen“ und der Meldung Submit error: @{body('Parse_JSON')?['request']}; so steht die Ursache im Laufprotokoll. Im Ja-Zweig geht es zur Schleife.

Schritt 4: Polling-Schleife mit „Do until“ bauen

Initialisieren Sie vorab zwei Variablen: solveStatus (String) mit dem Wert pending, solvedToken (String) leer. Schleifenbedingung: @{variables('solveStatus')} ist nicht gleich pending. In der Schleife folgen vier Aktionen in dieser Reihenfolge.

4a. Verzögerung

Eine Aktion Verzögerung mit 5 Sekunden. Kürzer bringt nichts: CaptchaAI löst reCAPTCHA v2 in der Regel in unter 60 Sekunden.

4b. HTTP – Ergebnis abfragen

Zweite HTTP-Aktion, GET auf https://ocr.captchaai.com/res.php.

Query-Parameter:

Schlüssel Wert
key Ihr CaptchaAI-API-Schlüssel
action get
id @{body('Parse_JSON')?['request']}
json 1

4c. JSON analysieren – Antwort der Abfrage

Verwenden Sie dasselbe Schema wie in Schritt 2.

4d. Bedingung – Status auswerten

Bedingung: @{body('Parse_JSON_2')?['status']} ist gleich 1. Im Ja-Zweig setzen Sie solvedToken auf @{body('Parse_JSON_2')?['request']} und solveStatus auf solved. Im Nein-Zweig entscheidet eine zweite Bedingung: Ist derselbe Wert ungleich CAPCHA_NOT_READY, setzen Sie solveStatus auf error, sonst läuft die Schleife weiter.

Grenzen der Schleife:

Grenze Wert
Anzahl 20 Iterationen
Timeout PT3M (3 Minuten)

Hinweis: Ohne diese Grenzen dreht die Schleife bei unerwarteten Fehlercodes weiter, bis das Zeitlimit greift.

Schritt 5: Gelöstes Token weiterverwenden

Nach der Schleife prüft eine Bedingung @{variables('solveStatus')}. Bei solved geht das Token per HTTP-POST an das Zielformular – oder an einen anderen Connector, etwa Teams:

Einstellung Wert
Methode POST
URI URL des Zielformulars
Body {"g-recaptcha-response": "@{variables('solvedToken')}", "other_field": "value"}

Timing zählt: Ein reCAPTCHA-Token ist rund 120 Sekunden gültig – senden Sie es direkt nach der Schleife ab. Im Fehlerfall benachrichtigt der Flow das Team.

Der CAPTCHA-Flow im Überblick

Alle Bausteine ergeben diese Kette:

[Manual Trigger (sitekey, pageurl)]
    ↓
[Initialize Variables: solveStatus, solvedToken]
    ↓
[HTTP: Submit to CaptchaAI /in.php]
    ↓
[Parse JSON]
    ↓
[Condition: status = 1?]
    ↓ Yes
[Do Until: solveStatus ≠ pending]
    ├── [Delay: 5 seconds]
    ├── [HTTP: Poll CaptchaAI /res.php]
    ├── [Parse JSON]
    └── [Condition: Solved or Error?]
    ↓
[Condition: solveStatus = solved?]
    ↓ Yes
[HTTP: Submit form with token]
    ↓
[Compose: Success response]

Fehlerbehebung

Häufige Fehlläufe:

Symptom Ursache Lösung
HTTP-Aktion fehlt kein Premium-Connector Lizenz erweitern oder Custom Connector
„JSON analysieren“ scheitert Antwort ist Text json=1 ergänzen
Schleife läuft ins Timeout solveStatus bleibt pending Variablennamen exakt abgleichen
Token wird abgelehnt Sitekey oder Page-URL passen nicht Parameter neu erfassen
403 von CaptchaAI falscher Schlüssel oder IP-Sperre Schlüssel und IP-Whitelist prüfen

Häufige Fragen

Wie lange ist ein gelöstes Token gültig?

Rund 120 Sekunden. Lösen Sie das CAPTCHA direkt vor der Übermittlung und legen Sie keine Tokens auf Vorrat – abgelaufene Tokens lehnt das Zielformular meist ohne klare Meldung ab.

Wie viele CAPTCHAs kann ich parallel lösen lassen?

So viele, wie Ihr Tarif Threads enthält – CaptchaAI rechnet pro Thread ab, nicht pro Lösung:

  • BASIC (15 $/Monat, 5 Threads) für einzelne Nacht-Flows
  • ADVANCE (90 $/Monat, 50 Threads) für viele parallele Flows

Preise in US-Dollar.

In welchem Abstand sollte der Flow den Status abfragen?

Alle 5–10 Sekunden. Häufigere Abfragen beschleunigen nichts, verbrauchen aber Aktionskontingent; 20 Iterationen und PT3M reichen aus.

Was ist bei personenbezogenen Daten zu beachten?

Behandeln Sie den Flow wie jede andere Datenverarbeitung: Zweck und Rechtsgrundlage dokumentieren, Protokolle auf das Nötige beschränken und prüfen, ob die Nutzungsbedingungen des Portals automatisierten Zugriff zulassen.


Verwandte Leitfäden

Kommentare sind für diesen Artikel deaktiviert.