How to add Microsoft Teams to Plex Smart Manufacturing Platform
Short answer
Build a Teams bot or Workflows-based connector that reads Plex through its APIs, posts adaptive cards to channels, and sends actions back to a small service that calls Plex as a scoped integration user. Entra ID handles who the person is; Plex security roles decide what they may do.
Many Plex customers are Microsoft shops: Entra ID for identity, Teams for coordination, Office for everything else. The friction is that Plex events live in Plex. A late job, an NCR, a pending purchase approval is only visible to someone who goes looking.
Teams can be the place where those events show up and where the simple decisions are taken, with the Plex record one click away. This is not a replacement for the Plex UI. It is a notification and light-action layer, which is the right scope for a hosted system whose data you reach through APIs.
The real work is identity mapping, event detection and keeping actions auditable, not drawing cards.
What teams use it for
Quality channel for NCRs
New nonconformances post to a Quality channel as an adaptive card with part, workcenter, defect and a Plex link; the owner clicks Take ownership and the service records the assignee.
Production schedule risk digest
A morning card summarizes late jobs and starved workcenters per shift, built from scheduling data sources, tagged to supervisors.
Purchase and expense approvals
A card shows requisition details and approve or reject buttons that call the integration, after checking the clicker's Entra identity against the Plex approver.
Maintenance request intake
Operators post a problem in a Teams channel; a bot extracts workcenter and symptom and creates a draft maintenance request for a technician to confirm.
Supplier issue war rooms
A late critical part opens a Teams thread auto-populated with PO, open demand and ship status, so planners and buyers work in one place.
Ask-the-data bot
Planners ask for on-hand, open orders or job status in chat and receive a grounded answer with the source query shown.
Plex Smart Manufacturing Platform integration surface
- Plex REST APIs and Data Source API (DSAPI) for reading jobs, workcenter status, inventory, purchasing and quality; confirm which services are enabled on your tenant.
- Plex integration credentials issued through the developer portal; calls run as the service user, so per-person actions need your own identity mapping.
- Plex user records carry email addresses, which usually align with the Entra ID user principal name and give you a mapping key; verify they match.
- No guaranteed outbound webhooks for every object; assume polling with watermarks unless your tenant exposes workflow notifications.
- Teams side: Bot Framework or Teams SDK, adaptive cards, Microsoft Graph, and Power Automate Workflows for simpler notify-only flows.
How it works
- 1
Register the app in Entra ID
Create an app registration for the bot, set single-tenant, and grant only the Graph permissions you need, such as posting to channels and reading user profiles.
- 2
Stand up the service
Host a small web service (Azure App Service or a container) that implements the bot endpoint and holds the Plex credentials in Key Vault.
- 3
Detect events in Plex
A scheduled job queries the relevant data sources, compares to a stored watermark, and emits normalized events such as ncr.created or job.late.
- 4
Design cards per event
Create adaptive card templates with a small set of actions. Keep fields identical to the Plex record names so users recognize them.
- 5
Map identity to authority
On a button click, resolve the Entra user to a Plex user by email, check that they hold the approver role, and refuse otherwise.
- 6
Apply the action
Call the Plex API as the service user with the clicker's identity recorded in a comment or audit field, then update the card to show the outcome.
- 7
Package and deploy
Publish the app to your tenant's app catalog, restrict it to named teams, and monitor failures with application insights.
Example flows
NCR ownership from a card
Trigger: A nonconformance is created in Plex.
- Event posts a card to the Quality channel.
- A quality engineer clicks Take ownership.
- Service verifies the Entra identity maps to a Plex quality user.
- Service writes the assignment and a comment to Plex.
- Card updates to show owner and time.
Result: Ownership is visible in chat and in Plex, and nobody argues about who has the NCR.
Late job escalation
Trigger: Morning scheduler finds jobs past their need date.
- Service groups late jobs by supervisor.
- Each supervisor gets a card with the three worst jobs.
- Supervisor selects a reason code from a dropdown.
- Reasons are stored and surfaced in a weekly review.
Result: Reason capture happens at the moment of knowledge rather than being reconstructed on Friday.
Keeping data on-prem
Plex is hosted, and Teams is Microsoft cloud, so the sovereignty question is about your bridge and any AI in it. Run the bot service and event store in a tenant or region you control, and if you add natural-language Q&A or reply summarization, serve an open-weight model on your own GPUs behind the service rather than sending Plex data to a public model API. Keep the cards free of controlled technical data, and put detail behind an authenticated link. If your Teams tenant is GCC or GCC High, the endpoints and app registration steps differ, so plan that early.
Security checklist
- Store Plex credentials in a managed secret store and never in app settings plain text.
- Check the Teams-to-Plex identity mapping on every action, not only at install.
- Limit the app to specific teams and channels with a clear owner.
- Record who clicked what, when, with the Plex transaction key.
- Rate limit and validate every inbound bot activity, and verify the signed JWT on the bot endpoint.
Ways to get it done
Power Automate Workflows plus Plex data source calls
Effort: Days, but limited logic and weak error handling.
Simple notify-only alerts with no approvals.
Custom Teams bot with adaptive cards
Effort: A few weeks for a first set of cards.
Approvals, ownership actions and Q&A with real identity checks.
Partner build with Netray
Effort: Pilot on one channel and two or three event types first.
You want natural-language questions grounded in Plex data and an on-prem model.
Pitfalls
- !Email on the Plex user may not match the Entra UPN, which breaks action authorization.
- !Posting every event floods channels; route by severity and subscribe people, not whole teams.
- !Service-account writes hide who acted unless you record the clicker explicitly.
- !Adaptive card actions fail silently if the bot token expires; test error paths.
- !Polling without a watermark double-posts after a restart.
Frequently asked questions
Is there an official Plex app for Teams?
I cannot confirm a standard one, so treat it as something to build or to check with your Plex account team. The path that always works is a bot or workflow that calls Plex APIs and posts to Teams through Graph or the Bot Framework.
Can Teams users approve things in Plex directly?
Yes through a card action, as long as your service verifies the person's Plex authority and writes through the API. Keep money and quality dispositions behind a second check, and log the clicker's identity on the record.
Do we need Power Automate or a custom bot?
Power Automate is enough for one-way alerts. If you need approvals with identity checks, structured cards and error handling, a custom bot is cleaner and easier to audit.
How do we avoid exposing sensitive data in chat?
Send identifiers, status and a link rather than drawings or specifications. Restrict channel membership, apply sensitivity labels where your tenant supports them, and keep controlled data in systems your compliance team already approved.
Can an AI assistant live in Teams?
Yes. A bot can translate questions into read-only Plex data source calls and answer with the source shown. For regulated plants, run the model locally so prompts and results stay inside your boundary.
Want Microsoft Teams working on your Plex Smart Manufacturing Platform?
A free 30 minute assessment: we map the integration path for your version and setup, and where it should run.
Get a free assessment