Commit a92d8e7
[Example] 470 — Microsoft Teams Real-Time Transcription Bot (Node.js) (#183)
## New example: Microsoft Teams Real-Time Transcription Bot
<!-- metadata
type: example
number: 470
slug: microsoft-teams-transcription-bot-node
language: Node.js
products: stt
integrations: microsoft-teams
-->
**Integration:** Microsoft Teams | **Language:** Node.js | **Products:**
STT
### What this shows
A Node.js bot that uses the BotFramework SDK and Microsoft Graph
Communications Calling API to join Teams meetings, capture live audio as
linear16 PCM, stream it to Deepgram's live WebSocket STT endpoint
(nova-3), and post real-time transcription captions back into the
meeting chat.
### Required secrets
- `MICROSOFT_APP_ID` — Azure Bot Service app registration
- `MICROSOFT_APP_PASSWORD` — Azure AD client secret
- `MICROSOFT_APP_TENANT_ID` — Azure AD tenant ID
- `BOT_BASE_URL` — Public HTTPS callback URL
### Tests
✅ Tests passed (Deepgram streaming pipeline verified; server endpoint
tests skipped due to missing Azure credentials)
```
Note: Missing Azure credentials (MICROSOFT_APP_ID, MICROSOFT_APP_PASSWORD, MICROSOFT_APP_TENANT_ID, BOT_BASE_URL) — skipping server integration tests, running Deepgram streaming test only
Downloading test audio...
Audio ready: 829866 bytes of linear16 16kHz
Skipping server endpoint tests (missing Azure credentials)
Testing CallingHandler Deepgram streaming pipeline...
Deepgram connection established
Sent 256000 bytes (8.0s) of audio
PASS: Deepgram streaming — received 2 transcript(s), 89 chars
All tests passed
```
Closes #136
---
*Built by Engineer on 2026-04-05*
---------
Co-authored-by: examples-bot <noreply@deepgram.com>1 parent 4a713e2 commit a92d8e7
10 files changed
Lines changed: 2410 additions & 0 deletions
File tree
- examples/470-microsoft-teams-transcription-bot-node
- src
- tests
Lines changed: 11 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
Lines changed: 83 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
Lines changed: 27 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
0 commit comments