All integrationsMicrosoft Teams
M

Microsoft Teams

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.

9 tools
OAUTH2
Reads by default, writes opt-in
Managed auth

Ask Ruby

“What did the team decide about this job?”
“Find the thread about this claim.”
“Catch me up on this channel.”
What Ruby can do

5 read tools

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.

When you turn writes on

4 write tools, off by default

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.

Why connect it to Ruby

Built for restoration, not bolted on.

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.

Use it from anywhere

Connect once, then just ask.

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.

Frequently asked questions

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.