Integrations
Microsoft Teams integration
Install and use the Performance Blocks Teams integration to chat with Henry, capture observations from messages, and receive summary deliveries.
Plan availability: This integration is available on the Agentic plan. Team plan customers can upgrade in Settings → Billing.
The Microsoft Teams integration brings Henry agent into Teams chats and channels. Once installed, every Teams user in your tenant can chat with Henry, capture observations from Teams messages, and receive summary deliveries in their channels. The integration mirrors the Slack experience — same Henry, same flows, different surface — but the install path is different because Teams uses the app catalog rather than per-tenant OAuth.
This article covers what the Teams integration does, how an admin deploys the bot, how individual users link their accounts, chatting with Henry, capturing from messages, receiving summaries, the differences vs. Slack, disconnecting, and troubleshooting.
What the Teams integration does
The integration adds three capabilities to your Teams tenant:
- Chat with Henry. Open a one-on-one chat with the Henry app and treat it like a chat with a smart assistant. Ask for a teammate's recent observations, draft a summary, run a guided flow, or capture a quick note.
- Capture observations from message context. When you see a Teams message worth recording — praise, a customer complaint, an outcome — you can route it to Henry through a message action. Henry pre-fills the observation with the message content and a link back to the source.
- Receive summary deliveries. Channels can subscribe to summary digests so weekly or monthly summaries arrive where the team already reads.
Henry in Teams is the same Henry as the web app. It has the same context (your team, your knowledge base, your blocks) and the same guided flows.
Prerequisites
Before installing, confirm:
- Your org is on the Agentic plan.
- An org admin has enabled
henryAgentEnabledandhenryAgentTeamsin Settings → Features. - You have Teams admin permission in your Microsoft 365 tenant (or have someone who does).
If henryAgentTeams is greyed out in Settings, the master henryAgentEnabled toggle is off — turn that on first.
Installing the Teams bot (admin step)
Unlike Slack, which uses an OAuth flow initiated from inside Performance Blocks, Microsoft Teams installs apps through the Teams admin center. The Henry app is published to the Microsoft Teams app catalog. Your tenant admin approves the app for org-wide deployment.
Add the app to your tenant
- As a Teams admin, sign in to the Teams admin center.
- Open Teams apps → Manage apps.
- Search for the Henry app for Performance Blocks. (If your tenant restricts third-party apps, you may need to allow the app first under Permission policies.)
- Select the app and click Allow to enable it for your tenant.
Set an app setup policy (recommended)
To make Henry visible to users without requiring each person to install it manually:
- In the Teams admin center, open Teams apps → Setup policies.
- Edit the Global (Org-wide default) policy or create a custom policy.
- Under Installed apps, add the Henry app.
- Optionally, under Pinned apps, pin Henry so it shows in the Teams sidebar.
- Save and assign the policy.
After the policy propagates (typically within a few hours), Teams users see Henry in their app rail and can start a chat.
Connect the tenant to Performance Blocks
After the app is deployed in Teams, link your Teams tenant to your Performance Blocks org:
- Go to Settings → Integrations → Microsoft Teams in Performance Blocks.
- Click Connect tenant. You'll be taken to the OAuth provider's authorize page to consent on behalf of the tenant.
- Sign in as a Microsoft 365 admin and grant the requested permissions.
- The browser is redirected back to Performance Blocks. The Teams panel now shows the tenant ID and a green "Connected" status.
The tenant connection is what allows Henry to map a Teams user identity to a Performance Blocks user.
Connecting individual Teams accounts
Even after the tenant is connected, each user must link their Teams identity to their Performance Blocks user account. This is what allows Henry to act on the right person's behalf.
The first time you message the Henry app, Henry replies with a one-time link prompt:
Hi! I need to connect your Teams account to Performance Blocks. Click here to link your accounts.
- Click the link.
- You are taken to Performance Blocks. If you are already signed in, the link completes immediately. If not, sign in first.
- Henry confirms the link in your Teams chat.
Once linked, Henry knows who you are and which team you can act on. The link is per-Teams-user.
Chatting with Henry
In Teams, Henry is a one-on-one chat. Open the Henry app from the app rail (or search for it in the chat list) and type. The chat supports:
- Free-form questions. "What did Jordan ship last month?" or "Draft a summary for Priya for the quarter."
- Guided flows. Henry recognizes verbs like "start a 1:1 prep" or "log an observation" and walks you through the step-by-step flow.
- File and link attachments. Drop a link or attach a doc and Henry will use it as context for the next message.
Henry's responses include actionable links back to the Performance Blocks web app for the rich views — observation history, summary editor, etc.
Capturing observations from Teams messages
Like Slack, the highest-leverage capture is recording an observation directly from an existing Teams message thread.
Message action
- Hover over a message in any Teams chat or channel where you have permission.
- Click the More actions menu (the three dots) and choose Capture observation with Henry.
- A task module (Teams' modal) opens with the message content pre-filled. Henry attempts to identify the person mentioned and pre-selects them.
- Edit the observation text, choose tags or blocks, and submit.
The captured observation includes a link back to the original Teams message so reviewers can see the source thread.
Forward to Henry chat
- Use the Teams Share to action on a message.
- Choose the Henry chat as the destination.
- Send. Henry replies with a draft observation and asks for confirmation before saving.
Both flows end with the same result: an observation in Performance Blocks attributed to you, about the right person, with a link to the source.
Notes:
- Only messages you have permission to read can be captured. Henry does not bypass channel privacy.
- Pre-fills are best-effort guesses. Always review who Henry has selected as the subject before saving.
- Capture from private channels works the same as from public channels, provided you are a member.
Receiving summary deliveries in Teams
Channels can subscribe to summary digests:
- In a Teams channel where you want deliveries to land, type
@Henry subscribe(or use the messaging extension if your tenant has it enabled). - A task module asks what you want delivered: weekly team summaries, monthly summaries, or a custom cadence.
- Choose a delivery time.
- Confirm.
Henry posts a single message at the chosen cadence with a short digest and links to the full summaries. To unsubscribe, type @Henry unsubscribe in the same channel.
Subscription rules:
- Anyone in the channel can subscribe; only the subscriber or an admin can unsubscribe.
- A channel can have multiple active subscriptions.
- Henry only delivers content the channel members are entitled to view.
Differences vs. Slack
If you are familiar with the Slack integration, the main differences in Teams are:
| Aspect | Slack | Microsoft Teams |
|---|---|---|
| Install path | OAuth flow from Performance Blocks | Teams admin center + tenant OAuth |
| Distribution | Workspace-wide once installed | Controlled by Teams app setup policy |
| Slash commands | /henry observe, /henry summary, etc. |
Mentions and message actions; messaging extensions |
| Modal style | Slack modals | Teams task modules |
| Per-user link | One-time DM prompt | One-time chat prompt |
| Channel subscription | /henry subscribe |
@Henry subscribe |
Functionally, the two integrations support the same actions. The differences are surface conventions, not feature gaps.
Disconnecting and revoking
There are three layers of disconnect.
Disconnect your individual account
If you want to unlink your Teams identity from Performance Blocks but leave the tenant install in place:
- In Performance Blocks, go to Settings → My account → Connected accounts.
- Find the Teams entry and click Unlink.
Or, in your Henry chat, type unlink. Henry will confirm and remove the link.
Disconnect the tenant install (admin)
If you want to remove the Henry app from your Teams tenant entirely:
- Go to Settings → Integrations → Microsoft Teams.
- Click Disconnect tenant.
- Confirm. The OAuth grant is revoked and the tenant binding is removed.
To also remove the app from Teams itself (so users no longer see it in the app rail), the Teams admin should remove the Henry app from the Teams apps → Manage apps list in the Teams admin center.
Full revoke (compliance)
For a hard revoke, the tenant disconnect button revokes the OAuth grant, removes the tenant credential, and unlinks every individual account in one operation. The action is recorded in Audit logs.
Troubleshooting
"I can't find Henry in Teams"
If users can't locate the Henry app:
- Confirm the Teams admin has approved the app in Manage apps.
- Confirm the App setup policy for the user includes Henry under Installed apps.
- Wait up to a few hours for policy changes to propagate.
- Try searching for the app by name in the Teams Apps view.
"Henry says my account is not linked"
You see a prompt to link your account every time you try to chat. This usually means:
- You are signed into Teams with one identity and Performance Blocks with another. Confirm both are the same person.
- You completed the link flow but the redirect failed. Try the link again from the chat.
- The account was previously unlinked. The link is one-time per user; redoing it is safe.
"Message action is not appearing"
If Capture observation with Henry is missing from the message overflow menu:
- Confirm the Henry app has been installed for your tenant.
- Confirm the messaging extension and message-action permissions are enabled in your tenant's Teams policies.
- Try restarting the Teams desktop client — actions can be cached aggressively.
"Tenant connection keeps failing"
If the tenant OAuth on the Performance Blocks side keeps erroring:
- Confirm the user authenticating is a Microsoft 365 global or application admin in your tenant.
- Confirm your tenant allows third-party admin consent.
- Check the diagnostics view in Settings → Integrations → Microsoft Teams for the specific error returned by Microsoft.
"Summaries aren't arriving in the subscribed channel"
Check that:
- The Henry app is still added to the team and channel.
- The cadence has elapsed since you subscribed.
- The summary digest has content for the period.
For anything not covered here, the Teams panel in Settings → Integrations → Microsoft Teams has a diagnostics view that shows recent Teams API calls and their results. Share that information with support if you need help.