Comment connecter Calendly à Shopify Flow

Calendly envoie un Webhook lorsqu'une réunion est réservée ou annulée via l'un de vos types d'événements. « Workflow Webhooks » transforme cet appel en un déclencheur « **Shopify Flow **», afin que votre boutique puisse y réagir : attribuer une balise à un client, ajouter une note à une 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 : Calendly envoie une demande, Workflow Webhooks la reçoit et la vérifie, puis Shopify Flow effectue l'action requise. La signature HMAC de Calendly est vérifiée à chaque requête, de sorte que seul Calendly peut déclencher votre workflow.

Ce que vous pouvez construire

  • Balisez un client qui a pris rendez-vous pour une séance de conseil en style ou un entretien téléphonique, afin de pouvoir le classer par catégorie ultérieurement.
  • Veuillez ajouter une note client indiquant l'heure du rendez-vous avant que l'appel n'ait lieu.
  • Lorsque la réservation est enregistrée, envoyez par e-mail au collaborateur désigné l'historique des commandes du client sur Shopify.

Exemples d'événements à envoyer : invitee.created (réservé), invitee.canceled.

Avant de commencer

  • Workflow Webhooks installé sur votre boutique Shopify.
  • Shopify Flow installée, disponible gratuitement sur l'App Store de Shopify.
  • Un compte Calendly disposant des autorisations nécessaires pour créer des webhooks.

Étape 1 - Créez le webhook sur Workflow Webhooks

  1. Accédez à Workflow Webhooks -> Webhooks -> Créer un webhook et attribuez-lui un nom que vous pourrez reconnaître dans Shopify Flow, tel que Calendly events.
  2. Dans la section « Authentification », sélectionnez « HMAC ».
  3. Dans la section « Fournisseur de signature », sélectionnez Calendly. L'application remplit automatiquement les champs « en-tête », « algorithme », « payload signé » et « fenêtre de relecture » ; vous n'avez rien d'autre à configurer.
  4. Pour l'instant, ne renseignez pas le champ « secret » et cliquez sur « Enregistrer ». Copiez l'URL du webhook qui s'affiche 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 Calendly

Créez l'abonnement au webhook via l'API Calendly ou le portail des développeurs à l'aide de l'URL que vous avez copiée. La clé de signature est fournie une seule fois, lors de la création de l'abonnement.

Comment trouver votre clé de signature Calendly

La clé de signature fournie lors de la création de l'abonnement au webhook.

La documentation de Calendly 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 notification Calendly est vérifiée avant d’atteindre Shopify Flow.

Ce que cette vérification permet de vérifier

Quoi ? Valeur
En-tête de signature Calendly-Webhook-Signature
Emplacement de la signature Dans la valeur v1 de cet en-tête, qui contient des paires key=value séparées par des virgules
Ce qui est signé {timestamp}.{body}
Signature HMAC-SHA256, codé en hexadécimal
Horodatage La valeur de la variable t de l'en-tête de signature, exprimée en secondes Unix
Protection contre la relecture Les requêtes dont l'horodatage signé remonte à plus de 6 minutes sont rejetées
Le secret À utiliser sous forme de texte brut. Collez-le exactement tel que l'expéditeur l'a indiqué.

Dans la charge utile signée, {body} correspond au corps brut de la requête, octet par octet, et {timestamp} correspond à l'horodatage indiqué ci-dessus.

Toute requête qui ne respecte pas l'une de ces conditions est rejetée avec le message 401, est enregistrée dans Historique et dépannage et ne déclenche jamais de workflow.

Étape 3 - Créer le workflow Shopify Flow

  1. Dans « Shopify Flow », créez un workflow et sélectionnez le déclencheur « Workflow Webhooks ».
  2. Cliquez sur « Enregistrer les événements », puis envoyez un événement test depuis Calendly (ou utilisez l'option « Envoyer un test » dans Workflow Webhooks) afin que Shopify Flow apprenne la structure de vos données.
  3. Chaque webhook dont vous disposez déclenche le même déclencheur de Shopify Flow ; veuillez donc ajouter une première condition sur l'identifiant du webhook afin de limiter ce workflow à Calendly uniquement. L'identifiant est indiqué sur la page du webhook.
  4. Ajoutez vos actions : identifiez un client, ajoutez une note, envoyez un e-mail interne, mettez à jour un métachamp.
Shopify Flow
Dans Shopify Flow, sélectionnez « Select a trigger », ouvrez Workflow Webhooks et choisissez « Webhook Trigger ».
Condition de Shopify Flow : l'identifiant du webhook est identique à l'identifiant d'un webhook
La première étape de chaque workflow : une condition portant sur l'identifiant du webhook, afin que le workflow ne s'exécute que pour ce webhook.
Le workflow final : déclencheur Webhook, une condition sur l'identifiant du webhook, puis envoi d'un e-mail interne sur la branche « True »
Le workflow final : un déclencheur, une condition basée sur l'identifiant du webhook, puis votre action sur la branche « True ».

Étape 4 - Testez-le de bout en bout

Déclenchez un événement réel dans Calendly. Sous « Workflow Webhooks » -> « Historique », vous devriez voir l'appel avec le statut « Succès ». 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é.

Une requête s'est ouverte dans l'historique avec ses en-têtes de requête, sa payload, son statut, sa durée et ses identifiants
Un événement « livré » dans « History » : le statut « Success » signifie que Shopify Flow l'a accepté.
La signature ne correspond pas▾

Dans cette commande : le secret (la cause la plus courante : 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 Calendly 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 un code 401 à chaque requête▾

Vérifiez que l'authentification du webhook est configurée sur HMAC avec le fournisseur Calendly sélectionné, que le secret est renseigné et que Calendly envoie ses requêtes à l'URL exactement telle qu'elle est indiquée dans l'application, y compris le code à la fin.

Rien n'apparaît dans l'historique▾

La requête n'est jamais parvenue à destination. Vérifiez à nouveau l'URL dans Calendly et consultez le journal de livraison de Calendly pour connaître la réponse reçue. Un message 404 indique un webhook incorrect ou supprimé ; un message 429 signifie que vous avez dépassé la limite d'appels de votre forfait - voir Forfaits et utilisation.

Le workflow s'exécute pour des événements inappropriés▾

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 Calendly.

Les requêtes échouent avec le message « horodatage hors tolérance »▾

Calendly appose un horodatage et l'application rejette tout message datant de plus de 6 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 Calendly a réessayé d'envoyer bien plus tard en conservant l'horodatage d'origine. Les nouvelles tentatives issues de la même requête d'origine ne peuvent pas aboutir ; demandez à Calendly d'envoyer un nouvel événement.

Connexes