Integrations

Make (Integromat) + CaptchaAI : automatisation visuelle du CAPTCHA

Un scénario Make se fige dès qu'un reCAPTCHA v2 s'intercale entre deux modules : le formulaire ne part pas, la donnée ne remonte plus. La réponse tient en un seul module : le module HTTP de Make envoie le défi à CaptchaAI, récupère le token résolu, puis le réinjecte dans la suite du flux, sans une ligne de code.

Make (anciennement Integromat) orchestre vos applications et vos API de façon visuelle. Ce guide monte, module par module, un scénario qui soumet un CAPTCHA à CaptchaAI, interroge le résultat jusqu'à obtention du token, puis exploite ce token dans les actions suivantes.

À quoi ressemble le flux

Le scénario que nous construisons reste identique quel que soit le site cible :

  1. un déclencheur webhook reçoit une URL de page et un sitekey reCAPTCHA ;
  2. le CAPTCHA part vers CaptchaAI pour résolution ;
  3. le scénario interroge le résultat jusqu'à ce que le token soit prêt ;
  4. le token résolu repart par webhook ou vers le module suivant.

Ce modèle couvre l'automatisation de formulaires, les flux de saisie de données et tout scénario où un CAPTCHA barre la route à l'automatisation, par exemple un formulaire de prise de rendez-vous ou une remontée de leads vers votre CRM.

Prérequis

Trois éléments suffisent avant de poser le premier module :

  • un compte CaptchaAI et sa clé API (32 caractères, lisible dans le tableau de bord) ;
  • un scénario Make vide, avec les droits d'ajouter des modules HTTP et Webhooks ;
  • le sitekey reCAPTCHA v2 et l'URL de la page cible, que le webhook transmettra au scénario.

Étape 1 : créer le scénario

Dans Make, créez un scénario et enchaînez les modules décrits ci-dessous.

Module 1 — déclencheur webhook (Custom webhook)

Ce webhook reçoit les demandes de résolution. Donnez-lui la structure de données suivante :

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

Côté configuration :

  1. ajoutez un module Webhooks > Custom webhook ;
  2. cliquez sur Add pour créer un webhook ;
  3. copiez l'URL générée ;
  4. déclarez les champs sitekey, pageurl et captcha_type.

Module 2 — HTTP : soumettre la tâche à CaptchaAI

Ajoutez un module HTTP > Make a request en GET vers https://ocr.captchaai.com/in.php. Renseignez la Query String avec les paramètres suivants :

  • key — votre clé API CaptchaAI ;
  • methoduserrecaptcha ;
  • googlekey{{1.sitekey}}, mappé depuis le webhook ;
  • pageurl{{1.pageurl}}, mappé depuis le webhook ;
  • json1.

Activez Parse response au format JSON. Une fois le module exécuté, la réponse porte l'identifiant de tâche :

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

Module 3 — Sleep

Ajoutez un module Tools > Sleep réglé sur 15 secondes. Ce délai laisse à CaptchaAI le temps de résoudre le CAPTCHA avant la première interrogation.

Module 4 — HTTP : interroger le résultat

Ajoutez un second module HTTP > Make a request, en GET vers https://ocr.captchaai.com/res.php, avec cette Query String :

  • key — votre clé API CaptchaAI ;
  • actionget ;
  • id{{2.data.request}}, l'ID de tâche renvoyé par le module 2 ;
  • json1.

Module 5 — Router : vérifier le résultat

Placez un Router après l'interrogation, avec deux routes. La première, CAPTCHA résolu, filtre sur {{4.data.status}} égal à 1 et enchaîne sur l'action suivante (réponse webhook, insertion en base, etc.). La seconde, pas encore prêt, filtre sur {{4.data.request}} égal à CAPCHA_NOT_READY et reboucle vers le module 3 (Sleep) pour former la boucle d'interrogation.

Étape 2 : piloter la boucle d'interrogation

Make gère les boucles via le module Repeater ou en reconnectant un module vers une étape antérieure :

  1. ajoutez un Repeater réglé sur 10 itérations (nombre maximal de tentatives) ;
  2. à l'intérieur, placez la séquence Sleep -> interrogation -> Router ;
  3. le Router sort de la boucle dès que status = 1.

Avec le module Flow Control > Repeater, réglez les répétitions sur 10 et la valeur initiale sur {{2.data.request}} (l'ID de tâche). Chaque itération patiente 5 secondes, interroge CaptchaAI et vérifie si le résultat est disponible.

Étape 3 : exploiter le token résolu

Une fois le CAPTCHA résolu, le token se trouve dans {{4.data.request}}. Trois usages reviennent le plus souvent :

  • Option A — renvoyer le token par une réponse webhook ;
  • Option B — le poster directement sur le formulaire cible ;
  • Option C — le journaliser en base pour le suivi.

Option A — renvoyer via une réponse webhook

Ajoutez un module Webhooks > Webhook response qui renvoie le token à l'appelant :

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

Option B — soumettre à un formulaire

Ajoutez un module HTTP > Make a request en POST vers l'URL d'action du formulaire cible. Dans le corps, placez les données du formulaire, dont le champ g-recaptcha-response: {{4.data.request}}.

Option C — stocker en base

Ajoutez un module Google Sheets, Airtable ou Database pour journaliser la résolution à des fins de suivi.

Flux complet du scénario

[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]

Dépannage

Problème Cause Correctif
Le webhook ne se déclenche pas URL non enregistrée Vérifiez que l'URL du webhook est active dans Make
ERROR_WRONG_USER_KEY Format de clé API invalide Contrôlez que la clé API fait 32 caractères, sans espace superflu
La boucle d'interrogation n'aboutit jamais Délai Sleep trop court ou mauvais ID de tâche Vérifiez le mappage de l'ID de tâche ; portez le Sleep à 10 secondes
Le scénario expire Limite d'exécution de Make (5 min sur l'offre gratuite) Passez à une offre supérieure ou réduisez l'intervalle d'interrogation
Erreur d'analyse JSON Réponse non interprétée en JSON Activez « Parse response » sur le module HTTP ; ajoutez json=1 aux requêtes

Gestion des erreurs

Chaque module HTTP mérite son gestionnaire d'erreurs. Faites un clic droit sur le module → Add error handler, puis choisissez Resume (ignorer et poursuivre) ou Rollback (interrompre le scénario).

Échec de soumission (module 2)

Traitez ERROR_ZERO_BALANCE en rechargeant le solde, et ERROR_WRONG_USER_KEY en corrigeant la clé API.

Échec d'interrogation (module 4)

Traitez ERROR_CAPTCHA_UNSOLVABLE en vérifiant le sitekey et l'URL de page, et relancez les erreurs réseau transitoires.

Dépassement du délai

Si le Repeater épuise ses itérations sans résultat, orientez le flux vers un gestionnaire qui journalise l'échec plutôt que de laisser le scénario planter.

Rester conforme au RGPD dans un scénario de saisie

Un scénario Make de saisie de données manipule souvent des informations personnelles : e-mails, numéros de dossier, coordonnées. Côté RGPD, appliquez la minimisation. Ne faites transiter par le webhook que les champs strictement nécessaires à la résolution : le sitekey et l'URL de page suffisent à CaptchaAI, aucune donnée personnelle n'a besoin d'y figurer.

Journalisez les résolutions (option C) sans y recopier de données sensibles, et hébergez vos exports chez un fournisseur adapté à vos obligations, par exemple une région européenne comme celle d'OVHcloud ou de Scaleway. La facturation CaptchaAI reste en dollars US, indépendamment de votre localisation.

FAQ

Quel plan CaptchaAI faut-il pour un scénario Make ?

L'offre d'entrée BASIC ($15/mois, 5 threads) suffit à un scénario Make classique : un thread traite un CAPTCHA à la fois, avec des résolutions illimitées sur le mois. Si votre webhook déclenche plusieurs résolutions en parallèle, montez en threads avec STANDARD ($30/mois, 15 threads) ou au-delà.

Le module HTTP peut-il aussi résoudre Cloudflare Turnstile ?

Oui. Dans le module de soumission, remplacez method par turnstile et passez le sitekey à la place de googlekey. Le reste du scénario — Sleep, interrogation, Router — ne bouge pas.

Que faire si la boucle d'interrogation n'aboutit jamais ?

Vérifiez d'abord le mappage de l'ID de tâche ({{2.data.request}}) dans le module d'interrogation, puis allongez le Sleep initial à 10 secondes. Si l'erreur ERROR_CAPTCHA_UNSOLVABLE persiste, contrôlez que le sitekey et l'URL de page correspondent bien à la page qui affiche le CAPTCHA.

Comment limiter les données personnelles dans un scénario de saisie ?

Ne transmettez au webhook que le sitekey et l'URL de page : CaptchaAI n'a besoin de rien d'autre pour résoudre le défi. Gardez les données métier dans les modules en aval et appliquez la minimisation RGPD à toute journalisation.

Articles connexes

Prochaines étapes

Passez à la pratique : récupérez votre clé API CaptchaAI et montez votre premier scénario Make. Pour aller plus loin, ces guides complètent l'intégration :

Les commentaires sont désactivés pour cet article.