microsoft / microsoft/work-iq

Add workiq_send_channel_message tool for top-level channel posts

Open
#155 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
PowerShell
Stars
1k
Forks
132
Avg merge
5d 19h
Merged PRs (30d)
6

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the existing workiq_send_chat_message and workiq_reply_to_channel_message tools and compare their argument and response handling. Add the top-level channel-post capability using the documented Graph endpoint, then verify that required fields, optional message properties, and the created chatMessage response are supported.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell
Domain
api
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.