Design Examples
The sample designs on this page show the range of possibilities for integrating your virtual agent with CXone. They are based on real-world scenarios, but it's important to understand that every organization's environment is different. The designs may not work for your environment as shown.
Design 1: .NET API Proxy Tunnel Hosted as an Azure Web Service
Design example 1 features a .NET API that's hosted as an Azure web service. The virtual agent bot layer of the architecture is designed so that the virtual agent and the cognitive services live in separate containers in Azure. The proxy tunnel requires three distinct calls for each request:
- The first call sends the audio to the speech-to-text service for transcription.
- The second call sends the transcribed text to the virtual agent, which analyzes it for intent The meaning or purpose behind what a contact says/types; what the contact wants to communicate or accomplish and returns a response.
- The third call sends the virtual agent's response to the text-to-speech service to be synthesized into an audio response. The synthesized response is sent back to CXone.
This architecture example may result in latency during interactions due to the number of calls the proxy tunnel makes during each request.
Design 2: Proxy Tunnel Endpoint Masked Inside .NET gRPC Client
This example's architecture has a proxy tunnel endpoint masked inside a containerized .NET gRPC client service. The gRPC client is built as a Docker container that is hosted as a web service. Requests from CXone pass through the API gateway to the proxy tunnel endpoint inside the gRPC client.
This example also incorporates an authorization service. The CXone Studio script fetches an authorization token from the authorization service and returns it to the script. The script then sends requests through the API gateway.
Design 3: API Gateway Masked as a Proxy
This relatively simple architecture features an API gateway that's masked as a proxy. It can do everything that a proxy tunnel needs to do to support CXone custom endpoints. That is, it can handle payload translation, audio conversation and transcoding, and relaying input and output between systems.