---
title: "Microsoft Teams Plugin for Orangescrum Self-Hosted"
description: "Task alerts as Adaptive Cards in Teams channels, tabs, a meeting side panel, bot commands, and Teams sign-in. For Orangescrum self-hosted."
canonical: https://www.orangescrum.com/self-hosted/plugins/microsoft-teams
---

# Microsoft Teams Plugin for Orangescrum Self-Hosted

> For the complete documentation index, see [llms.txt](https://www.orangescrum.com/llms.txt).

1.  [Home](/)
2.  ›
3.  [Self-Hosted](/self-hosted)
4.  ›
5.  [Plugins](/self-hosted/plugins)
6.  ›
7.  Microsoft Teams

# Microsoft Teams

by [Orangescrum](/) · Productivity

Self-HostedVerifiedMicrosoft 365

Bring Orangescrum into Microsoft Teams. Map a project to a channel and task activity arrives there as an Adaptive Card, with buttons that write straight back to the task. Pinned tabs show your tasks and the project board without leaving Teams, a meeting side panel captures an action item as a task while the meeting is still running, and the bot answers a handful of plain commands in chat.

Installs

Available

Active deployments

Support

Vendor Supported

Priority response

Trust

Self-Hosted

Your infra, your data

$499/year

Per company • Add-on to any Self-Hosted plan

[Buy & See All Plans](/self-hosted/pricing#addons)[Talk to Sales](/contact-sales)

-   Project to channel mapping with per-mapping event filters
-   Task activity delivered as Adaptive Cards
-   Card buttons that change status, assign, comment, or set a due date
-   Tabs for my tasks and the project board inside Teams
-   A meeting side panel that captures an action item as a task
-   Bot commands for creating, updating, and commenting on tasks
-   Teams sign-in that links the Microsoft identity to the Orangescrum user
-   An event log recording every card delivered

Pairs with [Self-Hosted Core ($1,500/yr) or Business ($2,250/yr)](/self-hosted/pricing)

[Overview](#overview)[Features](#features)[About](#about)[Install](#install)[FAQ](#faq)

## Screenshots

An Adaptive Card in a channel with action buttons

Project to channel mapping with event filters

Meeting side panel capturing an action item

## Key Features

### Project to Channel Mapping

Map each project to the Teams channel that cares about it. One project can feed several channels, and each mapping filters the events it wants so a busy channel is not flooded.

### Adaptive Cards

Task activity arrives as a structured card rather than a wall of text, so the title, status, assignee, and due date are readable at a glance in the channel.

### Buttons That Write Back

Change the status, assign it to someone, add a comment, or set a due date straight from the card. The change is applied to the task itself, and the card updates to show the new state.

### Events From Anywhere

Notifications fire from the task layer, not from a Teams-specific code path, so a change made in the Orangescrum interface reaches the channel exactly like one made from a card.

### Tabs Inside Teams

Pin a tab showing your own tasks or the project board, configured per channel. People who live in Teams get the view without a context switch.

### Meeting Side Panel

During a meeting, capture an action item as a task from the side panel. The meeting subject is recorded on the task, so the decision and its origin stay together.

### Bot Commands

Ask the bot for help or your tasks, create a task in a named project, update a status, assign to someone, or add a comment, all as plain text in chat.

### Teams Sign-In

The Teams identity is exchanged and linked to the Orangescrum account, so tabs open already signed in and a card action is attributed to the right person rather than to a service account.

### Bundled App Manifest

The Teams application manifest and its icons ship with the plugin, so publishing the app into your tenant is an upload rather than a manifest written by hand.

### Admin Settings and Connection Test

Azure application credentials, the bot identifier, and defaults are set in one screen with a test button that tells you the connection works before anyone starts wondering why cards do not arrive.

### Event Log

Every card delivery is recorded with its event, its mapping, and its outcome, so a channel that went quiet is something you can investigate rather than guess about.

### Your Tenant, Your Bot

The application registration and the bot are yours, in your Microsoft tenant, talking to your install. No shared relay service sits between your channels and your data.

## About this plugin

### Why Microsoft Teams for Orangescrum?

If your organisation runs on Teams, that is where people are, and a project tool nobody has open loses to a channel everybody has open. This add-on puts the task activity where the conversation already is, and makes the common responses possible without leaving it. There is a marketing overview of the integration at /integrations/microsoft-teams; this page is the operational detail for the self-hosted add-on.

### Cards, not a firehose

Each project-to-channel mapping filters the events it wants, so a channel can take everything or only the changes that matter to it. Activity arrives as an Adaptive Card, which means the title, status, assignee, and due date are laid out and scannable rather than crammed into a sentence nobody finishes reading.

### Replies that actually change something

The buttons on a card change the status, assign the task, add a comment, or set a due date. Those changes are applied to the task at the data layer, so they behave exactly like a change made in the interface, including firing the notification that tells the rest of the channel what happened.

### Tabs and the meeting side panel

Pin a tab for your own tasks or a project board and people who work inside Teams get the view without switching applications. In a meeting, the side panel captures an action item as a task while the discussion is still live, and records the meeting subject on it so the context survives the call.

### Signed in as the right person

The Teams sign-in exchange links the Microsoft identity to an Orangescrum account. That is what makes a tab open without a second login and a card action land as a change made by a named person rather than by an anonymous integration.

### Your tenant, your data path

You register the application and the bot in your own Microsoft tenant and point them at your install. Messages go from your Orangescrum server to Microsoft and back, with no shared relay service in the middle holding your channel content or your task data.

### What's included

-   Project to Teams channel mapping, with several mappings per project
-   Per-mapping event filters so each channel takes only what it wants
-   Task activity delivered to channels as Adaptive Cards
-   Card actions to change status, assign, add a comment, and set a due date
-   Notifications raised from the task layer, so interface changes notify too
-   Teams tabs for my tasks and the project board, with a configuration page
-   Meeting side panel that captures an action item as a task with the meeting subject recorded
-   Bot commands: help, my tasks, create a task in a project, update a status, assign to a person, and comment
-   Teams sign-in exchange that links the Microsoft identity to the Orangescrum user
-   Microsoft Graph webhook callback endpoint
-   Administrator settings for the application credentials, bot identifier, and defaults, with a connection test
-   A bundled Teams application manifest and icons
-   An event log of deliveries with event, mapping, and outcome
-   A health endpoint for monitoring
-   Multi-tenant company-scoped data isolation

### Compatibility

Requires the Orangescrum Self-Hosted edition running PHP 8.2+, CakePHP 4.6+, and PostgreSQL 16. The plugin folder is MsTeams and it is gated by the MS\_TEAMS\_ENABLED flag in config/constants.php. You need an application registration in your own Microsoft tenant with delegated Graph permissions for sign-in and for reading and posting to teams and channels, plus an Azure bot registration for proactive messages and card actions. Your install must be reachable over HTTPS from Microsoft, because the bot endpoint, the card action callback, and the tabs are all called from the Teams client and the Bot Framework. The bundled manifest is uploaded to your tenant through the Teams admin centre. Multi-tenant aware, so every mapping, user link, and event log row is company-scoped.

## Installation

A self-hosted install takes a few minutes. Buy the add-on, drop the plugin into your `plugins/` directory, run the migrations, and you're live.

1.  1
    
    ### Buy the add-on
    
    Purchase the Microsoft Teams add-on from /self-hosted/pricing. Pricing for this add-on is being finalised, so confirm the current figure with sales before you budget.
    
2.  2
    
    ### Register the application and bot in your tenant
    
    Create an app registration with delegated Graph permissions for sign-in and for teams and channels, then create an Azure bot registration and note its identifier and secret.
    
3.  3
    
    ### Drop the plugin into your install
    
    Copy the MsTeams/ folder into plugins/ on your self-hosted Orangescrum server and register \`MsTeams\` in src/Application.php with routes and bootstrap enabled.
    
4.  4
    
    ### Enable the feature flag
    
    Confirm \`define('MS\_TEAMS\_ENABLED', true);\` in config/constants.php. While the flag is false the plugin does not deliver anything.
    
5.  5
    
    ### Run the migrations and the permission seeder
    
    Run \`bin/cake migrations migrate --plugin MsTeams\` and \`bin/cake migrations seed --plugin MsTeams --seed MsTeamsRbacSeeder\`. Both are safe to re-run.
    
6.  6
    
    ### Enter the credentials and test the connection
    
    Open the Teams admin settings in Orangescrum, save the application credentials and bot identifier, and use the test button to confirm the connection before going further.
    
7.  7
    
    ### Publish the Teams app
    
    Upload the bundled manifest, with its icons, through your Teams admin centre so the app, its bot, and its tabs are available to your organisation.
    
8.  8
    
    ### Map a project to a channel
    
    Add a mapping from a project to the channel that should hear about it, choose which events that channel wants, and post a change to check the card arrives.
    

## Frequently Asked Questions

### What do I need on the Microsoft side?

▾

An application registration in your own Azure tenant with delegated Graph permissions for sign-in and for reading and posting to teams and channels, and an Azure bot registration so the bot can post proactively and receive card actions. The Teams application manifest ships with the plugin, so publishing the app itself is an upload rather than something you write.

### Can one project post to more than one channel?

▾

Yes. Mappings are records, not a single setting, so a project can feed several channels and a channel can receive several projects. Each mapping carries its own event filter, so a leadership channel can take only the significant changes while the delivery channel takes everything.

### Do the buttons on a card really change the task?

▾

Yes. Changing status, assigning, commenting, and setting a due date are applied to the task at the data layer, which means they behave exactly like a change made in the Orangescrum interface, right down to firing the notification that tells the channel what just happened.

### What can the bot do?

▾

A deliberately short list: show help, list your tasks, create a task with a title in a named project, update a task's status, assign a task to a person, and add a comment. It is not a general query interface, and it does not understand free-form questions. Anything beyond those commands belongs in the tabs or the application itself.

### Does it sync Teams chat messages into Orangescrum?

▾

No. The flow is task activity out to Teams, plus the specific write-backs from card actions, bot commands, and the meeting side panel. Channel conversations are not imported, chat history is not stored in Orangescrum, and there is no message archive feature.

### Do people need a separate login for the tabs?

▾

No. The Teams sign-in exchange links the Microsoft identity to an Orangescrum account, so a pinned tab opens already signed in and every action from a card or a tab is attributed to that person rather than to a shared integration account.

### Where do I look when a channel goes quiet?

▾

The event log. Every delivery is recorded with its event, the mapping it used, and the outcome, so you can tell the difference between nothing having happened, a mapping filtering the event out, and a delivery that failed.
