Overview
Crewship can connect your deployments directly to Slack, allowing users to interact with your crews through@mentions and /crewship slash commands in any channel.
How it works:
- You create a Slack app and connect it to your Crewship organization
- Configure which deployment to invoke and how messages map to crew inputs
- Users interact with your crew in Slack — the platform handles message routing, input mapping, and response delivery
Setting Up
1. Create a Slack App
Go to Settings > Integrations in the Crewship Console and click Connect to Slack. You’ll be guided through a setup flow:- Configure your app — Choose a name for your Slack app and bot display name
- Create the app in Slack — Click the link to create a pre-configured Slack app with the correct scopes and event subscriptions
- Enter credentials — Copy the Client ID, Client Secret, and Signing Secret from your Slack app’s Basic Information page
- Authorize — Complete the OAuth flow to install the app in your workspace
2. Set a Default Deployment
After connecting, select a default deployment from the dropdown next to your workspace. This is the crew that will be invoked when users@mention the bot without specifying a deployment name.
3. Configure Chat Mapping
In yourcrewship.toml, add a [chat] section to control how Slack messages are passed to your crew:
crewship.toml
[chat] reference for all options.
Interaction Modes
@Mentions (Thread API)
When a user mentions your bot in a channel, it starts a threaded conversation:- Creates a Crewship thread behind the scenes
- Replies in the same Slack thread maintain conversation context
- Each follow-up message in the thread sends a new run with the full thread state
Requires the Thread API to be enabled on the deployment (enabled by default).
Slash Commands (Run API)
The/crewship slash command runs a single stateless execution:
/crewship run <deployment-name> <input>
Slash commands also support JSON passthrough — if the input is a valid JSON object, it’s passed directly to the crew without wrapping:
Requires the Run API to be enabled on the deployment (enabled by default).
Controlling Enabled APIs
Use[apis] in your crewship.toml to control which interaction modes are available:
[apis] reference for details.
Input and Output Mapping
Input
When a Slack message arrives, it’s wrapped into a JSON object using yourchat.input_key:
| Message | input_key | Crew receives |
|---|---|---|
| ”Tell me about AI” | "input" (default) | {"input": "Tell me about AI"} |
| ”Tell me about AI” | "topic" | {"topic": "Tell me about AI"} |
Output
Ifchat.output_key is set, the platform extracts that field from the run result to post back to Slack. If not set, the full run output is used as the response.
Example Configuration
A complete setup for a Slack-enabled customer support bot:crewship.toml
Managing Workspaces
In Settings > Integrations, you can:- Enable/disable a workspace connection without removing it
- Change the default deployment at any time
- Disconnect a workspace entirely