Create a workflow to automatically send call transcriptions to a Slack channel.
User Level:
Admin
Create CloudTalk App in Slack
Before sending API calls to Slack, you must create a CloudTalk app and allow it to post in designated channels.
From the Slack API apps page, select
Create an App
.Select From scratch.
Enter
CloudTalk
as the App Name and select your business Slack workspace.Create App
.Navigate to Features > Incoming Webhooks within the app pages.
Navigate to Features > OAuth & Permissions.
Navigate to Settings > Install App and select
Install to Workspace
.Choose the channel you want your CloudTalk app to post in. Allow.
When redirected back to Settings > Install App, you will be able to see the User OAuth Token and Bot User OAuth Token. You will need to copy one of these values when setting up your workflow.
If the admin configuring the workflow automation is not added to the channel you've selected to post in, the Bot User OAuth Token will need to be used for the token
value in the next steps. This is because using the User OAuth Token only allows posting in channels where the associated CloudTalk user is added.
Forward Transcriptions to Slack
In this example, we will actually need to use two Workflows: one to automate transcription formation, and one to automate the export process of those transcriptions once they are finished.
Goal:
Transcribe all call recordings.
Forward those transcriptions to Slack.
Prerequisites
You've successfully added an Expert or Custom plan with CloudTalk
CloudTalk Support has enabled Speech-to-Text for your account
You have created a CloudTalk app in Slack and connected it to your desired Slack channel (see Create CloudTalk App in Slack)
Token permissions for your Slack channel include chat:write permissions, meaning your workplace allows data coming in from another app to post on Slack channels in place of an individual user. You can reference the Slack API help guide to read about how Slack tokens work.
Transcribe Call Recordings
From your dashboard, navigate to Workflow Automations.
Select
+Add Workflow
and name your workflow.Define a trigger. In this example, our trigger will be whenever a recording gets uploaded. Under Object, we will select recording. For Action, we select uploaded.
Note: This is the only available action for a recording Object.
We could choose to set up an optional condition. Choose a dynamic Property and reference its example Value by looking at the Useful data for your Workflow section, if Conditions are necessary. For the purposes of our example, we don't really need one. We can click to
Skip and continue without action
.The next step is to choose an action type which will take place whenever a recording gets uploaded. We select the Action type > Speech to Text.
For Key > language, enter into the Value box the appropriate language for our recordings. Choose from the Google Cloud list of languages and copy/paste the code listed in its BCP-47 column.
For Key > model, you can choose a specific machine learning model. In most cases the phone_call model is sufficient for the CloudTalk platform.
When Key > enhancedModel is set to true, a more advanced model which has been optimized for accuracy will be applied. However, this option will increase costs of transcription.
Confirm and continue
,Save and Activate
.
Forward Transcriptions to Slack
Make a second workflow for automating the export to Slack.
Define a trigger of Object type transcription and Action type created. This trigger will initiate any time a transcription gets created.
Note: This is the only available action for a transcription Object.
There are some relevant tags to choose from if Conditions are necessary, though we will not use any in our example. Click the white button to
Skip and continue without action
.The next step is to choose an action which will take place when our conditions are met. We select the Action type > Send notification to Slack.
Under Values, various Keys should appear with their boxes already populated. These cannot be edited. The input
token
should autofill the first Key box. Thex's
which populate the Value box for Key:token
are only placeholders. In order to connect to Slack, we must enter either the User OAuth token OR the Bot User OAuth Token found in your Slack app settings (see Create CloudTalk App in Slack).The Bot User OAuth allows posting in any public Slack channel, while the User OAuth requires you to be added to the channel.
Refer to the Slack help center for additional guidance on Slack tokens.
Enter the name of your Slack channel in the Value box for Key:
channel
. Our Slack channel name here is #call-transcript.Next to Key:
text
, we choose to enter a dynamic value, or a value that will populate based on information from the system. To accomplish this, we will click into the Value box for Key:text
, then click on a keyword from the Useful data for your Workflow section. Clicking theblue + sign
next to transcription opens up more options, from which we can choose ajson
orcsv
file format.We have chosen the dynamic value of the transcription.csv, which will send to Slack. We know the Slack notification will contain the content of a given transcription which has triggered the automation, in csv format.
โWe can choose to Test now to make sure our conditions are working correctly. Be aware that clicking Submit for a Test will send a real Slack notification to the input in the Channel value. It's a good idea to make your team aware of the testing process.
Save and activate to put the automated Slack notification in place immediately.
We have now accomplished our goal of forwarding transcriptions to the team Slack channel, a process which we can later edit and toggle off or on at our choosing.
Troubleshooting Tips
When it comes to Slack:
Confirm your team's Slack app is up and running and that you are signed in
Check that you have successfully authorized Slack to access CloudTalk
Make sure your token scopes include chat:write permissions. Refer to the Slack API guides or the Slack help center for assistance.
Faulty conditions are often the result of unrecognized inputs in the Property box, or inputs in the Value box which will always result in no matches.
After clicking into the Property box, you must click one of the pre-selected keywords within the Useful data for your Workflow section to the right. Otherwise, refer to the images for proper formatting of dynamic values.
You can also refer to the Useful data for your Workflow section to validate whether the Value you entered seems to be a good match for the property you've chosen.
When setting a value for a condition that searches entered phone numbers, make sure you are using the number recognized through CloudTalk. Format matters. If the suggested value example in the Useful data for your Workflow section has a number with the format "+555555555555" (no hyphens included) but the entered value looks like "+555-555-555-555" (hyphens included), your condition will never find matches.
If you have any further questions please reach out to our Support team, we are always happy to help!