Add workiq_send_channel_message tool for top-level channel posts
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— readworkiq_list_channel_messages— readworkiq_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:
POST /teams/{team-id}/channels/{channel-id}/messages- Docs: https://learn.microsoft.com/en-us/graph/api/channel-post-messages?view=graph-rest-1.0
- Delegated permission:
ChannelMessage.Send(least privileged) - Request body: a
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_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/hostedContentssupport for images and file cards. - A matching
workiq_send_channel_announcementormessageType: "announcement"flag — announcement posts are a distinct channel message type that would be very useful for release/broadcast automations.
Contributor guide
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.
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