Mapping PureConnect interaction attributes to Genesys Cloud participant data

We are in the middle of migrating our premise PureConnect environment to GC, and I’m struggling with how to pass interaction attributes to our external SBCs.

In CIC, we could easily attach custom interaction attributes that would get mapped into the SIP headers. In Genesys Cloud, we are trying to use Participant Data, but I need to expose these key-value pairs in the User-to-User (UUI) or custom X- headers on the SIP INVITE sent out through our BYOC Cloud trunk.

I’ve captured the SDP negotiation and the SIP traces, but the participant data isn’t bleeding through to the external leg. Do I need a specific trunk configuration for this?

I haven’t tackled SIP header injection directly, but from a voice data perspective, the participant attributes are definitely preserved on the platform side.

If your ultimate goal is downstream analysis (like what I do with audio stream access and voice biometrics), you can always retrieve the custom Participant Data asynchronously using the conversation API. Once the call drops, the attributes are appended to the recording metadata, allowing you to tie the audio analysis back to the original PureConnect data.

Thanks for the suggestion, but asynchronous retrieval via the API won’t work for our use case.

The SIP INVITE has to contain the payload at the moment of call setup because our downstream IVR relies on those UUI headers for real-time routing decisions. If the ICE candidates negotiate and the call connects before the external system gets the participant data, the call drops. I need to know if GC supports mapping participant data to SIP headers on BYOC trunks.

If you need to automate the trunk configuration for the UUI passthrough across environments, here is the CX as Code (Terraform) snippet:

resource "genesyscloud_telephony_providers_edges_trunk" "byoc_cloud" {
  name = "BYOC-Cloud-Trunk"
  trunk_base_settings_id = genesyscloud_telephony_providers_edges_trunkbasesettings.trunk_base.id
  edge_group_id = genesyscloud_telephony_providers_edges_edge_group.edge_group.id

  properties = jsonencode({
    "uuiPassthrough" : true,
    "uuiHeaderFormat" : "hex"
  })
}

terraform apply will ensure the headers aren’t stripped.

To formalize the migration path from PureConnect to Genesys Cloud regarding attribute mapping:

  • PureConnect: Interaction Attributes are globally accessible throughout the IC server lifecycle.
  • Genesys Cloud: Participant Data is strictly bound to the specific participant leg of the conversation.

As noted by others, the official Resource Center documentation confirms that mapping to SIP UUI headers requires the uuiData prefix in Architect. Please refer to the article titled ‘Configure User to User Information (UUI) for BYOC trunks’. It is important to note that custom X- headers are currently not supported natively for outbound SIP INVITEs generated by the platform; you must use the standard UUI field.

Mapping Participant Data to SIP UUI

You actually can map Participant Data to UUI, but it requires a specific trunk setting and an Architect step.

  1. In Architect: Use the Set Participant Data action. The key MUST be prefixed with uuiData (e.g., uuiData.myCustomId).
  2. In Trunk Config: Go to your BYOC trunk settings → Protocol → UUI Passthrough, and ensure it is enabled.

FWIW, here is how we patch it via the Python SDK if we need to update it mid-call before a transfer:

import PureCloudPlatformClientV2
api = PureCloudPlatformClientV2.ConversationsApi()

payload = {
    "attributes": {
        "uuiData.patientId": "12345-ABC"
    }
}
api.patch_conversation_participant_attributes(conversation_id, participant_id, body=payload)

YMMV depending on your SBC’s strictness with UUI hex encoding, but that usually does the trick.