Entrega en Speak-Y: avisos por correo y webhook de cada reunión

La pestaña Entrega de un espacio de trabajo de equipo de Speak-Y hace dos cosas cuando se comparte una grabación en un canal: envía un correo a las direcciones que indiques y envía una petición POST firmada a la URL que elijas. Ambos llevan el mismo puñado de datos: quién compartió, cuánto dura la grabación, cuándo y de qué grabación se trata. Ninguno lleva el resumen ni la transcripción.

No es una función que falte. El contenido de los canales está cifrado de extremo a extremo, así que el servidor que envía el correo y el webhook nunca ha visto el texto. Esta guía explica cómo configurar ambos, qué llega exactamente a la bandeja de entrada y a tu endpoint, cómo verificar la cabecera X-Speaky-Signature y qué canales quedan cubiertos. Todo lo que sigue se comprobó en la app y en el servidor el 9 de octubre de 2026.

¿Qué hace la pestaña Entrega?

Anuncia las grabaciones nuevas a personas y sistemas que están fuera del feed del canal. Un compañero comparte una reunión en un canal; el servidor guarda la grabación cifrada y después avisa a dos destinos, si están configurados:

Los ajustes pertenecen a un espacio de trabajo, no a tu cuenta: cada espacio de trabajo tiene sus propios destinatarios y su propio webhook. Solo el propietario del espacio de trabajo o un administrador puede cambiarlos. Los miembros ven la pestaña en modo de solo lectura, con la nota «Only an owner or admin can change integrations.» (solo un propietario o un administrador puede cambiar las integraciones).

Una grabación va del Mac de un compañero al servidor de Speak-Y y de ahí a una bandeja de entrada y a un endpoint de webhook
El Mac cifra la grabación antes de compartirla. El servidor puede avisar de que existe, pero no tiene nada legible que reenviar.

¿Cómo se configura?

Necesitas la app de macOS y el rol de propietario o administrador en el espacio de trabajo.

  1. Abre la página del espacio de trabajo. Haz clic en ⋯ junto al nombre del espacio de trabajo en la barra lateral y elige Edit workspace.
  2. Ve a la pestaña Entrega. Es la tercera pestaña, después de Overview y Members.
  3. Lee la tarjeta Qué se envía. Enumera los canales del espacio de trabajo, así ves el alcance antes de guardar nada.
  4. Rellena Webhook. Pega tu dirección en Endpoint URL y escribe un secreto de al menos 8 caracteres en Webhook secret (HMAC). El botón Save webhook permanece inactivo hasta que el secreto es lo bastante largo. Tras guardar, el estado indica Saved, el encabezado recibe una insignia Configurado y el campo del secreto se vacía: la app no vuelve a mostrar el secreto.
  5. Rellena Email delivery. Escribe las direcciones en Recipients, separadas por comas, y pulsa Save email delivery.

Cada bloque funciona sin el otro. Para cambiar el webhook más adelante, vuelve a introducir la URL y un secreto: el secreto no viene rellenado, porque el servidor no lo devuelve.

La pestaña Entrega de un espacio de trabajo de Speak-Y con la tarjeta de alcance, el bloque Webhook y el bloque Email delivery
1: los canales que activan un envío. 2: la dirección del webhook y su secreto de firma. 3: los destinatarios del correo.

¿Qué llega exactamente por correo?

Un aviso, no un resumen. El asunto es «Nueva reunión en Speak-Y» (o «Nuevo dictado en Speak-Y» cuando lo compartido es un dictado), y el cuerpo tiene tres filas y un botón:

En el correo Ejemplo
Autor El nombre del compañero que compartió la grabación
Duración 42 min
Cuándo 09/10/2026 a las 14:05 UTC
Botón Abrir en Speak-Y: abre esa grabación en la app de macOS

Debajo del botón, el correo lo dice sin rodeos: «Las grabaciones están cifradas de extremo a extremo, así que esta notificación solo incluye metadatos.» El nombre del canal y el del espacio de trabajo tampoco aparecen en el correo: también están cifrados, así que el servidor no los conoce.

Hay dos detalles que conviene saber antes de prometerle este correo al equipo:

Qué contiene el correo de entrega de Speak-Y: autor, duración, hora y un botón que abre la app
Tres datos y un botón. El resumen, la transcripción e incluso el nombre del canal se quedan dentro del canal cifrado.

¿Qué envía el webhook?

Un POST por cada grabación nueva, con Content-Type: application/json, la cabecera X-Speaky-Event: team_record.created y este cuerpo:

{
  "event": "team_record.created",
  "workspace_id": "5b0e7c1e-2f4d-4a57-9d0a-6f1b2c3d4e5f",
  "channel_id": "c1a2b3c4-d5e6-47f8-9a0b-1c2d3e4f5a6b",
  "record_id": "8F2C1D7A-3B4E-4C5D-9E6F-0A1B2C3D4E5F",
  "created_by": "0d9c8b7a-6e5f-4d3c-2b1a-0f9e8d7c6b5a",
  "meta": { "duration_s": 2520, "kind": "meeting" },
  "server_created_at": "2026-10-09T14:05:12+00:00",
  "protocol_version": 2,
  "sent_at": "2026-10-09T14:05:12.480113+00:00"
}

meta.kind es meeting o dictation, y meta.duration_s es la duración en segundos. Todo lo demás es un identificador o una marca de tiempo. No hay título, ni lista de hablantes, ni resumen, ni nombre de canal: tu endpoint se entera de que ha pasado algo y dónde, no de lo que se dijo.

Con eso basta para los usos habituales: una línea en el chat del equipo, una fila en un gestor de tareas, un contador de reuniones por canal. Mantén tu propia tabla que relacione channel_id con un nombre legible. Ten en cuenta que el webhook entrante de un chat no puede recibir esta petición directamente: los webhooks entrantes de Slack, por ejemplo, esperan un cuerpo JSON con un campo text, así que necesitas un pequeño intermediario que verifique la firma y dé otro formato al mensaje.

¿Cómo se verifica la firma?

La cabecera X-Speaky-Signature tiene la forma sha256=<hex>. El valor es el HMAC SHA-256 del cuerpo de la petición sin procesar, con el secreto que escribiste en la pestaña Entrega como clave. Un receptor en Python:

import hashlib
import hmac

def is_from_speaky(secret: str, raw_body: bytes, header: str) -> bool:
    digest = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
    return hmac.compare_digest(f"sha256={digest}", header)

Firma los bytes exactamente como llegaron. Si tu framework analiza el JSON y tú lo vuelves a serializar, cambian el orden de las claves y los espacios, y la firma no coincidirá.

Algunas propiedades del emisor condicionan cómo debe escribirse el receptor:

Cinco comprobaciones para un servicio que recibe el webhook de Speak-Y
Verificar sobre los bytes sin procesar, comparar en tiempo constante, responder rápido, deduplicar por record_id y no tratar el webhook como una cola.

¿Qué canales quedan cubiertos?

Todo el espacio de trabajo, con una excepción. La tarjeta de alcance dice «Cada nueva grabación en cualquier canal de este espacio activa un envío», y no hay filtro por canal. En un espacio de trabajo con canales de clientes muy activos, la reunión semanal no será lo único que se anuncie.

La excepción son los canales privados: una grabación compartida en un canal privado no se anuncia en ninguna parte, ni por correo ni por webhook. La tarjeta enumera los canales que puedes ver, incluidos los privados, con un candado, pero el servidor los omite. El motivo es que la entrega la configura un propietario o administrador que quizá no sea miembro de ese canal privado; ni siquiera el hecho de que allí se grabó algo le corresponde recibirlo. Cómo repartir los canales entre públicos y privados se explica en quién ve qué en los canales de equipo.

Las grabaciones personales quedan fuera de todo esto. Nada sale de tu biblioteca hasta que tú compartes una grabación en un canal.

¿Por qué no el resumen en sí?

Porque el servidor tendría que leerlo. En Speak-Y la grabación se cifra en el Mac con una clave de canal antes de subirse, y las claves de canal existen solo en los dispositivos de los miembros; cómo funciona compartir en equipo con cifrado de extremo a extremo recorre el mecanismo. Un servidor capaz de meter el resumen en un correo sería un servidor capaz de leer todos los canales.

Las herramientas construidas al revés sí envían contenido, y esa es una razón legítima para elegirlas cuando un resumen en la bandeja de entrada importa más que el cifrado de extremo a extremo. Comprobado el 9 de octubre de 2026:

Si necesitas una copia legible fuera de la app, hazla a propósito y no por notificación: actas de la reunión semanal que nadie tiene que redactar muestra la exportación a Confluence o Google Drive, y el servidor MCP de Speak-Y permite que un asistente de IA en el Mac de un miembro lea las grabaciones que ese miembro ya puede abrir.

Los espacios de trabajo de equipo están disponibles en la app de Speak-Y para macOS: crear uno requiere como mínimo el plan Pro, y los compañeros se unen gratis con cualquier plan. La página de Speak-Y Teams muestra cómo funcionan los canales compartidos.

FAQ

¿Speak-Y envía por correo el resumen o la transcripción después de una reunión?

No. El envío por correo manda un aviso de que se ha compartido una reunión nueva en un canal: el autor, la duración, la hora y un botón Abrir en Speak-Y. Los canales están cifrados de extremo a extremo, así que el servidor no tiene ningún resumen ni transcripción que meter en un correo. El texto se lee en la app.

¿Qué envía el webhook de Speak-Y?

Un POST en JSON con el evento team_record.created y solo identificadores: workspace_id, channel_id, record_id, created_by, el tipo de grabación y su duración en meta, y dos marcas de tiempo. No contiene transcripción, ni resumen, ni el nombre del canal o del espacio de trabajo.

¿Cómo verifico la cabecera X-Speaky-Signature?

Calcula el HMAC SHA-256 del cuerpo de la petición tal como llegó, sin procesar, con el secreto de tu webhook, codifícalo en hexadecimal y ponle delante sha256=. Compara el resultado con la cabecera X-Speaky-Signature mediante una comparación en tiempo constante, y hazlo antes de analizar el JSON.

¿Qué canales activan un envío?

Cada grabación nueva compartida en cualquier canal público del espacio de trabajo. No hay filtro por canal. Los canales privados no se anuncian nunca, ni por correo ni por webhook, y las grabaciones personales nunca salen de tu biblioteca.

¿Quién puede configurar el envío por correo y el webhook?

El propietario del espacio de trabajo o un administrador, en la pestaña Entrega de la página del espacio de trabajo, en la app de macOS. Los miembros ven la misma pestaña en modo de solo lectura.