Whitelabeling: Theme Management for Meeting Rooms
Use the Meetings API to create custom themes with different colors, logos, and text. Themes can be applied to one room, a few rooms, or all the meeting rooms in your application.
Prerequisites
Vonage Developer Account: If you do not already have one, sign-up for a free account on the Vonage Developers Account.
Application ID and Secret: Once you’re logged in to the Vonage API Dashboard, click on Applications and create a new Application. Click
Generate public and private keyand record the private key. You'll be using the private key with the Application ID to Generate a JSON Web Token (JWT). For further details about JWTs, please see Authentication. Also ensure that the Meetings API is enabled for your application under 'Capabilities':

Create a Theme
https://api-eu.vonage.com/v1/meetings/themes
Body Content
The following fields can be assigned values in the POST request:
| Field | Required? | Description |
|---|---|---|
theme_name | No | The name of the theme (must be unique). If null, a UUID will automatically be generated. |
main_color | Yes | The main color that will be used for the meeting room. |
brand_text | Yes | The text that will appear on the meeting homepage, in the case that there is no brand image. |
short_company_url | No | The URL that will represent every meeting room with this theme (must be unique). |
Example Request
The following example will create a theme with orange as the main color and a display text of "Orange". The theme name is used internally and must be unique for each theme.
Example Response
Note that the null values represent theme images that can be added using the image management process. The URLs that will be generated once those images are uploaded.
Update a Theme
PATCH: https://api-eu.vonage.com/v1/meetings/themes/:theme_id
Theme properties that can be updated are the same as those that can be set upon create. All images must be added via the image management process.
To update properties, you'll need the theme_id and an object called update_details:
Example Request
Example Response
Get a Theme
https://api-eu.vonage.com/v1/meetings/themes/:theme_id
Send a
Example Request
This will return a generic Vonage::Response object.
The Vonage::Response object de-serializes the returned JSON data into Vonage::Entity objects, and provides getter methods for the top level properties of that JSON data, for example:
Example Response
Add a Theme to a Room
A theme can be applied to a Long Term room upon room creation or update.
Room Creation
https://api-eu.vonage.com/v1/meetings/rooms
This example will create a long term meeting room with the orange theme:
Room Update
PATCH: https://api-eu.vonage.com/v1/meetings/rooms/{ROOM_ID}
To update a room's theme, you'll need the theme_id and room ID:
Remove a Theme from a Room
PATCH: https://api-eu.vonage.com/v1/meetings/rooms/{ROOM_ID}
In order to remove a theme for a room, update the room using a PATCH request and the room ID. Update the theme_id with null to remove the theme and use the default theme instead.
Please note that only long term rooms can be updated.
Example Request
Set Theme as Default
PATCH: https://api-eu.vonage.com/v1/meetings/applications
A theme can be set as the default theme for the application, meaning that every room created will automatically use the default theme. To do this, first create a theme, and then add it as the default_theme_id in an object called update_details.
Example Request
Example Response
Delete a Theme
https://api-eu.vonage.com/v1/meetings/themes/{THEME_ID}
To delete a theme, send a DELETE request using the theme ID. Please note, a theme that is set to default or is currently in use by any room cannot be deleted, and will return an error.
In order to delete a theme that is in use, you must remove it from each room that is using it by finding all rooms using that theme and removing the theme.
Alternatively, if you wish to override and delete the theme without manually removing it, add a query parameter of force=true. The default theme will now be applied to all the rooms that were using this theme.
Get All Rooms with a Given Theme
https://api-eu.vonage.com/v1/meetings/themes/{THEME_ID}/rooms
To retrieve a list of rooms using a particular theme, send a
theme_id:Example Request
This will return an object of the Vonage::Meetings::Rooms::ListResponse class.
This class defines an each method, allowing you to iterate through the _embedded array returned in ther response. For example:
The class also includes Enumerable, so you can call any instance method from that module on the object. For example:
This will return a list of all rooms using this theme.