Messaging
Read your Microsoft Teams chats and channels so Ruby can catch up on what the crew said about a job, and send from her own account once you connect one.
Ask Ruby
Ruby reads from Microsoft Teams and grounds her answers in your data. Every connection starts read-only: she surfaces, summarizes, and drafts, and your team takes the action.
Teams list
List the Microsoft Teams teams the connected account belongs to, with their ids. Start here, then list a team's channels.
List users
Find a person in the organization's directory and get their user id, which is what opening a direct chat with them requires. Filter on displayName to resolve a name you got from somewhere else (a job's supervisor, an estimate's author) to an actual Teams user. Confirm you matched exactly ONE person before messaging them: two people share a first name more often than not, and a nudge sent to the wrong one is worse than none.
Teams list channels
List a team's channels by team id (from MICROSOFT_TEAMS_TEAMS_LIST). Restoration shops often run a channel per job or per crew, so this is how you find the right one.
Chats get all chats
List the connected user's Teams chats (one-to-one and group), with their ids. Use to find the conversation about a job before reading its messages.
Teams list chat messages
Read the messages in one Teams chat by chat id (from MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS). Use to catch up on what the crew said about a job.
Let Ruby send in Teams from her own account, so a message is clearly from her and not from whoever connected the integration.
An admin switches a connection to read-write in Settings > Integrations. From then on every write waits for a human’s approval before it leaves, by default, and every one lands in your audit log with what changed.
Teams post channel message
Post a message to a Microsoft Teams channel, as the account this workspace connected. Posts immediately and is not idempotent, so calling twice posts twice. Resolve ids first: MICROSOFT_TEAMS_TEAMS_LIST for the team, then MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS for the channel.
Teams post chat message
Send a message to an EXISTING Microsoft Teams chat (a direct or group conversation), as the account this workspace connected. Find the chat with MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS; this cannot start a new conversation with someone who has never been in one. Posts immediately and is not idempotent.
Teams create chat
Open a direct (one-to-one) Microsoft Teams chat with someone and get its chat_id, so you can then message them with MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE. This is the only way to start a conversation with a person who has never been in one with this account. Get their user id from MICROSOFT_TEAMS_LIST_USERS first. Unlike the posting tools this is SAFE TO REPEAT: a 'oneOnOne' request for members who already have a chat returns that existing chat instead of creating a second one, so calling it again costs nothing and does not notify anybody. Creating the chat does not send a message; it only opens the thread.
Teams post message reply
Reply to an existing Microsoft Teams channel message, keeping the answer in the thread it belongs to instead of starting a new one. Get the message_id from MICROSOFT_TEAMS_TEAMS_LIST_CHAT_MESSAGES. Posts immediately and is not idempotent.
Grounded answers
Ruby works from your actual Microsoft Teams data and cites what she found, so answers reflect your business rather than a stale export.
Reads by default
Every connection starts read-only. Ruby surfaces and drafts while your team takes the action; writes are opt-in per connection, human-approved by default, and always logged.
Managed, secure auth
Connect with one click. Tokens are encrypted and scoped per company; revoke access any time.
Knows restoration
Ruby understands jobs, claims, drying logs, and AR, so Microsoft Teams data lands in the right operational context.
Connect Microsoft Teams once in Ruby. Ask in the Ruby app, or bring the same secure connection into the assistant your team already uses.
Ruby
Ask in the Ruby app and get an answer grounded in Microsoft Teams and the rest of your connected stack.
Claude
Bring the same secure Microsoft Teams connection into Claude so it can answer with your live data.
ChatGPT
Use Microsoft Teams from ChatGPT with the same per-company, permissioned access Ruby uses.
Do I need developer credentials to connect Microsoft Teams?
No. Microsoft Teams connects with a single click, Ruby handles the OAuth handshake and token refresh for you.
Can Ruby change anything in Microsoft Teams?
Not unless you turn it on. Every Microsoft Teams connection starts read-only. An admin can switch a connection to read-write in Settings > Integrations; from then on each write Ruby makes waits for a human's approval before it leaves (by default; the same admin can switch that off) and is recorded in your audit log either way.
Is my Microsoft Teams data secure?
Credentials are encrypted at rest and access is scoped per company. You can revoke the connection at any time from Settings > Integrations, which immediately cuts Ruby off.
Can I use Microsoft Teams alongside my other tools?
Yes. Ruby reasons across every tool you connect at once, so she can tie Microsoft Teams to your CRM, accounting, email, and documentation in a single answer.