Skip to content
Voxbi Cockpit APIs
API Guides

Integrations

An integration is a configured connection between your PBX and an external service. It is mostly infrastructural plumbing and rarely affects inbound callers directly.

Overview

This page covers PBX-level integrations only. Partner organizations have a separate, unrelated Odoo CRM feature in the partner portal, which is not configured here and does not appear in the table below.

Each integration has a type that sets which fields it needs and what it does. The type is chosen at creation and cannot be changed afterwards, so to switch you delete and recreate. Most types can be added more than once to connect to several instances, but TAPI, Famulor, and AI Realtime are limited to one per tenant. Each type links to its own guide below.

Type Connects to Primary use
Microsoft 365 Microsoft Entra ID + Graph Sync users (via SCIM) and contacts both directions.
Odoo Odoo ERP instance Push PBX SIP credentials into Odoo's VoIP module. Not the same as partner-level Odoo CRM.
Microsoft Teams Teams via SBC (Direct Routing) Let Teams users place/receive calls through your PBX.
Profile Guesser External caller-lookup API Surface incoming-caller name and company on the answering phone.
Famulor Famulor AI voice agent API Powers Famulor agents.
AI realtime OpenAI realtime voice API Powers Smart assistants.
DSK DSK badge-reader / time-attendance Sync employee badge events into Tempus.
TAPI TAPI desktop CTI bridge Click-to-dial with Windows TAPI applications.
Salary.lu Salary.lu HR system Push Tempus time records to Salary.lu for payroll.
Google Workspace Google Workspace calendars and contacts Set a Tempus meeting status from real meetings, and put approved absences on users' calendars.

See also

Form fields

Fields available in the create and edit forms.

General

Type

The type of external service to connect with. Cannot be changed after creation.

Active

Controls whether this integration is active. For Microsoft integrations, admin consent must be granted first; for Google Workspace, the domain-wide authorization must be verified.

Client ID

Read-only. The identifier a Google Workspace super administrator authorizes for domain-wide delegation. Copy it out of here.

Shown when

Type is Google Workspace

Permissions requested

What Cockpit is asking to be authorized for, in plain words per permission. Expand "View all permissions" for the raw scope list to paste directly into the Google Admin console.

Shown when

Type is Google Workspace

Workspace domains

Only users whose email address is in one of these domains can use this integration. One row per domain, without "@" or a scheme. Include secondary domains.

Shown when

Type is Google Workspace

Test user

We use this account to confirm domain-wide delegation works. It must belong to one of the domains above. It does not have to be an administrator, and nothing is written to it.

Shown when

Type is Google Workspace

Microsoft 365

Fetch Microsoft users to Cockpit

When turned on, users from Microsoft Entra are fetched and synchronized into the PBX as user accounts.

Shown when

Type is Microsoft

Push contacts to Microsoft

When turned on, PBX users with the "show in address book" flag are pushed to Microsoft as contacts for each user.

Shown when

Type is Microsoft

Fetch contacts from Microsoft

When turned on, contacts from Microsoft are fetched into the PBX to represent each user.

Shown when

Type is Microsoft

Odoo

Odoo URL

The URL of your Odoo instance (e.g. https://mycompany.odoo.com).

Shown when

Type is Odoo

Odoo database

The name of the Odoo database to connect to.

Shown when

Type is Odoo

Odoo username

The Odoo username used for API access.

Shown when

Type is Odoo

Odoo API key

The API key generated in Odoo under your user settings. Do not use your password.

Shown when

Type is Odoo

Sync SIP connection configurations to Odoo for active users?

When turned on, installs or updates the Odoo VoIP module and pushes SIP connection settings to Odoo for the users activated for Odoo, not for every PBX user. On the edit form the label also shows how many users that currently is.

Shown when

Type is Odoo

Provider WebSocket

Read-only. The WebSocket URL generated automatically for the Odoo VoIP module.

Shown when

Type is Odoo

Provider PBX server IP

Read-only. The PBX server IP address, derived from the server configuration.

Shown when

Type is Odoo

Profile Guesser

Profile Guesser URL

The URL of the Profile Guesser API endpoint. Must be a POST endpoint that accepts a JSON payload with a phone_numbers array.

Shown when

Type is Profile Guesser

Profile Guesser API key

The authentication token sent with each API request to the Profile Guesser endpoint.

Shown when

Type is Profile Guesser

Microsoft Teams

Teams SBC host

The hostname or IP address of your Session Border Controller (SBC) for Teams Direct Routing.

Shown when

Type is Microsoft Teams Direct Routing

Teams SBC port

The SIP port on the SBC. Default is 5060. Valid range: 1 to 65535.

Shown when

Type is Microsoft Teams Direct Routing

Famulor

API key strategy

Selects which Famulor account to use. Mixvoip uses the shared key. Customer uses the key you enter below.

Shown when

Type is Famulor (AI Integration)

Famulor API key

Required only when the strategy is set to Customer. Paste the API key from the Famulor dashboard.

Shown when

API key strategy is Customer

DSK

DSK base URL

The address of your DSK instance (for example, https://dsk.example.com). If your instance uses a versioned API root, enter it in full, for example https://dsk.example.com/API/dsknet/v2.

Shown when

Type is DSK (Time & Attendance)

DSK API user

The username used to authenticate with the DSK API.

Shown when

Type is DSK (Time & Attendance)

DSK API password

The password used to authenticate with the DSK API.

Shown when

Type is DSK (Time & Attendance)

DSK bearer token

Read-only. Issued automatically by DSK when you save and refreshed as needed.

Shown when

Type is DSK (Time & Attendance)

Salary.lu

Salary.lu API token

Issued by Salary.lu for this company. Stored encrypted and never shown again, and checked live on every save. Leave blank when editing to keep the saved one.

Shown when

Type is Salary.lu

Enable custom rules

When turned on, lets you define custom rules that add extra fields to each Salary.lu request.

Shown when

Type is Salary.lu

Calendar

Create absence events in

A separate calendar the user can hide, or their main calendar. The separate calendar keeps Cockpit out of their personal one; the main calendar gives real out-of-office behavior that colleagues can see.

Shown when

Type is Google Workspace

Calendar name

The name users will see for the calendar Cockpit creates in their account. It applies to calendars created from now on: changing it here does not rename calendars that already exist, and a user is free to rename their own.

Shown when

Type is Google Workspace, writing to a separate calendar

Enable calendar sync

Turns the calendar half of this integration on or off. Off keeps the connection and the settings but stops the meeting status and absence events. Contacts are unaffected.

Permissions requested

The Google permissions the calendar features need, in plain words per permission, with the raw scope list under "View all permissions" for reference only. The Reauthorize link on this tab submits the full list for every enabled service, the same one the General tab's own button does.

Contacts

Enable contact sync

The only thing that adds the contacts permissions to the list a super administrator authorizes, so switching it on means authorizing again before anything syncs. Choose a direction below, then who it applies to per user.

Create Cockpit contacts in Google

Contacts created in Cockpit are added to each linked user's Google Contacts, filed under the label below. Each user receives only the contacts they can already see in Cockpit.

Import Google contacts into Cockpit

Each linked user's own Google contacts are imported into Cockpit as private contacts. They stay editable in Google only: a change there follows on the next sync, and a contact deleted in Google is removed here too.

Include private contacts

Private contacts visible only to their owner in Cockpit are also added to that user's Google Contacts.

Shown when

Type is Google Workspace, pushing contacts

Permissions requested

The Google permissions the contacts features need, in plain words per permission, with the raw scope list under "View all permissions" for reference only. The Reauthorize link on this tab submits the full list for every enabled service, the same one the General tab's own button does.

Google label

Contacts Cockpit puts into a user's account are filed under this label, so users can tell them apart from their own and hide them if they want to. Renaming it renames the existing label in each account: the contacts inside it are not rewritten, moved or recreated.

Include Workspace shared contacts

The contacts an administrator shares with the whole Workspace become contacts everyone in Cockpit can see. Users' own contacts stay private to them either way.

Name

A name to identify this integration in lists and logs.

api_key

The key value. Use it as the Bearer token when calling the API. Treat it like a password.

Scopes

The API abilities this key is limited to. Grant only what the integration needs.

Expiration date

When this key stops working. Leave empty for a key that never expires.

rate_limit

The maximum number of API requests per minute allowed for this key (set by your plan).

last_used_at

When this key was last used to call the API. Read-only.

created_at

When this key was created. Read-only.

Updated