Comment connecter Slack à l'Shopify Flow
Slack signe chaque requête qu’il envoie à votre application - commandes « / », messages interactifs et envois via l’API Events - à l’aide de la clé de signature de votre application. Workflow Webhooks transforme cet appel en un déclencheur « **Shopify Flow **», ce qui permet à votre boutique de réagir : marquer un client, ajouter une note de commande, envoyer un e-mail interne, mettre à jour un métachamp… tout ce qu’Shopify Flow peut faire.
Ce guide décrit l'ensemble du processus : Slack envoie les données, Workflow Webhooks les reçoit et les vérifie, Shopify Flow effectue l'action. La signature HMAC de Slack est vérifiée à chaque requête, de sorte que seul Slack puisse déclencher votre workflow.
Ce que vous pouvez construire
- Permettez à votre équipe de lancer un workflow Shopify Flow depuis Slack à l'aide d'une commande « / », sans accorder d'accès administrateur à qui que ce soit.
- Validez une action dans Slack et demandez à Shopify Flow d'associer une balise à la commande ou au client qui a été validé.
- Transformez un raccourci Slack en action de boutique : ajoutez une balise, envoyez un e-mail, mettez à jour un métachamp.
Exemples d'événements à envoyer : une commande « / » telle que /restock, l'activation d'un bouton dans un message interactif, un événement de l'API Events.
Avant de commencer
- Workflow Webhooks installé sur votre boutique Shopify.
- Shopify Flow installée, disponible gratuitement sur l'App Store de Shopify.
- Un compte Slack disposant des autorisations nécessaires pour créer des webhooks.
Étape 1 - Créez le webhook sur Workflow Webhooks
- Accédez à Workflow Webhooks -> Webhooks -> Créer un webhook et attribuez-lui un nom que vous pourrez reconnaître dans Shopify Flow, tel que
Slack events. - Dans la section « Authentification », sélectionnez HMAC.
- Dans la section « Fournisseur de signature », sélectionnez Slack. L'application remplit automatiquement les champs « en-tête », « algorithme », « payload signé » et « fenêtre de relecture » ; vous n'avez rien d'autre à configurer.
- Pour l'instant, ne renseignez pas le champ « Secret » et cliquez sur « Enregistrer ». Copiez l'URL du webhook affichée sur la page.
Consultez la page Authentification pour connaître les autres modes d'authentification, et la page Mappage de la charge utile et variables de flux pour savoir quels champs sont transmis à Shopify Flow.
Étape 2 - Ajoutez le point de terminaison dans Slack
Dans la configuration de votre application Slack, ajoutez l’URL en tant qu’URL de requête pour la commande « / », l’interactivité ou l’API Événements, puis copiez la clé de signature dans la section « Informations de base » → « Identifiants de l’application ».
Comment trouver votre clé de signature Slack
Clé de signature de l'application Slack (Informations de base -> Identifiants de l'application).
La documentation de Slack consacrée aux signatures de webhooks () contient la formulation exacte et des captures d'écran correspondant à votre compte.
Collez ce secret dans le champ « Secret » du webhook sur Workflow Webhooks, puis enregistrez. À partir de ce moment, chaque message Slack est vérifié avant d'atteindre Shopify Flow.
Ce que cette vérification permet de contrôler
| Quoi ? | Valeur |
|---|---|
| En-tête de signature | X-Slack-Signature |
| Emplacement de la signature | La valeur de l'en-tête, après le préfixe v0= |
| Ce qui est signé | v0:{timestamp}:{body} |
| Signature | HMAC-SHA256, codé en hexadécimal |
| Horodatage | L'en-tête X-Slack-Request-Timestamp, exprimé en secondes Unix |
| Protection contre la relecture | Les requêtes dont l'horodatage signé remonte à plus de 5 minutes sont rejetées |
| Le secret | À utiliser sous forme de texte brut. Copiez-collez-le exactement tel qu’il apparaît chez l’expéditeur. |
Dans la payload signée, {body} correspond au corps brut de la requête, octet par octet, et {timestamp} correspond à l'horodatage mentionné ci-dessus.
Toute requête qui ne respecte pas l'une de ces conditions est rejetée avec le code d'erreur 401, est enregistrée dans Historique et dépannage et ne déclenche jamais de workflow.
Étape 3 - Créer le workflow Shopify Flow
- Dans « Shopify Flow », créez un workflow et sélectionnez le déclencheur « Workflow Webhooks ».
- Cliquez sur « Enregistrer les événements », puis envoyez un événement test depuis Slack (ou utilisez l'option « Envoyer un test » dans Workflow Webhooks) afin que Shopify Flow apprenne la structure de vos données.
- Chaque webhook dont vous disposez déclenche le même déclencheur de Shopify Flow ; par conséquent, ajoutez une première condition sur l'identifiant du webhook afin de limiter ce workflow à Slack uniquement. L'identifiant est indiqué sur la page du webhook.
- Ajoutez vos actions : identifiez un client, ajoutez une note, envoyez un e-mail interne, mettez à jour un métachamp.



Étape 4 - Testez-le de bout en bout
Déclenchez un événement réel dans Slack. Dans « Workflow Webhooks » -> « History », vous devriez voir l'invocation avec le statut « Success ». Si la signature était incorrecte, vous obtiendrez à la place une entrée indiquant un échec avec la raison correspondante. La page Vérification des webhooks signés explique le fonctionnement de l'outil de vérification de signature, qui vous indique précisément quelle étape a échoué.

La signature ne correspond pas▾
Dans cette commande : le secret (cause la plus fréquente : un espace supplémentaire ou une clé provenant d'un environnement incorrect), le fait que l'expéditeur utilise le secret d'un autre point de terminaison, et le fait que quelque chose entre Slack et l'application réécrive le corps du message. Les signatures portent sur les octets bruts ; par conséquent, un proxy qui reformate le JSON les invalide. Le testeur de signature disponible sur la page du webhook affiche le texte exact qui a été signé.
Je reçois une erreur 401 à chaque requête▾
Vérifiez que l'authentification du webhook est configurée sur HMAC avec le fournisseur Slack sélectionné, que le secret est renseigné et que Slack envoie ses messages à l'URL exactement telle qu'elle apparaît dans l'application, y compris le code à la fin.
Rien n'apparaît dans l'historique▾
La requête n'est jamais arrivée. Vérifiez à nouveau l'URL dans Slack et consultez le journal de livraison de Slack pour connaître la réponse reçue. Un message 404 indique qu'un webhook est incorrect ou a été supprimé ; un message 429 signifie que vous avez dépassé la limite d'appels de votre forfait - voir Forfaits et utilisation.
The workflow runs for the inappropriate events▾
Chaque webhook de votre boutique déclenche le même déclencheur Shopify Flow. Ajoutez une condition basée sur l'identifiant du webhook comme première étape du workflow, ou affinez les événements que vous envoyez depuis Slack.
Les requêtes échouent avec le message « horodatage hors tolérance »▾
Slack appose un horodatage et l'application rejette tout événement datant de plus de 5 minutes. Il s'agit généralement d'un problème d'horloge du côté de l'expéditeur, ou d'une transmission que Slack a réessayé d'envoyer bien plus tard en conservant l'horodatage d'origine. Les tentatives de réenvoi issues d'une même requête d'origine ne peuvent pas être acceptées ; demandez à Slack d'envoyer un nouvel événement.
Connexes
- Vérification des webhooks signés - chaque prestataire que nous vérifions, et comment décrire ceux que nous ne vérifions pas.
- Mappage de la charge utile et variables de flux - extraire les champs appropriés de la payload et les transférer dans Shopify Flow.
- Protection contre les livraisons en double - Que se passe-t-il lorsque Slack tente à nouveau d'effectuer une livraison ?
- Historique et dépannage - le journal de chaque requête, avec possibilité de relecture.

