Ação de IA do Salesforce Collect Leads

Neste guia, mostraremos como usar uma ação personalizada de IA para enviar novos leads e as transcrições de bate-papo do Social Intents para o Salesforce automaticamente quando um bate-papo for concluído ou quando suas regras de qualificação forem atendidas. Use as intenções de IA para qualificar e criar leads de forma inteligente diretamente no Salesforce. Não são necessários softwares ou conectores adicionais.

Configuração de ação personalizada do Salesforce Lead

O que essa integração de IA do Salesforce faz

Quando seu bot identifica um visitante qualificado, ele cria um lead no Salesforce e inclui a transcrição do bate-papo. Você pode implementar isso de duas maneiras: Web-to-Lead (mais simples) ou a API REST do Salesforce (recomendada para escala e registros mais ricos, como tarefas ou arquivos).

Pré-requisitos

  • Conta de intenções sociais com ações de IA.
  • Para Web-to-Lead: sua ID de organização do Salesforce.
  • Para API REST: um Salesforce Connected App e um token de acesso (por exemplo, via Credenciais do Cliente ou JWT). Armazene o token no Social Intents como um segredo.

Dados que você coletará no chat

Configure sua IA para capturar: nome, sobrenome, e-mail, telefone, empresa e contexto opcional, como URL da página ou campanha. A transcrição pode ser enviada como uma descrição, anexada como uma tarefa ou carregada como um arquivo com a opção REST.

Adicionar uma ação personalizada em Social Intents

Crie uma nova ação personalizada → Chamar solicitação de API. Dê a ela um nome descritivo (por exemplo, create_salesforce_lead) e defina quando acionar (por exemplo, no final do chat).

Opção A - Web-to-Lead (configuração mais rápida)

  • Tipo de ação: Acionamento automático no final do bate-papo
  • Método da API: POST
  • URL do ponto de extremidade: https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8
  • Tipo de conteúdo: application/x-www-form-urlencoded
  • Campos obrigatórios: oid (Org Id) e sobrenome ou empresa
POST https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8
Content-Type: application/x-www-form-urlencoded

oid=YOUR_ORG_ID
&last_name={{lastName}}
&first_name={{firstName}}
&email={{email}}
&phone={{phone}}
&company={{company|Website Visitor}}
&lead_source=Chat
&description={{transcript}}

Use essa opção quando quiser uma integração rápida e sem autenticação. Se precisar exceder os limites diários de Web-to-Lead ou anexar registros mais ricos, use a Opção B.

Opção B - API REST do Salesforce (recomendado)

Crie o lead via REST e, opcionalmente, adicione a transcrição como uma tarefa (simples e pesquisável) ou carregue-a como um arquivo. Adicione um cabeçalho Authorization com seu token Bearer e defina Content-Type como application/json.

B1) Criar lead

POST https://YOUR_INSTANCE.salesforce.com/services/data/v60.0/sobjects/Lead
Authorization: Bearer {{secrets.salesforceAccessToken}}
Content-Type: application/json

{
  "LastName": "{{lastName}}",
  "FirstName": "{{firstName}}",
  "Company": "{{company|Website Visitor}}",
  "Email": "{{email}}",
  "Phone": "{{phone}}",
  "LeadSource": "Chat",
  "Description": "Chat ended on {{endedAt}} via {{widgetName}}"
}

B2) Anexe a transcrição como uma tarefa

POST https://YOUR_INSTANCE.salesforce.com/services/data/v60.0/sobjects/Task
Authorization: Bearer {{secrets.salesforceAccessToken}}
Content-Type: application/json

{
  "WhoId": "{{tools.createLead.id}}",
  "Subject": "Chat Transcript",
  "Status": "Completed",
  "Priority": "Normal",
  "Description": "{{transcript}}"
}

B3) (Opcional) Fazer upload da transcrição como um arquivo

POST https://YOUR_INSTANCE.salesforce.com/services/data/v60.0/sobjects/ContentVersion
Authorization: Bearer {{secrets.salesforceAccessToken}}
Content-Type: application/json

{
  "Title": "Chat_Transcript_{{chatId}}",
  "PathOnClient": "transcript_{{chatId}}.txt",
  "VersionData": "{{base64(transcript)}}"
}
POST https://YOUR_INSTANCE.salesforce.com/services/data/v60.0/sobjects/ContentDocumentLink
Authorization: Bearer {{secrets.salesforceAccessToken}}
Content-Type: application/json

{
  "ContentDocumentId": "{{tools.uploadTranscript.ContentDocumentId}}",
  "LinkedEntityId": "{{tools.createLead.id}}",
  "ShareType": "V"
}

Configurações de intenções sociais recomendadas

  • Acionador: Quando o chat termina (ou condicional com base na qualificação do lead).
  • Colete insumos: firstName, lastName, e-mail, telefone, empresa, transcrição, widgetName, endedAt.
  • Segredos: loja salesforceAccessToken (opção REST).
  • Para encadeamento REST: salve o Lead retornado id da primeira chamada e o referencia na segunda ação por meio de {{tools.createLead.id}}.

Exemplos de casos de uso

Sempre crie um lead ao concluir o bate-papo

Configure a ação para ser executada automaticamente quando um bate-papo terminar, para que cada conversa seja capturada no Salesforce com sua transcrição. Essa é a configuração mais infalível para equipes que desejam cobertura completa do chat para o CRM.

Configurações de intenções sociais

  • Acionador: Quando o bate-papo termina
  • Nome da ação: criar_salesforce_lead
  • Insumos coletados: firstName, lastName, e-mail, telefone, empresa, transcrição, widgetName, endedAt
  • Segredos: salesforceAccessToken (se estiver usando a API REST)
Opção A - Web-to-Lead (sem autenticação)

Cria um lead e armazena a transcrição do chat no campo Descrição.

POST https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8
Content-Type: application/x-www-form-urlencoded

oid=YOUR_ORG_ID
&last_name={{lastName}}
&first_name={{firstName}}
&email={{email}}
&phone={{phone}}
&company={{company|Website Visitor}}
&lead_source=Chat
&description={{transcript}}

Dica: Adicione campaign_id=YOUR_CAMPAIGN_ID para atribuir chats a campanhas.

Opção B - API REST (recomendada)

Crie o lead e, em seguida, registre a transcrição como uma tarefa concluída para um melhor acompanhamento da atividade.

B1) Criar lead

POST https://YOUR_INSTANCE.salesforce.com/services/data/v60.0/sobjects/Lead
Authorization: Bearer {{secrets.salesforceAccessToken}}
Content-Type: application/json

{
  "LastName": "{{lastName}}",
  "FirstName": "{{firstName}}",
  "Company": "{{company|Website Visitor}}",
  "Email": "{{email}}",
  "Phone": "{{phone}}",
  "LeadSource": "Chat",
  "Description": "Chat ended on {{endedAt}} via {{widgetName}}"
}

B2) Criar tarefa com transcrição

POST https://YOUR_INSTANCE.salesforce.com/services/data/v60.0/sobjects/Task
Authorization: Bearer {{secrets.salesforceAccessToken}}
Content-Type: application/json

{
  "WhoId": "{{tools.createLead.id}}",
  "Subject": "Chat Transcript",
  "Status": "Completed",
  "Priority": "Normal",
  "Description": "{{transcript}}"
}
Aprimoramentos opcionais
  • Encaminhamento do proprietário: Conjunto OwnerId no Lead (REST) com base na região ou no produto coletado no chat.
  • Eliminação de duplicação: Use o processo/fluxo ou regras de correspondência para mesclar leads por e-mail.
  • Arquivos em vez de Descrição: Carregue a transcrição como um arquivo via Versão do conteúdo e vinculá-lo a ContentDocumentLink.

Criar um lead somente para visitantes qualificados

Adicione verificações de intenção e qualificação em seu fluxo de IA. Acione a ação somente quando o visitante corresponder aos seus critérios (por exemplo, orçamento >= limite, tamanho da empresa, território, intenção de demonstração, e-mail de trabalho etc.).

Lógica de qualificação (exemplo)

Em seu fluxo de bot, reúna campos como useCase, companySize, país, e-maile intenção. Em seguida, defina uma condição para executar a ação do Salesforce somente quando as regras forem atendidas.

// Pseudocode for your bot's conditional action
IF intent == "book_demo"
   AND companySize >= 50
   AND email CONTAINS "@"
   AND NOT email ENDSWITH ".edu" OR ".gmail.com"
THEN run create_salesforce_lead
ELSE continue chat and offer resources
Carga útil Web-to-Lead (somente quando qualificado)
POST https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8
Content-Type: application/x-www-form-urlencoded

oid=YOUR_ORG_ID
&last_name={{lastName}}
&first_name={{firstName}}
&email={{email}}
&company={{company}}
&lead_source=Chat - Qualified
&description=Intent: {{intent}} | Use case: {{useCase}} | Size: {{companySize}} | Transcript: {{transcript}}

Considere adicionar campos ocultos como utm_source, utm_campaignou page_url para atribuição.

Cargas de API REST (somente quando qualificadas)

B1) Criar um lead com campos de qualificação

POST https://YOUR_INSTANCE.salesforce.com/services/data/v60.0/sobjects/Lead
Authorization: Bearer {{secrets.salesforceAccessToken}}
Content-Type: application/json

{
  "LastName": "{{lastName}}",
  "FirstName": "{{firstName}}",
  "Company": "{{company}}",
  "Email": "{{email}}",
  "Phone": "{{phone}}",
  "LeadSource": "Chat - Qualified",
  "Description": "Intent={{intent}} | UseCase={{useCase}} | Size={{companySize}} | From={{pageUrl}}"
}

B2) Adicionar transcrição como tarefa (opcional)

POST https://YOUR_INSTANCE.salesforce.com/services/data/v60.0/sobjects/Task
Authorization: Bearer {{secrets.salesforceAccessToken}}
Content-Type: application/json

{
  "WhoId": "{{tools.createLead.id}}",
  "Subject": "Qualified Chat Transcript",
  "Status": "Completed",
  "Priority": "Normal",
  "Description": "{{transcript}}"
}
Opcional: rota e pontuação
  • Roteamento do território: Conjunto OwnerId por país/região coletados no chat.
  • Pontuação MQL: Incluir um Pontuação do Chat__c campo personalizado derivado de intent/size/keywords.
  • Interesse pelo produto: Captura Produto__c (por exemplo, "Service Cloud") da conversa para relatórios e cadências.
Lista de verificação de controle de qualidade:
  • Teste um caminho qualificado e um não qualificado.
  • Verificar se os leads são criados somente quando as regras coincidem.
  • Confirme se o conteúdo da transcrição é exibido (Tarefa ou Descrição).
  • Assegure-se de que qualquer vínculo de proprietário/atribuição ou campanha funcione conforme o esperado.