Skip to main content

Uniphore Help Center Portal

Metadata Mapping

Use the metadata mapping request to set up the mapping between the conversation metadata you intend to ingest into your tenant (see Ingest API) and the Communication Recording Agent metadata fields. Any unmapped metadata provided in ingest requests appears in the conversation's Other Properties in the Communication Recording Agent UI.

Endpoint

Method: POST

URL: v1/tenants/<tenantId>/metadata/config

Path Parameter

Parameter Name

Data Type

Description

Required/Optional

tenantId

String

The ID of the tenant to set the metadata mapping for.

Required

Request Parameter

Parameter Name

Data Type

Description

Required/Optional

providerType

String

Set to ucapture-batch-ingestion-inbound.

Required

mappingConfig

Array

A complete list of metadata mapping pairs you intend to use when ingesting conversations, each pair is split into the following:

  • source - used to specify exactly what AuxiliaryMetaData (an ingest request parameter, see Ingest API) metadata to pair with the target metadata field (see below), along with how values should be split into and paired with multiple targets if required. See source Sub-Parameters below.

  • target - the Communication Recording Agent metadata field that the metadata specified in source should be paired with. For a full list of valid targets, see Conversation service app metadata fields.

Required

source Sub-Parameters

Parameter Name

Data Type

Description

Required/Optional

key

String

Used to point at a specific sub-parameter listed in the AuxiliaryMetaData array of ingest requests. For example, AuxiliaryMetaData.Extension where Extension is a sub-parameter of the AuxiliaryMetaData array you intend to use in ingest requests.

Required

type

String

The data type of the value associated with the sub-parameter specified in key.

Required

splitIndex

Boolean

If the value needs to be split, splitIndex specifies which part of the value to pair with the target. Set to either 0 for the start of the value to be used, or 1 for the end of the value to be used. For example, John@334 could need to be split into John and 334.

Using splitIndex and delimiter, you can pair the first half of the metadata value with one metadata field and the second half with another. For example John could be paired with AgentFirstName and 334 could be paired with Extension.

Optional

delimiter

String

Used to specify the exact character or combination of characters used to split the value. For example, a delimiter set to @ would split John@334 into John and 334.

Optional

For an example request, see Sample Request.

Conversation Service App Metadata Fields

The table below details how the Communication Recording Agent UI metadata fields pair with fields in the conversation service and includes the key behind each field. Use this table to determine what Conversation service app metadata fields to include in your mappingConfig > target values for your conversation metadata to show in the correct Communication Recording Agent UI metadata fields.

Key

UI Field

Conversation Service App Metadata Field

conversationId

conversationId

conversation.conversationId

tenantId

tenantId

conversation.tenantId

agent.email

AgentEmail

appMetadata.AgentEmail

agent.extension

AgentExtension

appMetadata.AgentExtension

agent.firstName

AgentFirstName

appMetadata.AgentFirstName

agent.lastName

AgentLastName

appMetadata.AgentLastName

agent.manager

AgentManager

appMetadata.AgentManager

agent.location

AgentLocation

appMetadata.AgentLocation

agent.department

BusinessUnit

appMetadata.BusinessUnit

agent.number

AgentNumber

appMetadata.AgentNumber

agent.id

participants

participant.id if participant.type == "agent" in conversation.participants

callProperties.startDate

states

state.timestamp if state.state == CONVERSATION_STATE_ACTIVE in conversation.states

callProperties.endDate

states

state.timestamp if state.state == CONVERSATION_STATE_FINISHED in conversation.states

callProperties.duration

duration

conversation.duration

callProperties.otherParties.name

OtherParties.Name

appMetadata.OtherParties.Name

callProperties.remoteNumber

remoteNumber

appMetadata.remoteNumber

callProperties.trunkName

PBXTrunkName

appMetadata.PBXTrunkName

callProperties.group

CallGroup

appMetadata.CallGroup

callProperties.accountInfo

AccountInformation

appMetadata.AccountInformation

callProperties.callType

CallType

appMetadata.CallType

callProperties.callAudio

CallAudio.AudioStatus

appMetadata.CallAudio.AudioStatus

callProperties.licenseStatus

IsMediaLicensed

appMetadata.IsMediaLicensed

callProperties.licensed

IsMediaLicensed

appMetadata.IsMediaLicensed

callProperties.externalCallId

CallExternalCallID

appMetadata.CallExternalCallID

callProperties.ringTime

RingTime

appMetadata.RingTime

callProperties.infrastructureInfo

InfrastructureInformation

appMetadata.InfrastructureInformation

callProperties.integration

Integration

appMetadata.Integration

callProperties.localName

LocalParty.Name

appMetadata.LocalParty.Name

callProperties.routingInformation

RoutingInformation

appMetadata.RoutingInformation

callProperties.sipDetails

SIPDetails

appMetadata.SIPDetails

callProperties.sourceFormat

SourceFormat

appMetadata.SourceFormat

callProperties.deviceId

DeviceID

appMetadata.DeviceID

callProperties.deviceLocation

DeviceLocation

appMetadata.DeviceLocation

callProperties.deviceComponents

DeviceComponents

appMetadata.DeviceComponents

callVerification.status

RecordStates

appMetadata.RecordStates

callVerification.digitalSignatureFromRecorder

CallDigitalSignature

appMetadata.CallDigitalSignature

callVerification.calculatedDigitalSignature

CallDigitalSignature

appMetadata.CallDigitalSignature

Response and Error Code

Response Code

Condition

202

Accepted

404

Invalid Request

401

Unauthorized

500

Internal Server Error

Sample Request
{
  "providerType": "ucapture-batch-ingestion-inbound",
  "mappingConfig": [
    {
      "source": [
        {
          "key": "auxiliaryMetaData.Extension",
          "type": "string",
          "splitIndex": 0,
          "delimiter": "@"
        }
      ],
      "target": "app_metadata.AgentFirstName"
    },
    {
      "source": [
        {
          "key": "auxiliaryMetaData.Extension",
          "type": "string",
          "splitIndex": 1,
          "delimiter": "@"
        }
      ],
      "target": "app_metadata.AgentExtension"
    }
  ]
}