Dernière modification : 22 août 2025

Run in Postman

À l’aide de l’API de vidéoconférence, vous pouvez configurer une application publique pour donner aux utilisateurs HubSpot la possibilité d’ajouter un lien de vidéoconférence lors de la création d’une réunion, similaire à l’intégration Google Meet et Zoom. L’utilisation de cette API comprend les étapes suivantes :
  1. Configuration de votre application publique avec des webhooks d’extension de vidéoconférence. Vous fournirez des URI que HubSpot utilisera pour vous informer lorsque les clients créent, mettent à jour ou suppriment des réunions.
  2. Configuration d’un back-end personnalisé pour gérer la création de réunions et la mise à jour des webhooks.
  3. Si nécessaire, configuration de votre back-end pour gérer les webhooks de vérification d’identité des utilisateurs.
Toutes les demandes à l’API de vidéoconférence doivent être authentifiées à l’aide de la clé d’API développeur de votre compte de développeur. Vous pouvez inclure la clé dans un paramètre de requête hapikey à la fin de l’URL de la requête. Vous trouverez votre clé d’API de développeur dans votre compte développeur.

Conditions préalables

Avant de commencer, assurez-vous d’avoir créé un compte de développeur et une application publique dans celui-ci.

Configurer les URL de webhook

Pour que HubSpot sache où envoyer des notifications lorsque des réunions sont créées, mises à jour ou supprimées, vous devez tout d’abord configurer les URL de webhook de l’extension. Pour ce faire, effectuez une demande PUT à /crm/v3/extensions/videoconferencing/settings/{appId}?hapikey=YOUR_HUBSPOT_DEVELOPER_API_KEY. Dans le corps de la demande, vous devrez inclure le champ createMeetingUrl pour définir l’URL que HubSpot enverra aux charges utiles du webhook de création de réunions. Vous pouvez éventuellement inclure des URL de webhook supplémentaires. Ces valeurs peuvent être mises à jour ultérieurement avec la même URL de requête.
// Example request

{
  "createMeetingUrl": "https://example.com/create-meeting",
  "updateMeetingUrl": "https://example.com/update-meeting",
  "deleteMeetingUrl": "https://example.com/delete-meeting"
}
ChampTypeDescription
createMeetingUrlObligatoireL’URL que HubSpot notifiera lorsqu’une nouvelle réunion sera créée. Il s’agira notamment d’une charge utile JSON contenant les détails de la réunion. L’URL doit utiliser le protocole https.
updateMeetingUrlChaîneL’URL que HubSpot notifiera quand une réunion existante sera mise à jour. Cela inclura une charge utile JSON avec les détails de la réunion mis à jour. L’URL doit utiliser le protocole https.
deleteMeetingUrlChaîneL’URL que HubSpot notifiera quand une réunion existante sera supprimée. Cela inclura une conferenceId des réunions supprimées. L’URL doit utiliser le protocole https.
userVerifyUrlChaîneL’URL que HubSpot utilisera pour vérifier que l’utilisateur existe dans le système de visioconférence externe.
Exemple de réponse :
// Example 200 response
{
  "createMeetingUrl": "https://example.com/create-meeting",
  "updateMeetingUrl": "https://example.com/update-meeting",
  "deleteMeetingUrl": "https://example.com/delete-meeting"
}

Récupérer les URL de webhook

Pour récupérer les URL de webhook configurées pour une application existante, effectuez une demande GET à /crm/v3/extensions/videoconferencing/settings/{appId}. La réponse comprendra les URL de webhook actuellement configurées.
// Example 200 response
{
  "createMeetingUrl": "https://example.com/create-meeting",
  "updateMeetingUrl": "https://example.com/update- meeting",
  "deleteMeetingUrl": "https://example.com/delete-meeting",
  "userVerifyUrl": "https://example.com/user-verify"
}

Charges utiles de webhook

Une fois les URL de webhook configurées, HubSpot enverra des charges utiles à ces URL lorsqu’un événement de création, de mise à jour ou de suppression de réunion se produira.
Tous les webhooks envoyés par HubSpot sont signés en HMAC avec le secret de votre application. Vous pouvez en savoir plus à ce sujet dans la documentation sur la sécurité des webhooks (le reste de la page ne s’applique pas à ces webhooks d’extension de vidéoconférence).

Créer un webhook de réunion

Lorsqu’une réunion est créée, HubSpot enverra une demande l’URL indiquée dans le champ createMeetingUrl. La charge utile de la demande comprend des informations sur le compte HubSpot, l’utilisateur HubSpot associé et les détails de la réunion.
// Example payload
{
  "portalId": 123123,
  "userId": 123,
  "userEmail": "test.user@example.com",
  "topic": "A Test Meeting",
  "source": "MEETINGS",
  "startTime": 1534197600000,
  "endTime": 1534201200000
}
ChampTypeDescription
portalIdNombreL’ID du compte HubSpot d’où provient la demande.
userIdNombreL’ID de l’utilisateur HubSpot auquel la réunion est attribuée.
userEmailChaîneL’adresse e-mail de l’utilisateur HubSpot attribuée à la réunion.
topicChaîneLe titre de la réunion.
sourceChaînePermet d’indiquer l’endroit où la réunion a été créée. Peut être soit :
  • MEETINGS : la réunion a été créée à partir d’une page de planification de réunions.
  • MANUAL : la réunion a été créée manuellement à partir d’une fiche d’informations du CRM.
startTimeNombreL’heure de début de la réunion (en millisecondes epoch).
endTimeNombreL’heure de fin de la réunion (en millisecondes epoch).
Pour gérer ce webhook, vous devez générer une vidéoconférence pour cette réunion (ou le lien vers une ligne de conférence existante) et répondre avec des informations concernant cette conférence. Les champs indiqués dans la réponse sont les suivants :
  • conferenceId : un identifiant unique associé à la conférence sur cet événement. Cet ID doit être globalement unique dans votre système. HubSpot renverra cet ID dans le webhook de mise à jour.
  • conferenceUrl: l’URL que les utilisateurs peuvent utiliser pour rejoindre la conférence.
  • conferenceDetails : des informations d’invitation en texte brut. Elles doivent décrire l’accès des participants à l’événement à la vidéoconférence pour cet événement. Les nouvelles lignes seront conservées dans les représentations de ce texte, mais aucune autre mise en forme n’est prise en charge.
Par exemple, votre réponse pourrait ressembler à ce qui suit :
//example response
{
  "conferenceId": "some-unique-id",
  "conferenceUrl": "https://example.com/join",
  "conferenceDetails": "Click here to join: https://example.com/join"
}

Mettre à jour le webhook de réunion

Si vous avez défini une valeur updateMeetingUrl, HubSpot enverra à cet URI une demande en cas de modification de détails pertinents de la réunion. Cette notification est nécessaire si vous devez mettre à jour le sujet ou les heures d’une vidéoconférence. La charge utile de la demande comprend des informations sur le compte HubSpot, l’utilisateur HubSpot associé et les détails de la réunion.
//example request
{
  "conferenceId": "some-unique-id",
  "userId": 123,
  "userEmail": "test.user@example.com",
  "portalId": 123123,
  "topic": "A Test Meeting (updated)",
  "startTime": 1534197600000,
  "endTime": 1534201200000
}
ChampTypeDescription
conferenceIdChaîneL’identifiant unique de la conférence fournie par votre intégration dans la réponse au webhook de création de réunion.
userIdNombreL’ID de l’utilisateur HubSpot auquel la réunion est attribuée. Il s’agira toujours du même utilisateur que celui figurant dans la charge utile de création de réunion.
userEmailChaîneL’adresse e-mail de l’utilisateur HubSpot attribuée à la réunion. Il s’agira toujours du même utilisateur que celui figurant dans la charge utile de création de réunion.
portalIdNombreL’ID du compte HubSpot d’où provient la demande.
topicChaîneLe titre de la réunion.
startTimeNombreL’heure de début de la réunion (en millisecondes epoch).
endTimeNombreL’heure de fin de la réunion (en millisecondes epoch).
Aucun corps de réponse n’est requis lors de la réponse à ces demandes. Seul un code de réponse 200 ou 204 est requis pour que HubSpot sache que ce webhook a bien été reçu.

Supprimer le webhook de réunion

Lorsqu’une réunion est supprimée dans HubSpot, une demande sera envoyée à l’URL spécifiée dans le champ deleteMeetingUrl. La charge utile comprendra le conferenceId de la réunion supprimée.
// Example payload
{
  "conferenceId": "some-unique-id"
}
Aucun corps de réponse n’est requis lors de la réponse à ces demandes. Seul un code de réponse 200 ou 204 est requis pour que HubSpot sache que ce webhook a bien été reçu.

Webhook de vérification de l’utilisateur

Les systèmes HubSpot communiqueront toujours avec vous sur les utilisateurs concernant leurs ID d’utilisateur HubSpot et leurs adresses e-mail de compte HubSpot. Il est possible qu’un utilisateur dans le système HubSpot existe dans votre système avec une adresse e-mail ou un identifiant différent. Avant de passer un appel à votre système pour créer, mettre à jour ou supprimer un lien de vidéoconférence, HubSpot vérifiera d’abord les paramètres de l’application pour un champ userVerifyUrl. Si cette URL a été définie, HubSpot l’appellera pour récupérer votre identifiant d’utilisateur natif. Il enverra ensuite cet identifiant en tant qu’adresse e-mail de l’utilisateur lors de l’appel suivant. Si vous ne configurez pas cette URL, HubSpot supposera que l’identité de l’utilisateur est vérifiée. Ce paramètre est facultatif et vous pouvez déterminer s’il est nécessaire. Si vous devez mettre à jour un mappage d’utilisateur dans votre système, vous pouvez simplement mapper l’ID d’utilisateur ou l’adresse e-mail à votre ID d’utilisateur interne sur chaque appel. La charge utile pour ce webhook contient l’ID du compte HubSpot et l’adresse e-mail de l’utilisateur.
//example request
{
  "portalId": 123123,
  "userEmail": "test.user@example.com"
}
Vous pouvez renvoyer une réponse 200 ou tout autre code d’erreur (404 serait approprié). Si vous renvoyez une erreur 200, vous devriez renvoyer une charge utile contenant le nouvel ID que nous utilisons au lieu de l’adresse e-mail :
//example response
{
  "id": "any-string-id"
}