Menu de la documentation

Calendly : vos réservations

Faites entrer dans Mailcheer les personnes qui réservent sur Calendly : jeton d'accès, abonnement webhook, réservation d'essai et choix des champs.

Quand quelqu'un réserve un rendez-vous sur votre page Calendly, Calendly peut envoyer les détails de la réservation à une adresse web de votre choix : c'est un abonnement webhook, déclenché par l'événement invitee.created. Branché sur votre adresse de réception Mailcheer, il fait entrer chaque personne qui réserve dans vos contacts.

Chez Calendly, un abonnement webhook se crée par l'API, comme l'indique son centre d'aide. Concrètement : un jeton à générer dans Calendly, puis deux commandes à copier-coller dans un terminal. Tout est détaillé ci-dessous.

Avant de commencer

  • Une adresse de réception Mailcheer. Dans Mailcheer, ouvrez Intégrations → Faire entrer des contacts et cliquez sur « Créer une adresse de réception ». Mailcheer vous donne une adresse de la forme https://mailcheer.com/api/in/<jeton>. C'est un secret : ne la publiez nulle part, car quiconque la connaît peut y envoyer des données.
  • Une offre Calendly qui inclut les webhooks. D'après le centre d'aide de Calendly : Professional, Standard, Standard Plus, Teams, Teams Plus et Enterprise.
  • Un terminal, pour coller deux commandes curl.

Un mot sur le consentement

Une personne qui réserve un rendez-vous n'a pas forcément accepté de recevoir vos newsletters. N'y faites entrer que des personnes qui ont accepté de recevoir vos e-mails. Le double opt-in (un e-mail de confirmation) est activé par défaut dans Mailcheer.

1. Créez un jeton d'accès personnel

Le jeton prouve à Calendly que les commandes viennent de vous.

  1. Connectez-vous à Calendly et ouvrez la page Integrations.
  2. Choisissez la tuile « API & Webhooks ».
  3. Sous « Personal Access Tokens », cliquez sur « Get a token now ». Si vous avez déjà un jeton, cliquez sur « Generate new token » sous « Your personal access tokens ».
  4. Dans « Create your personal access token », donnez-lui un nom reconnaissable, par exemple « Mailcheer ».
  5. Choisissez ses autorisations (les scopes) : users:read, webhooks:write et scheduled_events:read. Un nouveau jeton n'a accès à rien tant que ses autorisations ne sont pas demandées.
  6. Cliquez sur « Create Token », puis sur « Copy token ».

Calendly ne conserve pas le jeton et ne pourra plus vous l'afficher : copiez-le tout de suite et gardez-le comme un mot de passe.

À quoi sert chaque autorisation :

AutorisationCe qu'elle permet ici
users:readLire vos identifiants Calendly (étape 2).
webhooks:writeCréer l'abonnement webhook (étape 3).
scheduled_events:readRecevoir l'événement invitee.created.

2. Trouvez vos identifiants Calendly

L'abonnement a besoin de deux adresses qui vous identifient chez Calendly : la vôtre (l'utilisateur) et celle de votre organisation. Collez cette commande dans un terminal, après avoir remplacé <votre jeton Calendly> :

curl --request GET \
  --url https://api.calendly.com/users/me \
  --header 'Authorization: Bearer <votre jeton Calendly>'
  • --request GET : on demande une information, sans rien modifier.
  • --url …/users/me : l'adresse de l'API qui décrit votre propre compte.
  • --header 'Authorization: Bearer …' : votre jeton, qui prouve que c'est vous.

Dans la réponse, sous resource, notez deux valeurs :

  • uri : votre identifiant d'utilisateur, de la forme https://api.calendly.com/users/… ;
  • current_organization : l'identifiant de votre organisation, de la forme https://api.calendly.com/organizations/….

3. Créez l'abonnement webhook

Remplacez les quatre valeurs entre < >, puis collez la commande dans le terminal :

curl --request POST \
  --url https://api.calendly.com/webhook_subscriptions \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer <votre jeton Calendly>' \
  --data '{
    "url": "<votre adresse de réception Mailcheer>",
    "events": ["invitee.created"],
    "organization": "<la valeur de current_organization>",
    "user": "<la valeur de uri>",
    "scope": "user"
  }'

Ligne par ligne :

  • --request POST : on demande à Calendly de créer quelque chose.
  • --url …/webhook_subscriptions : l'adresse de l'API qui crée les abonnements webhook.
  • Content-Type: application/json : ce qu'on envoie est rédigé en JSON.
  • Authorization: Bearer … : votre jeton, comme à l'étape 2.
  • "url" : l'adresse où Calendly enverra chaque réservation, c'est-à-dire votre adresse de réception Mailcheer.
  • "events" : invitee.created, l'événement « quelqu'un vient de réserver ».
  • "organization" et "user" : les deux valeurs notées à l'étape 2.
  • "scope": "user" : l'abonnement ne concerne que vos propres rendez-vous.

Si vous êtes propriétaire ou administrateur d'une organisation Calendly et voulez les réservations de toute l'équipe, remplacez "user" par "organization" dans la ligne scope, et supprimez la ligne "user".

Calendly répond avec l'abonnement créé. Vérifiez que state vaut active.

4. Faites une réservation d'essai

Calendly n'envoie rien pour les réservations passées : il faut une nouvelle réservation. Réservez vous-même un créneau sur votre page Calendly, avec une adresse e-mail à vous. Vous pourrez annuler ce rendez-vous ensuite.

Calendly demande une réponse rapide à chaque envoi. Mailcheer répond tout de suite et traite la réservation ensuite.

5. Choisissez les champs dans Mailcheer

Revenez sur votre adresse de réception dans Mailcheer : elle affiche ce qu'elle a reçu, avec la liste des champs trouvés.

Calendly envoie event (qui vaut invitee.created), created_at, created_by et payload, qui décrit la personne. Dans payload, la documentation de Calendly place :

  • l'adresse e-mail dans email (chemin complet : payload.email) ;
  • le nom complet dans name ;
  • le prénom et le nom dans first_name et last_name, remplis seulement si votre type d'événement demande le prénom et le nom dans deux champs séparés (vides sinon) ;
  • les réponses aux questions de votre formulaire de réservation dans questions_and_answers.

Choisissez ensuite, en cliquant :

  • le champ qui contient l'e-mail (obligatoire) ;
  • le prénom et le nom, si vous le souhaitez ;
  • les étiquettes : fixes (par exemple rdv-calendly) ou tirées d'un champ ;
  • le double opt-in, activé par défaut ;
  • l'automatisation à déclencher, si vous en avez une.

Pour importer les personnes qui avaient réservé avant, passez par un fichier : voir Importer vos contacts.

Si ça ne marche pas

La commande de l'étape 3 renvoie une erreur.

Réponse de CalendlyCe que ça veut dire
401Le jeton n'est pas reconnu : vérifiez qu'il a été collé en entier, juste après le mot Bearer et une espace.
403 avec « Please upgrade your Calendly account to Standard »Votre offre Calendly n'inclut pas les webhooks.
403 avec « Insufficient scope »Le jeton n'a pas les autorisations nécessaires : créez-en un nouveau avec users:read, webhooks:write et scheduled_events:read.
409Un abonnement identique existe déjà.

Rien n'arrive dans Mailcheer après une réservation.

  • Vérifiez que la réservation a été faite après la création de l'abonnement.
  • Avec "scope": "user", seules vos propres réservations sont envoyées.
  • Si les envois échouent pendant 24 heures, Calendly désactive l'abonnement (state passe à disabled) : il faut alors le recréer avec la commande de l'étape 3. L'API de Calendly permet de lister vos abonnements et de voir leur état.

Sources