Herramienta · n8n

Conecta Testivora con n8n

Atrapa los eventos de Testivora con el nodo Webhook de n8n y dispara cualquier flujo: Slack, Sheets, tu CRM, lo que sea. Funciona hoy, sin esperar a un nodo nativo.

Lectura · ~5 min
Cómo funciona
Testivora manda un POST firmado a una URL cuando pasa algo (testimonio nuevo, aprobado o eliminado). El nodo Webhook de n8n recibe ese POST y tú encadenas lo que quieras.
01

Crea un Webhook node en n8n

Nuevo workflow → agrega un nodo 'Webhook'. Pon HTTP Method en POST y copia la 'Production URL' (o la de Test mientras pruebas). Activa el workflow para que la Production URL quede viva.

02

Registra la URL en Testivora

En Testivora ve a Ajustes → Webhooks → Nuevo endpoint. Pega la URL de n8n, elige los eventos que te interesan (o déjalo en todos) y guarda. Verás un secret whsec_… para verificar la firma (paso 5, opcional).

03

Envía una prueba y mira el payload

Desde Testivora dale 'Enviar prueba' en tu endpoint. En n8n vas a recibir el evento. Esta es la forma del payload — el testimonio vive en data:

json
{
  "id": "evt_3hF2bQ...",
  "object": "event",
  "event": "testimonial.approved",
  "version": "1.0",
  "created": "2026-06-03T01:00:00.000Z",
  "attempt": 1,
  "data": {
    "id": "j97...",
    "type": "text",
    "status": "approved",
    "rating": 5,
    "text": "Cerré 3 clientes en una semana.",
    "author": { "name": "Ana López", "company": "Acme" }
  }
}
El id es estable entre reintentos: úsalo para no duplicar.
04

Usa los campos en tus nodos

En n8n el cuerpo del POST llega bajo $json.body. Referencia los campos con expresiones:

javascript
{{ $json.body.event }}                  // testimonial.approved
{{ $json.body.data.author.name }}      // Ana López
{{ $json.body.data.text }}             // el testimonio
{{ $json.body.data.rating }}           // 5
Para testimonial.deleted, data = { id, space_id, deleted: true }.
05

Verifica la firma (opcional pero recomendado)

Para asegurarte de que el POST vino de Testivora, agrega un nodo Code que recalcule el HMAC-SHA256 del header Testivora-Signature con tu secret:

javascript
// n8n Code node (opcional) — verifica la firma
const crypto = require('crypto');
const secret = 'whsec_...'; // tu secret de Testivora
const header = $json.headers['testivora-signature']; // "t=...,v1=..."
const p = Object.fromEntries(header.split(',').map(s => s.split('=')));
const raw = JSON.stringify($json.body);
const expected = crypto.createHmac('sha256', secret)
  .update(`${p.t}.${raw}`).digest('hex');
if (p.v1 !== expected) throw new Error('Firma inválida');
return $input.all();
Responde 2xx rápido; si fallas, reintentamos con backoff.
Siguiente paso
Ya con el evento dentro de n8n, conéctalo a Slack, Google Sheets, tu CRM o un email. Revisa las recetas listas en /docs/automate.