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 |
|---|---|---|---|
| String | The ID of the tenant to set the metadata mapping for. | Required |
Request Parameter
Parameter Name | Data Type | Description | Required/Optional |
|---|---|---|---|
| String | Set to | Required |
| Array | A complete list of metadata mapping pairs you intend to use when ingesting conversations, each pair is split into the following:
| Required |
Parameter Name | Data Type | Description | Required/Optional |
|---|---|---|---|
| String | Used to point at a specific sub-parameter listed in the | Required |
| String | The data type of the value associated with the sub-parameter specified in | Required |
| Boolean | If the value needs to be split, Using | Optional |
| String | Used to specify the exact character or combination of characters used to split the value. For example, a delimiter set to | Optional |
For an example request, see Sample Request.
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 |
|
tenantId | tenantId |
|
agent.email | AgentEmail |
|
agent.extension | AgentExtension |
|
agent.firstName | AgentFirstName |
|
agent.lastName | AgentLastName |
|
agent.manager | AgentManager |
|
agent.location | AgentLocation |
|
agent.department | BusinessUnit |
|
agent.number | AgentNumber |
|
agent.id | participants |
|
callProperties.startDate | states |
|
callProperties.endDate | states |
|
callProperties.duration | duration |
|
callProperties.otherParties.name | OtherParties.Name |
|
callProperties.remoteNumber | remoteNumber |
|
callProperties.trunkName | PBXTrunkName |
|
callProperties.group | CallGroup |
|
callProperties.accountInfo | AccountInformation |
|
callProperties.callType | CallType |
|
callProperties.callAudio | CallAudio.AudioStatus |
|
callProperties.licenseStatus | IsMediaLicensed |
|
callProperties.licensed | IsMediaLicensed |
|
callProperties.externalCallId | CallExternalCallID |
|
callProperties.ringTime | RingTime |
|
callProperties.infrastructureInfo | InfrastructureInformation |
|
callProperties.integration | Integration |
|
callProperties.localName | LocalParty.Name |
|
callProperties.routingInformation | RoutingInformation |
|
callProperties.sipDetails | SIPDetails |
|
callProperties.sourceFormat | SourceFormat |
|
callProperties.deviceId | DeviceID |
|
callProperties.deviceLocation | DeviceLocation |
|
callProperties.deviceComponents | DeviceComponents |
|
callVerification.status | RecordStates |
|
callVerification.digitalSignatureFromRecorder | CallDigitalSignature |
|
callVerification.calculatedDigitalSignature | 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"
}
]
}