Summary
Add a workiq_send_channel_message tool for posting a top-level message to a Teams channel. Today the workiq surface can read channel messages and reply to existing threads, but it cannot start a new channel post — leaving a gap versus the chat surface, which has both workiq_send_chat_message and workiq_reply_to_chat_message.
Current channel tools
workiq_list_channels — read
workiq_list_channel_messages — read
workiq_reply_to_channel_message — reply only
Missing: create a new top-level channel post.
Graph API
Supported and documented — no new permissions needed beyond what the existing reply tool already uses:
Reply endpoint used by the existing workiq_reply_to_channel_message tool is a different route (.../messages/{id}/replies), so this is genuinely a separate capability.
Suggested tool shape
Mirror workiq_send_chat_message for consistency:
workiq_send_channel_message({
teamId: string, // required
channelId: string, // required
content: string, // required
contentType?: "html" | "text", // default "html"
subject?: string, // channel posts support a subject/title line
importance?: "normal" | "high" | "urgent",
mentions?: [ /* same shape as send_chat_message mentions */ ]
})
Returns the created chatMessage (id, webUrl, createdDateTime) so callers can link back to the post.
Motivating use case
I have a Copilot/Scout automation ("Post my Daily Summary") that runs on weekdays, reads my Obsidian daily note, and needs to post it to a Teams channel as a new top-level post — not as a reply to any existing thread. Without this tool the automation has to fall back to Playwright browser automation against teams.microsoft.com, which is fragile.
This is likely a common pattern for status updates, standups, release announcements, incident notifications, etc.
Nice-to-have follow-ups (out of scope for this ask, but related)
- Optional
attachments / hostedContents support for images and file cards.
- A matching
workiq_send_channel_announcement or messageType: "announcement" flag — announcement posts are a distinct channel message type that would be very useful for release/broadcast automations.
Summary
Add a
workiq_send_channel_messagetool for posting a top-level message to a Teams channel. Today the workiq surface can read channel messages and reply to existing threads, but it cannot start a new channel post — leaving a gap versus the chat surface, which has bothworkiq_send_chat_messageandworkiq_reply_to_chat_message.Current channel tools
workiq_list_channels— readworkiq_list_channel_messages— readworkiq_reply_to_channel_message— reply onlyMissing: create a new top-level channel post.
Graph API
Supported and documented — no new permissions needed beyond what the existing reply tool already uses:
POST /teams/{team-id}/channels/{channel-id}/messagesChannelMessage.Send(least privileged)chatMessageobject; onlybodyis required. SupportscontentType: html|text,subject,importance, andmentions(same shape as chat message mentions).Reply endpoint used by the existing
workiq_reply_to_channel_messagetool is a different route (.../messages/{id}/replies), so this is genuinely a separate capability.Suggested tool shape
Mirror
workiq_send_chat_messagefor consistency:Returns the created
chatMessage(id, webUrl, createdDateTime) so callers can link back to the post.Motivating use case
I have a Copilot/Scout automation ("Post my Daily Summary") that runs on weekdays, reads my Obsidian daily note, and needs to post it to a Teams channel as a new top-level post — not as a reply to any existing thread. Without this tool the automation has to fall back to Playwright browser automation against teams.microsoft.com, which is fragile.
This is likely a common pattern for status updates, standups, release announcements, incident notifications, etc.
Nice-to-have follow-ups (out of scope for this ask, but related)
attachments/hostedContentssupport for images and file cards.workiq_send_channel_announcementormessageType: "announcement"flag — announcement posts are a distinct channel message type that would be very useful for release/broadcast automations.