---
title: "Permissions & External Endpoints"
sidebar_label: "Permissions & Endpoints"
description: "Every Entra application, Microsoft Graph permission, and external endpoint Sensei IQ uses — what each one does, what data it carries, and how to disable or revoke it."
last_updated: 2026-09-16
---

# Permissions & External Endpoints

This page exists for security reviewers. It lists every application identity Sensei IQ registers in your tenant, every permission those identities request, and every endpoint outside your tenant that Sensei IQ touches — including what data each one carries and how to switch it off.

Everything here is verifiable from your own tenant. You can compare this list, line for line, against what your administrator sees at the consent screen and in Entra → Enterprise Applications. If the two ever disagree, the consent screen is authoritative and we want to know.

---

## The two Entra applications

Sensei IQ uses two applications. Both are multi-tenant registrations owned by Sensei, consented once into your tenant by an M365 Global Administrator. Both then appear in **Entra → Enterprise Applications**, and both can be reviewed, restricted, or revoked by you at any time without involving Sensei.

Sensei is a [Microsoft Verified Publisher](https://learn.microsoft.com/en-us/entra/identity-platform/publisher-verification-overview), so both consent dialogs carry the verified badge.

| Application | Application ID | What it does |
|---|---|---|
| **Sensei IQ Deployment** | `5ea6c3b5-3532-4b65-b312-7cb3d0683b65` | Installs and updates the Sensei IQ managed solution |
| **Sensei IQ Applications** | `3554c803-3678-4448-af4d-816942b47e6c` | Powers the Sensei IQ client experiences, including the Teams app |

**Neither application holds any application permissions.** Every permission on both registrations is **delegated**, which means each one is a ceiling on what the application may do *on behalf of a signed-in user* — never an independent grant, and never more than that user could do manually.

---

## Sensei IQ Deployment

This is the solution lifecycle identity. It installs the managed solution and applies updates.

### Permissions

| API | Permission | Type | Microsoft's description | Admin consent required |
|---|---|---|---|---|
| Microsoft Graph | `User.Read` | Delegated | Sign in and read user profile | No |
| Dynamics CRM | `user_impersonation` | Delegated | Access Common Data Service as organization users | No |
| PowerApps Service | `User` | Delegated | Access the PowerApps Service API | No |

Three delegated permissions, none of which require administrator consent on their own. There are no application permissions and no write scopes against Microsoft Graph.

### How automated deployment actually works

The permissions above are not how the solution gets installed. Automated deployment runs through a separate, narrower grant that lives entirely inside your environment: Sensei registers this application as an **Application User** in your Dataverse environment and assigns it the **System Administrator** security role. That Dataverse role — not a Graph permission — is what allows the solution to be imported and upgraded.

This matters for two reasons. First, the authority is scoped to the one Dataverse environment you grant it in, not to your tenant. Second, you can remove it independently of the Entra consent, at any time, by deleting the Application User record.

**To verify it in your environment:** Dataverse → **Settings → Security → Users**, then filter the view to **Application Users**. You will see it listed by name with its Application ID.

---

## Sensei IQ Applications

This is the user-facing identity behind the Sensei IQ client experiences, including the Teams app. It always acts as the signed-in user.

### Permissions

| API | Permission | Type | Microsoft's description | Admin consent required | Why Sensei IQ needs it |
|---|---|---|---|---|---|
| Microsoft Graph | `User.Read` | Delegated | Sign in and read user profile | No | Sign the user in and read their own profile |
| Microsoft Graph | `User.Read.All` | Delegated | Read all users' full profiles | **Yes** | Resolve other users by name for team membership and assignment display |
| Microsoft Graph | `Group.ReadWrite.All` | Delegated | Read and write all groups | **Yes** | Create or associate the Microsoft 365 Group behind a project, program, or portfolio, and its Teams channels |
| Microsoft Graph | `Files.ReadWrite` | Delegated | Have full access to user files | No | Read and write project documents the signed-in user can already reach |
| Dynamics CRM | `user_impersonation` | Delegated | Access Common Data Service as organization users | No | Read and write Sensei IQ records as the signed-in user |

Note what is **not** on this list: no `Sites.*` permissions, no `Files.ReadWrite.All`, no application permissions of any kind. Document access is bounded to files the signed-in user could already open themselves.

### Why the consent dialog looks broader than the access

Two of these permissions — `User.Read.All` and `Group.ReadWrite.All` — require administrator consent even though they are delegated. That makes the consent dialog read more alarmingly than the effective access warrants, and it is the single most common question we get in a security review. The explanation is worth stating plainly.

**A delegated permission is a ceiling, not a grant.** It describes the maximum the application may do *on behalf of a signed-in user* — it never exceeds what that user can already do themselves. A user who cannot create or modify a group in your tenant still cannot create or modify one through Sensei IQ. The permission does not elevate them.

**Graph is the only API for Groups and Teams.** There is no narrower permission that allows an application to associate a project with an existing Microsoft 365 Group or create a project channel. `Group.ReadWrite.All` is the permission Microsoft exposes for that operation, so any product doing this work requests it.

**Your Group governance still applies.** If your tenant restricts Microsoft 365 Group creation, that restriction holds. The supported pattern in that case is that your administrators pre-create Groups through your existing governance process, and Sensei IQ only associates a project with a Group that already exists. See [Collaboration](../product/capabilities/collaboration.md) for how Groups are used.

---

## External endpoints

Sensei IQ is not hosted software. It deploys as a Power Platform managed solution into your own Dataverse environment, in your own region. There is no Sensei-operated database holding your data, no inbound connection to Sensei infrastructure, and no internet-exposed Sensei endpoint.

Against that baseline, these are all of the endpoints outside your tenant that are involved at any point in the service lifecycle.

### Endpoints that carry no customer data

| Endpoint | Purpose | Data carried |
|---|---|---|
| Sensei deployment pipeline | Delivers solution artifacts into your environment via the Sensei IQ Deployment identity | None. This path runs one direction only — code in, not data out |
| `*.senseiiq.cloud` | Static hosting for the Teams app bundle, the app manifest, and in-app training content | None. Static assets only — no server-side authentication broker and no API in the token or data path. Your browser acquires its own Dataverse token and calls your own environment directly |

Sensei's own business-continuity backups cover source code, deployment artifacts, pipeline definitions, and release documentation. They contain no customer data.

### Optional features that can be switched off

Two features send data outside your tenant. Each is disabled with a single configuration setting, and we are happy to deploy with both off from the start if you would prefer to remove them from scope.

**Diagnostic telemetry** — `dc.services.visualstudio.com` (Azure Application Insights)

Used to keep Sensei IQ secure and current, diagnose faults, and guide product improvements. It carries operational identifiers only:

- Tenant ID and Tenant Name
- Application ID and Application Name
- Organization Unique Name and Organizational Currency ID
- User ID (a GUID) and User TimeZone offset
- User Security Roles and Browser Language
- Table Type Displayed and Event Type Action
- Dataverse Storage Metrics

It explicitly **excludes** user names, email addresses, file contents, and the contents of any project, program, or portfolio. That exclusion is an architectural boundary, not a convention — record content has no path into the telemetry pipeline.

The user identifier is a GUID used only to distinguish one user encountering a fault repeatedly from many users each encountering it once. Sensei does not resolve it to an individual. Note that under GDPR a pseudonymous identifier of this kind is still personal data, and we describe it that way rather than claiming the payload contains none.

| | |
|---|---|
| Retention | **90 days total.** The first 30 days are interactive — directly queryable by Sensei engineers for diagnosis. The remaining 60 sit in Azure Monitor long-term retention, which requires an explicit restore job to read. After 90 days the data is deleted |
| Processing region | Azure West US 3 |
| Disable | Set `InstrumentationKey` to `False` in Sensei IQ configuration settings |

Sensei will never share organization-specific telemetry with a third party unless required by law or with your express written permission.

**In-app feedback** — `*.userback.io` (Userback)

An optional widget that lets users send star ratings, feature ideas, and non-critical bug reports from inside the product. It transmits only what a user deliberately submits, which can include free text and a screenshot they choose to attach. It is not a background collector and captures nothing on its own.

Userback publishes its own [security overview](https://www.userback.io/security), [Trust Center](https://trust.userback.io/) for certifications and compliance reports, and [data processing agreement](https://userback.io/dpa/).

**Disable:** set `FeedbackOptOut` to `True` in Sensei IQ configuration settings. Setting `userFeedbackCadence` to `0` stops the periodic prompts without disabling the widget.

Your administrator applies both settings in the Sensei IQ configuration settings area. Full instructions are in the Sensei IQ Admin Guide.

### Connected Intelligence — opt-in, off by default

Connected Intelligence is the one deliberate exception to "nothing leaves your tenant," and it is **off by default**. While it is disabled, nothing is sent, no calls are made, the advisor buttons are not visible, and no subprocessor processes your data.

If you enable it, a configuration-defined list of named fields — not whole records, not documents, not free-form access to your tenant — is sent over TLS to a Sensei-managed Azure Function in Azure West US, which calls Anthropic's Claude API in the United States and returns the result. The function does not retain it.

Because the field scope lives in configuration rather than in code, your administrators can audit exactly what any advisor is permitted to send, and narrow it.

Full detail, including subprocessors, certifications, and retention, is in the [Connected Intelligence Advisors FAQ](../product/connected-intelligence/faq.mdx).

### External work-management connectors

If you synchronize with Jira Cloud, Azure DevOps, Microsoft Planner, Project Online, Asana, Wrike, Smartsheet, Monday.com, or Trello, that synchronization runs as Power Apps dataflows **inside your tenant**, authenticated by your own deployment account, pulling one direction inbound into Dataverse.

The traffic is between your tenant and a vendor you already hold a relationship with. Nothing routes through Sensei. Leaving a connector unconfigured is the disable path — only the integrations you actually configure are ever activated.

See [Supported Integrations](../product/platform/supported-integrations.md).

---

## Support is a separate channel

Sensei's Customer Care portal is **not connected to Sensei IQ**. There is no integration between the product and the support system, and no data flows from one to the other.

If your team raises a support ticket, they sign into the portal separately and provide whatever detail they choose to include — functionally the same as sending an email. What reaches us is what your user decided to send, and nothing else.

---

## What this means in practice

With Connected Intelligence off (the default), diagnostic telemetry disabled, and in-app feedback disabled, **no customer data reaches any Sensei-operated system at any point in the service lifecycle.**

What remains is a one-directional delivery path that carries code into your environment, and a static asset host that carries no data at all.

---

## Revoking access

Every path is unilateral and requires no coordination with Sensei:

| To revoke | Do this |
|---|---|
| An individual user's access | Remove their Sensei IQ security role, or disable their Entra ID account |
| Either application's consent | Entra → Enterprise Applications → select the application → delete or disable it |
| Automated solution deployment | Remove the Application User record in Dataverse → Settings → Security → Users |
| A Sensei consultant's access | Disable the account in your tenant, or remove their Dataverse user record |
| The product entirely | Uninstall the Power Platform solution and remove the app registrations |

---

## Related pages

- [Identity & Access](./identity-access.md) — how authentication and authorization work
- [Architecture](./architecture.md) — the tenant-installed deployment model
- [Shared Responsibility](./shared-responsibility.md) — what Microsoft, Sensei, and your organization each own
- [Security Review FAQ](./security-review-faq.md) — answers to common vendor-review questions
- [Data Protection](./data-protection.md) — encryption, residency, and data handling

---

## Changelog
| Date | Change | Author |
|------|--------|--------|
| 2026-09-16 | Page created — both application registrations with their verified permission sets, the `Group.ReadWrite.All` rationale, every external endpoint with its disable path, telemetry retention and region, the support-channel clarification, and revocation routes | Claude Code |
