Genesys with Deepgram Integration

Genesys is a cloud-based platform used by many organizations to manage their call centers. With our plug-and-play Genesys integration, you can have all of your Genesys calls transcribed in real-time by Deepgram.

Solution

In this guide, we'll explain how to:

  • configure Genesys to share call audio will Deepgram
  • have transcriptions sent to a callback URL of your choice

Before you Begin

Create a Deepgram Account

Before you can use Deepgram products, you'll need to create a Deepgram account. Signup is free and includes:

$200 in credit, which gives you access to:

  • all base models
  • pre-recorded and streaming functionality
  • all features

Create a Deepgram API Key

To access Deepgram’s API, you'll need to create a Deepgram API Key. Make note of your API Key; you will need it later.

Set Up a Genesys Cloud Org

You'll also need a Genesys Cloud org where you have completed the initial setup tasks so that your call center can receive calls.

Install AudioHook Monitor

In your Genesys org, install AudioHook Monitor. Note that you will also need to configure voice transcription in order for AudioHook Monitor to work.

Configure AudioHook Monitor

Once you've installed AudioHook Monitor, it will appear in your Integrations in the Genesys UI, as in the image below. Now click the three dots on the AudioHook row and choose Edit Integration.

Choose Edit Integration from the menu

You should now see an interface like below. Under the Details tab, you can give your AudioHook instance a more useful name. Let's name it Deepgram.

The details tab, where you can add a useful name.

Under Configuration > Properties, set Channel to both and Connection URI to wss://integrations.deepgram.com/genesys.

Under the configuration tab in properties you can set the channel and the Connection URI

Under Configuration > Credentials, click Configure and paste your Deepgram API key into the API Key field. Leave the Client Secret field blank. Then click OK.

A Deepgram API key pasted into the API Key field

📘

If you specify an API key and then change it, it can take a long time for the new API key to propagate through the Genesys system. Give it 30 minutes before you assume that Deepgram is receiving the new API key. If you don't want to wait, you can delete AudioHook from the Integrations page, reinstall it, and provide the new API key to the reinstalled AudioHook.

Under Configuration > Advanced, provide a JSON object to customize the Deepgram request. For example:

{
  "model": "general",
  "tier": "nova",
  "punctuate": true,
  "smart_format": true,
  "tag": [
    "sometag1",
    "sometag2"
  ],
  "callback": "https://example.com/webhook/{conversation-id}"
}

Within this JSON object, you have access to the full suite of features in Deepgram's streaming API.

Callback

Let's take a moment to look at the most important feature: the callback. The callback is the URL where your transcriptions will be posted in real-time. It works exactly like it does for a normal streaming request, except when you are using Deepgram with Genesys, there are three special placeholders you can include in the callback URL:

  • {conversation-id}
  • {participant-id}
  • {session-id}

In the example above, we provide a callback of https://example.com/webhook/{conversation-id}. This means that if there is a Genesys call with conversation id fb486691-fbe1-4b8d-a28e-72ca891e8f0b, the transcriptions for that call will be posted to https://example.com/webhook/fb486691-fbe1-4b8d-a28e-72ca891e8f0b. This is very important because it allows us to match up transcripts with calls.

🚧

In your Advanced Configuration JSON object, make sure NOT to include any of these features:

  • sample_rate
  • encoding
  • channels
  • multichannel

Deepgram already knows the sample_rate, encoding, and channels based on the information sent from Genesys, and multichannel is locked to true so that you can tell who is speaking in your transcripts.

If you include any of these four features, activating the integration will fail!

Activate Integration

Now we are done with configuration and can click Save. That will take us back to the Integrations page, where we can flip the switch to activate the integration. Make sure it goes into the Active state and no errors are displayed, like the image below.

The toggle should be set to Active state.

At this point, if everything was done correctly, you should be able to put a call through the system and see your transcripts arriving at your specified callback URL. To quickly validate that it's working, it can be helpful to point your callback URL to a free tool that displays incoming requests, like beeceptor.com, webhook.site, or--with slightly more effort--ngrok.