Chat integration
Scope boundaries for the client channels your enterprise accounts live in.
Monitors the client team channels you approve through Microsoft Graph and routes scope flags to a private PM channel, with SOW citations and hour estimates.
- Vendor
- Microsoft
- Plan
- Agency and Scale plans
- Authentication
- Microsoft Entra ID app with resource-specific consent (RSC)
- Setup time
- About 5 minutes, plus tenant admin approval if required
- Sync
- Near real time via Microsoft Graph change notifications, usually under 15 seconds
Overview
How TWINJAM works with Microsoft Teams
Enterprise and public-sector clients rarely work in Slack. Their requests arrive in Microsoft Teams channels shared with the agency, often from several stakeholders who each assume someone else approved the change. TWINJAM connects through Microsoft Graph with resource-specific consent, so it can read the channels a team owner approves and nothing else in the tenant.
Each new channel message and reply is compared with the boundary rules for that engagement. When a request goes beyond the contracted deliverables, TWINJAM posts an adaptive card into a private agency channel with the quoted message, the clause it was measured against, a confidence score and an hour range. The card carries the same Draft reply and Draft change order actions as the Slack integration.
Because many Teams tenants belong to the client rather than the agency, TWINJAM is designed to be installed by the agency into its own tenant where possible, and to request the narrowest permission set when a client tenant is involved. Your IT team can review every permission before consenting, and the app can be removed at any time from the Teams admin center.
In practice
Two languages before launch
A hospital client asks in Teams for two extra languages on the patient portal. TWINJAM matches the request to the explicit English-only exclusion in clause 2.4 and posts a card to the agency's private channel with a 26 to 34 hour range, so the PM can raise it before the launch plan is locked.
The payload on the right is the event TWINJAM emits to your triage feed and to outbound webhooks, so you can route it into your own reporting.
{
"type": "scope.divergence.flagged",
"id": "flg_T7m2Kd09",
"workspace": "MVH-PORTAL",
"source": {
"tool": "microsoft-teams",
"team": "Mapleview Health x Agency",
"channel": "Patient portal",
"author": "R. Osei (guest)"
},
"request": "Could the appointment page also support Spanish and Tagalog before launch?",
"sow_reference": {
"clause": "2.4",
"text": "Localization: English (US) only. Additional languages quoted separately."
},
"classification": {
"verdict": "out_of_scope",
"confidence": 0.94,
"reason": "Matches explicit localization exclusion"
},
"impact": {
"hours_low": 26,
"hours_high": 34,
"est_value_usd": 4650
},
"routed_to": "Agency PMs / scope-alerts",
"client_notified": false
}Permissions
Scopes requested, and why.
| Scope | Why TWINJAM needs it |
|---|---|
| ChannelMessage.Read.Group | Read messages only in the teams where an owner installed TWINJAM (resource-specific consent). |
| TeamSettings.Read.Group | Read team and channel names so you can map each channel to a contract workspace. |
| TeamMember.Read.Group | Tell client guests from agency members when attributing a request. |
| ChannelMessage.Send | Post flag cards into your private agency triage channel. |
Events
What triggers a check.
Graph change notification: /teams/{id}/channels/getAllMessages
New messages and replies in approved teams are delivered to TWINJAM for scoring.
Graph change notification: /teams/{id}/members
Keeps stakeholder attribution current as client guests join or leave.
Setup
Connect Microsoft Teams in about 5 minutes, plus tenant admin approval if required.
An admin connects once. PMs never need to re-authenticate, and you can revoke access from TWINJAM or the vendor's admin console at any time.
- 1In TWINJAM, choose Connect Microsoft Teams and sign in with a Microsoft 365 account that can install apps.
- 2Review the resource-specific permissions and approve. Your tenant admin may need to allow the app in the Teams admin center first.
- 3Add TWINJAM to each client team you want monitored. Only those teams become visible.
- 4Map each channel to its contract workspace, then pick the private channel that receives flags.
FAQ
Microsoft Teams integration questions
Channel messages and replies in teams where TWINJAM is installed. Sender display name and guest status. Message links, so a flag opens the original thread. It never reads: 1:1 and group chats outside channels; meeting recordings, transcripts or calendar items; files in SharePoint or OneDrive; teams in your tenant where the app has not been installed.
Posts adaptive cards to a private agency channel you nominate. Never posts in channels shared with clients. Every action that could reach a client requires a PM to approve it first.
Agency and Scale plans: Agency ($899/mo billed annually), Scale (from $1,800/mo billed annually). Every plan starts with a 14-day free production trial.
Near real time via Microsoft Graph change notifications, usually under 15 seconds. Setup takes about 5 minutes, plus tenant admin approval if required.
Related integrations
All integrationsSlackChat
Reads the shared client channels you select, compares each request with the signed SOW, and posts private flags to #pm-scope-alerts for PM review.
AsanaProject management
Maps Asana tasks and sections to SOW deliverables, flags tasks with no contractual home, and counts revision rounds against contracted caps.
PandaDocE-signature
Generates change orders as PandaDoc documents with pricing tables, sends them on PM approval, and syncs viewed and completed status back to TWINJAM.
Put Microsoft Teams on the same page as your SOW.
Connect it during a 14-day free production trial and see the first flags from your live projects within days.