Como conectar o GitHub ao Shopify Flow
O GitHub envia um Webhook sempre que algo ocorre em um repositório ou organização - um push, um lançamento, uma issue, uma solicitação de pull, uma execução de fluxo de trabalho. O Workflow Webhooks transforma essa chamada em um gatilho do Shopify Flow, para que sua loja possa reagir a ela: marcar um cliente, adicionar uma nota ao pedido, enviar um e-mail interno, atualizar um metacampo - tudo o que o Shopify Flow pode fazer.
Este guia define todo o fluxo de trabalho - o GitHub envia, Workflow Webhooks recebe e verifica, Shopify Flow executa - com a assinatura HMAC do GitHub verificada em cada solicitação, de modo que somente o GitHub possa iniciar seu fluxo de trabalho.
O que o senhor pode construir
- Envie um e-mail à sua equipe de merchandising sempre que for lançada uma atualização que altere os dados dos produtos.
- A cada lançamento, insira a versão atual da compilação ou do tema em um metacampo da loja.
- Alerte a equipe quando uma execução programada do fluxo de trabalho falhar, utilizando o mesmo Shopify Flow que você já utiliza para outros incidentes.
Eventos típicos a serem enviados: push, release (publicado), issues (aberto, fechado), workflow_run (concluído).
Antes de começar
- Workflow Webhooks instalado na sua loja do Shopify.
- Shopify Flow instalado, que está disponível gratuitamente na App Store do Shopify.
- Uma conta no GitHub com permissão para criar webhooks.
Etapa 1 - Crie o webhook em Workflow Webhooks
- Acesse Workflow Webhooks -> Webhooks -> Criar webhook e atribua a ele um nome que você reconheça no Shopify Flow, como
GitHub events. - Na seção “Autenticação”, selecione HMAC.
- Em “Provedor de assinatura”, selecione GitHub. O aplicativo preenche automaticamente o cabeçalho, o algoritmo, o payload assinado e a janela de repetição para você - não há mais nada a ser configurado.
- Deixe o campo “segredo” em branco por enquanto e clique em “Salvar”. Copie a URL do webhook exibida na página.
Consulte Autenticação para conhecer os outros modos de autenticação e Mapeamento de payload e variáveis de fluxo para selecionar quais campos serão enviados ao Shopify Flow.
Etapa 2 - Adicione o endpoint no GitHub
No repositório (ou organização), abra Configurações -> Webhooks -> Adicionar webhook, cole a URL no campo “URL de payload”, defina o tipo de conteúdo como application/json e preencha o campo “Segredo”.
Como localizar seu segredo de assinatura do GitHub
O segredo que o(a) senhor(a) definiu no webhook do GitHub (Configurações -> Webhooks -> Segredo).
A própria documentação do GitHub sobre assinaturas de webhooks contém o texto exato e as capturas de tela referentes à sua conta.
Cole esse segredo no campo “Secret” do webhook em Workflow Webhooks e salve. A partir desse momento, todas as entregas do GitHub serão verificadas antes de chegarem ao Shopify Flow.
O que isso verifica
| O que | Valor |
|---|---|
| Cabeçalho de assinatura | X-Hub-Signature-256 |
| Onde fica a assinatura | O valor do cabeçalho, após o prefixo sha256= |
| O que foi assinado | {body} |
| Assinatura | HMAC-SHA256, codificado em hexadecimal |
| Data e hora | Não é utilizado por este remetente |
| Proteção contra reprodução | Nenhuma - esse remetente não assina o carimbo de data e hora; portanto, todas as assinaturas válidas permanecem válidas |
| O segredo | Utilizado como texto simples. Cole-o exatamente como o remetente o apresenta |
Na carga útil assinada, {body} corresponde ao corpo da solicitação em formato bruto, byte por byte.
Uma solicitação que não atenda a qualquer um desses critérios é rejeitada com o código de erro 401, é registrada em Histórico e solução de problemas e nunca inicia um fluxo de trabalho.
Etapa 3 - Criar o fluxo de trabalho Shopify Flow
- No “Shopify Flow”, crie um fluxo de trabalho e selecione o gatilho “Workflow Webhooks”.
- Clique em “Gravar eventos” e, em seguida, envie um evento de teste do GitHub (ou use a opção “Enviar teste” em Workflow Webhooks) para que o Shopify Flow aprenda o formato dos seus dados.
- Cada webhook de que o senhor dispõe aciona o mesmo gatilho do Shopify Flow; portanto, adicione uma primeira condição com base no ID do webhook para que esse fluxo de trabalho se limite exclusivamente ao GitHub. O ID é exibido na página do webhook.
- Adicione suas ações - marque um cliente, adicione uma nota, envie um e-mail interno, atualize um metacampo.



Etapa 4 - Teste de ponta a ponta
Acionem um evento real no GitHub. Em Workflow Webhooks -> Histórico, vocês deverão ver a invocação com o status “Sucesso”. Se a assinatura estiver incorreta, aparecerá uma entrada com o status “Falha” e o motivo correspondente; além disso, Verificação de webhooks assinados explica como funciona o verificador de assinaturas, que mostra exatamente em qual etapa ocorreu a falha.

A assinatura não corresponde▾
Nesta ordem: o segredo (a causa mais comum - um espaço a mais ou uma chave do ambiente errado), se o remetente está utilizando o segredo de um endpoint diferente e se algo entre o GitHub e o aplicativo reescreve o corpo da mensagem. As assinaturas abrangem os bytes brutos; portanto, um proxy que reformata o JSON as invalida. O verificador de assinaturas na página do webhook mostra o texto exato que foi assinado.
Recebo um erro 401 em todas as solicitações▾
Verifique se a autenticação do webhook está configurada como HMAC com o provedor GitHub selecionado, se o segredo está preenchido e se o GitHub está enviando dados para a URL exatamente como o aplicativo a exibe, incluindo o código no final.
Não há nada no Histórico▾
A solicitação nunca chegou. Verifique novamente a URL no GitHub e consulte o próprio registro de entrega do GitHub para ver a resposta recebida. Um erro do tipo 404 indica um webhook incorreto ou excluído; um erro do tipo 429 significa que você ultrapassou o limite de invocações do seu plano - consulte Planos e uso.
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 com base no ID do webhook como a primeira etapa do fluxo de trabalho ou restrinja os eventos que você envia do GitHub.
Relacionado
- Verificação de webhooks assinados - todos os prestadores que verificamos e como descrever aqueles que não verificamos.
- Mapeamento de payload e variáveis de fluxo - extrair os campos corretos da payload e inseri-los no Shopify Flow.
- Proteção contra entregas duplicadas - o que ocorre quando o GitHub tenta novamente uma entrega.
- Histórico e solução de problemas - o registro de todas as solicitações, com reprodução.

