Como ligar o Slack ao Shopify Flow
O Slack assina todos os pedidos que envia para a sua aplicação - comandos «/», mensagens interativas e envios da API de Eventos - com o segredo de assinatura da sua aplicação. O «Workflow Webhooks» transforma essa chamada num gatilho «Shopify Flow», para que a sua loja possa reagir a ela: marcar um cliente, adicionar uma nota à encomenda, enviar um e-mail interno, atualizar um metacampo - tudo o que o Shopify Flow pode fazer.
Este guia define todo o processo - o Slack envia, Workflow Webhooks recebe e verifica, Shopify Flow executa - com a assinatura HMAC do Slack verificada em cada pedido, pelo que apenas o Slack pode iniciar o seu fluxo de trabalho.
O que pode construir
- Permita que a sua equipa execute um fluxo de trabalho do Shopify Flow a partir do Slack através de um comando com barra, sem conceder acesso de administrador a ninguém.
- Aprove algo no Slack e faça com que o Shopify Flow identifique o pedido ou o cliente que foi aprovado.
- Transforme um atalho do Slack numa ação da loja - adicione uma tag, envie um e-mail, atualize um metacampo.
Eventos típicos a enviar: um comando com barra, como /restock, o premir de um botão numa mensagem interativa, um evento da API de Eventos.
Antes de começar
- Workflow Webhooks instalado na sua loja Shopify.
- Shopify Flow instalada, que está disponível gratuitamente na App Store do site Shopify.
- Uma conta no Slack com permissão para criar webhooks.
Passo 1 - Crie o webhook em Workflow Webhooks
- Aceda a Workflow Webhooks -> Webhooks -> Criar webhook e atribua-lhe um nome que consiga reconhecer no Shopify Flow, como, por exemplo,
Slack events. - Na secção «Autenticação», selecione HMAC.
- Na secção «Provedor de assinatura», selecione o Slack. A aplicação preenche automaticamente o cabeçalho, o algoritmo, o payload assinado e a janela de repetição - não é necessário configurar mais nada.
- Por enquanto, deixe o campo «Segredo» em branco e clique em «Guardar». Copie o URL do webhook apresentado na página.
Consulte Autenticação para conhecer os outros modos de autenticação e Mapeamento da carga útil e variáveis de fluxo para selecionar quais os campos que são transmitidos ao Shopify Flow.
Passo 2 - Adicione o ponto de extremidade no Slack
Na configuração da sua aplicação Slack, adicione o URL como «URL de pedido» para o comando de barra, a interatividade ou a API de Eventos e copie o «Segredo de assinatura» em «Informações básicas» → «Credenciais da aplicação».
Como encontrar o seu segredo de assinatura do Slack
Segredo de assinatura da aplicação Slack (Informações básicas -> Credenciais da aplicação).
A própria documentação do Slack sobre assinaturas de webhooks, disponível em, contém o texto exato e as capturas de ecrã relativas à sua conta.
Cole essa chave secreta no campo «Secret» do webhook em Workflow Webhooks e guarde. A partir desse momento, todas as mensagens do Slack serão verificadas antes de chegarem ao Shopify Flow.
O que isto verifica
| O que | Valor |
|---|---|
| Cabeçalho da assinatura | X-Slack-Signature |
| Onde se encontra a assinatura | O valor do cabeçalho, após o prefixo v0= |
| O que foi assinado | v0:{timestamp}:{body} |
| Assinatura | HMAC-SHA256, codificado em hexadecimal |
| Data e hora | O cabeçalho X-Slack-Request-Timestamp, expresso em segundos Unix |
| Proteção contra reprodução | Os pedidos cujo carimbo temporal assinado se situe a mais de 5 minutos do momento atual são rejeitados |
| O segredo | Utilizado como texto simples. Cole-o exatamente tal como o remetente o apresenta |
Na carga útil assinada, {body} corresponde ao corpo da solicitação em formato bruto, byte a byte, e {timestamp} corresponde ao carimbo temporal acima.
Um pedido que não cumpra qualquer um destes requisitos é rejeitado com o erro 401, é registado em Histórico e resolução de problemas e nunca dá início a um fluxo de trabalho.
Passo 3 - Criar o fluxo de trabalho Shopify Flow
- No «Shopify Flow», crie um fluxo de trabalho e selecione o gatilho «Workflow Webhooks».
- Clique em «Registar eventos» e, em seguida, envie um evento de teste a partir do Slack (ou utilize a opção «Enviar teste» em Workflow Webhooks) para que o Shopify Flow aprenda a estrutura dos seus dados.
- Cada webhook de que dispõe aciona o mesmo gatilho do Flow; por isso, adicione uma primeira condição com base no ID do webhook para que este fluxo de trabalho se limite apenas ao Slack. O ID é apresentado na página do webhook.
- Adicione as suas ações - identifique um cliente, adicione uma nota, envie um e-mail interno, atualize um metacampo.



Passo 4 - Teste-o de ponta a ponta
Aqueça um evento real no Slack. Em «Workflow Webhooks» -> «Histórico», deverá ver a invocação com o estado «Sucesso». Se a assinatura estiver incorreta, será apresentada uma entrada com o estado «Falha» e o motivo correspondente; em Verificação de webhooks assinados encontra explicações sobre o verificador de assinaturas, que lhe mostra exatamente em que etapa ocorreu a falha.

A assinatura não corresponde▾
Por este pedido: o segredo (a causa mais comum - um espaço a mais ou uma chave proveniente de um ambiente errado), se o remetente está a utilizar o segredo de um ponto de extremidade diferente e se algo entre o Slack e a aplicação reescreve o corpo da mensagem. As assinaturas abrangem os bytes em bruto, pelo que um proxy que reformate o JSON as invalida. O verificador de assinaturas na página do webhook apresenta o texto exato que foi assinado.
Recebo um erro 401 em todos os pedidos▾
Verifique se a autenticação do webhook está definida como HMAC com o fornecedor Slack selecionado, se o segredo está preenchido e se o Slack está a enviar mensagens para o URL exatamente como o aplicativo o apresenta, incluindo o código no final.
Não aparece nada no Histórico▾
O pedido nunca chegou. Verifique novamente o URL no Slack e consulte o registo de entrega do próprio Slack para ver a resposta que recebeu. Um erro 404 significa que o webhook está incorreto ou foi eliminado; um erro 429 significa que ultrapassou o limite de invocações do seu plano - consulte Planos e utilização.
O fluxo de trabalho é executado para os eventos errados▾
Cada webhook da sua loja aciona o mesmo gatilho do Shopify Flow. Adicione uma condição relativa ao ID do webhook como primeiro passo do fluxo de trabalho ou restrinja os eventos que envia a partir do Slack.
Os pedidos falham com a mensagem «carimbo temporal fora da tolerância»▾
O Slack assina um carimbo de data/hora e a aplicação rejeita qualquer mensagem com mais de 5 minutos. Normalmente, trata-se de um problema de relógio do lado do remetente ou de uma entrega que o Slack voltou a tentar muito mais tarde com o carimbo de data/hora original. As novas tentativas da mesma solicitação original não podem ser aceites; solicite ao Slack que envie um evento novo.
Relacionado
- Verificação de webhooks assinados - todos os prestadores que verificamos e como descrever aqueles que não verificamos.
- Mapeamento da carga útil e variáveis de fluxo - extrair os campos corretos da payload e importá-los para o Shopify Flow.
- Proteção contra entregas duplicadas - o que acontece quando o Slack tenta novamente enviar uma mensagem.
- Histórico e resolução de problemas - o registo de cada pedido, com reprodução.

