Send notifications to video call participants
- Sandbox: available
- Staging: available
- Production: unknown
Tells the participants of a video call Appointment that the call is active, and lets them join on their own. A Practitioner calls it when they start the call.
Auth: bearer token. The caller must be a Practitioner, an admin or a super admin, or hold the "System Owner" access policy. Scope: the caller's project (from the token).
Behaviour
- Creates the access permission for the Appointment: a
CommunicationRequestwith the caller as sender and every Appointment participant as recipient. If one already exists for the Appointment, it is replaced. - Patients need this permission to get a join link from
POST /video-call/livekit/user-access/{appointmentId}. - Queues a real-time event,
/video-call/livekit/notification/active-call, for each participant who is not already in the LiveKit room. The event carries the sender's name, the Appointment id, description, start and end. Connect to the Ovok events socket to receive it. - The route returns once the event is queued, not when it is delivered. The response is an
OperationOutcomewith severityinformation.
Example
curl -X POST 'https://api.sandbox.ovok.com/video-call/livekit/notification/active-call/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk'bearerAuthorizationBearer <JWT>appointmentId*stringAppointment ID.
uuidOutcome of process: Send notifications to video call participants.
application/json- response
resourceType?string"OperationOutcome"issue*array<>curl -X POST 'https://api.sandbox.ovok.com/video-call/livekit/notification/active-call/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "resourceType": "OperationOutcome", "issue": [ { "severity": "fatal", "code": "invalid", "details": { "text": "string" } } ]}Send emails: video call cancellation POST
Sends cancellation emails for a video call Appointment to the recipients you list. The route does not change the Appointment. **Auth:** bearer token. The caller must be a Practitioner, an admin or a super admin, or hold the "System Owner" access policy. **Scope:** the caller's project (from the token). ## Behaviour - `emailRecipients` takes 1 to 20 entries. Each has an `email` and a `profileRef` (`Practitioner/<id>` or `Patient/<id>`). Duplicate emails are dropped. - The caller is never emailed, even when listed. If no recipient is left, the route returns an empty `emailRecipientsResult`. - Cancellation emails need no TAN. - The email includes the Appointment title, the practitioner's name, start and end in CET. The `Origin` header of your request sets the app domain used in the email, and the request language sets its language. - Emails are sent one by one. A failed send does not fail the request. Check `isEmailSent` for each recipient. ## Example ```bash curl -X POST 'https://api.sandbox.ovok.com/video-call/livekit/mail/cancel' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' \ -H 'Content-Type: application/json' \ -d '{ "appointmentId": "c3499c27-2973-0a7f-807e-fb8676a92dcb", "emailRecipients": [{ "email": "max.mustermann@example.com", "profileRef": "Patient/c3499c27-2973-0a7f-807e-fb8676a92dcb" }] }' ```
List the project's wearable providers GET
Returns every cloud wearable provider ovok supports, and whether your current project has set each one up. It never returns a secret. **Auth:** bearer token of a project admin. The caller must also be a Practitioner, an admin or hold the System Owner access policy. **Scope:** the caller's project (from the token). ## Behaviour - `providers` lists `oura`, `whoop`, `strava`, `withings`, `polar`, `suunto`, `garmin` and `ultrahuman`. - `configured` is `true` when the project holds OAuth credentials for the provider that this server can read. Credentials stored with another key read as not configured; set them up again with `POST`. - `enabled` is `true` when the provider is configured and switched on. Only then can the project's patients connect it. - `clientId` is the OAuth client ID, or `null`. - `redirectUri` is the callback URL to register in the provider's developer portal, the same for every project. It is `null` when this server has no public base URL. - `webhookUrl` is where the provider sends notifications of new data, unique to the project. For Withings it ends in a per-project token that proves a notification's origin, so only admins see it; keep it private. Paste it where the provider's portal asks for one (Suunto). For Withings and Polar it is for information only: ovok registers it itself. It is `null` when the provider sends no notifications (Oura, Whoop, Strava, Garmin and Ultrahuman for now), is not set up, or this server has no public base URL. See `POST /v1/wearables/webhooks/<projectId>/<provider>`. - `webhookReady` is `true` when ovok holds the secret that checks the provider's notifications: Polar's signing key from its webhook setup, the secret ovok makes for Withings, or Suunto's `webhookSecret`. It is `false` until then, so a Polar webhook setup that failed shows here; save Polar again to retry. It is `null` when the provider sends no notifications. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/wearables/providers' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```