Speak-Yのチームワークスペースにある 配信 タブは、録音がチャンネルに共有されたときに2つのことをします。登録したアドレスにメールを送り、指定したURLに署名付きのPOSTリクエストを送ります。どちらが運ぶのも同じ少数の事実です。誰が共有したか、録音の長さ、日時、そしてどの記録か。要約も文字起こしも、どちらにも入りません。
これは機能が欠けているわけではありません。チャンネルの内容はエンドツーエンド暗号化されているので、メールとWebhookを送るサーバーは本文を一度も見ていないのです。このガイドでは、両方の設定方法、受信トレイとエンドポイントに実際に届くもの、X-Speaky-Signature ヘッダーの検証方法、対象になるチャンネルを説明します。内容はすべて、2026年10月9日にアプリとサーバーで確認しました。
チャンネルフィードの外にいる人やシステムに、新しい録音を知らせます。メンバーが会議をチャンネルに共有すると、サーバーは暗号化された記録を保存し、設定されていれば次の2つの宛先に通知します。
X-Speaky-Signature ヘッダーにHMAC SHA-256の署名が付きます。設定はアカウントではなく、1つのワークスペースに属します。ワークスペースごとに受信者とWebhookを持ちます。変更できるのはワークスペースのオーナーまたは管理者だけです。メンバーにはタブが読み取り専用で表示され、「Only an owner or admin can change integrations.」(オーナーまたは管理者だけが連携を変更できます)という注記が出ます。

必要なのは、macOSアプリと、ワークスペースでのオーナーまたは管理者の権限です。
どちらのブロックも、もう一方なしで動きます。あとでWebhookを変更するときは、URLとシークレットをもう一度入力してください。サーバーがシークレットを返さないため、欄にあらかじめ入力されることはありません。

届くのは通知であって、ダイジェストではありません。件名は「Speak-Y に新しい会議」(音声入力が共有された場合は「Speak-Y に新しい音声入力」)で、本文は3行とボタン1つです。
| メールの項目 | 例 |
|---|---|
| 作成者 | 録音を共有したメンバーの名前 |
| 長さ | 42 分 |
| 日時 | 2026/10/09 14:05 UTC |
| ボタン | Speak-Y で開く — その録音をmacOSアプリで開きます |
ボタンの下に、メールははっきりこう書いています。「録音はエンドツーエンドで暗号化されているため、この通知にはメタデータのみが含まれます。」チャンネル名とワークスペース名もメールには入りません。これらも暗号化されていて、サーバーは知らないからです。
このメールをチームに約束する前に、知っておきたい点が2つあります。

新しい録音1件につきPOSTが1回です。Content-Type: application/json、ヘッダー X-Speaky-Event: team_record.created、そして次のボディが付きます。
{
"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 は meeting か dictation、meta.duration_s は秒単位の長さです。それ以外はすべて識別子かタイムスタンプです。タイトルも、話者の一覧も、要約も、チャンネル名もありません。エンドポイントに分かるのは、何かがどこで起きたかであって、何が話されたかではありません。
よくある用途にはこれで足ります。チームのチャットへの1行、トラッカーの1行、チャンネルごとの会議数のカウンターなどです。channel_id を読める名前に対応づける表は、自分の側で持っておきましょう。なお、チャットのIncoming Webhookはこのリクエストをそのまま受け取れません。たとえばSlackのIncoming Webhookは text フィールドを持つJSONボディを期待するので、署名を検証してメッセージを整形し直す小さな中継サービスが必要です。
X-Speaky-Signature ヘッダーは sha256=<hex> という形式です。値は、配信タブで入力したシークレットを鍵にした、リクエストの生のボディ のHMAC SHA-256です。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)
届いたバイト列をそのまま使って署名を計算してください。フレームワークがJSONをパースし、それをシリアライズし直すと、キーの順序や空白が変わり、署名が一致しなくなります。
送信側のいくつかの性質が、受信側の作り方を決めます。
record_id で無視し、古いものは sent_at で捨てます。
ワークスペース全体です。例外は1つだけあります。対象範囲のカードには「このワークスペースのいずれかのチャンネルに新しい記録が入るたびに配信されます」とあり、チャンネルごとのフィルターはありません。顧客用チャンネルが活発なワークスペースでは、通知されるのは週次定例だけではありません。
例外は非公開チャンネルです。非公開チャンネルに共有された録音は、メールでもWebhookでも、どこにも通知されません。カードには、鍵マーク付きの非公開チャンネルも含め、あなたに見えるチャンネルが並びますが、サーバーはそれらを飛ばします。配信を設定するオーナーや管理者が、その非公開チャンネルのメンバーとは限らないからです。そこで何かが録音されたという事実でさえ、その人が受け取ってよい情報ではありません。チャンネルを公開と非公開にどう分けるかは、チームのチャンネルで誰が何を見られるかで説明しています。
個人の録音は、このすべての対象外です。自分で録音をチャンネルに共有するまで、ライブラリの外には何も出ません。
送るには、サーバーが要約を読めなければならないからです。Speak-Yでは、録音はアップロードされる前にMac上でチャンネルの鍵によって暗号化され、チャンネルの鍵はメンバーのデバイスにしかありません。仕組みはエンドツーエンド暗号化のチーム共有の仕組みで順に説明しています。要約をメールに入れられるサーバーは、すべてのチャンネルを読めるサーバーでもあります。
逆の設計のツールは内容を送ります。受信トレイに届く要約のほうがエンドツーエンド暗号化より大切なら、それはそうしたツールを選ぶ正当な理由です。2026年10月9日に確認した内容は次のとおりです。
meeting.transcribed イベントが会議IDを運び、HMAC SHA-256で署名されます。ただし内容はそのあとFirefliesのAPIから取得します。プロバイダーが読める形で保存しているからです。アプリの外に読めるコピーが必要なら、通知に頼るのではなく、意図して作りましょう。誰も書かなくていい週次の議事録ではConfluenceやGoogle Driveへのエクスポートを紹介しています。また、Speak-Y MCPサーバーを使えば、メンバーのMac上のAIアシスタントが、そのメンバーがもともと開ける録音を読めます。
チームワークスペースはSpeak-Y macOSアプリで利用できます。作成はProプランから可能で、チームメンバーはどのプランでも無料で参加できます。共有チャンネルの仕組みはSpeak-Y Teamsのページで紹介しています。
いいえ。Email deliveryが送るのは、新しい会議がチャンネルに共有されたという通知です。作成者、長さ、日時と、「Speak-Y で開く」ボタンが入ります。チャンネルはエンドツーエンド暗号化されているため、サーバーにはメールに載せられる要約も文字起こしもありません。本文はアプリで読みます。
イベントteam_record.createdを含むJSONのPOSTで、中身は識別子だけです。workspace_id、channel_id、record_id、created_by、metaに入る記録の種類と長さ、そして2つのタイムスタンプです。文字起こしも要約も、チャンネル名やワークスペース名も含まれません。
Webhookのシークレットを鍵にして、リクエストの生のボディに対するHMAC SHA-256を計算し、16進文字列にしてsha256=を前に付けます。その結果をX-Speaky-Signatureヘッダーと定数時間比較で照合します。JSONをパースする前に行ってください。
ワークスペースのいずれかの公開チャンネルに共有された新しい録音すべてです。チャンネルごとのフィルターはありません。非公開チャンネルはメールでもWebhookでも一切通知されず、個人の録音がライブラリの外に出ることもありません。
ワークスペースのオーナーまたは管理者です。macOSアプリのワークスペースページにある配信タブで設定します。メンバーには同じタブが読み取り専用で表示されます。