Click-to-Act Not Working in Customer Service Workspace Tabs with a Third-Party CTI Provider

Our Customer Service workspace uses a third-party CTI integration built on Channel Integration Framework (CIF) 2.0. The CTI sidebar widget is configured as a third-party voice channel provider, with Enable Outbound Communication turned on. When an agent clicks the phone icon beside a phone number field, the third-party provider should start the outbound call.

This worked in DEV. In the higher environment it only worked partly:

  • Clicking the phone icon inside the third-party provider's own session tab started the call as expected.
  • Clicking the phone icon on any other tab, such as a contact record opened in another session, did nothing at all. No call started, no error appeared and nothing showed in the CTI sidebar widget.

The click event wasn't reaching the third-party provider. Instead it was going to another provider that had no dialler configured, so it failed silently.

TL;DR: Make sure the Omnichannel channel provider (msdyn_omnichannel) has a higher Channel Order number than your third-party CTI provider, so the third-party provider takes precedence for Click-to-Act.


Investigation

The solution, the connector configuration and the agent setup were the same in DEV and the higher environment. Same-user tests showed the issue was environment-specific rather than user-specific. Microsoft Support captured browser traces (HAR files) in both environments, and Product Engineering compared the effective CIF configuration of each.

Root cause

The difference was the Channel Order of the channel providers.

Channel providerDEVHigher environment
Third-party CTI provider11
Omnichannel (msdyn_omnichannel)100

Channel Order sets the precedence of the channel providers, and a lower number means higher precedence. Omnichannel for Customer Service comes with its own provisioned channel provider, which sits alongside any third-party providers you add.

In the higher environment, msdyn_omnichannel had Order 0, ahead of the third-party provider. When the phone icon was clicked outside the third-party provider's session, Omnichannel was picked as the fallback provider. Our Omnichannel voice dialler isn't configured, so the click went nowhere.

In DEV, msdyn_omnichannel had been changed to 10 manually during development and testing. That change was never made in the higher environments, which is why the issue only appeared there.

Correct Channel Order

Solution

  1. In Copilot Service admin center, go to Support experience > Workspaces > Third party voice channel provider and select Manage.
  2. Record the current Channel Order values before making any changes.
  3. Open msdyn_omnichannel and change Channel Order from 0 to a number higher than the third-party provider's (we used 10).
  4. Leave the third-party CTI provider at 1, and don't change any other provider settings.
  5. Save, sign out, and reopen Customer Service workspace in a fresh browser session.
  6. Test the phone icon from a tab outside the CTI provider session and confirm the third-party provider starts the call.

After the change, Click-to-Act worked from every tab, and the CTI sidebar widget's own dialler kept working too.

Lessons learnt

  • Channel provider records are configuration data. A manual change in DEV won't reach higher environments unless you include it in your solution, deployment steps or configuration data migration.
  • If Click-to-Act fails silently, check the Channel Order of every active provider, including the built-in msdyn_omnichannel provider, before investigating the connector itself.

References

Comments