Managing External Skill Transfers via the CXone Routing Engine

Managing External Skill Transfers via the CXone Routing Engine

Executive Summary & Architectural Context

Enterprise contact centers rarely operate in isolation. Often, a call must be transferred from an internal NICE CXone agent to an external BPO (Business Process Outsourcer), a legacy on-premise PBX, or a specialized third-party vendor.

The naive approach is to allow agents to dial the external 1-800 number directly via their dialpad. This is an architectural disaster. It blinds the analytics engine (the call appears as an outbound dial, breaking the inbound SLA chain), prevents Studio scripts from passing conversational context (like account numbers) to the vendor, and forces the enterprise to pay for two concurrent telecom legs (hairpinning) for the duration of the call.

The engineering solution is the External Skill Transfer pattern. By routing the transfer through the CXone Studio engine using predefined Skills and the SPAWN or PLACECALL actions, you maintain total reporting visibility, enable SIP REFER (Takeback and Transfer) to eliminate hairpinning, and ensure a seamless customer experience.

Prerequisites, Roles & Licensing

  • Platform: NICE CXone.
  • Roles & Permissions: Admin > Skills, Studio > Script > Edit.
  • Platform Dependencies:
    • SIP Carrier configuration (if SIP REFER is required to drop the media leg).

The Implementation Deep-Dive

1. Architecting the “External” Skill

Do not let agents dial numbers. Give them a Skill.

  1. Navigate to ACD > Contact Settings > Skills.
  2. Create a new Outbound skill: OB_Vendor_BPO_Transfer.
  3. Do not assign any agents to this skill. It exists purely as a routing mechanism.
  4. Navigate to your Agent interface configuration and add this Skill to their address book or quick-transfer list. When the agent needs the vendor, they transfer the call to this Skill.

2. The Transfer Studio Script

When the agent transfers the call to OB_Vendor_BPO_Transfer, it triggers a specific Studio script designed to bridge the external leg.

  1. Create a new Studio Script. Link it to the OB_Vendor_BPO_Transfer skill.
  2. Drag a SNIPPET node. Collect any variables the internal agent passed over (e.g., the customer’s Account Number).
  3. Drag a PLACECALL action onto the canvas.
    • Dest: +18005559999 (The external vendor’s toll-free number).
    • CallerID: Pass the original customer’s ANI, not the contact center’s default outbound number. This ensures the external vendor knows who is actually calling.
  4. Passing Context (UUI): If the external vendor also uses a modern PBX, you can pass the Account Number as invisible metadata. In the PLACECALL action, use the UUI (User-to-User Information) field to attach a SIP header containing the Account Number.

3. Eliminating Hairpinning with SIP REFER

If a customer calls CXone (Leg 1), and CXone uses PLACECALL to dial the vendor (Leg 2), CXone must bridge the two legs together. The audio flows: Customer -> CXone -> Vendor. If the call lasts 2 hours, CXone bills you for 2 hours of platform usage, even though no CXone agents are involved.

To solve this, use Takeback and Transfer (TNT) via SIP REFER.

  1. Instead of PLACECALL, use the TRANSFER action.
  2. Configure your telecom carrier settings in CXone to support SIP REFER.
  3. When the TRANSFER node executes, CXone sends a SIP REFER message back to the originating carrier (e.g., AT&T). It tells AT&T: “Connect the customer directly to 1-800-555-9999 and drop me out of the loop.”
  4. The Result: The audio flows directly Customer -> Vendor. CXone drops the call, freeing up ports and eliminating per-minute billing for that interaction.

Validation, Edge Cases & Troubleshooting

Edge Case 1: The Blind Transfer Drop

If you use the TRANSFER (SIP REFER) action, it is a “fire and forget” mechanism. If the external vendor’s number is busy or disconnected, the carrier will drop the call, and the customer will be disconnected.

  • Troubleshooting: If you require a “Warm Transfer” (where the system verifies the vendor answers before connecting the customer), you cannot use SIP REFER. You must use PLACECALL or LINK and accept the hairpinning costs.

Edge Case 2: Reporting Anomalies

When an agent transfers a call to an External Skill, the Contact History report will show the original inbound contact ending, and a new outbound contact beginning.

  • Solution: To trace the entire customer journey, your BI analysts must use the ContactID and MasterContactID fields. When a script spawns or transfers a call, the ContactID changes, but the MasterContactID remains the same across the entire lifecycle, linking the internal agent’s leg to the external vendor’s leg.

Official References