Pular para o conteúdo

Integração com Slack

Permita que seus agentes gerenciem a comunicação da equipe pelo Slack. Envie mensagens, pesquise conversas, gerencie canais e coordene as atividades do time para otimizar os fluxos de colaboração com automação impulsionada por IA.

Antes de usar a integração com o Slack, certifique-se de que você tenha:

  1. Acesse CrewAI AMP Integrações
  2. Encontre Slack na seção Integrações de Autenticação
  3. Clique em Conectar e complete o fluxo OAuth
  4. Conceda as permissões necessárias para comunicação em equipe
  5. Copie seu Token Enterprise em Configurações de Integração
Terminal window
uv add crewai-tools
Terminal window
export CREWAI_PLATFORM_INTEGRATION_TOKEN="seu_enterprise_token"

Ou adicione ao seu arquivo .env:

CREWAI_PLATFORM_INTEGRATION_TOKEN=seu_enterprise_token
slack/list_members

Descrição: Lista todos os membros de um canal do Slack.

Parâmetros:

  • Nenhum parâmetro necessário – recupera todos os membros do canal
slack/get_user_by_email

Descrição: Encontre um usuário no seu workspace do Slack pelo endereço de e-mail.

Parâmetros:

  • email (string, obrigatório): O endereço de e-mail de um usuário do workspace
slack/get_users_by_name

Descrição: Pesquise usuários pelo nome ou nome de exibição.

Parâmetros:

  • name (string, obrigatório): Nome real do usuário para a pesquisa
  • displayName (string, obrigatório): Nome de exibição do usuário para a pesquisa
  • paginationParameters (object, opcional): Configurações de paginação
    • pageCursor (string, opcional): Cursor de página para paginação
slack/list_channels

Descrição: Lista todos os canais do seu workspace no Slack.

Parâmetros:

  • Nenhum parâmetro necessário – recupera todos os canais acessíveis
slack/send_message

Descrição: Envie uma mensagem para um canal do Slack.

Parâmetros:

  • channel (string, obrigatório): Nome ou ID do canal – Use as Configurações de Workflow do Connect Portal para que usuários selecionem o canal, ou insira o nome do canal para criar um novo
  • message (string, obrigatório): Texto da mensagem a ser enviada
  • botName (string, obrigatório): Nome do bot que enviará a mensagem
  • botIcon (string, obrigatório): Ícone do bot – Pode ser uma URL de imagem ou um emoji (ex.: “:dog:”)
  • blocks (object, opcional): JSON do Slack Block Kit para mensagens ricas com anexos e elementos interativos
  • authenticatedUser (boolean, opcional): Se verdadeiro, a mensagem aparecerá como enviada pelo seu usuário autenticado do Slack ao invés do aplicativo (por padrão é falso)
slack/send_direct_message

Descrição: Envie uma mensagem direta para um usuário específico no Slack.

Parâmetros:

  • memberId (string, obrigatório): ID do usuário destinatário – Use as Configurações de Workflow do Connect Portal para que usuários selecionem um membro
  • message (string, obrigatório): Texto da mensagem a ser enviada
  • botName (string, obrigatório): Nome do bot que enviará a mensagem
  • botIcon (string, obrigatório): Ícone do bot – Pode ser uma URL de imagem ou um emoji (ex.: “:dog:”)
  • blocks (object, opcional): JSON do Slack Block Kit para formatação rica com anexos e elementos interativos
  • authenticatedUser (boolean, opcional): Se verdadeiro, a mensagem aparecerá como enviada pelo seu usuário autenticado do Slack (padrão é falso)
slack/search_messages

Descrição: Procure por mensagens em todo o seu workspace do Slack.

Parâmetros:

  • query (string, obrigatório): Consulta de pesquisa usando a sintaxe do Slack para encontrar mensagens que correspondam aos critérios especificados

Exemplos de Consultas de Pesquisa:

  • "project update" – Busca mensagens contendo “project update”
  • from:@john in:#general – Busca mensagens do John no canal #general
  • has:link after:2023-01-01 – Busca mensagens com links após 1º de janeiro de 2023
  • in:@channel before:yesterday – Busca mensagens em um canal específico antes de ontem

O Block Kit do Slack permite criar mensagens ricas e interativas. Veja alguns exemplos de como usar o parâmetro blocks:

[
{
"text": "I am a test message",
"attachments": [
{
"text": "And here's an attachment!"
}
]
}
]
[
{
"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."
}
}
]
from crewai import Agent, Task, Crew
# 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.",
apps=['slack']
)
# 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()
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.",
apps=['slack']
)
# 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()
from crewai import Agent, Task, Crew
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.",
apps=['slack']
)
# 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()
from crewai import Agent, Task, Crew
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.",
apps=['slack']
)
# 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()

Precisa de Ajuda?

Entre em contato com nossa equipe de suporte para obter ajuda na configuração ou solução de problemas da integração com o Slack.