> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Slack

## Visão geral

A integração com o Slack permite que um agente da ElevenLabs envie e receba mensagens no Slack. Depois de conectado, o agente responde em uma thread quando é mencionado em um canal e mantém um contexto de conversa separado para cada thread.

## Recursos

| Recurso                     | Suporte                                                                                                                                                                                              |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Modo de retenção zero (ZRM) | Não compatível                                                                                                                                                                                       |
| Anexos em gatilhos          | Imagens (PNG, JPEG, GIF, WebP) e arquivos PDF em mensagens recebidas, quando **Permitir anexos de arquivos** está ativado nas configurações do agente e o LLM do agente aceita imagens ou documentos |
| Anexos em ferramentas       | Não compatível — as ferramentas funcionam apenas com texto                                                                                                                                           |

## Configuração

A integração oferece duas formas de conexão:

* **OAuth** — instale o app compartilhado do Slack da ElevenLabs no seu workspace. Um único workspace do Slack corresponde a uma única conexão da ElevenLabs. É a configuração mais rápida e não exige gerenciamento do app do Slack.
* **Use seu próprio app** — conecte-se usando um app do Slack criado e de sua propriedade. Use esta opção quando precisar que o bot apareça com sua marca ou quando as políticas do seu workspace exigirem que apps sejam instalados por um administrador.

### Opção A — OAuth

O usuário que instalar o app precisa ter permissão para adicionar apps ao workspace do Slack de destino.

#### Abra a página de integrações

No painel da ElevenLabs, acesse **Agents** > **Integrações** e selecione **Slack**.

#### Clique em Conectar

Escolha a credencial **OAuth** e clique em **Conectar**. Você será redirecionado ao Slack para escolher em qual workspace instalar o app da ElevenLabs e aprovar os escopos solicitados.

#### Conclua o redirecionamento

Após a aprovação, o Slack redireciona você de volta à ElevenLabs e a conexão é criada. O ID do workspace do Slack é registrado automaticamente e usado ao configurar gatilhos.

### Opção B — Use seu próprio app do Slack

Use esta opção se quiser que o bot apareça com o nome e o ícone do seu próprio app ou se o seu workspace exigir que os apps sejam revisados e instalados pelo administrador.

#### Crie um app do Slack

Acesse [Slack API: Your Apps](https://api.slack.com/apps) e clique em **Create New App** > **From scratch**. Dê um nome ao app e escolha o workspace do Slack em que deseja instalá-lo.

#### Adicione escopos de bot

Abra **OAuth & Permissions** e adicione os seguintes escopos de token de bot:

`app_mentions:read`, `channels:history`, `channels:join`, `channels:manage`, `chat:write`, `files:read`, `groups:history`, `groups:write`, `im:history`, `reactions:write`.

Em seguida, clique em **Install to Workspace** e aprove. Copie o **Bot User OAuth Token** (começa com `xoxb-`).

#### Copie o segredo de assinatura

Abra **Basic Information** > **App Credentials** e copie o **Signing Secret**.

#### Crie a conexão na ElevenLabs

No painel da ElevenLabs, acesse **Integrações**, clique no botão **Adicionar integração** e escolha **Slack**. Escolha a credencial **Use seu próprio app**. Cole o token do bot e o segredo de assinatura, depois salve. A ElevenLabs verifica o token no Slack e registra o ID do seu workspace.

Depois que a conexão é criada, a página da conexão mostra duas URLs de webhook derivadas da identidade do seu app do Slack. O mesmo app do Slack, reconectado a partir do mesmo workspace da ElevenLabs, sempre gera as mesmas URLs — assim, você pode excluir e recriar a conexão sem atualizar novamente a configuração do seu app do Slack. Mantenha essa página aberta para as próximas etapas.

#### Configure as assinaturas de eventos

No seu app do Slack, abra **Event Subscriptions**, ative os eventos e cole a **URL de eventos** da página de conexão da ElevenLabs em **Request URL**. O Slack verificará a URL usando o segredo de assinatura fornecido por você.

Assine eventos de bot conforme o comportamento desejado para o agente nos canais:

* **Somente menções** — assine `app_mention`. O agente responde apenas quando um usuário menciona o bot com `@`.
* **Todas as mensagens** — assine `message.channels` e `message.groups`. O agente responde a todas as mensagens dos canais em que o bot está, sem exigir uma menção.

Se você usar o gatilho **SlackDirectMessage**, também assine `message.im`.

Não assine ao mesmo tempo `app_mention` e os eventos de canal `message.*`, a menos que pretenda lidar com entregas duplicadas. Quando um usuário menciona o bot com `@`, o Slack pode enviar um evento `app_mention` e um evento `message` para a mesma mensagem, fazendo o agente responder duas vezes.

#### Configure a interatividade

Abra **Interactivity & Shortcuts**, ative a interatividade e cole a **URL de interatividade** da página de conexão da ElevenLabs em **Request URL**.

#### Reinstale se solicitado

Se o Slack solicitar que você reinstale o app após alterar escopos ou eventos, faça isso para aplicar as alterações.

> **Note**
>
> Um workspace do Slack só pode ser conectado uma vez pelo app OAuth compartilhado da ElevenLabs. A reinstalação
> a partir de outro workspace da ElevenLabs retorna um erro `duplicate Slack workspace` — remova primeiro a
> conexão existente. As conexões com seu próprio app são independentes e não entram em conflito.

## Escopos OAuth

O app do Slack da ElevenLabs solicita os seguintes escopos:

| Escopo              | Finalidade                                                                                                |
| ------------------- | --------------------------------------------------------------------------------------------------------- |
| `app_mentions:read` | Receber mensagens em que o bot é mencionado com `@`.                                                      |
| `channels:history`  | Ler mensagens em canais públicos dos quais o bot participa.                                               |
| `channels:join`     | Permitir que o bot entre automaticamente em canais públicos quando um gatilho é criado.                   |
| `channels:manage`   | Executar ações de gerenciamento de canais.                                                                |
| `chat:write`        | Publicar mensagens em canais e threads.                                                                   |
| `files:read`        | Baixar arquivos anexados às mensagens para que o agente possa ler imagens e PDFs.                         |
| `groups:history`    | Ler mensagens em canais privados dos quais o bot participa.                                               |
| `groups:write`      | Operar em canais privados.                                                                                |
| `im:history`        | Ler mensagens em canais de mensagens diretas com o bot.                                                   |
| `reactions:write`   | Adicionar e remover reações, usadas como indicador de processamento em mensagens e ferramentas do agente. |

## Ferramentas do agente

Ao adicionar ferramentas do Slack a um agente, as seguintes ferramentas integradas ficam disponíveis:

| Ferramenta              | Descrição                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `slack_add_reaction`    | Adiciona uma reação de emoji. Por padrão, o canal e o `ts` da mensagem são preenchidos a partir de `integration__slack_channel_id` e `integration__slack_trigger_message_ts`; o modelo escolhe apenas o shortcode do emoji (sem dois-pontos), por exemplo, `thumbsup`. Fora de conversas iniciadas pelo Slack, essas variáveis não estão presentes, a menos que você as defina — ajuste o esquema da ferramenta se o modelo precisar informar explicitamente o canal e o `ts`. |
| `slack_remove_reaction` | Remove uma reação de emoji (com os mesmos padrões da adição). Segundo o Slack, o bot que faz a chamada só pode remover reações que ele próprio adicionou; consulte [reactions.remove](https://docs.slack.dev/reference/methods/reactions.remove).                                                                                                                                                                                                                              |

## Remover a conexão

Remover a conexão na página **Integrações** desinstala o app do Slack da ElevenLabs do workspace do Slack. Após a remoção, o bot não estará mais presente em nenhum canal.

Para conexões com seu próprio app, a ElevenLabs não pode desinstalar um app que não possui — remover a conexão apenas exclui o mapeamento local. Para remover completamente o bot do seu workspace do Slack, desinstale o app nas configurações de administração do Slack.

## Configure o gatilho

A integração expõe um único gatilho, **SlackMessage**. Ele é acionado quando o bot vê uma nova mensagem de usuário em um canal configurado.

#### Adicione um gatilho SlackMessage

Na página de configuração do agente, adicione um novo gatilho e selecione **SlackMessage**.

#### Escolha o agente e o canal

Configure os campos do gatilho:

* **Agente**: o agente que conduz a conversa.
* **ID do canal**: o ID do canal do Slack, por exemplo, `C0123456789`. A interface fornece um link direto para abrir o canal no Slack.

#### Salve o gatilho

Salve o gatilho. A ElevenLabs convida automaticamente o bot para canais públicos. Remover o gatilho mais tarde faz o bot sair desse canal.

> **Info**
>
> O Slack não permite que apps entrem automaticamente em canais privados. Para um canal privado, execute `/invite
>   @Eleven` nesse canal após salvar o gatilho, para que o bot possa ver as mensagens.

> **Warning**
>
> Só é permitido um gatilho por par `(workspace do Slack, canal)`. Edite o gatilho existente
> em vez de criar uma duplicata.

## Configure o gatilho de DM

O gatilho **SlackDirectMessage** permite que qualquer usuário do Slack converse com o agente enviando uma mensagem direta ao bot. Diferentemente do gatilho de canal, não é necessária uma menção com `@` — todas as mensagens que um usuário envia em uma DM com o bot são processadas.

#### Adicione um gatilho SlackDirectMessage

Na página de configuração do agente, adicione um novo gatilho e selecione **SlackDirectMessage**.

#### Escolha o agente

Selecione o **Agente** que conduz as conversas por DM.

#### Salve o gatilho

Salve o gatilho. Agora, qualquer usuário do Slack no workspace pode abrir uma DM com o bot e iniciar uma
conversa.

> **Info**
>
> Para apps BYO, verifique se você assinou o evento de bot `message.im` e adicionou o
> escopo de bot `im:history`. Reinstale o app se solicitado após adicioná-los.

> **Warning**
>
> Só é permitido um gatilho de DM por conexão do Slack. Para alterar o agente, edite o gatilho
> existente.

## Conversando com o bot no Slack

Quando o gatilho estiver ativo e o bot estiver no canal, inicie uma conversa em uma thread do canal. A forma de continuar a thread depende das assinaturas de eventos do seu app do Slack (OAuth usa o comportamento de somente menções).

### Somente menções (`app_mention`)

#### Inicie uma thread com uma menção

Mencione o bot em um canal para iniciar uma nova thread, por exemplo, `@Eleven qual é o status do
    pedido 1234?`. O bot responde em uma thread sob essa mensagem.

#### Continue a thread

Mencione o bot novamente em cada mensagem à qual você quer que ele responda, incluindo acompanhamentos dentro
da mesma thread. Mensagens sem menção são ignoradas.

### Todas as mensagens (`message.channels`, `message.groups`)

#### Inicie uma thread

Envie qualquer mensagem em um canal em que o bot esteja presente. O bot responde em uma thread sob essa
mensagem. Você não precisa mencionar o bot com `@`.

#### Continue a thread

Responda na mesma thread sem mencionar o bot. Cada nova mensagem na thread é
processada.

Enquanto o bot gera uma resposta, ele adiciona uma reação `:eyes:` à mensagem que acionou o usuário e a remove quando a resposta é publicada.

A configuração **Responder a mensagens de** no gatilho de mensagem de canal controla quem pode acionar o agente:

* **Somente humanos** (padrão): mensagens de outros bots e de workflows do Slack são ignoradas. Este é o padrão seguro e preserva o comportamento dos gatilhos existentes.
* **Humanos e bots**: mensagens de outros bots e mensagens publicadas por workflow (incluindo eventos legados `bot_message`) também acionam o agente.

O bot sempre ignora as próprias mensagens — usando a identidade de usuário do bot e do app no webhook assinado do Slack — em ambas as configurações, portanto nunca responde a si mesmo, mesmo quando é mencionado. Ele também continua ignorando mensagens editadas (`message_changed`) e excluídas (`message_deleted`). Ele processa eventos `message` e `app_mention` e funciona em canais públicos e privados.

> **Note**
>
> Eventos legados de bot que contêm apenas um `bot_id` identificam o remetente, mas não o app receptor. Eles
> são tratados como mensagens de outro bot; a detecção de loop próprio para este app do Slack usa a identidade do usuário do bot
> ou do app incluída nas cargas de eventos modernas do Slack.

> **Warning**
>
> Se o seu app do Slack assinar tanto `app_mention` quanto `message.channels` / `message.groups`, uma
> única menção com `@` poderá acionar duas respostas do agente. Assine um modo ou o outro.

## Modelo de conversa

O ID da conversa é determinístico para cada `(agent_id, channel_id, thread_ts)`:

* Uma nova thread do Slack corresponde a uma nova conversa da ElevenLabs.
* Continuar a mesma thread continua a mesma conversa, incluindo o histórico da transcrição e as variáveis dinâmicas.

Ao criar o histórico de chat, o bot lê a thread do Slack diretamente. Mensagens de membros do Slack e de outros bots são tratadas como interações de usuário, enquanto as mensagens do próprio bot são tratadas como interações do agente. Menções ao usuário do bot (`<@BOT_USER_ID>`) são reescritas como `@<agent_name>` antes de o agente processá-las.

### Variáveis dinâmicas

Quando um agente é executado pelo Slack, as seguintes variáveis dinâmicas ficam disponíveis em prompts e ferramentas:

| Variável                                | Descrição                                                                                       |
| --------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `integration__slack_channel_id`         | ID do canal do Slack.                                                                           |
| `integration__slack_thread_ts`          | Timestamp da thread do Slack.                                                                   |
| `integration__slack_user_id`            | ID do remetente no Slack. É um ID de usuário ou um ID de bot para eventos legados sem usuário.  |
| `integration__slack_team_id`            | ID do workspace (equipe) do Slack.                                                              |
| `integration__slack_connection_id`      | ID da conexão de integração da ElevenLabs.                                                      |
| `integration__slack_trigger_message_ts` | `ts` do Slack da mensagem que acionou esta interação do agente (ID único da mensagem no canal). |

Consulte [variáveis dinâmicas](/docs/pt/eleven-agents/customization/personalization/dynamic-variables) para saber como referenciá-las em prompts e chamadas de ferramentas.

## Solução de problemas

### Anexos de arquivos não funcionam

Quando um usuário anexa uma imagem ou PDF no Slack, mas o agente não o processa (ou age como se nenhum arquivo tivesse sido enviado), siga as verificações abaixo.

#### Confirme que o app do Slack tem files:read

O bot precisa do escopo de bot `files:read` para baixar anexos do Slack.

* **Use seu próprio app** — abra seu app em [Slack API: Your Apps](https://api.slack.com/apps), acesse **OAuth & Permissions** e verifique se `files:read` está listado em **Bot Token Scopes**. Se você o adicionou recentemente, reinstale o app no seu workspace para que o token receba o novo escopo.

#### Confirme que o modelo do agente aceita entrada de arquivos

Os anexos de arquivos só são encaminhados quando o LLM do agente aceita entrada multimodal — entrada de imagem e/ou documento (PDF), dependendo do tipo de arquivo. Na configuração do agente, abra a aba **Agente** e verifique o modelo selecionado. Se o modelo não aceitar o tipo de anexo, mude para um modelo que aceite.

#### Ative Permitir anexos de arquivos nas configurações do agente

Na página de configuração do agente, abra **Configurações** > **Avançado**. Em **Entrada multimodal**, ative **Permitir anexos de arquivos**. Salve o agente. Sem essa configuração, os anexos do Slack são ignorados mesmo quando o app do Slack e o modelo aceitam arquivos.

## Links úteis

* [Documentação da API do Slack](https://api.slack.com/docs)
* [Permissões de apps do Slack](https://api.slack.com/scopes)