Integration interfaces

The following changes have been made in the RESTful and integration interfaces.

RESTful Configuration Interface (RCI)

The interface has the following improvements and new features:

  • Password expiration date (field passwordExpiration) has been added to the users resource and users/{userId} GET request. It can also now be used as search criteria in the users resource (query parameters passwordExpiration and passwordExpirationEnd).

  • New settings have been added to the userSettingsTemplates resource to define patterns and text for content checker to recognize and highlight in Communication Panel:
    • ECFUI_RegexFilter (for patterns highlighted in red and created with regular expressions)
    • ECFUI_RegexWordsToAvoid (for words highlighted in orange and created as comma-separated list or unordered list)
    • ECFUI_RegexWordsNotRecommended (for words highlighted in yellow and created as comma-separated list or unordered list)
  • New settings have been added to the userSettingsTemplates resource:
    • ECFUI_HideWrapupTimerStopButton (new field Hide button to stop wrap-up timer in System Configurator, see Hiding Stop wrap-up timer button)
    • ECFUI_EnableSupervisorSilentMonitoring (field Enable Silent Monitoring)
    • ECFUI_CloudAttachmentsEnabled (field Enable Cloud Attachments)
    • ECFUI_E911Enabled (field Enable Emergency Locations)
    • ECFUI_OptionalOfferingScreenItems (field Optional Information in Offering Screen)
    • ECFUI_PdfPrintEnabled (field Show PDF Button)
    • ECFUI_DownloadRecordingEnabled (field Show Download Button for Call Recording and Voicemail)
    • ECFUI_LogRecordingEnabled (field Use Recording Activity Log)
    • ECFUI_LogLevel (field Log Level)
    • ECFUI_EnableMobileApp (field Show QR code for app setup in Communication Panel or Launchpad)
  • A new secrets resource has been added for handling centrally stored third-party secrets. For more information on related changes in System Configurator, see Secret manager.

  • It's now possible to fetch, update, and create users' attributes with RCI:

    • There is a new users/:id/attributes resource with methods GET and POST.

    • The GET /users resource has a new query parameter includeAttributes as well as new search parameters attributeName and attributeValue.

  • The usersettingstemplates resource has new settings:

    • ECFUI_ShowAudioRecordingButton to enable agents to record voice messages in response to customers' conversational messaging chats

    • ECFUI_PicklistFilterPickableNow to enable showing users only the conversations that are pickable at the current time in Picklist

      For more information, see Showing only pickable conversationsand Pickable conversations.

RESTful Outbound Campaign Interface (OBI)

The campaign status query now supports multiple status values.

RESTful Monitoring Interface (RMI)

The interface has the following improvements and new features:

  • The /agents resource now supports filtering with presence, for example, to find agents who have been active for the current day.

  • GET /RI/rmi/contacts now supports subtypes for phone channel as well.

  • A new field availabilityIndex has been added to the GET method of the agents resource.

  • The contacts resource's pickable query parameter has a new now option which returns conversations that are pickable and do not have another agent as required or preferred agent and Allow picking chats from preferred and required agents (chat queue) / Allow Picking by Other Communication Panel Agents (email queue) is not selected for the queue in System Configurator.

  • loginType information (AutoAllocation or HuntGroup) has been added to resources /agents?showQueueInfo=5, /agents, and /agents/queues.

RESTful Contact Management Interface (CMI)

The interface has the following improvements and new features:

  • GET cmi/contactData now returns saved CAD for emails.

  • The POST method of the contactData resource now supports also updating CAD in email conversations.

  • The GET /cmi/customerConsents resource now returns the date and time when consent has been created (field creationTime). This field can also be used to filter consents (query parameters creationTime and creationTimeEnd).

  • GET /RI/cmi/contacts now supports subtypes for phone channel as well.

  • The GET method of the chats resource now supports filtering with a date range or before or after the creation date. For example:

    • GET /RI/cmi/chats?date_created=2025-01-21T00:00:00Z&date_created_end=2025-01-21T23:59:59.999Z returns chats created during 21st Jan 2025 in UTC time.
    • GET /RI/cmi/chats?date_created=2025-01-21T00:00:00Z returns chats created on or after the given UTC time.
    • GET /RI/cmi/chats?date_created_end=2025-01-21T23:59:59.999Z returns chats created on or before the given UTC time.
  • A new callTranscripts resource has been added for handling call recording transcripts. For more information, see Call recording transcription and AI analysis (beta).

  • The interface has a new resource: /chatMessages to get Sinch Conversation API identifiers. The resource supports the following query parameters: externalContactId, externalMessageId, and externalConversationId.

  • CMI now supports downloading:

    • attachments from emails, chats, and voicemail tasks

      This makes it possible to carry out an AI analysis also for the attachments. The AI analysis for attachments will be developed in a future release.

    • call recordings

      This makes it possible for on-premise customers to enable call recording transcription and AI analysis services. Call transcription and AI analysis for the on-premise environment will be developed in a future release.

    These can be downloaded directly or a presigned URL can be created for downloading later.

RESTful Contact Management Interface (CMI) and RESTful Monitoring Interface (RMI)

The resource /contacts now returns outgoing IVR calls (subtype IVROut).

RESTful License Reporting Interface (LRI)

The following resources now use integers instead of strings for integer values:

  • GET /RI/lri/report

  • GET /RI/lri/data

  • GET /RI/lri/contact

Note that this change may cause issues if you use LRI with application/json instead of application/xml.

LRI now returns data for a specified time range, including user name and the number of times they logged in during that period. Use the following query parameter values for lri/data:

  • details=1

    This returns A. and U. features in addition to other features.

  • details=2

    This returns only U. features.

For more information, see the LRI API document.

RESTful Task Management Interface (RTI) and Task Management Interface (TMI)

Added support for integration scenarios where an agent's active email channel conversation is transferred to a queue or to another agent by using RESTful Task Management Interface (RTI) or Task Management Interface (TMI). ID: SCC-15584

In RTI, you can do this in the following way in JSON format:

  1. Use GET /tasks/:id to fetch conversation data.

  2. Copy the complete response body JSON and modify the item object as follows:

    • Set the value of the status field as "Forwarded".

    • If you want to transfer the conversation to a queue:

      • Remove the responsible field.

      • If you want to transfer the conversation to another queue:

        • Remove the queueName field.

        • Set the value of the queue field as the GUID of the transfer destination queue (uppercase, without hyphens).

    • If you want to transfer the conversation to another agent, set the value of the responsible field as the GUID of the transfer destination agent (uppercase, without hyphens).

  3. To trigger the transfer, use the modified response body JSON as the request body for PUT /tasks/:id.

Example response from GET /tasks/:id:

{
    "item": {
        "id": "6246D608D119F011AD2B02CA80B25B4B",
        "type": "EMAIL",
        "queue": "D4448A0ECFA9482987B905B3DCE7807B",
        "queueName": "dev.team4-1",
        "responsible": "26364A4DFA9F413AA5A5F99F96F38B8E",
        "status": "Open",
        "rowVersion": "0000000001C8F826"
    },
    ... (rest of the data) ...
}

Edited to transfer to another queue with PUT /tasks/:id:

{
    "item": {
        "id": "6246D608D119F011AD2B02CA80B25B4B",
        "type": "EMAIL",
        "queue": "C2137B0ABCA9483166B815B3EBA1239A",
        "status": "Forwarded",
        "rowVersion": "0000000001C8F826"
    },
    ... (rest of the data) ...
}

Online Integration Interface (OII)

Instant Messaging is no longer supported.

It's now possible to set a callback as successful automatically after any attempt to call the customer. This requires setting value 2 to OII registry setting CHECK_CALLBACK_RESULT. ID: SCC-16275

Communication Panel Third-Party Extension Messaging API

The API now supports the following:

  • routingData: required agent information can be added to conversations in transfer cases

  • chatLocked: to prevent sending chat messages in an ongoing conversation

  • width: to change the current extension's width in pixels

  • wrapupTimerStopButtonEnabled: to enable and disable the Stop wrap-up timer button

  • emailContent: to insert new text into email body at the current cursor position when the email is in the edit mode

  • agentPresence: to change agent presence profiles

  • agentWorkStatus: to change agent status (ready/not ready)

RESTful Directory and Presence Interface (DPI)

A new field subtype has been added to the GET method of the template resource. This is related to the support added for conversational messaging apps not based on phone number.

Event-driven integration framework

A new framework has been created for integrating Sinch Contact Pro with web services both externally and inside the system. This low-code framework makes it possible to trigger an integration based on a conversation event, such as when the conversation is accepted, transferred, or ended.

You can use the framework, for example, for the following scenarios:

  • Fetch customer data from a customer data platform (CDP) or customer relationship management (CRM) system and show it to the agent in Communication Panel's extension area.

  • Send a customer a customer satisfaction (CSAT) survey or send feedback after a conversation is over.

    It's also possible to delay request execution so that the feedback survey isn't sent immediately after a conversation has ended.

  • Listen to conversation lifecycle events and receive conversation data from Sinch Contact Pro by using a webhook.

  • Control the routing of conversations, for example, by assigning a required or preferred agent.

  • Analyze an email with ChatGPT and save the analysis as CAD

  • Send a message to the customer after a campaign call

  • Check queue availability when a conversation is received

Event-driven integrations can be configured in System Configurator. Administrators can define:

  • The channel in which the integration is used:

    • Phone

    • Chat

    • Email

    • Multi-Channel

  • The URL of the web service (endpoint)

  • The conversation events that trigger the integration

  • The conversations in which the integration is used:

    • Direction: inbound, outbound or both

    • Direct conversations: calls and/or chats

    • Queues

  • The order in which integrations for the same conversation are triggered

  • Credentials or access keys needed for request authentication

    It's also possible to use secrets from Secret manager in EDI configurations. This means you don't need to define authentication details separately for the EDI configuration.

  • Request building and response handling as JSON code

To use conversation attached data (CAD) that has been saved in one integration, you can use another, so-called echo integration for the same conversation. With the echo integration, you can, for example, set a preferred or required agent for the conversation based on a condition applied to the CAD.

For more information, see the Event-Driven Integrations document.