Una detección que se queda atrapada en el panel muere. La promoción del competidor que aparece en el canal del equipo a las 9:07, o en un dashboard de pricing al lado de tu margen, decide algo. Esa es la diferencia que hace una API de datos de competidores: sacar la inteligencia competitiva de la pestaña que nadie abre en el día ajetreado y ponerla en el flujo donde el equipo ya trabaja, el BI, Slack, el warehouse.
Esta guía muestra lo que expone la API pública de Batedor, cómo funcionan los webhooks de salida y los canales listos de Slack, Telegram y WhatsApp, y tres montajes prácticos: dashboard de pricing en Metabase, alerta en el canal del equipo y el cruce de la promoción del rival con tu curva de ventas. El público es el dueño de tienda que tiene un analista (interno o de agencia) capaz de hacer una llamada HTTP. No hace falta más que eso.
Por qué un dato atrapado en el panel muere
Un panel es excelente para investigar y pésimo para interrumpir. Cuando quieres entender el historial de cupones de un competidor, la timeline lo resuelve. Pero la decisión de pricing del martes por la mañana no ocurre dentro de una herramienta de monitoreo: ocurre en una planilla de margen, en un dashboard de BI, en una conversación de Slack o WhatsApp. Si el dato competitivo no está en esos lugares, llega tarde o no llega.
Hay también un problema de composición. La señal del competidor sola dice poco: “el rival lanzó un cupón del 20%” solo se vuelve decisión cuando se apoya en tu número, tu margen en ese SKU, tu venta diaria, tu CAC. Ese cruce nadie lo hace de memoria; vive en el BI. Ya escribimos sobre cómo convertir datos de competidores en decisión comercial; la integración es la fontanería que vuelve esa rutina automática en lugar de heroica.
Qué entrega la API de datos de competidores (y qué no entrega)
La clave se crea en Cuenta > Integraciones, en la sección “API keys”. Tiene el formato bdr_ seguido de un prefijo y un secreto, aparece una única vez en la creación (después es irrecuperable: si la pierdes, la revocas y creas otra) y va en el header Authorization: Bearer de cada llamada. Puedes crear una clave por sistema, con etiqueta y validez opcional, y la página muestra cuándo y desde qué IP se usó cada clave por última vez. La revocación vale al instante.
| Endpoint | Qué devuelve | Filtros útiles |
|---|---|---|
| /public/v1/competitors | Lista de los competidores monitoreados | búsqueda por texto, tag y grupo, paginación |
| /public/v1/competitors/:id | Detalle de un competidor | ninguno |
| /public/v1/campaigns | Detecciones clasificadas por la IA (promoción, cupón, envío gratis, lanzamiento…) | competitorId, isActive, startDate, endDate, paginación |
| /public/v1/campaigns/:id | Detalle de una detección | ninguno |
Fonte: Rutas reales de Batedor, autenticadas con Authorization: Bearer bdr_…
Advertencia honesta: la v1 es solo lectura y cubre competidores y detecciones. No expone la serie histórica completa de métricas de redes sociales ni endpoints de escritura, y obviamente no tiene tu curva de ventas, esa viene de tu ERP o de tu plataforma. La API entrega la mitad competitiva del cruce; tu mitad, al BI la llevas tú.
Webhooks de salida: el evento va hasta ti
Consultar la API cada hora funciona para un dashboard, pero es lento para una alerta. Para eso existen los webhooks de salida, registrados en la misma página de Integraciones: informas una URL tuya (o un webhook de Zapier/Make) y eliges qué eventos quieres recibir. Son seis: campaign.detected (nueva detección clasificada), movement.detected (movimiento estratégico que la IA consideró relevante al comparar snapshots del competidor), crawl.completed, crawl.failed, report.completed y notification.
Cada entrega es un POST en JSON con el evento, los datos, un id de entrega y el número del intento. El cuerpo se firma con HMAC-SHA256 usando el secret generado en el registro, y la firma va en el header X-Batedor-Signature: tu endpoint recalcula el HMAC y lo compara antes de confiar en el contenido. Si la entrega falla o demora más de 8 segundos, Batedor lo intenta de nuevo, hasta 3 intentos con intervalo creciente, y registra cada intento en un log que la propia página muestra (último status HTTP y último error).
Tres usos que pagan la configuración
1. Dashboard de pricing en Metabase
Un job agendado (un cron cada hora sirve) llama a /public/v1/campaigns con startDate del día y guarda las detecciones en una tabla de tu base. En Metabase, graficas la frecuencia de campaña y la profundidad de descuento por competidor, semana a semana, al lado de tu margen por categoría. Es la materialización de los KPIs de inteligencia competitiva en un lugar donde el área comercial mira todos los días, sin depender de que alguien se acuerde de abrir el panel.
2. Alerta en el canal donde el equipo ya está
Aquí hay dos caminos, y el más corto no exige nada de código. En Cuenta > Notificaciones, Batedor tiene canales listos: Slack (vía Incoming Webhook), Telegram (vía bot), WhatsApp, además de e-mail, Discord y webhook genérico, con derecho a un resumen automático de las últimas 24 horas. La disponibilidad de Slack, Telegram y WhatsApp varía según el plan (mira los planes). El segundo camino es el webhook de salida apuntando a tu backend, que formatea el mensaje a tu manera: solo las detecciones de cupón por encima de X%, solo los competidores del grupo “directos”, con el enlace del post y tu margen de ese SKU en el mismo mensaje.
3. La promoción del rival sobre tu curva de ventas
Este es el cruce que más cambia una decisión. Cada campaign.detected tiene timestamp; en el BI, marca esos eventos sobre tu ingreso diario. Ejemplo: una tienda de suplementos ve al rival soltar un cupón del 20% en la semana del Día del Padre. Sin dato, el reflejo es igualar el cupón y quemar margen. Con dos o tres ciclos anotados en el BI, respondes la pregunta que importa: cuando ese competidor hace promoción, ¿mi venta cae de verdad? Si no cae, la respuesta correcta es no reaccionar, y eso vale dinero. Si cae, reaccionas con número, no con susto.
Cómo montarlo en una tarde
Del cero a la primera alerta
Paso 1
Crea la clave en Cuenta > Integraciones
Una etiqueta por sistema (“metabase”, “n8n”). Copia la clave al momento: no vuelve a aparecer.
Paso 2
Haz la primera consulta
GET a /public/v1/campaigns con startDate de la semana, header Authorization: Bearer bdr_… Valida el JSON antes de automatizar.
Paso 3
Registra el webhook de salida
URL de tu endpoint o de Zapier/Make, eventos campaign.detected y movement.detected, guarda el secret.
Paso 4
Valida la firma y conéctalo al destino
Recalcula el HMAC del cuerpo, compáralo con X-Batedor-Signature y solo entonces escribe en el BI o publica en el canal.
Si todavía no monitoreas a nadie, puedes empezar por la prueba de 14 días, sin tarjeta: registra dos o tres competidores, deja que lleguen las primeras detecciones y solo entonces gasta la tarde del analista conectando BI y canal. Una tubería sin agua no prueba nada.
Conoce a tu primer competidor en minutos
Prueba de 14 días, sin tarjeta. En pocos minutos, la primera detección aparece en tu panel.
Crear cuenta gratis