Getting Started
Integration Docs
- Asana Integration
- Box Integration
- ClickUp Integration
- GitHub Integration
- Gmail Integration
- Google Calendar Integration
- Google Sheets Integration
- HubSpot Integration
- Jira Integration
- Linear Integration
- Notion Integration
- Salesforce Integration
- Shopify Integration
- Slack Integration
- Stripe Integration
- Zendesk Integration
How-To Guides
Resources
Slack Integration
Team communication and collaboration with Slack integration for CrewAI.
Overview
Enable your agents to manage team communication through Slack. Send messages, search conversations, manage channels, and coordinate team activities to streamline your collaboration workflows with AI-powered automation.
Prerequisites
Before using the Slack integration, ensure you have:
- A CrewAI Enterprise account with an active subscription
- A Slack workspace with appropriate permissions
- Connected your Slack workspace through the Integrations page
Available Tools
User Management
Description: List all members in a Slack channel.
Parameters:
- No parameters required - retrieves all channel members
Description: Find a user in your Slack workspace by their email address.
Parameters:
email
(string, required): The email address of a user in the workspace
Description: Search for users by their name or display name.
Parameters:
name
(string, required): User’s real name to search fordisplayName
(string, required): User’s display name to search forpaginationParameters
(object, optional): Pagination settingspageCursor
(string, optional): Page cursor for pagination
Channel Management
Description: List all channels in your Slack workspace.
Parameters:
- No parameters required - retrieves all accessible channels
Messaging
Description: Send a message to a Slack channel.
Parameters:
channel
(string, required): Channel name or ID - Use Connect Portal Workflow Settings to allow users to select a channel, or enter a channel name to create a new channelmessage
(string, required): The message text to sendbotName
(string, required): The name of the bot that sends this messagebotIcon
(string, required): Bot icon - Can be either an image URL or an emoji (e.g., “:dog:”)blocks
(object, optional): Slack Block Kit JSON for rich message formatting with attachments and interactive elementsauthenticatedUser
(boolean, optional): If true, message appears to come from your authenticated Slack user instead of the application (defaults to false)
Description: Send a direct message to a specific user in Slack.
Parameters:
memberId
(string, required): Recipient user ID - Use Connect Portal Workflow Settings to allow users to select a workspace membermessage
(string, required): The message text to sendbotName
(string, required): The name of the bot that sends this messagebotIcon
(string, required): Bot icon - Can be either an image URL or an emoji (e.g., “:dog:”)blocks
(object, optional): Slack Block Kit JSON for rich message formatting with attachments and interactive elementsauthenticatedUser
(boolean, optional): If true, message appears to come from your authenticated Slack user instead of the application (defaults to false)
Search & Discovery
Description: Search for messages across your Slack workspace.
Parameters:
query
(string, required): Search query using Slack search syntax to find messages that match specified criteria
Search Query Examples:
"project update"
- Search for messages containing “project update”from:@john in:#general
- Search for messages from John in the #general channelhas:link after:2023-01-01
- Search for messages with links after January 1, 2023in:@channel before:yesterday
- Search for messages in a specific channel before yesterday
Block Kit Integration
Slack’s Block Kit allows you to create rich, interactive messages. Here are some examples of how to use the blocks
parameter:
Simple Text with Attachment
[
{
"text": "I am a test message",
"attachments": [
{
"text": "And here's an attachment!"
}
]
}
]
Rich Formatting with Sections
[
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Project Update*\nStatus: ✅ Complete"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "plain_text",
"text": "All tasks have been completed successfully."
}
}
]
Usage Examples
Basic Slack Agent Setup
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
# Get enterprise tools (Slack tools will be included)
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
# Create an agent with Slack capabilities
slack_agent = Agent(
role="Team Communication Manager",
goal="Facilitate team communication and coordinate collaboration efficiently",
backstory="An AI assistant specialized in team communication and workspace coordination.",
tools=[enterprise_tools]
)
# Task to send project updates
update_task = Task(
description="Send a project status update to the #general channel with current progress",
agent=slack_agent,
expected_output="Project update message sent successfully to team channel"
)
# Run the task
crew = Crew(
agents=[slack_agent],
tasks=[update_task]
)
crew.kickoff()
Filtering Specific Slack Tools
from crewai_tools import CrewaiEnterpriseTools
# Get only specific Slack tools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token",
actions_list=["slack_send_message", "slack_send_direct_message", "slack_search_messages"]
)
communication_manager = Agent(
role="Communication Coordinator",
goal="Manage team communications and ensure important messages reach the right people",
backstory="An experienced communication coordinator who handles team messaging and notifications.",
tools=enterprise_tools
)
# Task to coordinate team communication
coordination_task = Task(
description="Send task completion notifications to team members and update project channels",
agent=communication_manager,
expected_output="Team notifications sent and project channels updated successfully"
)
crew = Crew(
agents=[communication_manager],
tasks=[coordination_task]
)
crew.kickoff()
Advanced Messaging with Block Kit
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
notification_agent = Agent(
role="Notification Manager",
goal="Create rich, interactive notifications and manage workspace communication",
backstory="An AI assistant that specializes in creating engaging team notifications and updates.",
tools=[enterprise_tools]
)
# Task to send rich notifications
notification_task = Task(
description="""
1. Send a formatted project completion message to #general with progress charts
2. Send direct messages to team leads with task summaries
3. Create interactive notification with action buttons for team feedback
""",
agent=notification_agent,
expected_output="Rich notifications sent with interactive elements and formatted content"
)
crew = Crew(
agents=[notification_agent],
tasks=[notification_task]
)
crew.kickoff()
Message Search and Analytics
from crewai import Agent, Task, Crew
from crewai_tools import CrewaiEnterpriseTools
enterprise_tools = CrewaiEnterpriseTools(
enterprise_token="your_enterprise_token"
)
analytics_agent = Agent(
role="Communication Analyst",
goal="Analyze team communication patterns and extract insights from conversations",
backstory="An analytical AI that excels at understanding team dynamics through communication data.",
tools=[enterprise_tools]
)
# Complex task involving search and analysis
analysis_task = Task(
description="""
1. Search for recent project-related messages across all channels
2. Find users by email to identify team members
3. Analyze communication patterns and response times
4. Generate weekly team communication summary
""",
agent=analytics_agent,
expected_output="Comprehensive communication analysis with team insights and recommendations"
)
crew = Crew(
agents=[analytics_agent],
tasks=[analysis_task]
)
crew.kickoff()
Contact Support
Need Help?
Contact our support team for assistance with Slack integration setup or troubleshooting.
Was this page helpful?
- Overview
- Prerequisites
- Available Tools
- User Management
- Channel Management
- Messaging
- Search & Discovery
- Block Kit Integration
- Simple Text with Attachment
- Rich Formatting with Sections
- Usage Examples
- Basic Slack Agent Setup
- Filtering Specific Slack Tools
- Advanced Messaging with Block Kit
- Message Search and Analytics
- Contact Support