Como o canal funciona
O canal Slack tem dois modos de operação, que podem coexistir na mesma configuração:
Entrega múltipla: a mensagem é entregue em todos os destinos que se aplicarem na mesma chamada — canal (via
recipient.slack_channel ou Canal padrão) e DM (via recipient.slack_user_id ou recipient.email). O Incoming Webhook é usado quando não há Bot Token, ou como canal fixo adicional quando o envio pelo bot não tem nenhum canal (nem slack_channel na chamada, nem Canal padrão). Campanhas seguem outra regra, com uma entrega por contato — veja Em campanhas.
Parte 1 — Criar o Slack App
- Acesse api.slack.com/apps e clique em Create New App → From scratch.
- Dê um nome ao app (ex.:
OctaSend) e selecione o workspace de destino. - No menu lateral, abra OAuth & Permissions → Scopes → Bot Token Scopes e adicione:
chat:write— enviar mensagensusers:read— ler dados de usuáriosusers:read.email— encontrar o usuário pelo e-mail (necessário para DM por e-mail)im:write— abrir conversas de DMchannels:read— listar canais públicosgroups:read— listar canais privadoschat:write.customize— opcional, para personalizar o nome e o ícone do bot em cada template
- Ainda em OAuth & Permissions, clique em Install to Workspace e autorize.
- Copie o Bot User OAuth Token — começa com
xoxb-.
(Opcional) Incoming Webhook
Se quiser o modo simples (canal fixo), no painel do mesmo app:- Abra Incoming Webhooks e ative a opção.
- Clique em Add New Webhook to Workspace, selecione o canal de destino e autorize.
- Copie a Webhook URL — começa com
https://hooks.slack.com/services/.
Parte 2 — Configurar o canal na plataforma
- No painel, acesse Configurações → Canais → Slack. No topo da tela, o guia deixa você escolher o modo (Bot Token ou Incoming Webhook) e mostra só os passos daquele modo.
- Preencha os campos:
- Bot Token (xoxb-…) — o token copiado na Parte 1. Fica guardado criptografado e volta mascarado na tela depois de salvo.
- Incoming Webhook URL — opcional, alternativa ao Bot Token. No modo webhook, deixe o Bot Token vazio: se ele estiver preenchido, o bot tem prioridade.
- Canal padrão — opcional (ex.:
#geralouC01234ABCDE). Usado pelo bot quando a chamada de envio não informaslack_channel. Não se aplica ao webhook, que sempre entrega no canal fixo dele.
- Clique em Testar Conexão:
- Bot Token → valida o token e mostra o workspace conectado (“Conectado: …”).
- Somente webhook → envia uma mensagem de teste real ao canal do webhook (o Slack não tem modo de teste para webhooks).
- Clique em Salvar Configuração. Salvar já deixa o canal ativo.
Parte 3 — Criar comunicação e template
- Acesse Comunicações → Nova comunicação e adicione o canal Slack. Veja Comunicações.
- No template Slack, preencha:
- Mensagem (texto) — obrigatória. Suporta mrkdwn (
*negrito*,_itálico_,código) e variáveis{{nome}}. Serve como mensagem principal, ou como texto alternativo quando o Block Kit está preenchido. - Block Kit (opcional) — JSON do array de blocks para mensagens ricas (botões, seções, imagens). Monte no Block Kit Builder e cole aqui só o array que está em
"blocks"(começa com[), não o objeto inteiro que o Builder mostra. Variáveis{{var}}funcionam em qualquer campo de texto dos blocks, sempre dentro de aspas. - Aparência do bot (opcional) — Nome do bot e Emoji do ícone ou URL do ícone (um dos dois, não ambos). Esses campos só têm efeito se o app tiver o scope
chat:write.customize.
- Mensagem (texto) — obrigatória. Suporta mrkdwn (
Para enviar só o texto, deixe o campo Block Kit vazio.
Exemplo de Block Kit com variáveis:
Parte 4 — Enviar mensagens via API
Todas as chamadas usam o endpointsend-message com um access token — veja Autenticação.
Opção A — DM por e-mail (requer Bot Token)
A plataforma encontra o usuário do Slack pelo e-mail e abre uma DM:O e-mail precisa ser o mesmo cadastrado no perfil Slack do usuário no workspace.
Opção B — DM por Slack User ID (requer Bot Token)
Opção C — Enviar para canal ou grupo
Opção D — Só webhook
No modo Incoming Webhook, a mensagem sempre vai para o canal fixo do webhook — orecipient pode ir vazio:
Destinos de entrega (a mensagem vai para todos que se aplicarem)
- Canal:
recipient.slack_channel— nome (#canal) ou ID (C01234ABCDE) — ou o Canal padrão da configuração, se nenhum for passado. - DM:
recipient.slack_user_id, ourecipient.email(o usuário é encontrado pelo e-mail). - Incoming Webhook: o canal fixo do webhook, quando não há Bot Token ou quando o bot não tem nenhum canal para esta chamada.
- Se pelo menos um destino receber a mensagem, o envio conta como enviado. Se todos falharem, o log registra os motivos de cada destino.
- Sem nenhum destino possível (nem
slack_user_id,slack_channelouemailna chamada, nem Canal padrão, nem webhook), o Slack é pulado nessa chamada, sem registro no log.
Em campanhas
Nas campanhas de Slack, cada contato recebe uma única entrega, e os destinos múltiplos acima não se aplicam:- Com Bot Token — a mensagem vai só por DM ao usuário do Slack que tem o mesmo e-mail do contato. O Canal padrão e o Incoming Webhook ficam de fora, mesmo que estejam configurados. Um contato sem e-mail falha, com o motivo “Contato sem e-mail: com Bot Token, a campanha no Slack vai por mensagem direta ao usuário do Slack com o e-mail do contato”.
- Sem Bot Token — cada contato gera uma publicação no canal do Incoming Webhook.
Parte 5 — Verificação e erros comuns
Checklist
- Bot Token salvo e Testar Conexão mostra o nome do workspace.
- Scopes configurados:
chat:write,users:read,users:read.email,im:write. - Bot convidado aos canais que precisa acessar (
/invite @bot). - Template Slack criado com Mensagem (texto) preenchida.
- A chamada
send-messageretorna statussentpara o canalslack. - O envio aparece em Logs de Mensagens com o canal Slack resolvido.
Erros comuns
Limites
- No Slack,
chat.postMessageaceita cerca de 1 mensagem por segundo por canal. O disparo de campanhas espaça as mensagens de Slack em cerca de 5 por segundo. - Block Kit: no máximo 50 blocks por mensagem (limite do Slack).
- Encontrar o usuário pelo e-mail exige o scope
users:read.emaile que o usuário seja do mesmo workspace do app.