Whitelabel Instanzen können so konfiguriert werden, dass Sie von Drittservices implementierte Webhooks aufrufen, sobald ein gewisses Ereignis geschieht. Zum Beispiel kann ein Drittservice jedes mal darüber informiert werden, wenn eine neue Sitzung im System geplant wurde. Webhooks können unter "Webhooks" in den Systemeinstellungen konfiguriert werden.
Das System implementiert die folgenden Webhooks:
onMeetingScheduled
: Wird aufgerufen, sobald eine Sitzung geplant wurdeonMeetingUpdated
: Wird aufgerufen, sobald eine Sitzung aktualisiert wurdeonMeetingClosed
: Wird aufgerufen, sobald eine Sitzung geschlossen wurdeonMeetingDeleted
: Wird aufgerufen, sobald eine Sitzung gelöscht wurdeonMeetingSummaryCreated
: Wird aufgerufen, sobald eine Sitzungszusammefassung erstellt wurde.onMeetingRecordingCreated
: Wird aufgerufen, sobald eine Sitzungsaufzeichnung verfügbar ist.onMeetingJoined
: Wird aufgerufen, sobald eine Person den Sitzungsraum betritt.onMeetingLeft
: Wird aufgerufen, sobald eine Person den Sitzungsraum verlässt.Der Webhook Service kann entweder auf HTTP POST oder HTTP PUT Aufrufe hören. Jeder Webhook kann individuell konfiguriert werden.
Jeder Webhook kann mit einem individuelle API Schlüssel konfiguriert werden, welcher bei jedem Webhook Aufruf als X-API-KEY
im HTTP Header mitgesendet wird.
Die Webhooks onMeetingScheduled
, onMeetingUpdated
und onMeetingClosed
werden mit einem Sitzungsobjekt als JSON aufgerufen:
{
"invitedParticipants": [],
"meetingId": "9974-7653-8886-0485",
"id": "5e945c36b863b82cefdddf54",
"topic": "My Meeting Topic",
"startTime": "2024-04-07T09:00:00.000Z",
"endTime": "2024-04-07T10:00:00.000Z",
"duration": "60",
"type": "standard",
"roomId": "5e9459c5b863b82cefdddf50",
"isRecurring": false,
"isDialin": false,
"recurring": {
"frequencyType": "",
"frequency": null,
"monthlyPattern": "",
"endsType": "",
"endsOn": "2024-04-13T12:18:07.211Z",
"endsAfter": 0
},
"isRecorded": false,
"agenda": "",
"documents": [],
"meetingPermissionId": null,
"videoResolution": "standard",
"dtClosedAt": null,
"whitelabelId": "5c737902b377b0f7fbf81fce",
"addedByUserId": "5e9459c5b863b82cefdddf4e",
"addedByUserEmail": "test-user@example.com",
"accountId": "5e9459c5b863b82cefdddf4f",
"addedByUserName": "Test User",
"timezone": "Europe/Zurich",
"privateDataVisible": true,
"icalSequence": "0",
"icsToken": "c89f842f-3295-4bf9-807d-a46841fbc2ec-25f722e4-70fc-4163-9cda-b4b7d8aec358",
"isActive": false,
"isClosed": true,
"isOpen": false,
"dialInConferenceRoom": null,
"dialInNumbers": [],
"dialInPin": null,
"sipProxy": null,
"sipDomain": null,
"isDemo": false,
"isPromo": false
}
Der Webhook onMeetingDeleted
wird mit einem Array von Meeting Objekten aufgerufen (es kann sein, dass mehrere Sitzungen gleichzeitig gelöscht wurden).
[
{
"invitedParticipants": [],
"meetingId": "9974-7653-8886-0485",
"id": "5e945c36b863b82cefdddf54",
"topic": "My Meeting Topic",
"startTime": "2024-04-07T09:00:00.000Z",
"endTime": "2024-04-07T10:00:00.000Z",
"duration": "60",
"type": "standard",
"roomId": "5e9459c5b863b82cefdddf50",
"isRecurring": false,
"isDialin": false,
"recurring": {
"frequencyType": "",
"frequency": null,
"monthlyPattern": "",
"endsType": "",
"endsOn": "2024-04-13T12:18:07.211Z",
"endsAfter": 0
},
"isRecorded": false,
"agenda": "",
"documents": [],
"meetingPermissionId": null,
"videoResolution": "standard",
"dtClosedAt": null,
"whitelabelId": "5c737902b377b0f7fbf81fce",
"addedByUserId": "5e9459c5b863b82cefdddf4e",
"addedByUserEmail": "test-user@example.com",
"accountId": "5e9459c5b863b82cefdddf4f",
"addedByUserName": "Test User",
"timezone": "Europe/Zurich",
"privateDataVisible": true,
"icalSequence": "0",
"icsToken": "c89f842f-3295-4bf9-807d-a46841fbc2ec-25f722e4-70fc-4163-9cda-b4b7d8aec358",
"isActive": false,
"isClosed": true,
"isOpen": false,
"dialInConferenceRoom": null,
"dialInNumbers": [],
"dialInPin": null,
"sipProxy": null,
"sipDomain": null,
"isDemo": false,
"isPromo": false
}
]
Der Webhook onMeetingSummaryCreated
wird mit einem MeetingSummary Objekt im JSON Format aufgerufen:
{
"responseCode": 0,
"data": {
"id": "5f7d49eb62e8f9a43b23f986",
"meetingId": "5f7d49e662e8f9a43b23f983",
"meetingType": "boardroom",
"agenda": "",
"minutes": "",
"participants": [
{
"name": "Participant 1",
"durations": [
{
"action": "joined",
"timestamp": 1602046445811
},
{
"action": "left",
"timestamp": 1602046670808
},
{
"action": "joined",
"timestamp": 1602047908378
},
{
"action": "left",
"timestamp": 1602048304208
}
],
"info": {
"browserVersion": "82.0.4062.0",
"browserName": "Chrome",
"osName": "macOS",
"osVersion": "10.15.6",
"platformType": "desktop",
"platformVendor": "Apple"
}
},
{
"name": "Participant 2",
"durations": [
{
"action": "joined",
"timestamp": 1602046456329
},
{
"action": "left",
"timestamp": 1602046669443
}
],
"info": {
"browserVersion": "82.0.4062.0",
"browserName": "Chrome",
"osName": "macOS",
"osVersion": "10.15.6",
"platformType": "desktop",
"platformVendor": "Apple"
}
}
],
"documents": [],
"pdf": null,
"dayTimestamp": 1602021600000,
"accountId": "5c73790ab377b0f7fbf81fde",
"isNamedRoom": false,
"isRecordingPrepared": false,
"sfuHostname": "ch-01-sfu-02.wlvmr.net",
"meetingQuestions": [],
"meetingConversationDuration": 25,
"meetingConversationStartToEndDuration": 25,
"meetingParticipantsStartToEndDuration": 35,
"meetingStartToEndDuration": 60,
}
}
Die Parameter meetingConversationDuration
, meetingConversationStartToEndDuration
, meetingParticipantsStartToEndDuration
und meetingStartToEndDuration
sind wie folgt definiert:
Parameter Name | Parameter Typ | Beschreibung |
---|---|---|
meetingConversationDuration | Zahl | Dauer während welcher mindestens zwei Personen gleichzeitig im Raum waren, in Sekunden |
meetingConversationStartToEndDuration | Zahl | Dauer vom Zeitpunkt, als zum ersten Mal zwei Teilnehmer gleichzeitig im Raum waren bis zum Zeitpunkt, als zum letzten Mal zwei Teilnehmer gleichzeitig im Raum waren, in Sekunden |
meetingParticipantsStartToEndDuration | Zahl | Duration vom Zeitpunkt, als die erste Person den Raum betrat bis zum Zeitpunkt, als die letzte Person den Raum verlassen hat, in Sekunden |
meetingStartToEndDuration | Zahl | Die gesamte, geplante Zeit der Sitzung, inklusive allfälliger Verlängerungen |
Der Webhook onMeetingRecordingCreated
wird mit einem MeetingRecordingPrepared Objekt im JSON Format aufgerufen:
{
"meetingId": "5e945c36b863b82cefdddf54",
"meetingSummaryId": "5f48a701ee0c388a879bffa7",
"meetingToken": "f7140700-310e-46b8-9813-be0cb0e6b59c",
"mergedRecordingUrl": "https://..../<merged-file>.webm",
"recordingUrls": [
"video-file-1.webm",
"video-file-2.webm",
"video-file-3.webm"
]
}
Die Webhooks onMeetingJoined
und onMeetingLeft
werden mit einem MeetingParticipantsStatus Objekt im JSON Format aufgerufen:
{
"meetingId": "5df78199c015b37195230596",
"meetingToken": "0000-0000-0000-0000",
"participant": {
"participantName": "Joe Doe",
"participantEmail": "joe@example.com",
"participantMeetingUUID": "4edaf0d2-cb6c-42f1-a266-4ae7d971f2e6",
"isModerator": false
},
"totalNumberOfGuests": 3,
"totalNumberOfModerators": 1
}
Sprechen Sie mit unserem Team über Ihre Pläne.