O que Automação do Slack faz?
Interaja com workspaces do Slack para verificar mensagens, extrair dados e automatizar tarefas comuns.
Início Rápido
Conecte-se a uma sessão de navegador existente do Slack ou abra o Slack:
# Conecte-se a uma sessão existente na porta 9222 (típico para Slack já aberto)
agent-browser connect 9222
# Ou abra o Slack se ainda não estiver em execução
agent-browser open https://app.slack.com
Em seguida, tire um snapshot para ver o que está disponível:
agent-browser snapshot -i
Fluxo de Trabalho Principal
- Conectar/Navegar: Abra ou conecte-se ao Slack
- Snapshot: Obtenha elementos interativos com refs (
@e1,@e2, etc.) - Navegar: Clique em abas, expanda seções ou navegue para canais específicos
- Extrair/Interagir: Leia dados ou execute ações
- Screenshot: Capture evidências dos achados
# Exemplo: Verificar canais não lidos
agent-browser connect 9222
agent-browser snapshot -i
# Procure pelo botão "Mais não lidos"
agent-browser click @e21 # Ref para o botão "Mais não lidos"
agent-browser screenshot slack-unreads.png
Tarefas Comuns
Verificando Mensagens Não Lidas
# Conecte-se ao Slack
agent-browser connect 9222
# Tire snapshot para localizar o botão de não lidos
agent-browser snapshot -i
# Procure por:
# - Botão "Mais não lidos" (geralmente perto do topo da barra lateral)
# - Alternância "Não lidos" na guia Atividade (mostra contagem de não lidos)
# - Nomes de canais com distintivos/texto em negrito indicando não lidos
# Navegue para a guia Atividade para ver todos os não lidos em uma visão
agent-browser click @e14 # Guia Atividade (ref pode variar)
agent-browser wait 1000
agent-browser screenshot activity-unreads.png
# Ou verifique a guia DMs
agent-browser click @e13 # Guia DMs
agent-browser screenshot dms.png
# Ou expanda "Mais não lidos" na barra lateral
agent-browser click @e21 # Botão Mais não lidos
agent-browser wait 500
agent-browser screenshot expanded-unreads.png
Navegando para um Canal
# Pesquise pelo canal na barra lateral ou pelo nome
agent-browser snapshot -i
# Procure pelo nome do canal na lista (ex.: "engenharia", "design-produto")
# Clique na ref do treeitem do canal
agent-browser click @e94 # Exemplo: ref do canal engenharia
# Substitua `engenharia` pelo nome do canal clicado para que o cabeçalho
# antigo não possa satisfazer a espera enquanto o novo canal ainda está renderizando.
agent-browser wait --fn "document.querySelector('[data-qa=\"channel_header\"]')?.innerText.includes('engenharia')"
agent-browser screenshot channel.png
Encontrando Mensagens/Threads
# Use a pesquisa do Slack
agent-browser snapshot -i
agent-browser click @e5 # Botão Pesquisar (ref típica)
agent-browser fill @e_search "palavra-chave"
agent-browser press Enter
# Verifique a consulta enviada para que uma pesquisa repetida não possa reutilizar a rota antiga.
agent-browser wait --fn "location.pathname.includes('/search') && new URL(location.href).searchParams.get('q') === 'palavra-chave'"
agent-browser screenshot search-results.png
Extraindo Informações do Canal
# Obtenha a lista de todos os canais visíveis
agent-browser snapshot --json > slack-snapshot.json
# Analise em busca de nomes de canais e metadados
# Procure por elementos treeitem com level=2 (subcanais sob seções)
Verificando Detalhes do Canal
# Abra um canal
agent-browser click @e_channel_ref
agent-browser wait 1000
# Obtenha informações do canal (membros, descrição, etc.)
agent-browser snapshot -i
agent-browser screenshot channel-details.png
# Role as mensagens
agent-browser scroll down 500
agent-browser screenshot channel-messages.png
Anotando/Capturando Estado
Quando precisar documentar achados do Slack:
# Tire screenshot anotado (mostra números dos elementos)
agent-browser screenshot --annotate slack-state.png
# Tire screenshot de página inteira
agent-browser screenshot --full slack-full.png
# Obtenha a URL atual para referência
agent-browser get url
# Obtenha o título da página
agent-browser get title
Estrutura da Barra Lateral
Entender a barra lateral do Slack ajuda a navegar com eficiência:
- Threads
- Huddles
- Rascunhos e enviados
- Diretórios
- [Cabeçalhos de Seção - Conexões externas, Favoritos, Canais, etc.]
- [Canais listados como treeitems]
- Mensagens Diretas
- [DMs listados]
- Aplicativos
- [Atalhos de aplicativos]
- Botão [Mais não lidos] (alterna a lista de canais não lidos)
Refs principais a procurar:
@e12- Guia Início (geralmente)@e13- Guia DMs@e14- Guia Atividade@e5- Botão Pesquisar@e21- Botão Mais não lidos (varia por sessão)
Abas no Slack
Após clicar em um canal, você verá abas:
- Mensagens - Conversa do canal
- Arquivos - Arquivos compartilhados
- Fixados - Mensagens fixadas
- Adicionar canvas - Canvas colaborativo
- Outras abas dependendo da configuração do workspace
Clique nas refs das abas para alternar visualizações e obter informações diferentes.
Extraindo Dados do Slack
Obter Conteúdo de Texto
# Obtenha o texto de uma mensagem ou elemento
agent-browser get text @e_message_ref
Analisar a Árvore de Acessibilidade
# Snapshot completo como JSON para análise programática
agent-browser snapshot --json > output.json
# Procure por:
# - Nomes de canais (campo name em treeitem)
# - Conteúdo de mensagens (em elementos listitem/document)
# - Nomes de usuários (elementos button com informações do usuário)
# - Carimbos de data/hora (elementos link com informações de tempo)
Contar Não Lidos
# Após expandir a seção de não lidos:
agent-browser snapshot -i | grep -c "treeitem"
# Cada treeitem com um nome de canal na seção de não lidos é um não lido
Melhores Práticas
- Conecte-se a sessões existentes: Use
agent-browser connect 9222se o Slack já estiver aberto. Isso é mais rápido do que abrir um novo navegador. - Tire snapshots antes de clicar: Sempre faça
snapshot -ipara identificar refs antes de clicar em botões. - Re-snapshot após navegação: Após navegar para um novo canal ou seção, tire um snapshot fresco para encontrar novas refs.
- Use snapshots JSON para análise: Quando precisar extrair dados estruturados, use
snapshot --jsonpara saída legível por máquina. - Paceie as interações: Adicione
sleep 1entre interações rápidas para permitir que a UI seja atualizada. - Verifique a árvore de acessibilidade: A árvore de acessibilidade mostra o que leitores de tela (e sua automação) podem ver. Se um elemento não estiver no snapshot, pode estar oculto ou exigir rolagem.
- Role na barra lateral: Use
agent-browser scroll down 300 --selector ".p-sidebar"para rolar dentro da barra lateral do Slack se a lista de canais for longa.
Limitações
- Não pode acessar a API do Slack: Isso usa automação de navegador, não a API do Slack. Sem necessidade de OAuth, webhooks ou tokens de bot.
- Específico da sessão: Screenshots e snapshots estão vinculados à sessão atual do navegador.
- Limitação de taxa: O Slack pode limitar a taxa de interações rápidas. Adicione atrasos entre comandos se necessário.
- Específico do workspace: Você interage apenas com seu próprio workspace — não há automação entre workspaces.
Depuração
Verificar console em busca de erros
agent-browser console
agent-browser errors
Obter estado atual da página
agent-browser get url
agent-browser get title
agent-browser screenshot page-state.png
Exemplo: Verificação Completa de Não Lidos
#!/bin/bash
# Conecte-se ao Slack
agent-browser connect 9222
# Tire snapshot inicial
echo "=== Verificando não lidos do Slack ==="
agent-browser snapshot -i > snapshot.txt
# Verifique a guia Atividade em busca de não lidos
agent-browser click @e14 # Guia Atividade
agent-browser wait 1000
agent-browser screenshot activity.png
ACTIVITY_RESULT=$(agent-browser get text @e_main_area)
echo "Atividade: $ACTIVITY_RESULT"
# Verifique DMs
agent-browser click @e13 # Guia DMs
agent-browser wait 1000
agent-browser screenshot dms.png
# Verifique canais não lidos na barra lateral
agent-browser click @e21 # Botão Mais não lidos
agent-browser wait 500
agent-browser snapshot -i > unreads-expanded.txt
agent-browser screenshot unreads.png
# Resumo
echo "=== Resumo ==="
echo "Consulte activity.png, dms.png e unreads.png para detalhes completos"
Referências
- Documentação do Slack: https://slack.com/help
- Experiência web: https://app.slack.com
- Atalhos de teclado: Digite
?no Slack para ver a lista de atalhos