In today's business world, customer data is a critical asset. You likely use a Customer Relationship Management (CRM) platform to track every interaction, from emails to meetings, ensuring your team has a comprehensive picture of every client and prospect.
But what about phone calls and messages? Too often, these critical interactions live in a separate system, forcing your team to manually log calls, guess who's calling, or lose valuable context.

This is where integrating PBXware (your business phone system and contact center solution) with your CRM platform becomes essential. The integration connects your system directly to your CRM, ensuring they work together seamlessly as a single system.
Imagine this:
To make all of this possible, the CRM section of PBXware covers everything you need from start to finish. You'll begin by setting up and activating your CRM integration, then configure exactly what gets logged, which users have access, and what data fields are mapped. From there, you'll define permission groups to control what each team member can see and do, connect your users through the gloCOM Next application, and finally put your CRM data to work with intelligent call routing — including the option to route calls through your own custom middleware without a full CRM integration. Each part of this guide walks you through one step of that journey.
PBXware is designed for flexibility, supporting a wide range of popular CRM platforms. Depending on the provider you use, the system will connect using one of these methods:

Note: Before beginning the integration, ensure you have an Administrative Account for your CRM. This account is essential for managing other user permissions, roles, and organizational access. These settings directly affect how your team members will interact with the CRM through the gloCOM Next application.
Keep in mind that every CRM handles user types and roles differently. It is your responsibility to ensure that the users you connect have the appropriate permissions within the CRM to view, create, or modify records. If a user lacks the required permissions in the CRM, the integration will not be able to perform those actions on their behalf in gloCOM Next.
Note: Starting with PBXware version 8.0, all customers receive a 12-month free trial of the CRM integration, valid until May 1, 2027. This gives you full access to explore and test the integration at no cost.
On the dashboard, each integration card displays a TRIAL banner indicating the current license status, an expiration label showing how much time remains, and a user count showing how many users are currently assigned to that integration — giving you a quick overview without opening each one individually.
Regardless of the authentication type, you will generally need to create an application within your CRM portal. This application serves as the secure link between your PBXware system and the CRM, providing the necessary "keys" (such as a Client ID and Client Secret) that PBXware needs to communicate with your system.
For detailed instructions on setting up the application side for your specific provider, please refer to our Integrations Authentication Methods Guide.
Now that your CRM account is ready and you have your credentials, it's time to tell PBXware how to talk to it.
Before your PBXware phone system and CRM can communicate, they require a secure and trusted connection. We achieve this by creating an OAuth App on your system. This is a standard, secure method that allows two systems to authorize access without sharing passwords.
Note: If you are using integrations that support only Basic Authentication or Custom Integration, you can skip this step and continue to Part 2: Activate the CRM Integration → Adding a Custom CRM.
Your journey starts in the PBXware administrator settings.

Let's fill it out:
CRM_Connector.Click Save, and your secure connection app is now created.
With your preparation complete, you can now activate the specific integration module within PBXware.
If your provider isn't on the list, PBXware also allows you to connect any CRM platform of your choice via a custom middleware solution. This gives you the flexibility to integrate with providers that aren't natively supported, as long as you have a middleware layer handling the communication. To do this, click the Add Custom Integration button located at the top of the page.

This requires:
https://crm.middleware.com/yourcustomcrm).Once you complete these fields and click OK, the custom CRM creation is finalized. The system will then automatically navigate to the configuration page, which is covered in the next section of this guide.
Once you select your provider, you will be directed to the Configuration tab. This is the central hub where you set up the connection between PBXware and your CRM. PBXware maintains a consistent setup experience, automatically displaying the settings required for your specific integration — whether your CRM connects through OAuth 2.0, Basic Authentication, or a Custom CRM Middleware.
Let's break it down section by section.
To finalize the link between PBXware and your CRM, you must complete the configuration process based on the authentication method and integration type supported by your CRM provider. While the layout remains familiar, the available fields will vary slightly depending on whether your CRM uses OAuth 2.0, Basic Authentication, or a Custom CRM integration.
1. OAuth 2.0 Authentication: The setup is straightforward:

Note on Microsoft Dynamics 365 and Salesforce: These providers follow the OAuth workflow but require additional configuration:
- Microsoft Dynamics 365: You will see an additional Instance ID field in the Integration section. Please enter your Dynamics 365 Organization URL (e.g.,
company.crmXX.dynamics.com). You can find this in your browser's address bar when logged into the CRM.
- Salesforce: These include an API Version dropdown in the Integration section. While you can select a specific version, we recommend leaving this at the default setting for the best stability.
2. Basic Authentication: For CRMs that support Basic Authentication, credentials are entered directly within the configuration page.

companyname.crm.com, https://crm.example.com, https://domain.zendesk.com).

3. Custom CRM Integration: After creating the custom integration in Part 2, PBXware automatically opens a dedicated Configuration page tailored for this connection.

Integration Section:
Note: The Client ID, API Key, and URL fields are read-only and cannot be modified from this page.
Authentication Section:
After you click Save, the page will reload, and two new options will appear:

Your integration is now configured, but it still needs to be authorized. Let's complete that step.
Click the Login button.
What happens next depends on the authentication method used by your CRM integration, but the goal remains the same: successfully authenticate PBXware with your CRM account.
Note: During this step, it is strongly recommended to use an administrator or dedicated integration account with full CRM permissions. This ensures PBXware can properly access contact data, create activity records, and perform synchronization tasks without restrictions.
Once authentication is successfully completed, you will receive a confirmation pop-up message:
"Admin user successfully logged in."
Click OK to finalize the integration activation.
Back on the PBXware configuration screen, you may notice that the Admin User field (in the Authentication section) is now populated with the authenticated account and is read-only, indicating that authorization was successful.
Note: Some CRM providers do not return authenticated user details. In these cases, the Admin User field may remain empty. This is expected behavior and does not indicate a problem, provided the login process completes successfully.
You can now click the Check Connection button to verify communication between PBXware and your CRM.
With the handshake complete and the connection verified, you can now confidently continue configuring the remaining integration settings.
This is where you decide what information you want to log in your CRM. You have simple On/Off toggles for:
This is a powerful feature. If you turn these toggles ON, PBXware will add a direct link in your CRM that opens the relevant record directly in OSC.


Every call and message logged in your CRM gets a subject line so your team can instantly identify the activity type. By default, these are, for example, Inbound call - Answered or Inbound messaging - Unanswered, etc.
This section lets you customize each label to better fit your team's workflow. For example, you could rename them to:
[Sales] Inbound Call - Answered[Missed] Follow Up Required[Support] Chat - AnsweredThis makes your CRM activity feed instantly clear and easy to read, and you can even translate it into your local language if needed.
The integration is active; now you must specify which team members can access it. The Users tab is where you grant this access on an individual basis.
Why is this important? Only the users you add here will receive CRM features in their gloCOM Next application.

This tab is straightforward and the same for all providers:
Add Users: At the top, you'll find a search bar to find and select the extensions you want to add. Once you've selected all the extensions you need, click the + button at the end of the search bar to add them all to the list at once. Newly added users will be automatically assigned the Default permission set.
User List: Below that is a table of all users who already have access, with the following columns:
Note: The Login Expiry and Status columns may not be visible for providers that don't use OAuth authentication, such as Odoo and Vtiger Cloud.
This tab serves as a "data map," specifying which CRM fields PBXware should read, display, and write. Because CRM platforms structure data differently, this section varies the most between providers.

When you click this tab, you'll see a new set of sub-tabs; the most common are Account, Contact, and Lead, but for some providers, you may also see Company, Person, etc. These are the "Data Models" your CRM supports, and vary from provider to provider.
Let's click on one, like Contact, to see how it works.
For every model (Contact, Lead, etc.), you have two sections:
1. The Model Section
2. The Fields Table Section
This table is the "map" itself. It lists every single data field for that model with the following columns:
Note: Some fields may have checkboxes greyed out — these are mandatory fields defined by your CRM provider and cannot be modified.
At the bottom of the table, you'll find three buttons — Add Custom Field, Reset to Default, and Refresh.
If your team relies on specific data points to identify, differentiate, or route customers — fields that aren't part of the standard CRM setup — you can add them by clicking Add Custom Field. A modal window will open with the following fields:

Click Save to add the field to the table.
CRITICAL: When you add a custom field, you must already have it created inside your CRM provider's settings. The Field Key you type here must exactly match the API name or key of that field in your CRM. The way custom field keys are defined and exposed varies by CRM provider, so always refer to your CRM provider's documentation to identify the correct field key to enter in PBXware.
If the Field Key here and the Field Key in your CRM do not match exactly, the data will not be found, and the custom field will not function properly.
You can repeat this process for every Data Model tab (Contact, Lead, Company, etc.), and map only the fields that matter to you.
Note: Zendesk CRM provider doesn't support the Custom Fields option and is scheduled for deprecation.
If you ever need to undo your changes, Reset to Default will revert all field settings back to their original configuration. The Refresh button syncs your field list with the latest default field definitions maintained by PBXware for your CRM provider. Any new default fields added in a PBXware update will be pulled in, while your existing custom fields and any modifications to field names or visibility settings are preserved.
With your data fields mapped, there is one final step — defining exactly what each user is allowed to see and do with that data.
With your users added, it's time to define what each can actually do in the CRM. The Permissions tab is where you create and manage permission groups — sets of rules that control which data models a user can access, and what actions they are allowed to perform on each.
Think of it this way: your support team might only need to view contacts, while your sales team needs to create and edit leads. Rather than configuring this user by user, you create a permission group for each scenario and assign it to the right people.

When you open this tab, you'll see a table listing all created permission groups. Each row contains the following:
At the end of each row, you'll find an Edit icon to modify the group. For manually created groups, a Delete button will also appear next to them. If the group you are deleting is currently assigned to one or more extensions, a warning will appear: "Are you sure you want to delete the 'TestPermissions' permission group? Please note that all users assigned to this permission group will be automatically reassigned to the Default permission group." If the group has no users assigned, the message will simply ask: "Are you sure you want to delete permission group 'Test'?"
The default permission group will always be present at the top of the list. This group is created automatically and cannot be deleted. It is also the group that is automatically assigned to any new extension you add on the Users tab, unless you manually change it. It can, however, be edited to match your needs.
Note: The Admin user always uses the Default permission group, and this cannot be changed. This is important to keep in mind when configuring your permissions - if an admin user requires a specific action, such as automatic record creation, it must be enabled in the Default permission group. Keep in mind that the Admin user is also required for CRM Routing to function, and the Default permission group is what gets applied during the routing process.
To create a new group, click the Add Permission Group button at the bottom of the table. A modal window will open with the following sections:

General
Data Model Permissions
This table lists all the data models supported by your CRM integration. Keep in mind that the models available here match those configured in the Data Models tab and may vary depending on your CRM provider.
For each model, you have three toggle controls:
For example, if you want a group that can only view contacts and nothing else, set Active to ON for Contact, leave Create and Edit OFF, and set Active to OFF for all other models.
Activity Record
This section covers the same functionality that controls automatic record creation for unknown callers, now managed at the permission group level:
Important: The module you select as the Default Module must have the Create toggle enabled in the Data Model Permissions table above. If it doesn't, you will see an error message when saving: "The selected default module must be set as active in Data Model Permissions."
Once you've configured everything, click Save. The new group will appear in the Permissions table and will be available for assignment in the Users tab.
With your permission groups defined, your integration is now fully configured. You've built the connection, authorized it, set up your logging preferences, assigned your users, mapped your data fields, and established exactly what each team member can see and do. Your PBXware and CRM systems are now truly working as one.
With everything configured on the PBXware side, it's time to bring it all to life in the gloCOM Next application. This is where your team will actually experience the CRM integration in their day-to-day work — seeing caller details pop up, creating records, and managing contacts without ever leaving the application.
Here's how each user gets connected:
1. Log in to the gloCOM Next application or web application with the extension that has been added to at least one active CRM integration in PBXware.

2. Navigate to Settings using the gear icon in the bottom left corner of the application.

3. Click on CRM from the settings menu. A new page will open showing all active CRM providers to which this extension has been granted access.

4. Click the Connect button next to the desired CRM provider. A login window will open — the exact process will vary depending on the provider and its authentication method. OAuth-based providers will redirect you to your CRM's login page, while others will prompt you for a username and password directly.
Once the login is completed successfully, the integration card will update to show a Connected status, and a Disconnect button will appear in place of the Connect button.

That's it — the user is now connected and ready to use the CRM features.
From this point on, the CRM works automatically. When a call, chat, or any other interaction comes in, a CRM widget will appear on the right side of the screen, displaying the data your CRM has on file for that contact - name, contact details, and any other fields configured in your Data Models.

Depending on the permissions assigned to this user, they can view, create, or edit records directly from this panel without interrupting the call. If multiple active integrations are running at the same time, each will appear in the widget, and the user can scroll through them to switch between them.
If the contact is not found in your CRM, the widget will display a Create/Link record option if the user has the Create permission enabled, or just a Link record option if they don't. This allows the user to either create a new record directly in the application or link the interaction to an existing contact.

On the other hand, if the contact is already in your CRM and their details are displayed, clicking the three dots in the upper right corner of the widget gives you two additional options: Rematch, to link the call to a different contact, or Edit, to modify the existing record, if you have the permission for that.
With your CRM integration live and your team receiving calls with full CRM context in the gloCOM Next application, there's one more powerful step available — putting that CRM data to work even before a call reaches an agent. That's exactly what CRM Routing does — it allows you to define rules that automatically route incoming calls to the right destination based on information already stored in your CRM.
Think of it this way: when a call arrives, PBXware searches your CRM for that caller's record. Depending on what it finds — their account type, region, assigned agent, or any other field you choose — the call is automatically sent exactly where it needs to go, without anyone having to manually intervene.
CRM Routing works with inbound calls arriving over a DID or IVR, and relies directly on your active CRM integrations. For a routing rule to work correctly, the integration it references must be active and have a logged-in admin user.
Navigate to CRM → Routing to see a list of all your created routing rules. At the top of the page, you'll find the Add Routing button to create new rules. Below that are two filters to help you navigate your list — an Integration dropdown to filter rules by a specific CRM provider or show only rules without an integration assigned, and a Search field to find rules by name.

The table below lists all created routing rules with their Name and assigned Integration. At the end of each row, you'll find three icons: an Eye icon to preview the rule, a Pencil icon to edit it, and an X icon to delete it.
Click Add Routing to get started. A setup window will open with two fields:

Click OK to confirm, and the full routing editor will open.
The editor is divided into several sections:

greeting- prefix will appear in this list — for example, a file named greeting-welcome would be available here.This is a mandatory setting that acts as the safety net — it is the action that will be executed if none of your defined rules match. Click on the field to expand it, and you'll see two dropdowns:

crm_routing- prefix — for example, a file named crm_routing-no-match would appear in this list.This is where the real power of CRM Routing comes in. A Data Source tells PBXware which CRM integration to search when a call arrives, which data model to look in, and what value to use for the search.

Click Add Data Source to expand the section and fill in the following:
Click Confirm to add the data source to the list.
Once a data source is added, an Add Rule button will appear below it. Rules define what action to take when a match is found in that data source. Click Add Rule to expand and configure:

You can add as many rules as needed to each data source, and as many data sources as your routing scenario requires.
The routing logic is straightforward but important to understand. Matching always works top to bottom — both across data sources and within each data source's rules.

When a call arrives, PBXware starts from the top of the routing rule. If an Instruction sound file is configured, it will be played first. If Input Required is enabled, PBXware will then wait for the caller to enter a value on their keypad. The caller has 3 attempts to enter a valid input; if no input is provided after all 3 attempts, the routing automatically falls through to the Default Action without checking any data sources or rules.
Once all required inputs are collected, PBXware traverses your data sources from top to bottom, searching each integration in turn. The moment a matching record is found, the search stops there — remaining data sources further down the list are ignored. PBXware then moves into that data source's rules, again checking from top to bottom, and executes the action of the first rule that matches. If no rule matches, the Default Action is executed.
For example, if you have three data sources — Salesforce, HubSpot, and Zoho — and the caller's record exists in HubSpot, PBXware will search Salesforce first, find nothing, then search HubSpot, find the record, and stop. It will then check HubSpot's rules and execute the first matching one. Zoho will never be searched in this scenario.
It's also worth noting that your data sources don't have to be different integrations. You can add the same integration multiple times, but configure each instance to search a different data model — for example, searching Salesforce's Account model first, then its Contact model, then its Lead model.
Once you've finished configuring your rule and click Save, you'll be taken to the Preview window, which shows a full summary of everything you've set up. From here, you can also use the Run Test button to verify your routing logic directly from the PBXware GUI without needing to make a real phone call.
Clicking Run Test opens a small window with one or two input fields:


Click Run Test, and a results panel will appear showing the full test results. At the top, you'll see the action that would be executed for this call. Below that, you'll see the full CRM record that was found — including all the fields from the configured Data Model and a View in [CRM] link that takes you directly to that record in your CRM. This makes it easy to verify not just that the routing logic is correct, but also that the right CRM record is being matched. If no record is found or no rule is matched, the Default Action will be shown as the result.
The Routing section we just covered works hand in hand with your active CRM integrations — Salesforce, HubSpot, Zoho, and the rest. But what if your organization uses a system that isn't on that list, or you simply don't need the full CRM integration with call logging, contact management, and the gloCOM Next widget? That's exactly where Routing Integrations come in.
Routing Integrations allow you to route incoming calls based on data fetched from any external HTTP endpoint — your own middleware — without requiring a full CRM integration or any paid license for a specific provider. Everything is defined on your middleware side, and here in PBXware, you simply configure how to connect to it and which fields to use. The routing logic itself works exactly the same way as described in the Routing section — the same rules, the same top-to-bottom matching, the same actions. The only difference is the source of the data.
Note: Routing Integrations are intended solely for routing. They do not provide a CRM widget in the gloCOM Next application and do not enable call logging or contact management.
Navigate to CRM → Routing Integrations to manage your custom routing data sources. When you first open this page with no integrations created yet, you'll see a simple message indicating that no routing integrations are available. At the top of the page, you'll find the Add Custom Routing Integration button, and below that a Search bar to find integrations by name once your list grows.

Once integrations are created, they appear in a table with three columns: Name, Endpoint, and Data Model. At the end of each row, you'll find an edit icon to modify the integration and a circle X icon to delete it. If you delete an integration referenced in an existing routing rule, the routing configuration must be updated manually, as the integration will no longer be available as a data source.
Click Add Custom Routing Integration to get started. A first form will open with the basic setup fields:

https://middleware.example.com/custom-source/routing/erp/customer).Click Add to confirm, and the full edit page will open where you can complete the remaining configuration.
The edit page is divided into four sections:

application/json. The Accept: application/json header is automatically added, regardless of the method you choose.This section defines the parameter names that PBXware uses when sending data to your middleware endpoint. These must match exactly what your middleware expects to receive. The default values are pre-filled and match the reference middleware implementation, but if your middleware uses different parameter names, you can update them here:
customer_idfield_name=firstname,lastname,email,address, or just field_name=email if only one field is needed. Default: field_namecustomer_inputcustomer_input_field_nameAt the bottom of this section, you'll find two buttons — Reset to Default, which restores all parameter names to their default values, and Reset to Legacy Routing (voice), which restores the parameter names used by the Legacy CRM Routing feature, useful if you are migrating from a legacy setup.
Note: If a parameter name is left empty, that parameter will not be included in the request sent to your middleware.
This table defines the fields that PBXware will request from your middleware and use in routing rule conditions. Any field you entered on the first page during creation will already appear here. Click Add Field to add more, and a modal window will open with the following fields:
Click Save to add the field to the list.

Once you have saved your Routing Integration, it becomes available as a data source when building routing rules under CRM → Routing, and works in exactly the same way as any standard CRM integration data source — the same search logic, the same rule matching, and the same actions apply.