Complete these steps before inviting a pilot customer.
0 of 5 complete
OPERATIONS
What needs attention
Checking production configuration…
Live users
Sorted by urgency. Offer help when the moment is right.
Live
ConversationsWaiting and active
Select a conversation
Messages, customer context, and live activity appear here.
Loading accounts and observed users…
Support team
Manage access, roles, presence, Slack identities, and current workload.
Team members0Available now0Open assignments0
i
Team directory access
You can see who is available. Company owners and managers control teammate access and roles.
Pending invitationsInvitation links expire after seven days
REPRESENTATIVE REVIEW
Recommended interventions
Review high-signal moments identified outside deterministic support rules. The user is never contacted without a representative’s approval.
✦
Reasoning recommenderChecking configuration…
Local only
Needs review0Assigned or unstaffedUnstaffed0Team was unavailableApproved0Offer created
✦
Select a recommendation
Evidence and safe representative actions will appear here.
Support rules
Choose exactly when Within offers or requires human support.
i
Manager access required
You can review published support rules, but only a company owner or manager can draft or change them.
INTEGRATION STATUS
Connected systems
Release versions and connection health for this control plane.
Latest SDK
Checking…
Control plane
Checking…
Environment
Checking…
MCP connections
Checking…
Slack
Checking…
MCP connections
Connections and credentials are isolated to this company.
i
Manager access required
You can review connection health, but only a company owner or manager can create or change MCP credentials.
#
Slack
Notifications are not configured.
Not connected
Slack credentials and channel settings
Notifications
Set alert rules, delivery mode, and message previews on their own page.
Loading notification settings…
PERSONAL ACCOUNT
My profile
Keep your support identity accurate for assignments and customer conversations.
Agent
COMPANY
Company
Manage the identity and operating context shared by your support team.
Owner access
Team members0Across all rolesMCP connections0No SDK contactActive support rules0Published to connected SDKs
i
Read-only access
Only company owners and managers can change company details.
CONNECTED SYSTEMS
Connected services
See the health of the systems that power support delivery.
M
MCP integrations
SDK telemetry, support rules and support handoff.
Waiting
Connections
0
Latest SDK
Checking…
#
Slack
Threaded alerts and agent replies.
Not connected
Delivery
Not configured
Direction
—
i
Integration credentials stay isolated
Each MCP connection has its own revocable key. Secrets are never shown again after creation.
ACCOUNT ACCESS
Security and sessions
Review every signed-in browser and revoke access immediately.
Session active
Current session
Authentication is stored in a secure, HTTP-only browser cookie.
Account
—
Company
—
Permission level
—
Session expires
—
Sign out of this browser
Revokes this server-side session and immediately marks you offline if it is your last active browser.
Signed-in browsers
Sessions are grouped by browser and network. Expired sessions are removed automatically.
Loading sessions…
Page 1 of 1
Authentication controls
Dashboard access is scoped to this company.
Cookie protected
✓
HTTP-only secure sessionBrowser JavaScript cannot read the session credential.
✓
CSRF-protected changesEvery state-changing dashboard request requires a per-session token.
✓
Role-based controlsSensitive company and integration actions require manager access.
DATA GOVERNANCE
Data and privacy
Control telemetry retention and honor end-user data requests.
End-user data request
Export or permanently erase telemetry, offers, and conversations for one SDK user ID.
ADMINISTRATION
Audit log
Review meaningful security and configuration changes. Presence heartbeats are excluded.
TimeActorActionResourceDetails
Loading activity…
Page 1 of 1
Search company
MCP SDK ONBOARDING
Add MCP connection
1 Name2 Install3 Verify
Copy this key nowFor security, it will not be shown again.
Send this to your coding agent
Copy this prompt into the MCP server project. Add the API key privately through its environment.
Show initialization code
Waiting for the first SDK event…
Start or restart your MCP server, then call any instrumented tool.
LOCALHOST WALKTHROUGH
Set up Slack, step by step
i
Checking configuration
Reading local server settings.
Choose one path below. Follow its numbered steps in order.
Before you start
You need permission to install a Slack app, owner or manager access in Within, and access to the local project files. Use a separate test Slack app and channel. Your computer must stay online with Within running.
Slack calls its company space a “workspace.” That is Slack’s own label, not a customer Workspace field in Within. Tokens stay on your computer; this guide does not collect them.
Path A · Interactive support on localhost
1
1. Create a test Slack app
Where: Slack app website
Open Your Slack apps ↗ in another tab. Sign in to the Slack account you want to test with.
Click Create New App. Choose Blank app and Continue (some Slack screens call this From scratch).
Enter Within Local Test as the app name. Select your test Slack workspace, then click Create or Create App.
Keep the app settings tab open. All Slack app settings below are in its left sidebar.
You should see the settings for Within Local Test. Already created this app? Open it and continue.
2
2. Let the app send messages
Where: Slack app settings → Features → OAuth & Permissions
In the left sidebar, click OAuth & Permissions.
Scroll down to Scopes. Under Bot Token Scopes, click Add an OAuth Scope.
Search for chat:write and select it. Do not add it under User Token Scopes.
Bot Token Scopes should list chat:write. Message-history permissions are not needed for this setup.
3
3. Install the app and copy the bot token
Where: Slack app settings → OAuth & Permissions → top of page
Scroll to the top and click Install to Workspace (or Reinstall to Workspace if this app is already installed).
Confirm the correct test Slack workspace and click Allow. If Slack requires admin approval, request it and wait before continuing.
Back on OAuth & Permissions, find Bot User OAuth Token and click Copy. Keep it in your password manager until step 7.
This token starts with xoxb-. Paste it into the Bot token field in Within.
4
4. Make the localhost connection token
Where: Slack app settings → Settings → Basic Information
Click Basic Information in the left sidebar. Scroll down to App-Level Tokens.
Click Generate Token and Scopes. Name the token local-within.
Click Add Scope, choose connections:write, then click Generate.
Copy the generated token and store it securely. Close the token dialog.
This second token starts with xapp-. Paste it into the App token field in Within, not the Bot token field.
Under Settings in the left sidebar, click Socket Mode. Turn Enable Socket Mode on.
Under Features, click Interactivity & Shortcuts. Turn Interactivity on. Click Save Changes if shown.
Do not enter a Request URL for this localhost setup. If Slack requires one, go back and confirm Socket Mode is enabled for this same app.
Skip Incoming Webhooks, Event Subscriptions, and public tunnels on this path. Socket Mode carries the button clicks to your local server.
6
6. Choose a channel and copy its ID
Where: Slack messages → open your test channel → click its name at the top
Open a channel used only for testing, such as #within-test. The Slack desktop app or browser both work.
Invite your app: type /invite @Within Local Test in that channel, select your app, and send.
Click the channel name at the top. In its details window, find Channel ID at the bottom and copy it. This begins with C or G.
For a separate Sales destination, repeat these steps in that channel. Otherwise use one channel for both.
You do not need to find a Team ID. Within detects it from your bot token.
7
7. Paste the credentials into Within
Where: Local Within → Integrations → Slack connection
Close this guide. On Integrations, scroll below the MCP connections to Slack connection. Sign in as an owner or manager.
Paste the xoxb- token into Bot token and the xapp- token into App token. Both must come from the same Slack app.
Paste the channel ID into Support channel ID. Enter a Sales channel ID only if Sales should use another channel.
If a token says “Saved — leave blank to keep”, it is already available. You do not need to paste it again. Do not share tokens in Slack, GitHub, or the MCP.
8
8. Save and verify the connection
Where: Within → Integrations → Slack connection → Save & verify connection
Click Save & verify connection. Wait while Within checks the tokens with Slack.
Check the detected Slack workspace name and Team ID. Tokens are stored encrypted and are never displayed again.
Within reconnects automatically. You do not need to edit an environment file or restart the local server.
Saving does not send a test message or change delivery mode. If Live delivery was already on, new events continue sending. A token verification error keeps the previous settings.
9
9. Check setup without sending anything
Where: Within → Notifications
Close this guide and open Notifications in the sidebar. Click Refresh status.
Look for Slack configured and Socket connected. “Interactions configured” alone does not prove the connection succeeded.
Leave Delivery mode set to Simulation — no external messages.
Under Message preview, click Run all 7 local scenarios. You should see 7/7 passed and 0 external messages sent.
Simulation tests the local rules. It does not prove that Slack received a message.
10
10. Link the teammate who will use Slack buttons
Where: Slack member profile, then Within → Team
In Slack, open the teammate’s profile. Click More (the three dots), then Copy member ID. This usually starts with U.
In Within, open Team. As an owner or manager, find that teammate and click Edit access (or Manage).
Paste the ID into Slack user ID, then click Save changes. Verify the teammate’s card now lists the ID under Slack.
For your own card, Open profile currently has no Slack ID field. If you are the only owner and are not already linked, ask the local Within operator to link your existing account. Do not create a duplicate account to get around this.
An unlinked Slack member cannot use customer-facing actions. Keep the intended teammate signed in to Within; Slack presence alone does not make them available.
11
11. Send one real test to your test channel
Where: Within → Notifications
Use Open Slack settings to confirm the shared channel in Integrations, then return to Notifications.
Check the email recipient and other destinations. Switching to Live can send Slack/email for new events; use only test destinations.
Set Delivery mode to Live — send new alerts. Click Save notification settings and confirm only when you are ready for real messages.
Under Message preview, click Send one Slack test. Open your test Slack channel and look for the staff test message.
In Within, click Refresh status and expand Recent delivery and decision history. Check the delivery outcome. “Test queued” is not the same as delivered.
Finish by setting Delivery mode back to Simulation and saving if you do not want further real alerts.
12
12. Try a customer conversation
Where: Your local test MCP, Slack test channel, and Within Conversations
With the mapped teammate signed in and My status → Available, explicitly ask your local test MCP to connect you to support. Use test text, not real customer information.
Find the new conversation’s Slack card. Use its assignment action, then Reply to customer.
In the reply form, type a test reply and click Send to customer. Check that it appears in the MCP support chat and Within Conversations.
Resolve the test conversation from Slack and confirm the Conversations status updates. Ordinary messages typed in the Slack thread stay internal; they are not sent to the customer.
Path B · Alerts only
Use this instead of Path A, not in addition to it. No bot token, app-level token, or Socket Mode is needed for this path. If bot credentials are already set on the server, ask the operator before changing modes; the bot configuration takes priority.
1
1. Create a test Slack app
Where: Slack app website
Open Your Slack apps ↗ in another tab. Sign in to the Slack account you want to test with.
Click Create New App. Choose Blank app and Continue (some Slack screens call this From scratch).
Enter Within Local Test as the app name. Select your test Slack workspace, then click Create or Create App.
Keep the app settings tab open. All Slack app settings below are in its left sidebar.
You should see the settings for Within Local Test. Already created this app? Open it and continue.
2
2. Create the alerts-only destination
Where: Slack app settings → Features → Incoming Webhooks
Click Incoming Webhooks in the left sidebar. Turn Activate Incoming Webhooks on.
Scroll down and click Add New Webhook to Workspace.
Choose your test channel, then click Allow. If Slack requests admin approval, wait for approval.
Back on Incoming Webhooks, find the new URL under Webhook URLs for Your Workspace and click Copy.
The URL starts with https://hooks.slack.com/services/. It sends to the channel chosen here; Within’s channel field cannot redirect it.
3
3. Save the settings on your computer
Where: Your code editor → control-plane folder → .env.local
Open the local Within project in your code editor. Expand control-plane and open .env.local. If it does not exist, create a file with exactly that name inside control-plane.
Keep everything already in the file. For each setting below, update its existing line or add it once. Replace every example with the value you copied.
Save the file. Do not put these values in the Weather MCP, Within’s AI key field, Slack messages, or a GitHub commit. This local file is ignored by Git.
Copy template copies placeholders, not your credentials. A webhook URL is a secret, just like a password.
4
4. Restart only the local control plane
Where: The terminal running Within on localhost:8890
In the terminal running this local control plane, press Ctrl+C once to stop it. Do not stop the Weather MCP or any production service.
From the project’s control-plane folder, run pnpm dev. If the terminal is at the project root, run pnpm --dir control-plane dev instead.
Leave that terminal running. Return to the local Within dashboard and reload the page.
If the server was started in the background and you cannot find its terminal, ask the person running it to restart that local process. Do not launch a second copy against the same data file.
The local server reads .env.local at startup. Refreshing the browser alone does not load new tokens.
5
5. Check setup without sending anything
Where: Within → Notifications
Close this guide and open Notifications in the sidebar. Click Refresh status.
Look for Slack configured. “Interactions not configured” is expected for alerts-only.
Leave Delivery mode set to Simulation — no external messages.
Under Message preview, click Run all 7 local scenarios. You should see 7/7 passed and 0 external messages sent.
Simulation tests the local rules. It does not prove that Slack received a message.
6
6. Verify one real alert
Where: Within → Notifications, then your local test MCP
Check that the webhook points to a test channel. Set Delivery mode to Live — send new alerts, click Save notification settings, and confirm.
Send one Slack test requires a bot token and stays disabled on this webhook-only path. That is expected.
Explicitly request support through your local test MCP and submit a short test message. Check the chosen Slack channel for the new alert.
Click Refresh status and open Recent delivery and decision history to check delivery. Return to Simulation and save when finished.
Alerts-only has no Slack assignment or customer-reply buttons. Use Within Conversations to respond.
Something not working? Start here
Slack not configured
Check control-plane/.env.local, replace placeholders, save, and restart the local server. Existing shell environment settings override values in the file.
Slack configured, but no message
Check Delivery mode, test destination, and delivery history. Simulation never sends anything.
Socket is not connected
Check the xapp- token has connections:write, Socket Mode is on for the same Slack app, and your computer is online.
channel_not_found or not_in_channel
Check the channel ID and invite the app to that channel. The app and channel must belong to the same Slack workspace.
missing_scope or invalid_auth
Check Bot Token Scopes includes chat:write, reinstall if permissions changed, and copy the current xoxb- token. Save it locally and restart.
Slack buttons reject me
Check Team → Slack lists your member ID and your Within teammate still has access. Review the conversation’s current status.
A Slack link opens the wrong computer
localhost refers to the device opening the link. Local dashboard links work on this computer only; they are not shareable production links.
The terminal says the port is already in use
Another local server is still running on 8890. Ask its operator to restart that process instead of starting a second copy.