Webhooks salientes - Docs | TeeckIn

Webhooks salientes

Envía los eventos de TeeckIn como JSON sin procesar y firmado a cualquier punto de conexión HTTPS — conecta tu actividad de temporizador y tareas con n8n, Make, Zapier o tu propio backend.

Qué son

Una integración de Webhook personalizado (JSON) entrega los eventos de TeeckIn como una carga útil JSON legible por máquina a un punto de conexión que tú controlas — a diferencia de las integraciones de Slack/Mattermost, que envían mensajes de chat con formato. Úsala para desencadenar automatizaciones: registrar un temporizador finalizado en una hoja de cálculo, redactar una factura cuando se crea una entrada facturable, o actualizar una tarea en tu herramienta de proyectos.

Disponible en todos los planes

Las integraciones de webhook cuentan para tu límite de integraciones (Free: 1, Pro: 10, Team: 25), igual que Slack/Mattermost.

Crear una integración de webhook

  1. 1
    Ve a Ajustes → Integraciones y haz clic en Añadir integración
  2. 2
    Elige la plataforma Webhook personalizado (JSON)
  3. 3
    Pega la URL de tu punto de conexión HTTPS (la dirección en la que escucha tu herramienta de automatización)
  4. 4
    Elige los eventos que enviar y un filtro opcional por tema/categoría
  5. 5
    Haz clic en Crear integración y copia el secreto de firma mostrado — solo se muestra una vez

Solo HTTPS, solo puntos de conexión públicos

La URL debe usar HTTPS y no puede apuntar a una dirección privada, de bucle local o de enlace local (por ej. localhost, 10.x.x.x, o IP de metadatos de la nube). Esto protege tu cuenta y tu infraestructura frente a la falsificación de solicitudes del lado del servidor.

La carga útil

Cada entrega es una solicitud POST con un sobre JSON versionado. Los eventos que se producen dentro de la ventana de agrupación de la integración se combinan en la matriz events de una sola solicitud.

json
{
  "version": "1",
  "sentAt": "2026-05-30T14:02:11.000Z",
  "integration": { "name": "My Automation" },
  "events": [
    {
      "event": "timer_stop",
      "topicName": "Acme redesign",
      "categoryName": "Client work",
      "userName": "Jordan Breton",
      "durationMinutes": 45,
      "timestamp": "2026-05-30T14:02:11.000Z"
    }
  ]
}

El campo version es un contrato de estabilidad: los nombres de los campos no cambiarán sin un incremento de versión, de modo que tus automatizaciones sigan funcionando.

Verificar la firma

Cada solicitud incluye una cabecera X-TeeckIn-Signature que contiene un HMAC-SHA256 del cuerpo sin procesar de la solicitud, firmado con tu secreto de firma:

text
X-TeeckIn-Signature: sha256=<hex-digest>

Vuelve a calcular el resumen sobre el cuerpo sin procesar y compáralo. Ejemplo en Node.js:

javascript
import crypto from 'node:crypto';

function isValid(rawBody, header, secret) {
  const expected =
    'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  // Constant-time comparison
  return crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}

Rotar el secreto

Puedes revelar o regenerar el secreto de firma en cualquier momento desde el cuadro de diálogo de edición de la integración. La regeneración invalida el secreto anterior de inmediato — actualiza tu automatización antes de rotarlo.

Conectar con n8n / Make / Zapier

Apunta la URL del webhook al nodo de webhook entrante de tu herramienta de automatización y, a continuación, usa sus acciones de solicitud HTTP para volver a llamar a TeeckIn (por ej., crear una entrada de tiempo) si necesitas flujos bidireccionales. Una configuración típica:

  1. 1
    Crea un nodo de webhook/desencadenador en n8n, Make o Zapier y copia su URL
  2. 2
    Crea una integración de webhook de TeeckIn que apunte a esa URL
  3. 3
    (Opcional) Añade un paso de verificación de firma usando el secreto
  4. 4
    Asigna los campos de events[] a tu acción posterior
¿Te ha resultado útil?