Pular para o conteúdo
Volver al blog
Proceso 29 de julio de 2026 8 min de lectura

API de Datos de Competidores: del Panel al BI y a Slack

Un dato atrapado en un panel muere; un dato en el flujo del equipo decide. Mira cómo usar la API pública de Batedor, los webhooks de salida firmados y los canales de Slack, Telegram y WhatsApp para llevar la promoción del competidor a tu BI, al canal del equipo y al lado de tu curva de ventas.

Notebook mostrando un dashboard de BI con gráficos de barras e indicadores de colores

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.

Endpoints de la API pública (v1)
EndpointQué devuelveFiltros útiles
/public/v1/competitorsLista de los competidores monitoreadosbúsqueda por texto, tag y grupo, paginación
/public/v1/competitors/:idDetalle de un competidorninguno
/public/v1/campaignsDetecciones clasificadas por la IA (promoción, cupón, envío gratis, lanzamiento…)competitorId, isActive, startDate, endDate, paginación
/public/v1/campaigns/:idDetalle de una detecciónninguno

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

  1. Paso 1

    Crea la clave en Cuenta > Integraciones

    Una etiqueta por sistema (“metabase”, “n8n”). Copia la clave al momento: no vuelve a aparecer.

  2. 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.

  3. Paso 3

    Registra el webhook de salida

    URL de tu endpoint o de Zapier/Make, eventos campaign.detected y movement.detected, guarda el secret.

  4. 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
Compartir:
Hora de salir a campo

Aplícalo ahora mismo.

Prueba de 14 días, sin tarjeta. En pocos minutos la primera detección aparece en tu panel.

API de Datos de Competidores: del Panel al BI y a Slack — Batedor