Pular para as operações

Mensageria

Slack em um fluxo de decisão.

11 Slack operations a decision flow can call directly, with the credentials your own contract issued. The response is data the rest of the flow reads, branches on, and keeps in the trace.

Categoria
Mensageria
Tipo
Integração
Autenticação
Chave de API ou OAuth 2.0
Ambiente de teste
Somente host de produção

Quem são

Mensageria para times, organizada em canais.

O Slack é um produto de mensageria corporativa organizado em canais, com uma Web API para publicar neles a partir de outros sistemas. Pertence à Salesforce. Para um fluxo, é o caminho mais curto entre uma decisão e as pessoas que precisam agir sobre ela, no lugar que elas já acompanham.

O que um fluxo pode chamar

11 operações, cada uma um passo que você coloca no editor.

  1. POST/chat.postMessage

    Publicar uma mensagem

    Envia uma mensagem para um canal. O bot precisa ser membro do canal antes, senão a chamada falha com not_in_channel.

  2. POST/chat.postMessage

    Publicar uma mensagem com layout Block Kit

    Same endpoint as "Post a message", pre-filled with a Block Kit layout for a decision summary.

  3. POST/chat.postMessage

    Responder em uma thread

    Replies under an existing message. thread_ts is the parent's ts, which an earlier Post-a-message node returns at body.ts.

  4. GET/conversations.history?channel=$data.slack_channel_id&limit=50

    Read a channel's messages

    Devolve as mensagens mais recentes de um canal, da mais nova para a mais antiga, em body.messages.

  5. GET/conversations.replies?channel=$data.slack_channel_id&ts=$data.slack_thread_ts&limit=100

    Ler uma thread

    Devolve uma thread em body.messages: primeiro a mensagem-mãe, depois as respostas, da mais antiga para a mais nova.

  6. GET/conversations.history?channel=$data.slack_channel_id&oldest=$data.slack_message_ts&latest=$data.slack_message_ts&inclusive=true&limit=1

    Ler uma mensagem

    Devolve a mensagem com esse ts em body.messages[0].

  7. GET/conversations.list?types=public_channel,private_channel&exclude_archived=true&limit=200

    Listar canais

    Lista em body.channels os canais que o token enxerga, com o id, o nome e o is_member de cada um.

  8. GET/conversations.info?channel=$data.slack_channel_id

    Get a channel's details

    Devolve um canal em body.channel: nome, tópico e propósito, is_private, is_archived e is_member, que diz se o bot pode ler e publicar nele.

  9. POST/conversations.join

    Entrar em um canal público

    Coloca o bot em um canal público, para que ele possa ler e publicar nele.

  10. GET/users.info?user=$data.slack_user_id

    Consultar um usuário

    Devolve uma pessoa em body.user a partir do id de usuário (U…) que uma mensagem traz: name, real_name, tz, is_bot e deleted.

  11. POST/auth.test

    Verificar o token (auth.test)

    Jeito mais barato de confirmar que o token funciona e ver a qual workspace e usuário de bot ele pertence.

Onde isso entra na decisão

Messaging calls have a natural place in a flow.

Avisar uma pessoa faz parte da decisão, e não é um detalhe posterior: a mensagem sai do próprio fluxo, no ponto em que o fluxo decidiu que ela se justificava, carregando a mesma versão e a mesma trilha do resultado que a disparou.

Whatever Slack returns is part of the run, so it is part of the record. When someone asks months later why an applicant was declined, the answer cites what came back at the time rather than re-fetching from a service whose answer has since changed.

  • 01Add Slack as a connection authenticating with an API key or OAuth 2.0.
  • 02A Slack tem um host só para os dois ambientes, então proteja as execuções de teste com credenciais e limites seus.
  • 03Coloque um nó de Conexão e escolha uma operação — “Publicar uma mensagem” costuma ser a primeira de que um fluxo precisa.
  • 04Mapeie a resposta nos campos que suas regras leem e depois teste o caminho inteiro antes de ele receber tráfego de produção.

Perguntas frequentes

Usando a Slack em um fluxo.

Como conecto a Slack a um fluxo de decisão?

Adicione a Slack como uma conexão no seu workspace, autenticando com uma chave de API ou OAuth 2.0, com as credenciais que o seu próprio contrato emitiu — a ArboRule chama o provedor no seu lugar e nunca assume um contrato por você. Depois que a conexão existe, qualquer fluxo do workspace pode colocar um nó de Conexão e escolher uma das operações dela. As credenciais ficam na conexão, não no fluxo, então quem cuida da política usa a Slack em uma decisão sem nunca ver o segredo.

Dá para testar a Slack sem tocar em produção?

A Slack expõe um host só para os dois ambientes, então não existe um sandbox separado para apontar. As execuções de teste continuam rodando no Sandbox e ficam registradas à parte no histórico de decisões, mas a chamada vai para o mesmo lugar que a de produção — então proteja isso com credenciais de teste, limites de taxa ou dados seus.

O que um fluxo pode chamar na Slack?

11 operações, incluindo “Publicar uma mensagem”, “Publicar uma mensagem com layout Block Kit”, “Responder em uma thread”. Cada uma é um passo que você coloca no editor e mapeia nos campos que suas regras leem, e a maioria dos fluxos começa por “Publicar uma mensagem”. A lista vem do mesmo manifesto que o motor usa para fazer a chamada, então esta página não consegue descrever uma operação que o produto não tem.

Em que ponto de uma decisão a Slack deve ser chamada?

Avisar uma pessoa faz parte da decisão, e não é um detalhe posterior: a mensagem sai do próprio fluxo, no ponto em que o fluxo decidiu que ela se justificava, carregando a mesma versão e a mesma trilha do resultado que a disparou.

Quando você quiser

Wire Slack into a real decision.

Monte o fluxo no Sandbox, conecte sua conta e veja a decisão buscar o que precisa antes de responder.

Leia a documentação