This article is for IT and security reviewers who must approve the Cinode Chat Assistant for Microsoft Teams before it is enabled. It lists every permission the Cinode Teams app requests, what each permission is used for, which administrator roles are needed, where data travels, what Cinode stores, and how to revoke access.
For what the assistant does for end users, read Meet the Chat Assistant.
You can verify this yourself. Download the app package from the bottom of Meet the Chat Assistant, open the .zip, and read manifest.json. That file contains the complete set of Microsoft Teams permissions the app can request. The one Microsoft Entra permission sits outside the manifest and is described separately below.
What the Cinode Teams app is
The Cinode Teams app is a bot application published by Cinode AB. Cinode owns and operates one multi-tenant bot registration that serves all customers. You do not create your own bot registration or app secret.
The app package you upload contains the manifest. It contains no executable code. All processing happens in Cinode's own service.
These are the identifying values in the current app package. Reviewers usually want both IDs, because the Teams app ID and the bot application ID are different objects.
Field | Value |
Publisher | Cinode AB |
Teams app ID |
|
Bot application ID |
|
Installation scopes | Personal (1:1), group chat, and team or channel |
Allowed domains |
|
The app declares no tabs, no message extensions, no connectors, and no meeting extensions. In the manifest it explicitly sets calling, video, and file support to false, so it cannot start calls, join meetings, or upload and download files. The only device permission it requests is notifications.
Which administrator roles are required
Enabling the Chat Assistant needs several administrator roles, each for one step. No role is granted to Cinode; these are roles your own staff use during setup.
Step | Role needed | Required? |
Install and configure the integration in Cinode | Cinode Admin with Flows access | Yes |
Upload the app package to your tenant | Teams Administrator | Yes |
Sign in to Microsoft to identify your tenant | Microsoft 365 administrator | Yes |
Pre-install the app for users with a setup policy | Teams Administrator | Only for proactive messages, such as reminders and alerts |
Grant admin consent for | Privileged Role Administrator | Optional. See the section on Entra permissions |
Which Teams permissions the app requests
The Cinode Teams app requests resource-specific consent (RSC) permissions. RSC permissions are scoped to the single team, channel, or chat where the app is installed. They do not apply tenant-wide. If the app is installed in one team, it has no access to any other team.
This table lists every RSC permission in the manifest and what the assistant uses it for.
Permission | What it allows | Why Cinode needs it |
| Send messages in a 1:1 or group chat the app is installed in | To reply to a direct message, and to deliver reminders and alerts privately |
| Post messages in a channel the app is installed in | To answer in the channel where it was mentioned, and to post scheduled digests |
| Read messages in a channel the app is installed in | To read the conversation thread it is taking part in, so follow-up questions work without repeating context. Read the note below this table |
| Read messages in a group chat the app is installed in | The same, for group chats. Read the note below this table |
| Read the membership list of the team | These three roster permissions serve one purpose: to check whether the person who created a scheduled alert is still a member of the conversation, and to stop that alert when they are not. Teams uses different permission names for a team roster and a channel roster |
| Read the team roster | As above |
| Read the channel roster | As above |
| Read a channel's name and settings | To read the channel name, so the assistant knows which channel a question was asked in and can word its answer accordingly |
| Send a notification to a user's Teams activity feed | Declared for future activity-feed notifications. The assistant does not currently use it; reminders are delivered as direct messages instead |
Important, about the two read permissions. A Teams bot normally receives only the messages that @-mention it. ChannelMessage.Read.Group and ChatMessage.Read.Chat also let the app receive every message in a channel or group chat where it is installed. This is a side effect of the permission model in Microsoft Teams, not a separate permission, and it applies only to the specific channels and chats where the app is installed.
What Cinode does with those messages is the part that matters for your review, so it is stated precisely here. The assistant processes a message only in a conversation it has already been brought into: a direct message, or a thread where somebody @-mentioned it. Once it has been mentioned in a thread, it follows that thread and may answer later messages in it without a new mention, which is what makes follow-up questions work. Messages in channels and threads where nobody has mentioned it are not processed and are not sent to the language model.
If your security policy does not allow the app to receive channel messages at all, install it for personal (1:1) use only and do not add it to any team or channel. The assistant then works in direct messages, and these two permissions never apply to your shared channels.
Which Microsoft Entra permissions the app requests
Separately from the RSC permissions above, setup includes a Microsoft sign-in in the Cinode configuration wizard. This sign-in identifies your Microsoft 365 tenant, so that Cinode routes messages to the correct organisation.
Beyond that sign-in, one permission is optional:
User.Read.All(application permission, requires admin consent). This lets Cinode look up a user by email address and start a direct message with them. Cinode uses it only to reach a person who has not messaged the assistant first, for example to deliver a task reminder.If you skip it, the assistant still answers questions and still replies in any conversation. Proactive direct messages to a person who has never opened the app may not be delivered.
You grant this consent yourself, in your own tenant, and you can withdraw it at any time. Review the exact permission list on the Microsoft consent screen before you approve it, and contact Cinode Support if anything shown there is not explained in this article.
What the app cannot access
Because the app declares no permissions beyond those listed above, it has no access to the following, in Teams or anywhere else in Microsoft 365:
Mailboxes, email, or Outlook data
Calendars and meeting content
OneDrive, SharePoint, and files in Teams
Calls, meeting audio or video, transcripts, and recordings
Teams, channels, or chats where the app has not been installed
The history of 1:1 direct messages, which would require the
Chat.Read.Allpermission that this app does not requestDirectory data beyond resolving a user by email address, and only when you grant the optional
User.Read.AllpermissionCreating, deleting, or renaming teams and channels
Where data travels
Understanding the data path helps you judge what leaves your tenant. A message reaches Cinode through the standard Microsoft Bot Framework path, then Cinode processes it and replies.
A person @-mentions the assistant in a channel, or sends it a direct message.
Microsoft Teams delivers that message to the Microsoft Bot Framework, which forwards it to Cinode's endpoint at
hooks.flows.cinode.com.Cinode identifies the sender from the verified Teams account on the message, then looks up the matching Cinode user by email address.
Cinode reads only the data that user is allowed to see in Cinode, and sends the question together with that data to a large language model service to compose the answer.
Cinode posts the reply back through the Bot Framework into the same conversation.
An answer is always posted back into the conversation the question came from. The assistant cannot redirect an answer to a different channel or a different person. Scheduled alerts and reminders are separate from answers, and they go only to the destination the person who created the alert chose.
What Cinode stores
Cinode stores a small amount of state so that alerts, reminders, and preferences keep working between conversations. What is stored is limited to the following:
The alert subscriptions each person creates, including the schedule and the destination conversation they chose.
Each person's language and timezone preference.
A reference to the conversation, so Cinode can send that person a reminder later.
Short-lived technical markers that stop the same notification being sent twice.
Cinode does not keep your Teams conversations as a stored transcript. When the assistant needs the thread to answer a follow-up question, it reads that thread from Teams at the moment it answers.
How the assistant decides who you are and what you may see
Authorisation is the part of the design most security reviews ask about, so it works on two independent checks.
First, identity comes only from the verified Microsoft account attached to the message, never from text inside the message. Nobody can type "act as the CEO" and be treated as a different person.
Second, every answer is filtered through that person's own Cinode permission level, their managed teams, and their managed customers. If a person cannot see something in Cinode, the assistant will not show it to them in Teams either. Sensitive employment fields are withheld from the assistant entirely. Asking the assistant in a shared channel does not widen anyone's access, because the answer is scoped to the person who asked.
If a person has no Cinode account at all, the assistant tells them it cannot find their account and answers nothing.
How to restrict or revoke access
You keep full control of the app in your own tenant and can reverse the installation at any time. Access can be limited or removed in four independent ways.
Limit who can use it. In the Teams admin center, go to Teams apps › Permission policies and allow the Cinode app only for the groups that need it.
Limit where it is installed. Install the app only in the specific teams and channels you approve. RSC permissions apply only where the app is installed.
Withdraw the Entra consent. In the Microsoft Entra admin center, open Enterprise applications, find the Cinode application, and remove the granted permissions or delete the service principal.
Block or remove the app. In the Teams admin center, go to Teams apps › Manage apps, then block or delete the Cinode app. Messages stop being delivered to Cinode immediately.
Disabling the integration in Cinode Flows also stops all processing, independently of anything you change in Microsoft 365.
Related articles
Meet the Chat Assistant, for what the assistant does and how to set it up
Chat: Troubleshooting, for when the assistant does not answer
Managing Permission Levels and Roles, for how Cinode permission levels decide what each person sees
