Connect Microsoft Teams

Overview
The connection brings notifications from the system into a Teams channel — where the team already reads. A Teams channel is linked to a project; that project's notifications then go there.
The link is unique on both sides: a project has at most one channel, a channel at most one project. A second entry on either side is rejected with an error message rather than quietly accepted.
The direction is deliberately kept simple: the system reports to Teams, and a few commands can be issued from the channel. It is not a second surface to work in — replies and decisions stay on the case, where they remain traceable.
Core tasks
Establish the connection. The bot credentials (app id, app password, tenant) do not live on this page but under Integrations, provider Microsoft. Without a stored app id the inbound route stays closed.
Link a channel. Under Settings → Teams you pick the project and enter the channel id. From then on that project's notifications go there.
Pause or remove a link. Active off stops the notifications and keeps the assignment; deleting removes it entirely. The history in the channel remains in both cases.
Fields in detail
The What it does column answers what changes in the system — not what the field is called. The grey name behind it is the API field: the same thing runs under that name through automation, import and AI tools.
Channel link
| Field | Required | Values / format | What it does |
|---|---|---|---|
Project projectId | yes | existing project | Whose events are reported. A project can be linked only once. |
Channel ID channelId | yes | text, max. 190 characters, form 19:…@thread.tacv2 | Where notifications go. Addressing uses the id, not the name — channels can be renamed, the id stays. |
Channel name channelName | no | text, max. 120 characters | Display only in this list, so the row stays readable. It is not used for delivery and may stay empty. |
Active active | no | yes/no (default: yes) | Whether the link carries. Off means no event posts and no bot commands from this channel — the assignment itself is kept. |
What is not set on this page
| Item | Where it lives | Why there |
|---|---|---|
| App id, app password, tenant | Integrations, provider Microsoft | Credentials apply to the whole connection, not per channel. The app id is also the expected audience of every incoming token: without it everything is rejected. |
| Reply address of the channel | learned | It depends on tenant and region. The system remembers it from the channel's first incoming activity instead of asking for it. |
| User mapping Teams ↔ Octibiz | created when a user first links themselves from the channel | A bot command acts with the mapped account's permissions. Without a mapping nothing happens — the bot replies with a hint instead of acting anonymously. |
| Which events are reported | Notifications | The channel is a shared room, so it is not switched on by default. Everyone enables for themselves what should appear in the project channel. |
Without a configured app id everything is rejected — "not set up yet" means closed here, not open. Incoming requests are verified against Microsoft's key set; an unsigned method is rejected outright.
Settings & permissions
- View links:
octi.msteams.read - Manage links:
octi.msteams.manage
Module flag: module.msteams. Which events are reported at all is controlled by the notification settings — the link only decides the route.
FAQ & troubleshooting
No notifications arrive. First check whether Teams notifications are switched on for the project at all. The channel is not pre-enabled; without an event there is no notification.
The project cannot be linked a second time. That is intended: one channel per project, one project per channel. Remove the existing row or set it to Active = no.
A bot command replies "channel not linked". Then the row for this channel is missing, or it is set to Active = no.
The connection has expired. Renew the credentials under Integrations; the links on this page remain.