Salesforce

Conecte seus agentes da ElevenLabs ao Salesforce CRM

Visão geral

Conecte seus agentes de IA da ElevenLabs ao Salesforce CRM para acessar dados de clientes, gerenciar leads e criar oportunidades. Essa integração permite que seus agentes recuperem registros de clientes existentes, criem novos leads e contatos e consultem objetos do Salesforce durante conversas.

Recursos

RecursoSuporte
Modo de retenção zero (ZRM)Não compatível
Anexos em gatilhosNão compatível — anexos em comentários de casos e e-mails recebidos não são encaminhados ao agente
Anexos em ferramentasNão compatível — as ferramentas operam somente com texto

Configuração

Esta integração usa Credenciais de Cliente OAuth 2.0 do Salesforce para autenticação. Você precisará criar um App de Cliente Externo no Salesforce.

1

Criar um App de Cliente Externo

  1. Entre na sua organização do Salesforce como administrador
  2. Acesse Setup > External Client App Manager
  3. Clique em New External Client App
  4. Preencha o External Client App Name (por exemplo, ElevenLabs Agents), o API Name e o Contact Email
  5. Em API (Enable OAuth Settings):
    • Marque Enable OAuth e Enable Client Credentials Flow
    • Callback URL: https://api.elevenlabs.io/oauth/callback
    • OAuth Start URL: https://api.elevenlabs.io/oauth/start
    • Selected OAuth Scopes: adicione estes escopos:
      • Full access (full)
      • Perform requests on your behalf at any time (refresh_token, offline_access)
      • Manage user data via api
  6. Clique em Create
  7. Na página do app, abra a aba Settings, acesse OAuth Settings e clique em Consumer Key and Secret
  8. Copie a Consumer Key e a Consumer Secret — você precisará delas para a autenticação
2

Configurar o fluxo de Credenciais de Cliente OAuth

O fluxo de Credenciais de Cliente é recomendado para integrações servidor a servidor que não exigem interação do usuário. Verifique se o administrador do Salesforce habilitou esse fluxo.

  1. No seu App de Cliente Externo, clique em Edit
  2. Marque Enable Client Credentials Flow — um campo Run As será exibido
  3. Defina Run As como seu usuário administrador ou uma conta de serviço dedicada — isso determina as permissões de todas as chamadas de API
  4. Defina Permitted Users como Admin approved users are pre-authorized
  5. Clique em Save

O usuário Run As determina as permissões de todas as chamadas de API. Escolha um usuário com perfil de Administrador do Sistema ou um perfil personalizado que tenha acesso à API e permissão para os objetos de que seu agente precisa (Contact, Lead, Account etc.). A permissão API Enabled precisa estar marcada no registro do usuário.

3

Encontrar seu domínio do Salesforce

Seu domínio do Salesforce é necessário para chamadas de API.

Método 1: verifique sua URL atual

Ao entrar no Salesforce, observe a barra de endereços do navegador:

  • Lightning Experience: https://acme.lightning.force.com/
  • My Domain: https://acme.my.salesforce.com/

Método 2: Setup > Company Information

Acesse Setup > Company Information e procure a URL do seu My Domain ou as informações da organização.

Método 3: Setup > Domain Management

Acesse Setup > Domain Management > My Domain. Seu domínio será exibido no topo da página.

Formatos de domínio comuns:

  • https://acme.my.salesforce.com (My Domain)
  • https://acme.lightning.force.com (Lightning)
  • https://acme.develop.my.salesforce.com (Sandbox)
Use o domínio completo, sem barra no final.
4

Conectar no ElevenLabs

Na configuração da integração do ElevenLabs, informe o nome de host da instância do Salesforce (por exemplo, acme.my.salesforce.com), o Client ID (Consumer Key) e o Client Secret (Consumer Secret).

Vídeo de demonstração

Esta demonstração usa ferramentas de webhook legadas. Se você estiver usando a integração nativa do Salesforce, as ferramentas serão configuradas automaticamente — não é necessária nenhuma configuração manual de webhook.

Demonstração da integração com Salesforce

Como funciona

1

Consulta inicial do cliente

O agente coleta informações do cliente e faz perguntas relevantes para identificar seus requisitos de negócio e desafios atuais.

2

Consulta de dados do cliente

O agente verifica registros existentes usando salesforce_search_records para encontrar contatos, contas ou leads. Ele obtém todos os detalhes com salesforce_get_record e usa essas informações para personalizar a conversa.

3

Qualificação de lead

Se o cliente for novo, o agente coleta informações de contato, avalia suas necessidades de negócio e determina o processo de vendas ou encaminhamento adequado.

4

Criação de registro

O agente cria o registro adequado (lead, contato ou oportunidade) usando salesforce_create_record, confirma a criação com o cliente e explica as próximas etapas.

A autorização das ferramentas pode ser gerenciada com as Workplace Auth Connections, que cuidam da atualização de tokens automaticamente. As ferramentas retornam nomes e descrições legíveis em vez de IDs técnicos para melhorar a qualidade das conversas.

Configurações das ferramentas

Há três ferramentas de webhook disponíveis: salesforce_search_records, salesforce_get_record e salesforce_create_record. Configure a autorização de cada uma usando uma Workplace Auth Connection.

Autorização - conexão OAuth2 do Workplace

1

Acessar Workplace Auth Connections

No painel do ElevenLabs, acesse Agents > Workplace Auth Connections e clique em Add Auth.

2

Configurar conexão do Salesforce

Preencha os campos a seguir para sua integração com o Salesforce:

Nome da conexão: Salesforce CRM

Client ID

  • Sua Consumer Key do App de Cliente Externo
  • Exemplo: 3MVG9JJlvRU3L4pRiOu8pQt5xXB4xGZGm0yW...

Client Secret

  • Sua Consumer Secret do App de Cliente Externo
  • Exemplo: 1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF...

URL do token

  • O endpoint de token OAuth do seu domínio Salesforce
  • Formato: https://{domain}.my.salesforce.com/services/oauth2/token
  • Exemplo: https://acme.my.salesforce.com/services/oauth2/token

Escopos (opcional)

  • Escopos OAuth para acesso à API do Salesforce
  • Recomendado: full, api, refresh_token
  • Deixe em branco para usar os escopos padrão do seu App de Cliente Externo

Parâmetros extras (JSON)

  • Parâmetros OAuth adicionais específicos da sua configuração
  • Exemplo para o fluxo de Credenciais de Cliente:
{
"grant_type": "client_credentials"
}
4

Criar conexão de autenticação

Clique em Create auth connection para adicionar sua configuração.

5

Usar nas configurações das ferramentas

Depois que a conexão for bem-sucedida, salve-a e faça referência a ela nas configurações das ferramentas de webhook, na seção Authentication.

As Workplace Auth Connections cuidam da atualização de tokens automaticamente, portanto você não precisa gerenciar tokens manualmente.

Configurações das ferramentas de webhook

Adicione uma Workplace Auth Connection (OAuth2) a cada ferramenta na seção Authentication. Use as abas abaixo para analisar a configuração de cada ferramenta.

Nome: salesforce_search_records Descrição: Pesquisa registros existentes no Salesforce usando consultas SOQL. Sempre retorna informações legíveis, incluindo nomes, e não apenas IDs. Método: GET URL: https://acme.my.salesforce.com/services/data/v58.0/query/?q={soql_query}

Cabeçalhos:

  • Content-Type: application/json

Parâmetros de consulta:

  • q: String de consulta SOQL (por exemplo, “SELECT Id, Name, Email FROM Contact WHERE Email = ‘example@email.com’”)

JSON da ferramenta:

{
"type": "webhook",
"name": "salesforce_search_records",
"description": "Searches for existing records in Salesforce using SOQL queries. Always returns human-readable names and details, not just IDs.",
"api_schema": {
"url": "https://acme.my.salesforce.com/services/data/v58.0/query/",
"method": "GET",
"path_params_schema": [],
"query_params_schema": [
{
"id": "q",
"type": "string",
"description": "SOQL query string to search for records. Always include Name fields and other human-readable information. Example: SELECT Id, Name, Email, Phone, Company FROM Contact WHERE Email = 'customer@example.com'. For Opportunities, include: SELECT Id, Name, StageName, Amount, CloseDate, Account.Name FROM Opportunity",
"dynamic_variable": "",
"constant_value": "",
"required": true,
"value_type": "llm_prompt"
}
],
"request_body_schema": null,
"request_headers": [
{
"type": "value",
"name": "Content-Type",
"value": "application/json"
}
]
},
"response_timeout_secs": 30,
"dynamic_variables": {
"dynamic_variable_placeholders": {}
}
}

Objetos comuns do Salesforce

ObjetoFinalidadeCampos comuns
LeadClientes em potencial ainda não qualificadosFirstName, LastName, Email, Phone, Company, Industry, Status
ContactPessoas qualificadas associadas a contasFirstName, LastName, Email, Phone, AccountId, Title
AccountOrganizações ou empresasName, Type, Industry, Phone, BillingAddress
OpportunityNegócios de vendas em andamentoName, StageName, Amount, CloseDate, AccountId
CaseSolicitações de atendimento ao clienteSubject, Description, Status, Priority, ContactId

Consultas SOQL comuns

Use estas consultas SOQL como ponto de partida ao personalizar o prompt de sistema do seu agente. Todas as consultas retornam informações legíveis para humanos, em vez de IDs técnicos:

Buscar contatos por e-mail

SELECT Id, Name, Email, Phone, Title, Account.Name, Account.Type FROM Contact WHERE Email = 'customer@example.com'

Buscar leads por e-mail ou telefone

SELECT Id, Name, Email, Phone, Company, Industry, Status, LeadSource, Title FROM Lead WHERE Email = 'customer@example.com' OR Phone = '+1234567890'

Buscar contas por nome

SELECT Id, Name, Type, Industry, Phone, BillingCity, BillingState, Website FROM Account WHERE Name LIKE '%Company Name%'

Buscar oportunidades recentes

SELECT Id, Name, StageName, Amount, CloseDate, Account.Name, Account.Type, Owner.Name, Description FROM Opportunity WHERE CreatedDate = THIS_MONTH

Buscar oportunidades por conta

SELECT Id, Name, StageName, Amount, CloseDate, Probability, NextStep, Owner.Name FROM Opportunity WHERE Account.Name LIKE '%Company Name%'

Teste da integração

Depois de configurar seu External Client App e conectar a integração, teste-a antes de implantá-la em produção:

  1. Funcionalidade de busca: peça ao seu agente para buscar contatos existentes.
  2. Criação de registros: peça ao seu agente para criar um novo lead ou contato.
  3. Recuperação de dados: verifique se seu agente consegue recuperar informações detalhadas dos clientes.

Acionador de comentários de caso: respostas por e-mail para Email-to-Case

Se você ativou o acionador Salesforce Case Comment (resposta automática do agente para Cases do Service Cloud), as respostas a Cases com pelo menos um e-mail recebido são enviadas de volta ao cliente como um e-mail real, encadeado — não apenas como um comentário interno no Case. Isso se baseia em o Case ter um e-mail recebido, e não no valor da lista de seleção Origin do Case; portanto, continua funcionando corretamente se sua organização usar um valor personalizado de Origin, como “Email - Returns”, em vez do valor literal “Email”. Cases sem e-mail recebido continuam sendo publicados como um comentário público no Case, sem alterações. Quaisquer endereços em CC no e-mail original do cliente também são automaticamente incluídos em CC na resposta, assim como aconteceria com o “Responder a todos” de um agente humano — exceto pelos endereços de roteamento de Email-to-Case da sua organização, que são deliberadamente excluídos do CC para que a resposta não seja reprocessada pelo Email-to-Case e não acione novamente o agente em sua própria mensagem.

O envio de respostas por e-mail exige algumas configurações adicionais além das necessárias apenas para comentários de Case:

  • O Perfil ou Conjunto de permissões do usuário Run As precisa ter a permissão de sistema Send Email ativada (Setup > Users > Profiles, em System Permissions), além da permissão API Enabled já exigida para a integração.
  • A configuração Email Deliverability da sua organização (Setup > Email > Deliverability) deve permitir e-mails externos — os Sandboxes usam por padrão uma configuração restrita, que bloqueia silenciosamente e-mails enviados.
  • Se quiser que as respostas sejam enviadas de um alias de suporte em vez da própria caixa de correio do usuário Run As, defina o campo Org-Wide Email Address Id no acionador com o Id de um Organization-Wide Email Address (Setup > Organization-Wide Addresses > clique no endereço > copie o Id da URL). Deixe em branco para enviar do próprio endereço do usuário Run As.
  • Defina o campo Email-to-Case Routing Address(es) no acionador com os endereços de Email-to-Case da sua organização (separados por vírgula, caso haja mais de um, Setup > Email-to-Case). Sem isso, a integração tentará adivinhar o endereço de roteamento a partir do e-mail do cliente (seu endereço To), o que não abrange casos em que seu endereço de roteamento estava apenas em CC, e não como destinatário principal — incluí-lo novamente em CC em uma resposta nessa situação acionaria novamente o agente em sua própria mensagem.

Se a organização de um cliente não tiver essas configurações, uma falha no envio do e-mail fará com que um comentário público no Case seja publicado como alternativa, para que uma resposta nunca seja descartada silenciosamente — mas o cliente não a receberá por e-mail até que as configurações acima sejam concluídas.

Considerações de segurança

  • Use endpoints HTTPS para todas as chamadas de API.
  • Garanta que a segurança adequada em nível de campo esteja configurada no Salesforce.
  • As permissões do usuário Run As determinam quais dados a integração pode acessar — defina o escopo delas adequadamente.
  • Audite regularmente o acesso e o uso da API.