Speak-Y Bezorging: e-mail- en webhookmeldingen voor teamvergaderingen

Het tabblad Bezorging van een teamwerkruimte in Speak-Y doet twee dingen wanneer een opname in een kanaal wordt gedeeld: het mailt de adressen die u opgeeft, en het stuurt een ondertekend POST-verzoek naar een URL die u kiest. Beide bevatten hetzelfde kleine rijtje feiten — wie er deelde, hoe lang de opname duurt, wanneer, en om welke opname het gaat. Geen van beide bevat de samenvatting of de transcriptie.

Dat is geen ontbrekende functie. De inhoud van kanalen is end-to-end versleuteld, dus de server die de e-mail en de webhook verstuurt, heeft de tekst nooit gezien. Deze handleiding laat zien hoe u beide instelt, wat er precies in de inbox en bij uw endpoint aankomt, hoe u de header X-Speaky-Signature controleert en welke kanalen meedoen. Alles hier is op 9 oktober 2026 gecontroleerd aan de hand van de app en de server.

Wat doet het tabblad Bezorging?

Het kondigt nieuwe opnames aan bij mensen en systemen buiten de kanaalfeed. Een teamgenoot deelt een vergadering in een kanaal; de server slaat de versleutelde opname op en licht daarna twee bestemmingen in, als die zijn ingesteld:

De instellingen horen bij één werkruimte, niet bij uw account: elke werkruimte heeft eigen ontvangers en een eigen webhook. Alleen de eigenaar van de werkruimte of een beheerder kan ze wijzigen. Leden zien het tabblad alleen-lezen, met de melding "Only an owner or admin can change integrations." (alleen een eigenaar of beheerder kan integraties wijzigen).

Een opname gaat van de Mac van een teamgenoot naar de Speak-Y-server en verder naar een inbox en een webhook-endpoint
De Mac versleutelt de opname voordat ze wordt gedeeld. De server kan melden dat ze bestaat, maar heeft niets leesbaars om door te sturen.

Hoe stelt u het in?

U hebt de macOS-app nodig en de rol van eigenaar of beheerder in de werkruimte.

  1. Open de pagina van de werkruimte. Klik op ⋯ naast de naam van de werkruimte in de zijbalk en kies Edit workspace.
  2. Ga naar het tabblad Bezorging. Het is het derde tabblad, na Overview en Members.
  3. Lees de kaart Wat wordt verzonden. Die somt de kanalen van de werkruimte op, zodat u de reikwijdte ziet voordat u iets opslaat.
  4. Vul Webhook in. Plak uw adres in Endpoint URL en typ een geheim van minstens 8 tekens in Webhook secret (HMAC). De knop Save webhook blijft inactief totdat het geheim lang genoeg is. Na het opslaan staat er als status Saved, krijgt de kop het label Geconfigureerd en wordt het veld voor het geheim leeggemaakt: de app toont het geheim nooit meer.
  5. Vul Email delivery in. Typ de adressen bij Recipients, gescheiden door komma's, en klik op Save email delivery.

Elk blok werkt zonder het andere. Wilt u de webhook later wijzigen, voer dan de URL en een geheim opnieuw in — het geheim wordt niet vooraf ingevuld, omdat de server het niet teruggeeft.

Het tabblad Bezorging van een Speak-Y-werkruimte met de kaart over de reikwijdte, het blok Webhook en het blok Email delivery
1 — de kanalen die een bezorging starten. 2 — het webhookadres en het geheim voor de ondertekening. 3 — de ontvangers van de e-mail.

Wat komt er precies per e-mail aan?

Een melding, geen digest. Het onderwerp is "Nieuwe meeting in Speak-Y" (of "Nieuw dictaat in Speak-Y" als er een dictaat is gedeeld), en de tekst bestaat uit drie regels en één knop:

In de e-mail Voorbeeld
Auteur De naam van de teamgenoot die de opname heeft gedeeld
Duur 42 min
Wanneer 09-10-2026 om 14:05 UTC
Knop Openen in Speak-Y — opent die opname in de macOS-app

Onder de knop zegt de e-mail het ronduit: "Opnames zijn end-to-end versleuteld, dus deze melding bevat alleen metadata." Ook de naam van het kanaal en die van de werkruimte staan niet in de e-mail — die zijn eveneens versleuteld, dus de server kent ze niet.

Twee details zijn goed om te weten voordat u deze e-mail aan het team belooft:

Wat de bezorgmail van Speak-Y bevat: auteur, duur, tijd en een knop die de app opent
Drie feiten en een knop. De samenvatting, de transcriptie en zelfs de kanaalnaam blijven in het versleutelde kanaal.

Wat stuurt de webhook?

Eén POST per nieuwe opname, met Content-Type: application/json, de header X-Speaky-Event: team_record.created en deze body:

{
  "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 is meeting of dictation, en meta.duration_s is de lengte in seconden. Al het andere is een identifier of een tijdstempel. Er is geen titel, geen sprekerslijst, geen samenvatting en geen kanaalnaam: uw endpoint komt te weten dat er iets is gebeurd en waar, niet wat er is gezegd.

Dat is genoeg voor de gebruikelijke klussen — een regel in de teamchat, een rij in een tracker, een teller van vergaderingen per kanaal. Houd een eigen tabel bij die channel_id aan een leesbare naam koppelt. Let op: de inkomende webhook van een chat kan dit verzoek niet rechtstreeks aannemen. De inkomende webhooks van Slack verwachten bijvoorbeeld een JSON-body met een veld text, dus u hebt een kleine relay nodig die de handtekening controleert en het bericht opnieuw opmaakt.

Hoe controleert u de handtekening?

De header X-Speaky-Signature heeft de vorm sha256=<hex>. De waarde is de HMAC SHA-256 van de ruwe request-body, met als sleutel het geheim dat u op het tabblad Bezorging hebt getypt. Een ontvanger in 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)

Onderteken de bytes precies zoals ze zijn binnengekomen. Als uw framework de JSON parset en u die opnieuw serialiseert, veranderen de volgorde van de sleutels en de spaties, en klopt de handtekening niet meer.

Een paar eigenschappen van de afzender bepalen hoe u de ontvanger schrijft:

Vijf controles voor een dienst die de Speak-Y-webhook ontvangt
Controleer op ruwe bytes, vergelijk in constante tijd, antwoord snel, ontdubbel op record_id en behandel de webhook niet als wachtrij.

Welke kanalen doen mee?

De hele werkruimte, met één uitzondering. Op de kaart over de reikwijdte staat "Elke nieuwe opname in een kanaal van deze workspace start een bezorging", en een filter per kanaal is er niet. In een werkruimte met drukke klantkanalen is het weekoverleg dus niet het enige dat wordt aangekondigd.

De uitzondering zijn privékanalen: een opname die in een privékanaal wordt gedeeld, wordt nergens aangekondigd — geen e-mail, geen webhook. De kaart toont de kanalen die u kunt zien, inclusief privékanalen met een slotje, maar de server slaat ze over. De reden is dat de bezorging wordt ingesteld door een eigenaar of beheerder die misschien geen lid is van dat privékanaal; zelfs het feit dat daar iets is opgenomen, is niet voor hen bestemd. Hoe u kanalen verdeelt in openbaar en privé, leest u in wie wat ziet in teamkanalen.

Persoonlijke opnames vallen hier helemaal buiten. Niets verlaat uw bibliotheek totdat u zelf een opname in een kanaal deelt.

Waarom niet de samenvatting zelf?

Omdat de server die dan zou moeten lezen. In Speak-Y wordt de opname op de Mac met een kanaalsleutel versleuteld voordat ze wordt geüpload, en kanaalsleutels bestaan alleen op de apparaten van leden — hoe end-to-end versleuteld delen in teams werkt loopt het mechanisme door. Een server die de samenvatting in een e-mail kan zetten, zou een server zijn die elk kanaal kan lezen.

Tools die andersom zijn gebouwd, sturen wel inhoud mee, en dat is een goede reden om ervoor te kiezen als een samenvatting in de inbox zwaarder weegt dan end-to-end versleuteling. Gecontroleerd op 9 oktober 2026:

Hebt u een leesbare kopie buiten de app nodig, maak die dan bewust en niet via een melding: notulen van het weekoverleg voor het team laat de export naar Confluence of Google Drive zien, en met de Speak-Y MCP-server kan een AI-assistent op de Mac van een lid de opnames lezen die dat lid al kan openen.

Teamwerkruimtes zijn beschikbaar in de Speak-Y-app voor macOS: een werkruimte aanmaken begint bij het Pro-abonnement, en teamgenoten worden met elk abonnement gratis lid. De pagina over Speak-Y Teams laat zien hoe gedeelde kanalen werken.

FAQ

Mailt Speak-Y na een vergadering de samenvatting of de transcriptie?

Nee. E-mailbezorging stuurt een melding dat er een nieuwe vergadering in een kanaal is gedeeld: de auteur, de duur en de tijd, plus een knop Openen in Speak-Y. Kanalen zijn end-to-end versleuteld, dus de server heeft geen samenvatting of transcriptie om in een e-mail te zetten. De tekst leest u in de app.

Wat stuurt de webhook van Speak-Y?

Een JSON-POST met de gebeurtenis team_record.created en alleen identifiers: workspace_id, channel_id, record_id, created_by, het soort opname en de duur in meta, en twee tijdstempels. Er zit geen transcriptie in, geen samenvatting en geen naam van het kanaal of de werkruimte.

Hoe controleer ik de header X-Speaky-Signature?

Bereken HMAC SHA-256 over de ruwe request-body met uw webhookgeheim, codeer het resultaat hexadecimaal en zet er sha256= voor. Vergelijk de uitkomst met de header X-Speaky-Signature via een vergelijking in constante tijd, en doe dat voordat u de JSON parset.

Welke kanalen starten een bezorging?

Elke nieuwe opname die in een openbaar kanaal van de werkruimte wordt gedeeld. Een filter per kanaal is er niet. Privékanalen worden nooit aangekondigd, niet per e-mail en niet per webhook, en persoonlijke opnames verlaten uw bibliotheek nooit.

Wie kan e-mailbezorging en de webhook instellen?

De eigenaar van de werkruimte of een beheerder, op het tabblad Bezorging van de werkruimtepagina in de macOS-app. Leden zien hetzelfde tabblad alleen-lezen.