Conecta Rivalwin
con Zapier
Automatiza la generación de informes de inteligencia competitiva directamente desde tus Zaps. Lanza análisis, recibe los resultados vía webhook y envíalos donde los necesitas — sin intervención manual.
A diferencia de n8n o Make, Zapier no tiene un módulo de bucle o Repeater. Por eso, la forma correcta de integrar la API asíncrona de Rivalwin en Zapier es con dos Zaps separados: uno que lanza el informe y otro que recibe el resultado vía webhook cuando está listo.
/new_report y guarda el hash si lo necesitas.API Key de Rivalwin
Generada desde Integraciones & API Keys en tu panelCuenta Zapier Professional+
Necesario para usar Webhooks by Zapier como triggerrival_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 RivalwinAsí funciona la integración de principio a fin. Ambos Zaps trabajan de forma independiente y se comunican a través del webhook.
Este Zap es el encargado de disparar la creación del informe en Rivalwin. Puede activarse de forma programada, desde otro sistema o manualmente.
Configura el trigger del Zap 1
Crea un nuevo Zap en Zapier y elige el trigger según tu caso de uso.
Para ejecuciones automáticas semanales o diarias usa Schedule by Zapier. Si quieres lanzar el informe desde otra herramienta (CRM, Notion, Slack…), usa el trigger de esa app como punto de entrada.
Lanza el informe con Webhooks by Zapier — POST
Añade una acción Webhooks by Zapier > POST y configúrala para llamar al endpoint /new_report.
| Campo | Valor |
|---|---|
| URL | https://rivalwin.com/api/v1/meta/companies/new_report |
| Payload Type | JSON |
| Headers — X-API-Key | Tu API Key de Rivalwin |
| Unflatten | yes |
Campos del body — añádelos en la sección Data del módulo Webhooks:
| Key | Value |
|---|---|
rival_ref | rvl_4a7e9f12 |
date_from | Fecha hace 30 días en formato YYYY-MM-DD — ver nota abajo |
date_to | Fecha de anteayer en formato YYYY-MM-DD — ver nota abajo |
country | ES |
today - 30 days y today - 2 days y luego mapea esos valores en los campos del Webhook.Si prefieres enviar el body como JSON raw, activa Payload Type: JSON y usa este bloque — adaptando las fechas con Formatter antes:
{
"rival_ref": "rvl_4a7e9f12",
"date_from": "{{date_from_formatter}}",
"date_to": "{{date_to_formatter}}",
"country": "ES"
}
hash de la respuesta — Rivalwin lo incluirá automáticamente en el payload que envíe al webhook del Zap 2 cuando termine el informe.Este Zap se activa automáticamente cuando Rivalwin termina de generar el informe y llama a tu URL de webhook. Aquí procesas los datos y los envías al destino final.
Crea el trigger de Webhooks by Zapier — Catch Hook
Crea un segundo Zap. Como trigger, selecciona Webhooks by Zapier > Catch Hook. Zapier te generará una URL única — cópiala.
https://hooks.zapier.com/hooks/catch/XXXXXXX/YYYYYYY/. Esta es la URL que pegarás en el panel de Rivalwin en el siguiente paso.Registra el webhook en Rivalwin
Con la URL del Catch Hook copiada, ve a tu panel de Rivalwin y configura el webhook.
- Ve a Integraciones & API Keys en tu panel de Rivalwin.
- Pega la URL de Zapier en el campo Webhook URL.
- Guarda los cambios.
ampliar
A partir de ahora, cada vez que un informe termine, Rivalwin enviará el payload completo a esa URL y activará este Zap automáticamente.
Captura un payload de prueba
Zapier necesita recibir un payload real para detectar los campos disponibles. Haz clic en Test trigger en Zapier y luego genera un informe de prueba desde tu panel de Rivalwin o lanzando el Zap 1 manualmente.
Una vez que Zapier detecte el payload, verás todos los campos disponibles para mapear en los pasos siguientes:
{
"status": "DONE",
"hash": "abc123def456...",
"report": {
"rival": { "name": "Competidor S.A." },
"kpis": {
"ads_total": 47,
"impressions_upper": 2400000
},
"pdf_url": "https://rivalwin.com/reports/...",
"insights": { "gpt_analysis": "El competidor..." },
"ads": [/* array de anuncios */]
}
}
Añade un filtro para procesar solo informes DONE
Aunque Rivalwin solo llama al webhook cuando el informe termina, añade un Filter by Zapier como primer paso para asegurarte de que solo se procesen los payloads con status = DONE. Esto protege el Zap si en el futuro Rivalwin añade notificaciones de otros estados.
Configuración del filtro:
- Campo:
status(del trigger Catch Hook) - Condición:
(Text) Exactly matches - Valor:
DONE
Envía los datos donde los necesitas
Después del filtro, conecta la acción destino que necesites. Mapea los campos del payload directamente desde el trigger del Catch Hook:
Ejemplo de mensaje de Slack — campos mapeados directamente desde el payload del webhook:
🔍 Nuevo informe de competencia listo
*Competidor:* {{report__rival__name}}
*Anuncios activos:* {{report__kpis__ads_total}}
*Impresiones estimadas:* {{report__kpis__impressions_upper}}
*Análisis IA:* {{report__insights__gpt_analysis}}
📄 Ver PDF completo: {{report__pdf_url}}
report.rival.name se mapea como report__rival__name en los campos de las acciones.| Código / Problema | Error | Solución en Zapier |
|---|---|---|
401 | invalid_api_key | Verifica que el header X-API-Key esté configurado correctamente en el módulo Webhooks POST del Zap 1 |
402 | insufficient_credits | Revisa los créditos disponibles en tu panel de Rivalwin |
403 | api_not_in_plan | Tu plan de Rivalwin 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. Si el Zap procesa múltiples competidores, añade un Delay by Zapier de 15 s entre llamadas |
400 | invalid_date_range | date_to no puede ser hoy ni futuro. Usa Formatter by Zapier para calcular today - 2 days en formato YYYY-MM-DD |
| Zap 2 no se activa | Webhook no llega | Verifica que la URL del Catch Hook esté correctamente pegada en Integraciones & API Keys de Rivalwin y que el Zap 2 esté publicado (ON) |
| Campos no disponibles | Payload no detectado | Vuelve al trigger del Zap 2, haz clic en Test trigger y genera un informe real para que Zapier capture la estructura del payload |