You are here:
Configure Inbound Call Transfers When Using SIP
To illustrate how to configure inbound call transfers that happen via SIP, this topic describes how to accomplish these tasks with Genesys.
Create the Voice Call Record Using the voiceCalls Telephony Integration API
To create the voice call record, use the voiceCalls Telephony Integration API.
For more information about the API, see voiceCalls Telephony Integration API. Set these request parameters as needed.
| Request Parameter | Description |
|---|---|
to |
The contact center inbound number that the customer dials. |
from |
The customer’s phone number. For Genesys, you can use the data variable
Call.Ani. |
callcenterApiName |
The API name of the contact center created in Salesforce and associated with the voice call record. |
scrtBaseUrl |
The SCRT2 URL for the org. Format: <org_domain>.my.salesforce-scrt.com/telephony/v1 Example: mycompany.my.salesforce-scrt.com/telephony/v1 |
orgId |
The 15-digit ID of the Salesforce org. Format: <Salesforce_org_ID> Example: 00XXXXX00000QMC |
callAttributes |
Other attributes to include in the voice call record, where each key-value pair corresponds to a standard or custom field and its values. Format: {'<field_name>':'<field_value>'} Example of a Department custom field: {'Department__c':'Support'} |
vendorCallKey |
A unique key that identifies the voice call record within the telephony system. For
example, this value is the contact ID in Amazon Connect. To get the call key for Genesys,
use the Genesys interaction ID data variable Call.ConversationId. |
UUI Header for a SIP Trunk
When Salesforce sends a SIP invite, it sends the UUI header that contains parameter settings. Set the UUI header with your Salesforce org ID, domain, partner voice call ID, JWT token, and any other required inbound flow parameters.
Specify these parameters in the UUI header. A SIP header can have a maximum of 1,024 characters.
| UUI Parameter | Description | Max Length |
|---|---|---|
orgId |
Format: <Salesforce org ID> String. Required if a token isn’t provided. Custom header. The 15-character ID of the Salesforce org. If you provide a token, Example: 00DZ70000000XXX |
15 characters |
scrt2Domain |
Format: <my_domain>.salesforce-scrt.com String. Required. Custom header. The unique Salesforce domain in the format. Exclude https://. This value can be different for sandbox and production instances. Example: mycompanyname.my.salesforce-scrt.com |
128 bytes |
token |
String. Required. The encrypted key used for authentication. The runtime authentication requires a JSON Web Token (JWT). The token length can change as we adopt other encryption algorithms. A SIP header can have a maximum of 1,024 characters. If your telephony provider reuses tokens across multiple calls, to prevent authentication from failing too soon, set the JWT token expiration to the maximum, 24 hours. If the public key or JWT expires before the request is sent, the SIP transfer fails. When constructing the JSON claims set for the JWT, you can use these parameters:
Sample JSON claim set for a Salesforce Voice with Telephony Providers customer: Sample JSON claim set for a non-Salesforce Voice with Telephony Providers customer: |
No max limit |
callid |
Format: <voice_call_record_id> String. Optional. This field is for non-Salesforce Voice with Telephony Providers customers only. Custom header. The 18-character Salesforce VoiceCall record ID that links the agent-customer conversation with the rep-customer conversation, providing full call history visibility. |
18 characters |
transactionId |
Format: <unique_id> String. Optional. Custom header. A unique ID of any length used to provide more context, like customer information, to the Omni-Channel flow. The flow uses this information to route the call or update related records in Salesforce. This parameter is typically used when integrating Agentforce Voice without being a Salesforce Voice with Telephony Providers customer. Example: order-2026-0122-5489 |
No max length |
Sample UUI header:
{
"orgId": "00XX70000000XXX",
"scrt2Domain": "mycompanyname.my.salesforce-scrt.com",
"token" : "adbcdefgsdfsdJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIwMERTQjAwMD[THIS IS A SAMPLE TOKEN]5h AwZFBWR2ciLCJzdWIiOiJhc2FzaXBvcmczc2RiMyIsImV4cCI6MTc2OTcxOTcyOSwiaWF0IjoxNzY5NzE2MTI5LCJqdGkiOiI5OGE1YjcyZS1mOTFhLTQzMmItYjUwYy05Nzg[THIS IS A SAMPLE TOKEN]3847ufpawiu4f3hapwu93gbpawiu3hrao283938w4t34t m_HWOZDjb82UObqk_nR_6IhvDB7JA5v3Ov2icmZsR3NgT_uaweiur3h498rh2334984htg34o[THIS IS A SAMPLE TOKEN]3948 4VoFjDsie6N9lAlc0fZgdnT_j89mMl4rFaSNY9m",
"callId": "50130000009xYZ1AAM",
"transactionId": "order-2026-0122-5489"
}
When Salesforce sends a SIP invite, it sends the UUI header that contains these parameter settings. When the SIP transfer executes, the callId and transactionId variables pass to Salesforce. Use these variables in the Omni-Channel inbound flow to update data related to the voice call. To use this UUI header information in an Omni-Channel flow, use the transactionId and partnerVoiceCallId flow variables for the transaction and call IDs, respectively.
Sample Genesys Inbound Flow
To illustrate how to configure the telephony system, review the steps used to create this inbound flow. In this example, we create VoiceCall records, set the UUI header, and configure inbound call transfers and escalations in Genesys.
- Procure an inbound phone number from Genesys that will trigger the Genesys inbound flow. When the customer calls your organization by using this number, the inbound flow routes the call to the Agentforce agent.
-
Install the Function Data Action in your Genesys Cloud and ensure all required permissions are added.
-
In Genesys, go to IT and Integrations |
Integrations, and click Install for Function
Data Actions.
- To add an action that creates a voice call, in the Data Actions section, click Add Action.
-
In the Action Name field, enter the name of the action and click
Add.
-
Define the contract as shown here.
Input contract:
{ "type": "object", "properties": { "to": { "type": "string" }, "from": { "type": "string" }, "callCenterApiName": { "type": "string" }, "scrtBaseUrl": { "type": "string" }, "orgId": { "type": "string" }, "privateKey": { "type": "string" }, "callAttributes": { "type": "string" }, "vendorCallKey": { "type": "string" } } }Output contract:
{ "type": "object", "properties": { "voiceCallId": { "type": "string" } } }
- To create voice calls, use this Lambda inside your function definition.
-
To test the function, in the Test Menu Action, replace the new line with
\nin your private key.
- If the test is successful, publish your Function Data Action.
-
In Genesys, go to IT and Integrations |
Integrations, and click Install for Function
Data Actions.
-
In Genesys Cloud Architect, create an inbound flow.
An inbound flow handles incoming calls to your organization’s Genesys instance. It also routes the calls to their correct destination, such as a rep, a queue, or even an Agentforce agent.
- To turn on call transcription, add a Transcription action.
- To turn on call recording, add an Enable Participant Recording action.
- To greet the customer, add a Play Audio action.
-
To create the voice call record that will be transferred to the Agentforce agent, add a
Call Data Action with these properties. This call outputs the voice call ID as
partnerVoiceCallId.- In the Name property, enter Call Data Action.
- In the Category property, select Function Data Actions.
-
Set the request parameters as needed. For a list and description of the parameters, see
the "Create the Voice Call Record Using the VoiceCalls Telephony Integration API" section in
Configure Telephony Vendor Settings When Using
SIP.
-
To create a voice call with the Function Data Action that you previously installed,
configure the Call Data Action to output the voice call ID to a parameter with name
voiceCallId. Create the VoiceCall record and set the VoiceCall ID for the record before you route the call.
- To determine what happens based on whether the creation of the voice call succeeds, fails, or times out, add a Decision action.
-
To set the UUI header parameters, add the Set UUI Data action. For a list and description
of the parameters, see the "Create the Voice Call Record Using the voiceCalls Telephony
Integration API" section in Configure Telephony Vendor Settings When Using
SIP.
- Enter the name of the action.
-
In the Outgoing UUI Data, select For Transfers and enter the UUI
parameters in a JSON object consisting of key-value pairs. For example, enter:
{ "orgId": "00XX70000000XXX", "scrt2Domain": "mycompanyname.my.salesforce-scrt.com", “token” : ”adbcdefgsdfsdJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIwMERTQjAwMD[THIS IS A SAMPLE TOKEN]5h AwZFBWR2ciLCJzdWIiOiJhc2FzaXBvcmczc2RiMyIsImV4cCI6MTc2OTcxOTcyOSwiaWF0IjoxNzY5NzE2MTI5LCJqdGkiOiI5OGE1YjcyZS1mOTFhLTQzMmItYjUwYy05Nzg[THIS IS A SAMPLE TOKEN]3847ufpawiu4f3hapwu93gbpawiu3hrao283938w4t34t m_HWOZDjb82UObqk_nR_6IhvDB7JA5v3Ov2icmZsR3NgT_uaweiur3h498rh2334984htg34o[THIS IS A SAMPLE TOKEN]3948 4VoFjDsie6N9lAlc0fZgdnT_j89mMl4rFaSNY9m”, "callId": "50130000009xYZ1AAM", "transactionId": "order-2026-0122-5489” }Select the User-to-User option. If you have multiple environments, such as development and test environments, add a UUI Data action for each environment.
-
To route inbound calls to the agent, add a Transfer to Number action. For the number,
specify the SIP address that you specified when creating the messaging channel for Agentforce Voice. Although the
address isn’t an actual phone number, the value must be in the E.164 phone number
format.
When we send a SIP invite with the Transfer to Number action, we send the UUI header that contains the UUI parameter settings. This action triggers the channel’s Omni-Channel flow, which routes the call to the Agentforce agent defined in the flow.
- To notify the customer that you’re routing them to an Agentforce agent, add a Play Audio action or use the Transfer to Number properties. For the Transfer to Number properties, enter pre-transfer and failed transfer audio.
-
To route the call to the escalation flow when the Agentforce agent disconnects, add a Set
Post-Flow action. Set the Target field to Caller.
-
Add a Disconnect action at the end of the flow.
- Save, validate, and then publish the flow.
Add call routing in Genesys Admin to route calls using this flow. To learn how to configure the telephony system to handle call escalations from the agent to a rep, see Configure Telephony Vendor Settings for Call Routing and Escalation.
For information about Genesys flows and Function data actions, see:
- Genesys Help: Work with inbound flows
- Genesys Help: About the Genesys Cloud Function data actions integration

