Feature Request: Microsoft Teams integration
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 30/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- azure, typescript
Research direction
Start by studying packages/slack/ to understand the existing integration, then review the agent entry point and ScoutOptions. The proposed work includes a new @blink-sdk/teams package, lib/teams.ts, a /teams webhook, Bot Framework and Graph API operations, and Teams-specific message and file handling. Done means these integration components and the listed tools are wired together with authentication and threading behavior defined.
Written by the indexing model from the issue text.
Description
Summary
Add a Microsoft Teams integration for Blink agents, mirroring the existing Slack integration (@blink-sdk/slack).
Motivation
Many organizations use MS Teams as their primary communication platform. Supporting Teams would significantly expand Blink's reach and allow agents to be deployed where these teams already work.
Proposed Scope
- New
@blink-sdk/teamspackage (mirroringpackages/slack/) - Bot Framework activity handler (equivalent to
Receiver) - AI SDK tools: sendMessage, readMessages, readThreadReplies, getUserInfo, reactToMessage, reportStatus
- Message formatting for Teams (Adaptive Cards / Teams markdown)
- File attachment support via Graph API
- Scout agent wiring (
lib/teams.ts) +TeamsConfiginScoutOptions - Webhook route (
/teams) in agent entry point
Key Technical Considerations
- Azure AD app registration for auth (client ID/secret vs Slack's bot token/signing secret)
- Bot Framework SDK (
botbuilder) + MS Graph API for channel/message operations - Teams threading model differs from Slack's
thread_tsapproach - Adaptive Cards for rich content (vs Slack blocks)
- SharePoint/OneDrive file handling (vs Slack file API)
- Stricter rate limits than Slack
- Proactive messaging requires stored conversation references
- Dominant language
- TypeScript
- Stars
- 165
- Forks
- 20
- Avg merge
- 24m
- Merged PRs (30d)
- 1
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from coder/blink
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
GitHub tools `list_user_installations` and `list_app_installations` fail with app installation authOpen
Difficulty 4/5 3-5 days Newbie friendliness 42/100
-
Difficulty 5/5 Over a week Newbie friendliness 30/100
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
Similar issues
-
calcite-ui-icons enhancement impact - p3 - not time sensitive needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Esri/calcite-design-system#15467 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
diegosouzapw/OmniRoute#18390 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 86/100
guilhermerodz/input-otp#157 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
davidjerleke/embla-carousel#1414 ·
Maintainers usually reply within 4 days