Enable Bi-Directional Presence Sync in Salesforce

You can enable bi-directional presence sync for Agent Workspace for Salesforce Voice (Agent for Service Cloud Voice) and Agent Workspace for Salesforce. This ensures that when the agent's stateClosed The availability status of an agent. changes in one of these apps, it changes in the other.

Complete each of these tasks in the order given.

Prerequisites

Create Presence Statuses in Salesforce

If you haven't already, create presence statuses in Salesforce. These are the statuses that appear in Agent Workspace for Salesforce Voice (Agent for Service Cloud Voice). Later on, you'll map them to the NiCE CXone agent states that appear in Agent Workspace (Embedded) (Agent Embedded) for Salesforce.

  1. Log in to Salesforce Lightning as an administrator.

  2. Click SetupImage of gear icon with lightning bolt inside. in the top right corner of the page and select Setup from the drop-down.

  3. Use the Quick Find box to search for Presence, then click Presence Statuses.

  4. Click New.

  5. Enter a Status Name. For example, Available for Chats. The Developer Name is generated automatically; it's the Status Name without spaces. For example, Available_for_Chats.

  6. Under Status Options, select one of these options:

    • Online: Make this an available status.

    • Busy: Make this an unavailable status.

  7. If you selected Online in the previous step, add channels to the status. Under Service Channels, select a channel in the list on the left, then click AddImage of right facing arrow. Repeat for each channel you want to add.

  8. Click Save. Repeat these steps for each presence status you want to create.

Add Presence Statuses to User Profiles

After you've created presence statuses, give Salesforce user profiles access to the statuses.

  1. In Salesforce, use the Quick Find box to search for Profiles, then click Profiles.

  2. Select the user profile you want to add presence statuses to.

  3. Scroll down to the Enabled Service Presence Status Access section. Click Edit.

  4. Select a status in the list on the left, then click AddImage of right facing arrow. Repeat for each status you want to add.

  5. Click Save. Repeat these steps for each user profile you want to add presence statuses to.

Create a Connected App

Starting with the Spring '26 release, the ability to create Connected Apps is disabled by default for all new Salesforce orgs. To enable Connected App creation, customers must raise a case with Salesforce Support. Once Salesforce enables this capability for the org, you can proceed with creating the Connected App.

Create a connected app in Salesforce to connect Salesforce to NiCE CXone.

  1. Navigate to Setup.

  2. In the Quick Find box, search for External Client App.

  3. Click Setting.

  4. Click New Connected Apps.

  5. Fill in the required details:

    • Connected App Name: (e.g., NICE CXone Presence Sync)

    • API Name: (auto-populated)

    • Contact Email: (admin email)

    • Callback URL: https://login.salesforce.com/services/oauth2/token

    • Selected OAuth Scopes: Add required scopes

  6. Click Save.

Get Consumer Key and Consumer Secret

After you've created a connected app in Salesforce, find and save its Consumer Key and Consumer Secret.

  1. Navigate to Setup.

  2. In the Quick Find box, search for App Manager, then click App Manager.

  3. Locate the created Connected App and click View.

  4. Click Manage Consumer Details.

  5. Copy the following values:

    • Consumer Key = Client ID

    • Consumer Secret = Client Secret

Enable OAuth Username–Password Flow

This step allows Salesforce to authenticate with NICE CXone using OAuth. Without this setting enabled, token-based authentication will fail and the adapter account mapping cannot be completed. To enable the OAuth Username–Password Flow:

  1. Navigate to Setup.

  2. In the Quick Find box, search for OAuth and OpenID Connect Settings.

  3. Click OAuth and OpenID Connect Settings from the search results.

  4. Locate the option Allow OAuth Username-Password Flows.

  5. Toggle the setting to ON.

    Salesforce now permits username–password-based OAuth authentication, enabling the NiCE CXone adapter to establish a secure connection for bidirectional presence synchronization.

Create an Account Mapping in NiCE CXone

When creating the account mapping in NICE CXone, ensure that the Salesforce administrator account used for the mapping has Multi-Factor Authentication (MFA) disabled. This is required for the account mapping process to complete successfully.

Required permissions: Account Mapping Create

After you've created a connected app in Salesforce, create an account mapping in NiCE CXone to connect NiCE CXone to Salesforce.

  1. In NiCE CXone, click the app selector and select Adapters.

  2. Click Account Mapping in the left menu, then click the Salesforce tab.

  3. Click Map Accounts.

  4. In User for Access Key, select the user you want to generate an access key for. Click Next.

  5. In Salesforce Platform Version, choose whether your Salesforce environment is a Salesforce Sandbox or Salesforce Production environment.

  6. Create a Salesforce environment. Fill out the fields in the Salesforce section.

  7. Click Map & Register.

  8. In the Salesforce Environment drop-down, select the same Salesforce environment you entered in step 6.

  9. Click Save at the top.

Create a Presence Rule

Required permissions: Rules Create

After you've created an account mapping in Adapters, create a presence rule. This maps Salesforce statuses to NiCE CXone agent states, and NiCE CXone agent states to Salesforce statuses.

The After Call Work (ACW) and Refused presence states are system-managed states. These states are not displayed on the subscriber side and do not require any configuration there. Only the publisher-side presence mapping is required for these states. No additional mapping is needed on the subscriber side.

  1. In NiCE CXone, click the app selector and select Adapters.

  2. Click Presence Sync in the left menu, then click Get NiCE CXone Users. This refreshes the list of users.

  3. Click Create Rule.

  4. Give your presence rule a Name.

  5. To ignore the team validation, enable Skip validation of Unavailable Codes for Rule Assignment. This lets you assign the presence rule to any team, even if it doesn't have the NiCE CXoneunavailable state assigned to it. When enabled and an agent selects a state that is not in their Presence Sync rule, their state in NiCE CXone changes to the system-default Unavailable state.

  6. In the Publisher States section, use the ACD State and Salesforce State drop-downs to map agent states. This tells Salesforce what status to display for a NiCE CXone agent state. Click Add Row to add more mappings.

    Elinor selects Open in ACD State and Available for Chats in Salesforce State. Agent Workspace for Salesforce Voice (Agent for Service Cloud Voice) displays Available for Chats whenever Agent Workspace (Embedded) (Agent Embedded) displays Open.

  7. In the Subscriber States section, use the Salesforce State and ACD State drop-downs to map agent states. This tells NiCE CXone what agent state to display for a Salesforce status. Click Add Row to add more mappings.

    Elinor selects Available for Chats in Salesforce State and Open in ACD State. Agent Workspace (Embedded) (Agent Embedded) displays Open whenever Agent Workspace for Salesforce Voice (Agent for Service Cloud Voice) displays Available for Chats.

    If you select Previous State in ACD State, the agent's NiCE CXone state returns to the previous state it was in. This may be useful to automatically return an agent's state back to what it was before handling an interaction.

  8. Click Create.

  9. To apply the presence rule to teams of users, click the Teams tab, then click Add Teams. Select the teams you want to add, then click Confirm.

  10. To apply the presence rule to individual users, click the Users tab, then click Add Users. Select the users you want to add, then click Confirm.

  11. Click Save.

Validate Bidirectional Sync

This step confirms that the presence synchronization between Salesforce and NICE CXone is functioning correctly in both directions.

To validate Salesforce → NICE CXone sync:

  1. Log in to Salesforce as the test agent.

  2. Open the Omni-Channel widget.

  3. Change the agent's presence status (e.g., from Available to On Break).

  4. Log in to NICE CXone in a separate browser or tab.

  5. Verify that the agent's status in NICE CXone reflects the updated status.

    The status change made in Salesforce is automatically reflected in NICE CXone.

To validate NICE CXone → Salesforce sync:

  1. Log in to NICE CXone as the test agent.

  2. Change the agent's presence status (e.g., from Available to Away).

  3. Switch to the Salesforce Omni-Channel widget.

  4. Verify that the agent's status in Salesforce reflects the updated status.

    The status change made in NICE CXone is automatically reflected in Salesforce.