proactive-message

Capture Teams conversation references in Redis and send proactive messages via BotFrameworkAdapter.

1|Updated Aug 22, 2025
One-click install
npx skills add https://github.com/interserver/teams-chat-bot --skill proactive-message
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: proactive-message
Source: https://github.com/interserver/teams-chat-bot/tree/main/.claude/skills/proactive-message
Command: npx skills add https://github.com/interserver/teams-chat-bot --skill proactive-message

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Proactive messaging in Microsoft Teams can be difficult because the bot must continue a past conversation context using a stored conversation reference, otherwise the request fails.

Core Features & Use Cases

  • Conversation reference capture: Stores the conversation reference from every incoming message to enable future proactive sends.
  • Redis-backed lookup: Retrieves conversation references from Redis using the fixed key format convref:{conversationId}.
  • Reliable proactive delivery: Continues the conversation via BotFrameworkAdapter.continueConversation with transient and authorization retry handling.
  • Separation from reactive replies: Uses this flow for user-initiated proactive triggers like “notify channel” rather than for standard ActivityHandler responses.

Quick Start

Add a conversation reference write on every incoming Teams message, implement sendProactiveMessage in server/api/msgController.js with retries, and then call POST /api/message with {"message":"Hello from proactive!"} after the bot has first received a message in the target conversation.

Frequently Asked Questions about proactive-message

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send proactive Microsoft Teams messages without mentions using a bot?

Proactive Microsoft Teams messaging requires capturing conversation references from incoming messages, storing them in Redis using the convref:{conversationId} key format, and continuing the conversation via BotFrameworkAdapter to send outbound activities on demand without mentions.

Why does my proactive Teams bot message fail to send after continuing a conversation?

Proactive message failures often stem from authorization issues when continuing a past conversation context. Resolve this by applying MicrosoftAppCredentials.trustServiceUrl on the service URL to refresh credentials and retry sending the outbound activity through the BotFrameworkAdapter.

Do I need Redis to store conversation references for Bot Framework proactive messaging?

Redis is required to store conversation references for Bot Framework proactive messaging, utilizing the ioredis client for get/set operations with the fixed key format convref:{conversationId}. This ensures references are retrieved reliably before continuing the conversation.

Can I use a Node.js API to trigger proactive notifications to a Teams channel?

You can trigger proactive notifications to a Teams channel through a Node.js API endpoint like POST /api/message, which retrieves the stored conversation reference from Redis and sends the outbound activity via the BotFrameworkAdapter on demand after the bot has previously received a message.

What RSC permissions are needed for proactive messaging in Microsoft Teams?

RSC permissions are required for proactive messaging in Microsoft Teams to authorize the bot to send notifications to channels. These permissions allow the BotFrameworkAdapter to continue the conversation and deliver outbound activities to the target channel without requiring explicit user mentions.