Captura transcripción + grabación reales de la llamada (webhook Retell)

- retell.ts: la llamada saliente manda metadata.lead_id; helpers obtenerLlamada
  (GET /v2/get-call, dato autoritativo) y descargarGrabacion (guarda el audio
  en nuestro sistema como data URI).
- /api/retell/webhook: en call_analyzed/call_ended relee la llamada por call_id,
  guarda la transcripción real en lead.transcripcion, descarga la grabación a
  lead.audio_url y deja el análisis + duración en un evento de pipeline. Seguro
  por re-fetch (no se fía del body del webhook).
- orchestrator/pedirLlamada: pasan leadId; procesarLead ya no guarda transcript
  simulado cuando la llamada es real (lo rellena el webhook).
- La ficha del panel ya mostraba transcripción + audio: ahora se pueblan solos.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Carlos Narro
2026-06-07 18:49:12 +02:00
parent 6ef69b403d
commit aed0ffae50
4 changed files with 129 additions and 1 deletions

View File

@@ -237,6 +237,7 @@ export async function pedirLlamada(
const llamada = await iniciarLlamadaSaliente({
telefono: lead.telefono,
variables: construirVariablesLlamada({ nombreEmpresa: tenant.nombreEmpresa }, lead),
leadId,
});
await db.insert(leadPipelineEventos).values({
leadId,