SIP Integration with NICE CXone
SIP trunking is only available on the Synthflow Enterprise Plan.
This guide covers connecting NICE CXone to Synthflow via SIP trunk. CXone Studio scripts route calls to Synthflow using a SIP Backchannel pattern, enabling AI-driven handling with escalation back to live CXone agents.
Prerequisites
NICE CXone Configuration
CXone uses a SIP Backchannel (Parent/Child script) pattern to connect to external AI systems like Synthflow. The Parent script handles the main call leg; the Child script places a dedicated SIP leg to Synthflow.
All configuration is done in the CXone Admin Console and CXone Studio.
Step 1: Configure the External SIP Trunk
- In CXone Admin Console, navigate to ACD → ACD Configuration → Phone Carriers.
- Click Add Carrier and configure:
- Add Synthflow’s SIP signaling IPs to the allowed list. Contact Synthflow support for the current IP list.
- Save the carrier configuration.
Step 2: Create a Pseudo Phone Number for Synthflow
A pseudo number is an internal E.164 number used to route calls to Synthflow via the SIP trunk — it is never dialed externally.
- In CXone Admin Console, go to ACD → Phone Numbers → Add Phone Number.
- Create a new number in E.164 format (e.g.
+1XXXXXXXXXX) mapped to the Synthflow AI carrier. - Note this pseudo number — it will be used in the Studio PLACECALL action.
Step 3: Create the Parent/Child Studio Script
CXone uses a two-script pattern to manage the SIP connection to Synthflow.
Parent Script (handles inbound call):
- In CXone Studio, create a new script called
Synthflow_Parent. - Add the following actions in sequence:
ASSIGN: SetMasterId = {ContactId}(captures the current contact ID)REQAGENT: Point to the Synthflow pseudo number to initiate the Child scriptONSIGNAL: Listen for escalation signal from Synthflow (triggers live agent routing)REQAGENT: Route to the appropriate CXone skill/queue when ONSIGNAL fires
Child Script (places SIP call to Synthflow):
- Create a new script called
Synthflow_Child. - Add the following actions in sequence:
SIPPUTHEADER: Set SIP headers for Synthflow context:
PLACECALL: Dial the Synthflow pseudo number via the Synthflow AI carrier- Set
LinkContactId = {MasterId} - Set
SourceLegPersistent = True
- Set
LinkContactId links the Child call leg to the Parent contact, enabling proper reporting and transfer handling.
Step 4: Configure Escalation Back to CXone
When Synthflow determines escalation is needed:
- Synthflow calls the CXone Admin API → Signal a Contact endpoint with the Contact ID and queue parameter.
- The Parent script’s
ONSIGNALaction receives the signal. - The
End Callblock drops Synthflow from the conversation. - The
REQAGENTaction routes the caller to the target CXone skill or queue.
The CXone Admin API “Signal a Contact” call must include the Contact ID captured in MasterId and the p1 parameter specifying the target queue (e.g. p1=billing).
Synthflow Configuration
Add the SIP Number
- Go to the Synthflow Phone Numbers page.
- Click Add Number → Custom / SIP.
- Enter the phone number in E.164 format (same pseudo number configured in CXone).
- Fill in the SIP connection details:
Be precise when copying SIP credentials. Incorrect values will cause registration failure.
Attach to the Assistant
- Go to Assistants and create or select an assistant (v2.0+).
- In the assistant settings, attach the SIP number you just created.
- Wait 1–2 minutes for SIP registration to complete.
The SIP trunk is created at the moment of attaching the SIP number to the assistant.
Call Flow Summary
Verification
Quick Troubleshooting
Reference
- NICE CXone Studio Documentation: help.niceincontact.com (search “Studio Scripts”)
- CXone SIP Phone Configuration: help.niceincontact.com (search “SIP”)
- CXone Admin API Reference: developer.niceincontact.com
- Synthflow SIP Overview: docs.synthflow.ai/about-sip
- Synthflow X-EI SIP Header: docs.synthflow.ai/x-ei-sip-header