> ## Documentation Index
> Fetch the complete documentation index at: https://help.cloudtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Send Transcriptions to Slack

> Our workflow automations allow you to forward transcribed calls to your company Slack.

> [!NOTE]
>
> 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.

1. From the [Slack API apps](https://api.slack.com/apps) page, select **`Create an App`**.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/a05e9cfb6a36-screenshot-2023-12-13-at-11-49-52.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=8c24b99b69943fa5430ac75f942dd7af)

2. Select **From scratch**.

3. Enter `CloudTalk` as the **App Name** and select your business Slack workspace.

4. **`Create App`**.

5. Navigate to **Features** **>** **Incoming Webhooks** within the app pages.

   1. Turn on **Activate Incoming Webhooks**.

      ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/4a2be47ca83e-activate-incoming-webhooks.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=fbed9c09cec452b114c95b9b7e8698ed)

6. Navigate to **Features >** **OAuth & Permissions**.

   1. Under *Scopes* **> Bot Token Scopes**, select **`Add an OAuth Scope`**.

      1. Select **chat:write.customize** scope.

      2. Select **`Add scopes`** when asked to add **chat:write**.

      3. Select **chat:write.public** as the last scope in this section.

         ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/ea88f15da8d2-adding-bot-scopes.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=b3acbef2b2047139a8c7b8a644570136)

   2. Under *Scopes* **> User Token Scopes**, select **`Add an OAuth Scope`**.

      1. Select **chat:write**.

7. Navigate to **Settings > Install App** and select **`Install to Workspace`**.

8. Choose the channel you want your CloudTalk app to post in. **Allow**.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/f667fab921e2-test-app-auth-to-channel.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=b50618ede20cb66b2d8b3644d2cf10e1)

9. 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.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/981abab211bd-user-oauth-token-copy.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=5a74b7f8da5c8261f131742e0489e490)

> [!WARNING]
>
> **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](mailto:support@cloudtalk.io) 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](#h_3248403432))

* 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](https://api.slack.com/authentication/token-types).

### Transcribe Call Recordings

1. From your dashboard, navigate to **Settings > Workflow Automations**.

2. Select **`+Add Workflow`** and name your workflow.

3. Define a **[trigger](/en/articles/5648924-triggers)**. 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.*

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/0008a81f9fd2-stt-trigger.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=db1ffcd62f8943c8300fb3ee3c6ab445)

4. We could choose to set up an optional **[condition](/en/articles/5649346-conditions)**. 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`**.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/1ec69202d16b-stt-usefulldata.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=d198064b8b69d56a55e62ce6f0ab37cb)

5. The next step is to choose an [action](/en/articles/5649782-actions) type which will take place whenever a recording gets uploaded. We select the **Action type > Speech to Text.**

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/b7d24c96280c-stt-action.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=ad42faa88e0f2114821a790934c8ed3d)

   1. For **Key > language**, enter into the **Value** box the appropriate language for our recordings. Choose from the [Google Cloud list of languages](https://cloud.google.com/speech-to-text/docs/languages) and copy/paste the code listed in its **BCP-47** column\*\*.\*\*

   2. For **Key > model**, you can [choose a specific machine learning model](https://cloud.google.com/speech-to-text/docs/transcription-model). In most cases the **phone\_call** model is sufficient for the CloudTalk platform.

   3. When **Key > enhancedModel** is set to **true**, [a more advanced model](https://cloud.google.com/speech-to-text/docs/enhanced-models) which has been optimized for accuracy will be applied. However, this option will increase costs of transcription.

6. **`Confirm and continue`**.

7. **`Save`** your workflow and activate it by toggling the switch at the top of the workflow setup page.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/d4cb7cb2ce2f-stt-activate.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=e42363aa2aa03d48ef9699f162c8207e)

### Forward Transcriptions to Slack

In the previous section of this article, we set up our Workflow Automation to ensure the creation of a Speech-to-Text transcription. In the next section, we will configure the workflow to send this transcription to the Slack workspace of your choice.

1. From your dashboard, navigate to **Settings > Workflow Automations**.

2. Select **`+Add Workflow`** and name your workflow.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/930344ce4c3e-stt-slack-name.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=d0a86a93637ac5a90059994a15c2cfe8)

3. Define a [trigger](/en/articles/5648924-triggers) of **Object** type **transcription** and **Action** type **created**. This trigger will initiate any time a transcription gets created.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/de76b7a01446-stt-trigger-2.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=c4fd419bbd32e12ddab6f634db11b76f)

4. We could choose to set up an optional **[condition](/en/articles/5649346-conditions)**. 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`**.

5. The next step is to choose an [action](/en/articles/5649782-actions) which will take place when our conditions are met. We select the **Action type > Send notification to Slack.**

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/91cba79119d3-stt-slack-action.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=48d3f9bf6d5c548d98dfb0dce90e7a47)

6. Under *Values*, various Keys should appear with their boxes already populated. These cannot be edited. The input `token` should autofill the first **Key** box. The `x'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](#h_3248403432)).

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/1072873aead6-image.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=62489993a665a9939196a682eba5d36a)

   1. The **Bot User OAuth** allows posting in any public Slack channel, while the **User OAuth** requires you to be added to the channel.

   2. *Refer to the [Slack help center](https://slack.com/help/articles/215770388-Create-and-regenerate-API-tokens) for additional guidance on Slack tokens.*

7. Enter the name of your Slack channel in the **Value** box for **Key:** `channel`. Our Slack channel name here is **#call-transcript**.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/de3ba1672a2a-image.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=d8466f2570577c6ba2f455e0c13f1363)

8. 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 the `blue + sign` next to **transcription** opens up more options, from which we can choose a **`json`** or **`csv`** file format.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/f5b6989a3477-transcription.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=5f513bd0fa9a21f6eca8af49ff46c031)

9. 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.

   ![](https://mintcdn.com/cloudtalk/O5rJITGT3VgCy4bd/images/help-center/articles/5959405/708d9d9e821b-image.png?fit=max\&auto=format\&n=O5rJITGT3VgCy4bd\&q=85\&s=3703cdcb3338b565aab9f15614dd3e9f)

10. **`Confirm and continue`**. Save your workflow and activate it by toggling the switch at the top of the workflow setup page.

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](https://api.slack.com/authentication/token-types) or the [Slack help center](https://slack.com/help/articles/215770388-Create-and-regenerate-API-tokens) 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 "[*+55 55 5555 5555*](ct+tel://+555555555555)" (no hyphens included) but the entered value looks like "[*+55 55 5555 5555*](ct+tel://+555555555555)" (hyphens included), your condition will never find matches.

***

*Need help or have a question?* Just reach out through our [Support portal](https://support.cloudtalk.io/hc/en-us/requests/new?ticket_form_id=26305535257884) — we’re here for you.


## Related topics

- [Workflow Automations guide](/en/articles/10568412-workflow-automations-guide.md)
- [Actions](/en/articles/5649782-actions.md)
- [Configuring Workflow Automations](/en/articles/5450779-configuring-workflow-automations.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.