Chat integration
Catch the “can we just” request in Slack before anyone builds it.
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.
- Vendor
- Salesforce (Slack Technologies)
- Plan
- Included in every plan
- Authentication
- OAuth 2.0 Slack app, installed by a workspace admin
- Setup time
- About 2 minutes
- Sync
- Real time via Slack Events API, typically under 5 seconds from message to scored flag
Overview
How TWINJAM works with Slack
Most agency scope creep never touches a ticket. It arrives as a friendly message in a shared Slack Connect channel on a Thursday afternoon: a quick export, one more field, a small tweak to the onboarding flow. The developer who sees it first wants to help, the client assumes it is included, and the hours disappear into the fixed fee. TWINJAM sits in exactly that conversation, reading only the channels you choose, and compares each request with the boundary rules extracted from the signed SOW.
When a message describes work that sits outside an explicit deliverable, matches an exclusion, or pushes past a revision cap, TWINJAM posts a flag into a private agency channel such as #pm-scope-alerts. The flag quotes the client message, cites the exact SOW clause it was compared against, estimates the engineering hours, and offers two buttons: draft a polite reply, or draft a change order. Nothing is ever posted back into the shared client channel by TWINJAM. The PM decides what, if anything, the client hears.
Classification is context-aware rather than keyword-based. A client asking how the export works today is a question; a client asking for a new export format with custom columns is expansion. Low-confidence items go to a review queue instead of pinging the team, and every accept or dismiss decision tunes the rules for that contract, so alert volume drops as the project matures.
In practice
The Thursday export request
A logistics client asks in #client-halvorsen for a CSV export with custom columns. TWINJAM flags it 4 seconds later in #pm-scope-alerts, citing clause 3.2, with a 14 to 18 hour estimate. The PM replies in the thread with a drafted, friendly note and sends a $2,400 change order the same afternoon.
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_8Q2mHX41",
"workspace": "HFX-APP",
"source": {
"tool": "slack",
"channel": "#client-halvorsen",
"author": "Lena Halvorsen (client)",
"ts": "1762412480.004100"
},
"request": "Can we just add a CSV export of all shipments with custom columns? Should be quick.",
"sow_reference": {
"clause": "3.2",
"text": "Reporting limited to the three dashboard views listed in Appendix B."
},
"classification": {
"verdict": "out_of_scope",
"confidence": 0.91,
"reason": "New export format and column builder not in Appendix B"
},
"impact": {
"hours_low": 14,
"hours_high": 18,
"est_value_usd": 2400
},
"routed_to": "#pm-scope-alerts",
"client_notified": false
}Permissions
Scopes requested, and why.
| Scope | Why TWINJAM needs it |
|---|---|
| channels:read | List public channels so an admin can choose which client channels to connect. |
| channels:history | Read messages in the public channels you selected, and only those. |
| groups:history | Read messages in private client channels the TWINJAM app has been explicitly invited to. |
| chat:write | Post flags into your private triage channel, for example #pm-scope-alerts. |
| users:read | Resolve user IDs to names so a flag shows who asked, and tell client guests from agency staff. |
Events
What triggers a check.
message.channels
New messages in connected public client channels are scored against the SOW in near real time.
message.groups
Same scoring for private client channels where the app is a member.
member_joined_channel
Detects when a new client stakeholder joins, so their requests are attributed correctly.
Setup
Connect Slack in about 2 minutes.
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, open Settings, then Integrations, and choose Connect Slack.
- 2Approve the TWINJAM app in Slack as a workspace admin. The consent screen lists every scope above.
- 3Pick the shared client channels to monitor and map each one to a contract workspace such as HFX-APP.
- 4Choose a private triage channel for flags. Most agencies create #pm-scope-alerts with PMs and delivery leads only.
- 5Optionally run a 30-day backfill to surface requests your team has already absorbed.
FAQ
Slack integration questions
Messages and thread replies in the client channels you connect. Message author, timestamp and permalink, so every flag links back to the source. Channel membership, to tell client guests from agency staff. It never reads: direct messages and group DMs, between anyone; channels you have not explicitly connected, including #general and internal team channels; file contents and attachments, beyond the file name; presence, status, typing indicators or any keystroke-level activity.
Posts flags and digest summaries into the private agency channel you choose. Never posts into shared client channels. Every action that could reach a client requires a PM to approve it first.
Included in every plan: Studio ($399/mo billed annually), Agency ($899/mo billed annually), Scale (from $1,800/mo billed annually). Every plan starts with a 14-day free production trial.
Real time via Slack Events API, typically under 5 seconds from message to scored flag. Setup takes about 2 minutes.
Related integrations
All integrationsMicrosoft TeamsChat
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.
JiraProject management
Audits Jira backlogs and active sprints against SOW milestones, adds Scope Drift flags to unmapped tickets, and calculates a live sprint creep score.
DocuSignE-signature
Sends PM-approved change orders as DocuSign envelopes with your signature blocks, then tracks viewed, signed and declined status back in TWINJAM.
Put Slack 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.