Conecta Rivalwin
con Make
Automatiza la generación de informes de inteligencia competitiva directamente desde tus escenarios de Make. Lanza análisis, espera los resultados y envíalos donde los necesitas, sin intervención manual.
API Key de Rivalwin
Generada desde Integraciones & API Keys en tu panelCuenta de Make activa
Make Free, Core o cualquier plan superior funcionarival_ref del competidor
El ID interno del rival que quieres analizar (ej: rvl_4a7e9f12)Plan con acceso a API
Comprueba que tu plan incluya acceso a la API de RivalwinLa API de Rivalwin es asíncrona. Primero creas el informe y recibes un hash; luego consultas el estado hasta obtener los datos completos. En Make esto se implementa con un bucle de reintentos usando el módulo Repeater.
hash identificador de forma inmediata.hash. Cuando el Router detecta DONE, el bucle se corta y los datos pasan al destino final.Vamos a crear un escenario completo que genera un informe de Meta Ads, espera el resultado y lo procesa. Puedes adaptarlo a cualquier plataforma o destino.
Configura el disparador del escenario
Abre Make, crea un nuevo escenario y elige el módulo de trigger según tu caso de uso.
Para testear usa Run once (ejecución manual). Para producción, Schedule te permite ejecutarlo automáticamente, por ejemplo todos los lunes a las 9:00. Configura el intervalo mínimo según las operaciones que consuma tu plan.
Crea el informe con el módulo HTTP
Añade el módulo HTTP > Make a request y configúralo para llamar al endpoint /new_report.
| Campo | Valor |
|---|---|
| Method | POST |
| URL | https://rivalwin.com/api/v1/meta/companies/new_report |
| Body type | Raw |
| Content type | application/json |
| Headers > X-API-Key | Tu API Key de Rivalwin |
| Parse response | ✅ Activado (para acceder a los campos del JSON) |
Contenido del campo Request content:
{
"rival_ref": "rvl_4a7e9f12",
"date_from": "{{formatDate(addDays(now; -30); "YYYY-MM-DD")}}",
"date_to": "{{formatDate(addDays(now; -2); "YYYY-MM-DD")}}",
"country": "ES"
}
addDays(now; -2) lo calcula automáticamente en la sintaxis de Make.Respuesta exitosa — el campo data.hash se usará en los pasos siguientes:
{
"hash": "abc123def456...",
"status": "PENDING",
"created_at": "2026-04-20 09:00:00"
}
{{1.data.hash}} (donde 1 es el número del módulo HTTP).Añade el módulo Repeater para el bucle de espera
Añade el módulo Flow Control > Repeater justo después del primer HTTP. Este módulo ejecutará el ciclo de polling el número de veces que configures.
| Campo del Repeater | Valor recomendado |
|---|---|
| Initial value | 1 |
| Repeats | 10 (cubre hasta ~5 minutos de espera) |
| Step | 1 |
Dentro del Repeater, añade primero el módulo Tools > Sleep configurado a 30 segundos para esperar antes de cada consulta de estado.
Consulta el estado con un segundo módulo HTTP
Después del Sleep, añade un nuevo módulo HTTP > Make a request apuntando a /report_status. Referencia el hash del primer módulo HTTP.
| Campo | Valor |
|---|---|
| Method | POST |
| URL | https://rivalwin.com/api/v1/meta/companies/report_status |
| Body type | Raw |
| Content type | application/json |
| Headers > X-API-Key | Tu API Key de Rivalwin |
| Parse response | ✅ Activado |
Contenido del campo Request content, referenciando el hash del módulo 1:
{
"hash": "{{1.data.hash}}"
}
1 por el número real del módulo HTTP inicial si tu escenario tiene más módulos antes. Puedes verlo en el tooltip del módulo en el editor de Make.Verifica el estado con un módulo Router
Añade un módulo Flow Control > Router después del segundo HTTP. Crea tres rutas según el valor del campo status:
Configuración de las rutas en el Router:
- Ruta 1 — DONE: Filtro
{{3.data.status}}Equal toDONE→ procesa el informe - Ruta 2 — ERROR: Filtro
{{3.data.status}}Equal toERROR→ notificación de error - Ruta 3 — Fallback: Sin filtro (acepta PENDING y PROCESSING) → el Repeater itera de nuevo
Extrae los datos del informe con un módulo Tools
Cuando el Router detecta DONE, el campo data.report contiene toda la información. Usa el módulo Tools > Set multiple variables para extraer los campos que necesitas.
| Variable | Valor (expresión Make) |
|---|---|
rival | {{3.data.report.rival.name}} |
totalAds | {{3.data.report.kpis.ads_total}} |
impressionsMax | {{3.data.report.kpis.impressions_upper}} |
pdfUrl | {{3.data.report.pdf_url}} |
aiAnalysis | {{3.data.report.insights.gpt_analysis}} |
topAdCopy | {{3.data.report.ads[].content}} (primer elemento) |
3 por el número real del módulo HTTP que llama a /report_status en tu escenario.Envía los datos donde los necesitas
Con las variables configuradas, conecta cualquier módulo destino. Make tiene apps nativas para todos los destinos habituales:
Ejemplo de mensaje de Slack usando las variables del paso anterior:
🔍 Nuevo informe de competencia listo
*Competidor:* {{rival}}
*Anuncios activos:* {{totalAds}}
*Impresiones estimadas:* {{impressionsMax}}
*Top anuncio:* {{topAdCopy}}
📄 Ver PDF completo: {{pdfUrl}}
Si prefieres un flujo sin polling, puedes configurar un webhook en Rivalwin para que notifique a Make automáticamente cuando el informe esté listo. Esta opción es más eficiente en operaciones.
- En Make, crea un nuevo escenario y añade el módulo Webhooks > Custom webhook como trigger.
- Haz clic en Add, dale un nombre (ej:
rivalwin-reports) y copia la URL generada. - En Rivalwin, ve a Integraciones & API Keys y pega esa URL en el campo Webhook.
- Cuando generes un informe vía API, Rivalwin enviará el payload completo a tu webhook en cuanto termine. Make recibirá los datos directamente en el trigger y continuará el escenario.
- Haz clic en Determine data structure en Make y genera un informe de prueba para que Make detecte automáticamente los campos del payload.
ampliar
| Código | Error | Solución en Make |
|---|---|---|
401 | invalid_api_key | Comprueba que el header X-API-Key esté correctamente configurado en el módulo HTTP |
402 | insufficient_credits | Revisa los créditos disponibles en tu panel de Rivalwin |
403 | api_not_in_plan | Tu plan no incluye acceso a la API. Actualiza el plan en Rivalwin |
404 | rival_not_found | El rival_ref no existe. Verifica el ID en tu panel de Rivalwin |
429 | cooldown_active | Espera al menos 10 segundos entre informes. Añade un módulo Sleep antes del primer HTTP Request |
400 | invalid_date_range | date_to no puede ser hoy ni futuro. Usa addDays(now; -2) en la expresión de fecha |