Integraciones

Make (Integromat) + CaptchaAI: Automatización visual CAPTCHA

Make no incluye un módulo oficial de CaptchaAI y, en la práctica, no lo necesitas: con dos módulos HTTP > Realizar una solicitud envías el CAPTCHA a CaptchaAI, consultas el resultado y sigues el escenario con el token ya resuelto. Todo ocurre dentro del lienzo visual de Make, sin servidores propios ni código desplegado.

Aquí montas ese escenario para reCAPTCHA v2: estructura del webhook, parámetros exactos hacia in.php y res.php, bucle de sondeo con el módulo Repetidor, controladores de errores y diagnóstico cuando el flujo se queda colgado.

Antes de empezar

  • Una cuenta de CaptchaAI con saldo y tu clave API de 32 caracteres.
  • Un escenario de Make con margen de operaciones: el plan gratuito corta la ejecución a los 5 minutos.
  • El sitekey y la URL del formulario que vas a automatizar, que debe ser tuyo o estar autorizado.
  • Un formulario de staging donde probar antes de tocar el flujo real.

Cuándo conviene resolver el CAPTCHA dentro de Make

El patrón encaja cuando el escenario ya vive en Make y el CAPTCHA es el único punto donde todo se detiene. Caso típico: una agencia en Ciudad de México hace QA diario del alta de su propio producto y el formulario con reCAPTCHA v2 mata la ejecución ahí. La misma situación aparece en:

  • portales con cita previa y trámites en línea,
  • formularios de contacto de alto volumen,
  • monitoreo de fichas de producto en marketplaces regionales.

Automatiza solo flujos propios o autorizados, y respeta los términos de servicio y la normativa de protección de datos aplicable.

Cuánto cuesta el lado de CaptchaAI

CaptchaAI no cobra por resolución: factura por thread concurrente, con resoluciones ilimitadas dentro del plan.

Plan Precio Threads Encaja con
BASIC $15/mes 5 escenarios secuenciales
STANDARD $30/mes 15 varios escenarios en paralelo
ADVANCE $90/mes 50 equipos con webhooks simultáneos

Ese costo mensual en USD es predecible para agencias que facturan en monedas volátiles. Lo que sí se consume por ejecución son las operaciones de Make, así que ajusta las pausas con cuidado.

Paso 1: crea el escenario en Make

Abre Make, crea un escenario nuevo y añade los módulos en este orden.

Módulo 1: disparador de webhook (webhook personalizado)

Este módulo recibe las solicitudes de resolución con esta estructura de datos:

{
  "sitekey": "6Le-wvkSVVABCPBMRTvw0Q4Muexq1bi0DJwx_mJ-",
  "pageurl": "https://example.com/form",
  "captcha_type": "recaptcha_v2"
}
  1. Añade un módulo Webhooks > Webhook personalizado
  2. Haz clic en Add para crear un webhook nuevo
  3. Copia la URL del webhook
  4. Define la estructura de datos con los campos sitekey, pageurl y captcha_type

Módulo 2: solicitud HTTP que envía la tarea a CaptchaAI

Añade un módulo HTTP > Realizar una solicitud apuntando a in.php. Deja Analizar respuesta en JSON: sin esa opción Make trata la respuesta como texto plano y los módulos siguientes no encuentran nada que mapear.

Ajuste del módulo Valor
URL https://ocr.captchaai.com/in.php
Método GET
Analizar respuesta JSON
Cadena de consulta: key Tu clave API de CaptchaAI
Cadena de consulta: method userrecaptcha
Cadena de consulta: googlekey {{1.sitekey}} (asignado desde el webhook)
Cadena de consulta: pageurl {{1.pageurl}} (asignado desde el webhook)
Cadena de consulta: json 1

Cuando el módulo se ejecuta, la respuesta contiene el identificador de la tarea:

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

Módulo 3: pausa antes del primer sondeo

Añade un módulo Herramientas > Sleep de 15 segundos. Esa pausa le da margen a CaptchaAI antes del primer sondeo y te ahorra operaciones desperdiciadas.

Módulo 4: solicitud HTTP que consulta el resultado

Añade otro módulo HTTP > Realizar una solicitud, esta vez hacia res.php:

Ajuste del módulo Valor
URL https://ocr.captchaai.com/res.php
Método GET
Cadena de consulta: key Tu clave API de CaptchaAI
Cadena de consulta: action get
Cadena de consulta: id {{2.data.request}} (ID de tarea del módulo 2)
Cadena de consulta: json 1

Módulo 5: Router que decide qué hacer con la respuesta

Añade un Router después del módulo de sondeo, con dos rutas:

Ruta Condición del filtro Qué hace
1: CAPTCHA resuelto {{4.data.status}} es igual a 1 continúa hacia la siguiente acción: respuesta del webhook, inserción en base de datos, lo que toque
2: todavía no está listo {{4.data.request}} es igual a CAPCHA_NOT_READY conecta de vuelta al módulo 3 (Sleep) y forma el bucle de sondeo

Paso 2: controla el bucle de sondeo

Make itera con el módulo Repetidor o reconectando módulos a etapas anteriores:

  1. Añade un módulo Control de flujo > Repetidor con 10 repeticiones y valor inicial {{2.data.request}}, el ID de tarea
  2. Dentro del repetidor coloca la secuencia Sleep -> consulta -> Router
  3. El Router rompe el bucle en cuanto status = 1

Cada iteración espera 5 segundos, sondea a CaptchaAI y comprueba si el resultado ya está disponible: margen suficiente para reCAPTCHA v2 sin agotar el tiempo de ejecución del escenario.

Paso 3: usa el token resuelto

Resuelto el CAPTCHA, el token vive en {{4.data.request}}. Desde ahí tienes tres salidas habituales.

Opción A: devolverlo por respuesta de webhook

Añade un módulo Webhooks > Respuesta de webhook:

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

Opción B: enviar el formulario

Añade un módulo HTTP > Realizar una solicitud con método POST hacia la URL de acción del formulario de destino y manda los datos del formulario incluyendo g-recaptcha-response: {{4.data.request}}. El token de reCAPTCHA v2 dura poco: envíalo en la misma ejecución, no lo guardes para después.

Opción C: registrarlo en una hoja o base de datos

Añade un módulo de Google Sheets, Airtable o Database para dejar traza de cada resolución y medir cuántas ejecuciones caen en el controlador de errores.

Flujo completo del escenario

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

Errores y diagnóstico rápido

Configura controladores de errores sobre los dos módulos HTTP: clic derecho sobre el módulo -> Add error handler -> Resume (omitir y continuar) o Rollback (cancelar el escenario). En monitoreo, Resume es lo sensato: un CAPTCHA fallido no debería tumbar la ejecución completa.

Señal Dónde aparece Qué hacer
ERROR_ZERO_BALANCE módulo 2, envío recarga el saldo de la cuenta
ERROR_WRONG_USER_KEY módulo 2, envío comprueba que la clave tenga 32 caracteres, sin espacios de más
ERROR_CAPTCHA_UNSOLVABLE módulo 4, consulta verifica el sitekey y la URL de la página
El webhook no se dispara disparador confirma que la URL del webhook esté activa en Make
El bucle nunca resuelve módulo 4 revisa la asignación del ID de tarea; sube la pausa a 10 segundos
El escenario supera el tiempo límite ejecución de Make amplía el plan o reduce el intervalo de sondeo
Error al analizar el JSON módulos HTTP activa "Analizar respuesta" y usa json=1 en las solicitudes

Los errores de red se reintentan sin más. Si el repetidor consume todas las iteraciones sin resultado, enruta hacia un controlador que registre el fallo junto con el ID de tarea.

Preguntas frecuentes

¿Cuántos threads necesito para un escenario de Make?

Depende del paralelismo, no del volumen. Un escenario secuencial funciona con los 5 threads de BASIC ($15/mes); si activas ejecuciones simultáneas, calcula un thread por cada una.

¿Es seguro guardar la clave API dentro del escenario?

Guárdala en las conexiones o variables del escenario, no escrita en el módulo HTTP. Así no queda expuesta al exportar el blueprint ni al compartir el escenario con el equipo.

¿Este flujo sirve para hCaptcha?

No. CaptchaAI no es compatible con hCaptcha ni con FunCaptcha, y GeeTest v4 figura como próximamente. Desde este mismo escenario sí puedes resolver:

  • reCAPTCHA v2 y v3
  • Cloudflare Turnstile y Cloudflare Challenge
  • GeeTest v3
  • CAPTCHA de imagen y texto

¿Puedo resolver Cloudflare Turnstile con el mismo escenario?

Sí. Cambia el parámetro method a turnstile y usa sitekey en lugar de googlekey en la solicitud de envío. El token llega en el mismo campo request de res.php.

¿Qué hago si el escenario se corta por el límite de tiempo de Make?

Reduce la pausa inicial, baja las iteraciones o divide el flujo en dos escenarios enlazados por webhook: uno envía la tarea y otro recibe el resultado.

Artículos relacionados

Próximos pasos

Arma los cinco módulos, prueba el webhook contra un formulario de staging propio y obtén tu clave API de CaptchaAI para la primera ejecución real.

Guías relacionadas:

Los comentarios están deshabilitados para este artículo.