Skip to main content

Customizing our Web and Desktop App

info

manifest.json files should be served using a CORS-enabled http server.

The Possibilities

Apps plugins allow many great ways to extend the interface. Here's a quick summary, scroll down for more information.

  • Add new pages/sections
  • Extend existing pages with new tabs
  • Extend Settings pannel
  • Run code logic inside a background script

Adding tabs in the main page

App configuration

To create a new tab in the main screen, add a staticTabs in your manifest with a generalTab context :

"staticTabs": [
{
"entityId": "my id",
"context": [
"generalTab"
],
"name": "My label",
"contentUrl": "https://my-websit/content.html"
}
],

When the user clicks on the tab, the contentUrl will be loaded.

Adding tabs in the sidebar

App configuration (small)

To create a new tab in the main screen, add a staticTabs in your manifest with a sidebarTab context :

"staticTabs": [
{
"entityId": "my id",
"context": [
"sidebarTab"
],
"name": "My label",
"contentUrl": "https://my-websit/content.html",
"icon": "https://example.com/assets/icon.svg"
}
],

The icon should be a white svg file for better results.

When the user clicks on the tab, the contentUrl will be loaded.

Adding tabs for a contact

App configuration

To create a new tab in the main screen, add a staticTabs in your manifest with a contactTab context :

"staticTabs": [
{
"entityId": "my id",
"context": [
"contactTab"
],
"name": "My label",
"contentUrl": "https://my-websit/content.html"
}
],

When the user clicks on the tab, the contentUrl will be loaded.

Adding tabs in the phonebook

App configuration

To create a new tab in the main screen, add a staticTabs in your manifest with a phonebookTab context :

"staticTabs": [
{
"entityId": "my id",
"context": [
"phonebookTab"
],
"name": "My label",
"contentUrl": "https://my-websit/content.html"
}
],

When the user clicks on the tab, the contentUrl will be loaded.

Adding tabs in the setting menu

App configuration

To create a new tab in the settings menu, add a staticTabs in your manifest with a settingsTab context :

"staticTabs": [
{
"entityId": "settings-tab",
"context": [
"settingsTab"
],
"position": 101,
"name": "My settings",
"contentUrl": "./tab.html",
"icon": "./tab.svg"
}
]

You can define the menu item's position using the position attributes. Existing positions in the application are :

PositionName
100Media Settings
200Notifications
300Call Forwarding
400Integrations
500Connection
600Language
700Country
800Shortcuts
900:Switchboard
1000Divider
1100Update App
1200About

Your menu will be ordered depending on the position value.

When the user clicks on the tab, the contentUrl will be loaded.

Adding a custom panel inside the setting menu

App configuration

To create a new tab in the settings menu, add a staticTabs in your manifest with a innerSettingsTab context :

"staticTabs": [
{
"entityId": "settings-tab",
"context": [
"innerSettingsTab"
],
"position": 101,
"name": "My settings",
"contentUrl": "./tab.html",
"icon": "./tab.svg"
}
]

Please refer to the documentation of settingsTab about the position attribute.

Adding a background script

You can add custom code when the user is not using a custom tab. It can be useful to handle incoming calls, or other events.

"backgroundScript": "https://my-website/background.js"

Please refer to the SDK documentation to know how to inject custom code in the application.**

The background script is always running, even when the user is logged out. Please make sure to remove all related background tasks when the onLogout listener event is fired.