- Setting up your public app with video conference extension webhooks. You’ll configure your app with the URIs that HubSpot will use to notify you when meetings are being created, updated, or deleted.
- Setting up a custom back-end to handle meeting creation and update webhooks.
- If needed, setting up your back-end to handle user identify verification webhooks.
hapikey query parameter at the end of the request URL. You can find your developer API key in your developer account.
Prerequisites
Before getting started, ensure you’ve created a developer account and a public app within it.Configure webhook URLs
So that HubSpot knows where to send notifications when meetings are created, updated, or deleted, you’ll first configure the extension’s webhook URLs. To do so, make aPUT request to /crm/v3/extensions/videoconferencing/settings/{appId}?hapikey=YOUR_HUBSPOT_DEVELOPER_API_KEY.
In the request body, you’ll need to include the createMeetingUrl field to set the URL that HubSpot will send meeting creation webhook payloads. You can optionally include additional webhook URLs. These values can be updated later using the same request URL.
Example Response:
Retrieve webhook URLs
To retrieve webhook URLs configured for an existing app, make aGET request to /crm/v3/extensions/videoconferencing/settings/{appId}.
The response will include the currently configured webhook URLs.
Webhook payloads
Once webhook URLs are configured, HubSpot will send payloads to those URLs when a meeting create, update, or delete event occurs.All webhooks sent by HubSpot are HMAC signed using your app’s secret. You can learn more about this in the webhooks security documentation (the rest of the page does not apply to these video conference extension webhooks).
Create meeting webhook
When a meeting is created, HubSpot will send a request to the URL specified in thecreateMeetingUrl field. The request payload includes information about the HubSpot account, associated HubSpot user, and meeting details.
To successfully handle this webhook, you should generate a video conference for this meeting (or link it to an existing conference line), and respond with information about this conference. The fields expected in the response are:
conferenceId: a unique ID associated with the conference on this event. This ID needs to be globally unique within your system. HubSpot will return this ID back to you in the update webhook.conferenceUrl:the URL that users can use to join the conference.conferenceDetails: plain text invitation information. This should describe how attendees of the event can access the video conference for this event. Newlines will be maintained in representations of this text, but no other formatting is supported.
Update meeting webhook
If you’ve specified aupdateMeetingUrl , HubSpot will send this URI a request whenever a meeting’s relevant details have changed. This notification is necessary if you need to maintain the most up-to date topic or times for a video conference. The request payload includes information about the HubSpot account, associated HubSpot user, and meeting details.
No response body is required when responding to these requests. Only a
200 or 204 response code is required to let HubSpot know that this webhook was been received successfully.
Deleted meeting webhook
When a meeting is deleted in HubSpot, a request will be sent to the URL specified in thedeleteMeetingUrl field. The payload will include the conferenceId of the deleted meeting.
200 or 204 response code is required to let HubSpot know that this webhook was been received successfully.
User verification webhook
HubSpot’s systems will always communicate with you about its users in terms of their HubSpot user ID and their HubSpot account email address. There is a chance that a user in HubSpot’s system may exist in your system with a different email address or identifier. Before HubSpot makes a call to your system to create, update, or delete a video conference link, it will first check the app’s settings for auserVerifyUrl field. If that URL has been set, HubSpot will make a call to it to retrieve your native user identifier. It will then send that identifier as the user’s email address in the subsequent call. If you do not configure this URL, HubSpot will always assume that the user’s identity is verified.
This setting is optional and is up to you to determine if it’s needed. If you need to maintain a user mapping within your system, you may wish to simply map the HubSpot user ID or email to your internal user ID on each call.
The payload for this webhook contains the HubSpot account ID and the user’s email address.
200 response or any error code (404 would be appropriate). If you return a 200, you should return a payload containing the new ID that we should use in place of the email address: